US20040158585A1 - System and method for manipulating enterprise application deployment descriptors - Google Patents

System and method for manipulating enterprise application deployment descriptors Download PDF

Info

Publication number
US20040158585A1
US20040158585A1 US10/772,613 US77261304A US2004158585A1 US 20040158585 A1 US20040158585 A1 US 20040158585A1 US 77261304 A US77261304 A US 77261304A US 2004158585 A1 US2004158585 A1 US 2004158585A1
Authority
US
United States
Prior art keywords
deployment descriptor
representation
user
user interface
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/772,613
Inventor
Michael Kovacs
Cedric Beust
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
BEA Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEA Systems Inc filed Critical BEA Systems Inc
Priority to US10/772,613 priority Critical patent/US20040158585A1/en
Assigned to BEA SYSTEMS, INC. reassignment BEA SYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEUST, CEDRIC, KOVACS, MICHAEL
Publication of US20040158585A1 publication Critical patent/US20040158585A1/en
Assigned to ORACLE INTERNATIONAL CORPORATION reassignment ORACLE INTERNATIONAL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEA SYSTEMS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • BEA SYSTEMS INC.
  • BEA WebLogic Server® WebLogic Builder Online Help (Release 7.0, June 2002).
  • the present invention disclosure relates to tools for deploying web applications, and in particular, tools for manipulating web application deployment descriptors.
  • deployment descriptor files can describe run-time parameters particular to a given web server implementation, configuration information for application objects including for example information pertaining to object persistence and relationships among objects.
  • Deployment descriptor files are typically written eXtensible Markup Language (XML). Such files are often lengthy and cryptic which makes them difficult to decipher and edit by hand.
  • XML eXtensible Markup Language
  • deployment descriptor files must be kept up-to-date to reflect changes in a corresponding application's source files. This arrangement invites error. For instance, unless users are vigilant when editing either application or deployment descriptor files, one will become unsynchronized with the other. The user may not even realize this until long after an application has been deployed in a web server. Furthermore, manually editing disparate files creates another opportunity for error due to input errors.
  • FIG. 1 is an exemplary Graphical User Interface (GUI) in one embodiment of the invention.
  • GUI Graphical User Interface
  • FIG. 2 is an exemplary resource hierarchy in one embodiment of the invention.
  • FIG. 3 is an exemplary system diagram in one embodiment of the invention.
  • an interactive tool allows a user to interactively edit information in deployment descriptors for an application without having to manually edit the underlying files.
  • a user can add a tag library to a web application, or add a finder method to an Entity JavaBeanTM (EJB).
  • the builder can allow the user to then test the deployment information by validating it and deploying the application to a server. If any of an application's deployment descriptor files are missing or defective, the builder can generate new or newly serviceable descriptor files.
  • the web server is the BEA WebLogic® Server from BEA Systems, Inc. of San Jose, Calif.
  • an application can include JavaTM 2 Platform, Enterprise Edition (J2EE) components. JavaTM, JavaBeans and the J2EE platform are available from Sun Microsystems, Inc. of San Jose, Calif.
  • FIG. 1 is an exemplary Graphical User Interface (GUI) in one embodiment of the invention.
  • GUI Graphical User Interface
  • the GUI can be implemented using Microsoft® Windows®, available from Microsoft Corporation of Redmond, Wash. It will be apparent to those of skill in the art that other embodiments based on other GUI frameworks are within the scope and spirit of this disclosure.
  • GUI 100 can include user-selectable resource hierarchy 102 , settings pane 104 , message area 106 , and tool bar 108 .
  • Message area 106 can be used to display messages of import to the user, such as the result of validating deployment descriptor information, messages from a web server, etc.
  • message area 106 can contain user-selectable text and/or graphics.
  • GUI user selection can be accomplished with a mouse, tablet, keyboard, voice command, gesture, etc.
  • Tool bar 108 can include user-selectable controls for directing builder to load files, validate deployment descriptor information, update deployment descriptor information, and save deployment descriptor information.
  • the builder organizes information from all of an application's deployment descriptors into a logical hierarchy of resources.
  • a hierarchy hides the underlying complexity of the deployment descriptor files and makes it easier for users to access information by imposing an intuitive organization on the information.
  • this hierarchy can be represented graphically as resource hierarchy 102 .
  • hierarchy 102 represents a high-level abstraction of any JavaTM archive (JAR), Web Archive (WAR), Enterprise Archive (EAR), JavaTM Connector Architecture Component (RAR), and/or an exploded JavaTM Enterprise module (e.g., a source directory containing a “META-INF” subdirectory). This allows the user to view deployment information in terms of the organization of the application, rather than in terms of the foreign syntax of deployment descriptor files.
  • JAR JavaTM archive
  • WAR Web Archive
  • EAR Enterprise Archive
  • RAR JavaTM Connector Architecture Component
  • an exploded JavaTM Enterprise module e.g., a source directory containing a “META-INF”
  • FIG. 2 is an exemplary resource hierarchy in one embodiment of the invention. Indented items in the figure are considered hierarchically inferior to less indented items.
  • the hierarchy 102 can include an EAR node 200 (corresponding to an EAR file).
  • EAR node 200 can contain at least one WAR 202 node (corresponding to a WAR file), at least one EJB node (corresponding to an EJB file), and at least one JAR node 208 - 210 (each corresponding to a JAR file).
  • WAR node 202 can include the following nodes: servlets, filters, security constraints and tag library. Each of these nodes may further contain other nodes, and so on.
  • EJB nodes 204 and 206 can each contain a bean name node and a relations node.
  • the bean name node can contain the following nodes: turning, methods, resources, CMP fields, and finders. There is no limit to the number of nodes or hierarchical levels.
  • settings pane 104 When a node in hierarchy 102 is selected (either by a user or programmatically), its associated deployment descriptor information is displayed in a format suitable for editing in settings pane 104 .
  • the “Session Settings” node is selected in hierarchy 102 .
  • settings pane 104 provides user-editable fields (e.g., 112 - 116 ) corresponding to deployment descriptor information this node.
  • settings pane 104 may display a single field for a given value, that field may map to more than one value in more than one deployment descriptor file. Again, this complexity is hidden from the user.
  • mappings between fields and information in deployment descriptor files is disclosed in BEA SYSTEMS, INC., BEA WebLogic Server®: WebLogic Builder Online Help (Release 7.0, June 2002) which is incorporated by reference in its entirety.
  • Settings pane 104 can include multiple panes, if necessary, each accessible by a user-selectable tab 110 , button or other navigation mechanism.
  • default values for fields can be provided where reasonable.
  • FIG. 3 is an exemplary system diagram in one embodiment of the invention. Although this diagram depicts objects as functionally separate, such depiction is merely for illustrative purposes. It will be apparent to those skilled in the art that the objects portrayed in FIG. 3 can be arbitrarily combined or divided into separate software, firmware or hardware components. Furthermore, it will also be apparent to those skilled in the art that such objects, irregardless of how they are combined or divided, can execute on the same computing device or can be arbitrarily distributed among different computing devices connected by a network.
  • builder 300 can coordinate the activities of the other components in conjunction with GUI 100 .
  • builder can invoke XML parser 308 to parse deployment descriptor files for an application and create a data structure (hereinafter referred to as “dtree”) representation there from.
  • dtree data structure
  • the dtree can be a tree data structure that embodies the hierarchical relationships of nested XML statements.
  • XML parser 308 processes any corresponding deployment descriptor files and provides the resulting dtree to builder 200 .
  • Hierarchy 102 can then be constructed from the dtree by mapping the dtree's elements to node types in hierarchy 102 .
  • builder 300 can generate new descriptor files by invoking deployment descriptor generator 306 to process application modules (e.g., JavaTM source files).
  • Application modules e.g., JavaTM source files.
  • Generator 306 creates a dtree based on source files it discovers in an application's project directory or an archive file. Builder 300 can then take this dtree and use it to emit a set of deployment descriptor files.
  • generator 306 examines the contents of a staging directory and builds standard J2EE (e.g., web.xml and ejb-jar.xml) and server-specific deployment descriptors based on the servlet classes and EJB classes found therein.
  • deployment descriptor generator 306 is the ddinit tool available with the BEA WebLogic® Server from BEA Systems, Inc.
  • a user can direct builder (e.g., via toolbar 108 ) to validate the deployment descriptor information represented by hierarchy 102 .
  • builder invokes validator 302 to locate errors within deployment descriptor files (e.g., incorrect CMP field name, etc.).
  • Validator 302 directs compiler 304 to perform the validation.
  • compiler 304 is the ejbc tool available with the BEA WebLogic® Server from BEA Systems, Inc.
  • compiler 304 when compiler 304 determines that there is an error in an deployment descriptor file, it can create an Error object to store an error code and/or message, the identifier of a node and corresponding field in the resource hierarchy 102 to which the error pertains, and/or an XML type of the field. In one embodiment, compiler 304 provides an Error object to validator 302 for each error it encounters pertaining to deployment descriptor information. Error objects can be used to automatically navigate hierarchy 102 and settings pane 104 to the source of errors.
  • validator 302 and/or compiler 304 can display human-readable error messages corresponding to each error object in message area 106 . If a user selects such message, validator 302 using information in the associated Error object can cause the hierarchy 102 node identified by Error object to be automatically selected. In addition, validator 302 can cause the node's field(s) to be displayed in pane 104 . In a further embodiment, the field which is the source of the error message can be highlighted in pane 104 . In another embodiment, validator 302 can offer suggestions to the user for correcting the field value via a pop-up window or some other notification means.
  • a user can direct builder (e.g., via toolbar 108 ) to deploy an application in a web server.
  • the deploy button can cause compiler 304 to compile all of the source code associated with a specified project directory or JAR file. If no errors are detected, compiler 304 can place the EJB classes, interfaces, and deployment descriptor files in a JAR file, generate web server container classes for the Entity JavaBeansTM, create client-side dynamic proxies and server-side byte code, and deploy the project to the web server.
  • a user can direct builder 300 (e.g., via toolbar 108 ) to update an application's deployment descriptor information to take into account changes made to application source files.
  • builder 300 can automatically update the deployment descriptor information if it determines that application source files have been modified.
  • builder 300 can invoke XML parser 308 to create a master dtree (if one does not already exist) representing the present state of the deployment descriptor files, and can invoke generator 306 to create a new dtree representing deployment descriptor information based on the current state of source files in an application's project directory.
  • Builder 300 compares the master and new dtrees to each other. In one embodiment, for the portions of the dtrees that represent an EAR resource, builder 300 removes all modules contained within the EAR resource (e.g., WARs & JARs) in the master dtree that do not also exist in the new dtree. In addition, builder 300 adds modules to the master dtree if they exist in the new dtree but not in the master dtree. In this fashion, the master dtree is “refreshed” based on the current state of the project files.
  • modules contained within the EAR resource e.g., WARs & JARs
  • builder 300 can alter the master dtree so that it has the same bean resources as the new tree.
  • builder 300 alters the master dtree so that it has the same modules (e.g., servlets, listeners, filters, tag libraries, etc.) as the new tree.
  • modules e.g., servlets, listeners, filters, tag libraries, etc.
  • builder 300 does not delete modules from the master dtree WAR resources since other applications outside of the current application may depend on the deployment descriptors. In this way, changes made to application source code files can be integrated while preserving changes made to the DD's by a builder user.
  • builder 300 can generate new deployment descriptors from the “refreshed” master dtree.
  • One embodiment may be implemented using a conventional general purpose or a specialized digital computer or microprocessor(s) programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art.
  • Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
  • the invention may also be implemented by the preparation of integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
  • One embodiment includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the features presented herein.
  • the storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
  • the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention.
  • software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and user applications.

Abstract

A system and method for manipulating at least one deployment descriptor, comprising a first user interface capable of rendering a hierarchical representation of the at least one deployment descriptor, wherein a component of the representation can be selected by a user; a second user interface capable of rendering a user-editable representation of the selected component; and wherein the hierarchical representation of the at least one deployment descriptor includes a logical representation of application resources.

Description

    CLAIM OF PRIORITY
  • This application claims priority from the following applications which are hereby incorporated by reference in their entirety: [0001]
  • SYSTEM AND METHOD FOR MANIPULATING ENTERPRISE APPLICATION DEPLOYMENT DESCRIPTORS, U.S. Application Serial No. 60/445,532, Inventors: Michael Kovacs, et al., filed on Feb. 6, 2003. (Attorney's Docket No. BEAS-01301US0) [0002]
  • SYSTEM AND METHOD FOR MANIPULATING AND AUTOMATICALLY UPDATING ENTERPRISE APPLICATION DEPLOYMENT DESCRIPTORS, U.S. Application Serial No. 60/445,535, Inventors: Michael Kovacs, et al., filed on Feb. 6, 2003. (Attorney's Docket No. BEAS-01302US0)[0003]
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. [0004]
  • CROSS REFERENCES
  • The following publication is hereby incorporated by reference in its entirety: BEA SYSTEMS, INC., [0005] BEA WebLogic Server®: WebLogic Builder Online Help (Release 7.0, June 2002).
  • FIELD OF THE DISCLOSURE
  • The present invention disclosure relates to tools for deploying web applications, and in particular, tools for manipulating web application deployment descriptors. [0006]
  • BACKGROUND
  • In order to deploy an application in a web server, configuration and run-time information must be provided to the web server via one or more deployment descriptor files. Such files can describe run-time parameters particular to a given web server implementation, configuration information for application objects including for example information pertaining to object persistence and relationships among objects. Deployment descriptor files are typically written eXtensible Markup Language (XML). Such files are often lengthy and cryptic which makes them difficult to decipher and edit by hand. Furthermore, the information contained in deployment descriptor files must be kept up-to-date to reflect changes in a corresponding application's source files. This arrangement invites error. For instance, unless users are vigilant when editing either application or deployment descriptor files, one will become unsynchronized with the other. The user may not even realize this until long after an application has been deployed in a web server. Furthermore, manually editing disparate files creates another opportunity for error due to input errors.[0007]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is an exemplary Graphical User Interface (GUI) in one embodiment of the invention. [0008]
  • FIG. 2 is an exemplary resource hierarchy in one embodiment of the invention. [0009]
  • FIG. 3 is an exemplary system diagram in one embodiment of the invention.[0010]
  • DETAILED DESCRIPTION
  • The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one. [0011]
  • In one embodiment, an interactive tool (hereinafter referred to as “builder”) allows a user to interactively edit information in deployment descriptors for an application without having to manually edit the underlying files. By way of a non-limiting example, a user can add a tag library to a web application, or add a finder method to an Entity JavaBean™ (EJB). The builder can allow the user to then test the deployment information by validating it and deploying the application to a server. If any of an application's deployment descriptor files are missing or defective, the builder can generate new or newly serviceable descriptor files. In one embodiment, the web server is the BEA WebLogic® Server from BEA Systems, Inc. of San Jose, Calif. In one embodiment, an application can include Java™ 2 Platform, Enterprise Edition (J2EE) components. Java™, JavaBeans and the J2EE platform are available from Sun Microsystems, Inc. of San Jose, Calif. [0012]
  • FIG. 1 is an exemplary Graphical User Interface (GUI) in one embodiment of the invention. In one embodiment and by way of illustration, the GUI can be implemented using Microsoft® Windows®, available from Microsoft Corporation of Redmond, Wash. It will be apparent to those of skill in the art that other embodiments based on other GUI frameworks are within the scope and spirit of this disclosure. GUI [0013] 100 can include user-selectable resource hierarchy 102, settings pane 104, message area 106, and tool bar 108. Message area 106 can be used to display messages of import to the user, such as the result of validating deployment descriptor information, messages from a web server, etc. In one embodiment, message area 106 can contain user-selectable text and/or graphics. By way of a non-limiting example, GUI user selection can be accomplished with a mouse, tablet, keyboard, voice command, gesture, etc. Tool bar 108 can include user-selectable controls for directing builder to load files, validate deployment descriptor information, update deployment descriptor information, and save deployment descriptor information.
  • In one embodiment, the builder organizes information from all of an application's deployment descriptors into a logical hierarchy of resources. Such a hierarchy hides the underlying complexity of the deployment descriptor files and makes it easier for users to access information by imposing an intuitive organization on the information. In one embodiment, this hierarchy can be represented graphically as [0014] resource hierarchy 102. In one embodiment, hierarchy 102 represents a high-level abstraction of any Java™ archive (JAR), Web Archive (WAR), Enterprise Archive (EAR), Java™ Connector Architecture Component (RAR), and/or an exploded Java™ Enterprise module (e.g., a source directory containing a “META-INF” subdirectory). This allows the user to view deployment information in terms of the organization of the application, rather than in terms of the foreign syntax of deployment descriptor files. By way of a non-limiting example, one such hierarchy could be organized as in FIG. 2.
  • FIG. 2 is an exemplary resource hierarchy in one embodiment of the invention. Indented items in the figure are considered hierarchically inferior to less indented items. In one embodiment, and by way of a non-limiting example, the [0015] hierarchy 102 can include an EAR node 200 (corresponding to an EAR file). EAR node 200 can contain at least one WAR 202 node (corresponding to a WAR file), at least one EJB node (corresponding to an EJB file), and at least one JAR node 208-210 (each corresponding to a JAR file). WAR node 202 can include the following nodes: servlets, filters, security constraints and tag library. Each of these nodes may further contain other nodes, and so on. Continuing the example, EJB nodes 204 and 206 can each contain a bean name node and a relations node. The bean name node can contain the following nodes: turning, methods, resources, CMP fields, and finders. There is no limit to the number of nodes or hierarchical levels.
  • When a node in [0016] hierarchy 102 is selected (either by a user or programmatically), its associated deployment descriptor information is displayed in a format suitable for editing in settings pane 104. For example, the “Session Settings” node is selected in hierarchy 102. As such, settings pane 104 provides user-editable fields (e.g., 112-116) corresponding to deployment descriptor information this node. Although settings pane 104 may display a single field for a given value, that field may map to more than one value in more than one deployment descriptor file. Again, this complexity is hidden from the user. In one embodiment, mappings between fields and information in deployment descriptor files is disclosed in BEA SYSTEMS, INC., BEA WebLogic Server®: WebLogic Builder Online Help (Release 7.0, June 2002) which is incorporated by reference in its entirety. Settings pane 104 can include multiple panes, if necessary, each accessible by a user-selectable tab 110, button or other navigation mechanism. In another embodiment, default values for fields can be provided where reasonable.
  • FIG. 3 is an exemplary system diagram in one embodiment of the invention. Although this diagram depicts objects as functionally separate, such depiction is merely for illustrative purposes. It will be apparent to those skilled in the art that the objects portrayed in FIG. 3 can be arbitrarily combined or divided into separate software, firmware or hardware components. Furthermore, it will also be apparent to those skilled in the art that such objects, irregardless of how they are combined or divided, can execute on the same computing device or can be arbitrarily distributed among different computing devices connected by a network. [0017]
  • In one embodiment, [0018] builder 300 can coordinate the activities of the other components in conjunction with GUI 100. On start up and/or when a user directs GUI 100 to open a source file (e.g., via tool bar 108), builder can invoke XML parser 308 to parse deployment descriptor files for an application and create a data structure (hereinafter referred to as “dtree”) representation there from. There are many commercial and publicly available XML parsers. However, the embodiments disclosed herein are not dependent on a particular XML parser or its resulting data structure representation of an XML document. In one embodiment, the dtree can be a tree data structure that embodies the hierarchical relationships of nested XML statements. When a user directs the GUI 100 to open an application module, XML parser 308 processes any corresponding deployment descriptor files and provides the resulting dtree to builder 200. Hierarchy 102 can then be constructed from the dtree by mapping the dtree's elements to node types in hierarchy 102.
  • If any deployment descriptor files needed for deployment of an application on a web server are missing or defective, [0019] builder 300 can generate new descriptor files by invoking deployment descriptor generator 306 to process application modules (e.g., Java™ source files). Generator 306 creates a dtree based on source files it discovers in an application's project directory or an archive file. Builder 300 can then take this dtree and use it to emit a set of deployment descriptor files. In one embodiment, generator 306 examines the contents of a staging directory and builds standard J2EE (e.g., web.xml and ejb-jar.xml) and server-specific deployment descriptors based on the servlet classes and EJB classes found therein. In one embodiment, deployment descriptor generator 306 is the ddinit tool available with the BEA WebLogic® Server from BEA Systems, Inc.
  • A user can direct builder (e.g., via toolbar [0020] 108) to validate the deployment descriptor information represented by hierarchy 102. In one embodiment, builder invokes validator 302 to locate errors within deployment descriptor files (e.g., incorrect CMP field name, etc.). Validator 302 directs compiler 304 to perform the validation. In one embodiment, compiler 304 is the ejbc tool available with the BEA WebLogic® Server from BEA Systems, Inc. In one embodiment, when compiler 304 determines that there is an error in an deployment descriptor file, it can create an Error object to store an error code and/or message, the identifier of a node and corresponding field in the resource hierarchy 102 to which the error pertains, and/or an XML type of the field. In one embodiment, compiler 304 provides an Error object to validator 302 for each error it encounters pertaining to deployment descriptor information. Error objects can be used to automatically navigate hierarchy 102 and settings pane 104 to the source of errors.
  • In one embodiment, [0021] validator 302 and/or compiler 304 can display human-readable error messages corresponding to each error object in message area 106. If a user selects such message, validator 302 using information in the associated Error object can cause the hierarchy 102 node identified by Error object to be automatically selected. In addition, validator 302 can cause the node's field(s) to be displayed in pane 104. In a further embodiment, the field which is the source of the error message can be highlighted in pane 104. In another embodiment, validator 302 can offer suggestions to the user for correcting the field value via a pop-up window or some other notification means.
  • In one embodiment, a user can direct builder (e.g., via toolbar [0022] 108) to deploy an application in a web server. The deploy button can cause compiler 304 to compile all of the source code associated with a specified project directory or JAR file. If no errors are detected, compiler 304 can place the EJB classes, interfaces, and deployment descriptor files in a JAR file, generate web server container classes for the Entity JavaBeans™, create client-side dynamic proxies and server-side byte code, and deploy the project to the web server.
  • In one embodiment, a user can direct builder [0023] 300 (e.g., via toolbar 108) to update an application's deployment descriptor information to take into account changes made to application source files. In another embodiment, builder 300 can automatically update the deployment descriptor information if it determines that application source files have been modified. In one embodiment, builder 300 can invoke XML parser 308 to create a master dtree (if one does not already exist) representing the present state of the deployment descriptor files, and can invoke generator 306 to create a new dtree representing deployment descriptor information based on the current state of source files in an application's project directory.
  • [0024] Builder 300 compares the master and new dtrees to each other. In one embodiment, for the portions of the dtrees that represent an EAR resource, builder 300 removes all modules contained within the EAR resource (e.g., WARs & JARs) in the master dtree that do not also exist in the new dtree. In addition, builder 300 adds modules to the master dtree if they exist in the new dtree but not in the master dtree. In this fashion, the master dtree is “refreshed” based on the current state of the project files. For the portions of the dtrees that represent EJBs, builder 300 can alter the master dtree so that it has the same bean resources as the new tree. For portions of the dtrees that represent WARs, builder 300 alters the master dtree so that it has the same modules (e.g., servlets, listeners, filters, tag libraries, etc.) as the new tree. In one embodiment, builder 300 does not delete modules from the master dtree WAR resources since other applications outside of the current application may depend on the deployment descriptors. In this way, changes made to application source code files can be integrated while preserving changes made to the DD's by a builder user. Finally, builder 300 can generate new deployment descriptors from the “refreshed” master dtree.
  • One embodiment may be implemented using a conventional general purpose or a specialized digital computer or microprocessor(s) programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art. [0025]
  • One embodiment includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the features presented herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data. [0026]
  • Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and user applications. [0027]
  • The foregoing description of the preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Embodiments were chosen and described in order to best describe the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention, the various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents. [0028]

Claims (27)

What is claimed is:
1. An interactive tool for manipulating at least one deployment descriptor, comprising:
a first user interface capable of rendering a hierarchical representation of the at least one deployment descriptor, wherein a component of the representation can be selected by a user;
a second user interface capable of rendering a user-editable representation of the selected component;
wherein the hierarchical representation of the at least one deployment descriptor includes a logical representation of application resources; and
wherein the interactive tool is capable of automatically repairing a first deployment descriptor of the at least one deployment descriptors if the first deployment descriptor is defective.
2. The interactive tool of claim 1, further comprising:
a third user interface capable of rendering an error message.
3. The interactive tool of claim 2 wherein:
user selection of the error message can cause the second user interface to render a user-editable representation of the at least one deployment descriptor component that is in error.
4. The interactive tool of claim 1, further comprising:
a parser capable of generating a representation of the at least one deployment descriptor;
a generator capable of creating the at least one deployment descriptor; and
a validator capable of validating the at least one deployment descriptor.
5. The interactive tool of claim 4 wherein:
the validator is capable of generating an error when it encounters a syntactic or semantic fault in the at least one deployment descriptor.
6. The interactive tool of claim 1, further comprising:
a builder component capable of automatically updating the at least one deployment descriptor to reflect one or more changes in at least one source code file.
7. The interactive tool of claim 1 wherein:
the hierarchical representation can include information pertaining to at least one of: a Java™ archive (JAR), a Web Archive (WAR), an Enterprise Archive (EAR), and a Java™ Connector Architecture Component (RAR).
8. The interactive tool of claim 1 wherein:
the at least one deployment descriptor can be expressed as an Extensible Markup Language document.
9. An interactive tool for manipulating at least one deployment descriptor, comprising:
a first user interface capable of rendering a hierarchical representation of the at least one deployment descriptor, wherein a component of the representation can be selected by a user;
a second user interface capable of rendering a user-editable representation of the selected component;
a third user interface capable of rendering an error message;
wherein the hierarchical representation of the at least one deployment descriptor includes a logical representation of application resources; and
wherein user selection of the error message in the third user interface can cause the second user interface to render a user-editable representation of the at least one deployment descriptor component that is in error.
10. The interactive tool of claim 9, further comprising:
a parser capable of generating a representation of the at least one deployment descriptor;
a generator capable of creating the at least one deployment descriptor; and
a validator capable of validating the at least one deployment descriptor.
11. The interactive tool of claim 10 wherein:
the validator is capable of generating an error when it encounters a syntactic or semantic fault in the at least one deployment descriptor.
12. The interactive tool of claim 9, further comprising:
a builder component capable of automatically updating the at least one deployment descriptor to reflect one or more changes in at least one source code file.
13. The interactive tool of claim 9 wherein:
the hierarchical representation can include information pertaining to at least one of: a Java™ archive (JAR), a Web Archive (WAR), an Enterprise Archive (EAR), and a Java™ Connector Architecture Component (RAR).
14. The interactive tool of claim 9 wherein:
the at least one deployment descriptor can be expressed as an Extensible Markup Language document.
15. A method for providing an interactive tool for manipulating at least one deployment descriptor, comprising:
providing a first user interface capable of rendering a hierarchical representation of the at least one deployment descriptor, wherein a component of the representation can be selected by a user;
providing a second user interface capable of rendering a user-editable representation of the selected component;
providing a third user interface capable of rendering an error message;
wherein the hierarchical representation of the at least one deployment descriptor includes a logical representation of application resources; and
wherein user selection of the error message in the third user interface can cause the second user interface to render a user-editable representation of the at least one deployment descriptor component that is in error.
16. The method of claim 15, further comprising:
providing a parser capable of generating a representation of the at least one deployment descriptor;
providing a generator capable of creating the at least one deployment descriptor; and
providing a validator capable of validating the at least one deployment descriptor.
17. The method of claim 16 wherein:
the validator is capable of generating an error when it encounters a syntactic or semantic fault in the at least one deployment descriptor.
18. The method of claim 15, further comprising:
providing a builder component capable of automatically updating the at least one deployment descriptor to reflect one or more changes in at least one source code file.
19. The method of claim 15 wherein:
the hierarchical representation can include information pertaining to at least one of: a Java™ archive (JAR), a Web Archive (WAR), an Enterprise Archive (EAR), and a Java™ Connector Architecture Component (RAR).
20. The method of claim 15 wherein:
the at least one deployment descriptor can be expressed as an Extensible Markup Language document.
21. A machine readable medium having instructions stored thereon that when executed by a processor cause a system to:
provide a first user interface capable of rendering a hierarchical representation of the at least one deployment descriptor, wherein a component of the representation can be selected by a user;
provide a second user interface capable of rendering a user-editable representation of the selected component;
provide a third user interface capable of rendering an error message; and
wherein the hierarchical representation of the at least one deployment descriptor includes a logical representation of application resources.
22. The machine readable medium of claim 21 wherein:
user selection of the error message in the third user interface can cause the second user interface to render a user-editable representation of the at least one deployment descriptor component that is in error.
23. The machine readable medium of claim 21, further comprising instructions that when executed cause the system to:
provide a parser capable of generating a representation of the at least one deployment descriptor;
provide a generator capable of creating the at least one deployment descriptor; and
provide a validator capable of validating the at least one deployment descriptor.
24. The machine readable medium of claim 23 wherein:
the validator is capable of generating an error when it encounters a syntactic or semantic fault in the at least one deployment descriptor.
25. The machine readable medium of claim 21, further comprising instructions that when executed cause the system to:
provide a builder component capable of automatically updating the at least one deployment descriptor to reflect one or more changes in at least one source code file.
26. The machine readable medium of claim 21 wherein:
the hierarchical representation can include information pertaining to at least one of: a Java™ archive (JAR), a Web Archive (WAR), an Enterprise Archive (EAR), and a Java™ Connector Architecture Component (RAR).
27. The machine readable medium of claim 21 wherein:
the at least one deployment descriptor can be expressed as an Extensible Markup Language document.
US10/772,613 2003-02-06 2004-02-05 System and method for manipulating enterprise application deployment descriptors Abandoned US20040158585A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/772,613 US20040158585A1 (en) 2003-02-06 2004-02-05 System and method for manipulating enterprise application deployment descriptors

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US44553503P 2003-02-06 2003-02-06
US44553203P 2003-02-06 2003-02-06
US10/772,613 US20040158585A1 (en) 2003-02-06 2004-02-05 System and method for manipulating enterprise application deployment descriptors

Publications (1)

Publication Number Publication Date
US20040158585A1 true US20040158585A1 (en) 2004-08-12

Family

ID=32830872

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/772,626 Active 2026-06-11 US7506327B2 (en) 2003-02-06 2004-02-05 System and method for manipulating and automatically updating enterprise application deployment descriptors
US10/772,613 Abandoned US20040158585A1 (en) 2003-02-06 2004-02-05 System and method for manipulating enterprise application deployment descriptors

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/772,626 Active 2026-06-11 US7506327B2 (en) 2003-02-06 2004-02-05 System and method for manipulating and automatically updating enterprise application deployment descriptors

Country Status (1)

Country Link
US (2) US7506327B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267918A1 (en) * 2004-05-28 2005-12-01 Gatev Andrei A System and method for bundling deployment descriptor files within an enterprise archive for fast reliable resource setup at deployment time
US20060015816A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Framework for development and customization of web services deployment descriptors
US20070168940A1 (en) * 2005-12-16 2007-07-19 International Business Machines Corporation Efficient builds for installation software
US20070180433A1 (en) * 2006-01-27 2007-08-02 International Business Machines Corporation Method to enable accurate application packaging and deployment with optimized disk space usage
US20080120400A1 (en) * 2006-11-16 2008-05-22 Alexander Keller Systems and Methods for Constructing Relationship Specifications from Component Interactions
US20090007095A1 (en) * 2007-06-26 2009-01-01 Microsoft Corporation Extensible data driven deployment system
US20090019420A1 (en) * 2007-07-10 2009-01-15 International Business Machines Corporation Software development
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
US20110078673A1 (en) * 2009-09-30 2011-03-31 Red Hat, Inc. Persisting the changes for managed components in an application server
US20120254855A1 (en) * 2003-11-14 2012-10-04 International Business Machines Corporation On-demand software module deployment

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506327B2 (en) * 2003-02-06 2009-03-17 Bea Systems, Inc. System and method for manipulating and automatically updating enterprise application deployment descriptors
US7296255B2 (en) * 2003-02-25 2007-11-13 Bea Systems, Inc. Systems for incremental application deployment
US20050210462A1 (en) * 2004-03-11 2005-09-22 International Business Machines Corporation Systems and method for the incremental deployment of Enterprise Java Beans
US7849459B2 (en) * 2004-11-04 2010-12-07 International Business Machines Corporation Deploying java applications in resource constrained environments
US8417825B2 (en) * 2005-03-09 2013-04-09 Apple Inc. Communications handles and proxy agents
JP2007316759A (en) * 2006-05-23 2007-12-06 Hitachi Ltd Screen data generation method, screen data generation system and program
US9760839B1 (en) * 2007-07-25 2017-09-12 United Services Automobile Association (Usaa) Electronic recording statement management
US9582259B2 (en) * 2012-08-03 2017-02-28 Nokia Technologies Oy Method and apparatus for providing template-based applications
US10095511B1 (en) * 2017-02-23 2018-10-09 Amdocs Development Limited System, method, and computer program for converting a current Java project to a Maven project

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701137A (en) * 1995-05-24 1997-12-23 Microsoft Corporation Method for separating a hierarchical tree control into one or more hierarchical child tree controls in a graphical user interface
US5845120A (en) * 1995-09-19 1998-12-01 Sun Microsystems, Inc. Method and apparatus for linking compiler error messages to relevant information
US6119122A (en) * 1997-09-17 2000-09-12 Novell, Inc. Method and apparatus for generically viewing and editing objects
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US20010011265A1 (en) * 1999-02-03 2001-08-02 Cuan William G. Method and apparatus for deploying data among data destinations for website development and maintenance
US20020083073A1 (en) * 2000-12-22 2002-06-27 Vaidya Neelam N. Managing a layered hierarchical data set
US6466951B1 (en) * 1999-02-10 2002-10-15 Telefonaktiebolaget Lm Ericsson (Publ) Data base synchronizing system with at least two host databases and a remote database
US20030028364A1 (en) * 2001-07-10 2003-02-06 Borland Software Corp. Development assistance for mixed-language sources
US20030159130A1 (en) * 2002-01-31 2003-08-21 International Business Machines Corporation Round-trip maintenance of software configuration
US20040015936A1 (en) * 2001-05-22 2004-01-22 Sun Microsystems, Inc. Dynamic class reloading mechanism
US6804682B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology providing compiler-assisted refactoring
US20050021689A1 (en) * 2003-02-26 2005-01-27 Kyle Marvin Systems and methods for creating network-based software services using source code annotations
US6892382B1 (en) * 1999-05-06 2005-05-10 Sun Microsystems, Inc. Method and apparatus for implementing deployment descriptors in an enterprise environment
US6964010B1 (en) * 1998-12-14 2005-11-08 International Business Machines Corporation Formatted-item list control
US7051316B2 (en) * 1999-10-05 2006-05-23 Borland Software Corporation Distributed computing component system with diagrammatic graphical representation of code with separate delineated display area by type
US7165248B2 (en) * 2001-06-04 2007-01-16 Sun Microsystems, Inc. File tree conflict processor
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US7451163B2 (en) * 2001-10-24 2008-11-11 Bea Systems, Inc. Data synchronization
US7496645B2 (en) * 2001-10-18 2009-02-24 Hewlett-Packard Development Company, L.P. Deployment of business logic software and data content onto network servers
US7506327B2 (en) * 2003-02-06 2009-03-17 Bea Systems, Inc. System and method for manipulating and automatically updating enterprise application deployment descriptors

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
WO2001052118A2 (en) * 2000-01-14 2001-07-19 Saba Software, Inc. Information server
US6643652B2 (en) * 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701137A (en) * 1995-05-24 1997-12-23 Microsoft Corporation Method for separating a hierarchical tree control into one or more hierarchical child tree controls in a graphical user interface
US5845120A (en) * 1995-09-19 1998-12-01 Sun Microsystems, Inc. Method and apparatus for linking compiler error messages to relevant information
US6119122A (en) * 1997-09-17 2000-09-12 Novell, Inc. Method and apparatus for generically viewing and editing objects
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US6964010B1 (en) * 1998-12-14 2005-11-08 International Business Machines Corporation Formatted-item list control
US20010011265A1 (en) * 1999-02-03 2001-08-02 Cuan William G. Method and apparatus for deploying data among data destinations for website development and maintenance
US6466951B1 (en) * 1999-02-10 2002-10-15 Telefonaktiebolaget Lm Ericsson (Publ) Data base synchronizing system with at least two host databases and a remote database
US6892382B1 (en) * 1999-05-06 2005-05-10 Sun Microsystems, Inc. Method and apparatus for implementing deployment descriptors in an enterprise environment
US7051316B2 (en) * 1999-10-05 2006-05-23 Borland Software Corporation Distributed computing component system with diagrammatic graphical representation of code with separate delineated display area by type
US20020083073A1 (en) * 2000-12-22 2002-06-27 Vaidya Neelam N. Managing a layered hierarchical data set
US20040015936A1 (en) * 2001-05-22 2004-01-22 Sun Microsystems, Inc. Dynamic class reloading mechanism
US7165248B2 (en) * 2001-06-04 2007-01-16 Sun Microsystems, Inc. File tree conflict processor
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US20030028364A1 (en) * 2001-07-10 2003-02-06 Borland Software Corp. Development assistance for mixed-language sources
US7496645B2 (en) * 2001-10-18 2009-02-24 Hewlett-Packard Development Company, L.P. Deployment of business logic software and data content onto network servers
US7451163B2 (en) * 2001-10-24 2008-11-11 Bea Systems, Inc. Data synchronization
US6912710B2 (en) * 2002-01-31 2005-06-28 International Business Machines Corporation Round-trip maintenance of software configuration
US20030159130A1 (en) * 2002-01-31 2003-08-21 International Business Machines Corporation Round-trip maintenance of software configuration
US6804682B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology providing compiler-assisted refactoring
US7506327B2 (en) * 2003-02-06 2009-03-17 Bea Systems, Inc. System and method for manipulating and automatically updating enterprise application deployment descriptors
US20050021689A1 (en) * 2003-02-26 2005-01-27 Kyle Marvin Systems and methods for creating network-based software services using source code annotations

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015697B2 (en) * 2003-11-14 2015-04-21 International Business Machines Corporation On-demand software module deployment
US20120254855A1 (en) * 2003-11-14 2012-10-04 International Business Machines Corporation On-demand software module deployment
US20050267918A1 (en) * 2004-05-28 2005-12-01 Gatev Andrei A System and method for bundling deployment descriptor files within an enterprise archive for fast reliable resource setup at deployment time
US20060015816A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Framework for development and customization of web services deployment descriptors
US8572494B2 (en) * 2004-07-14 2013-10-29 International Business Machines Corporation Framework for development and customization of web services deployment descriptors
US7765519B2 (en) * 2005-12-16 2010-07-27 International Business Machines Corporation Efficient builds for installation software
US20070168940A1 (en) * 2005-12-16 2007-07-19 International Business Machines Corporation Efficient builds for installation software
US20070180433A1 (en) * 2006-01-27 2007-08-02 International Business Machines Corporation Method to enable accurate application packaging and deployment with optimized disk space usage
US20080120400A1 (en) * 2006-11-16 2008-05-22 Alexander Keller Systems and Methods for Constructing Relationship Specifications from Component Interactions
US8037471B2 (en) 2006-11-16 2011-10-11 International Business Machines Corporation Systems and methods for constructing relationship specifications from component interactions
US8302092B2 (en) 2007-06-26 2012-10-30 Microsoft Corporation Extensible data driven deployment system
US20090007095A1 (en) * 2007-06-26 2009-01-01 Microsoft Corporation Extensible data driven deployment system
US20090019420A1 (en) * 2007-07-10 2009-01-15 International Business Machines Corporation Software development
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
US20110078673A1 (en) * 2009-09-30 2011-03-31 Red Hat, Inc. Persisting the changes for managed components in an application server
US8499294B2 (en) * 2009-09-30 2013-07-30 Red Hat, Inc. Persisting the changes for managed components in an application server

Also Published As

Publication number Publication date
US20040158571A1 (en) 2004-08-12
US7506327B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
US7506327B2 (en) System and method for manipulating and automatically updating enterprise application deployment descriptors
US7669137B2 (en) Computer method and apparatus for representing a topic in a software modeling system
US6857103B1 (en) Flexible help support in an object oriented application
US7017143B1 (en) External resource files for application development and management
US6678889B1 (en) Systems, methods and computer program products for locating resources within an XML document defining a console for managing multiple application programs
AU2010308132B2 (en) Automated enterprise software development
US7711753B2 (en) Systems and methods for validating design meta-data
US7526734B2 (en) User interfaces for developing enterprise applications
US20040015832A1 (en) Method and apparatus for generating source code
US20030177477A1 (en) Java to NSMP MIB mapping
US5889991A (en) Method and system for customizing a palette using any java class
US20030106041A1 (en) Dynamic conversion of object-oriented programs to tag-based procedural code
US20040128300A1 (en) Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural description to a second structural description
Reiss The Field programming environment: A friendly integrated environment for learning and development
US20050188350A1 (en) Data binding
US20080127054A1 (en) Connecting with an application instance
US20150020057A1 (en) Controlling application features
JP2008544338A (en) XML application framework
US5875322A (en) Making a control available to a computer without installing the control
US7721219B2 (en) Explicitly defining user interface through class definition
US20110161920A1 (en) Graphical development tool for compensation actions and compensation scope in a process flow environment
US7865480B2 (en) Systems and methods for validating objects models
US20110161924A1 (en) Call wizard for information management system (ims) applications
US20030236925A1 (en) Interactive portable object adapters support in an integrated development environment
US20060085754A1 (en) System, apparatus and method of selecting graphical component types at runtime

Legal Events

Date Code Title Description
AS Assignment

Owner name: BEA SYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KOVACS, MICHAEL;BEUST, CEDRIC;REEL/FRAME:014967/0403

Effective date: 20040129

AS Assignment

Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEA SYSTEMS, INC.;REEL/FRAME:025192/0244

Effective date: 20101008

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION