Enterprise JavaBeans Metadata Model
A method and system to construct Java representations of metadata in an enterprise application. The system extracts metadata from application source code and deployment descriptors to construct a single output available to the application.
1 . A method of generating a unified metadata model for a java enterprise application comprising:
extracting metadata from program code;
building a first java model of the metadata extracted from the program code;
extracting metadata from a deployment descriptor;
building a second java model of the metadata extracted from the deployment descriptor; and
merging the first and second models.
2 . The method of claim 1 , wherein program code comprises java source code and bytecode.
3 . The method of claim 1 , wherein extracting metadata from program code comprises:
parsing the program code; and
identifying metadata in the program code.
4 . The method of claim 1 , wherein building the first java model from the metadata extracted from the program code comprises:
accessing a model comprising java classes representing metadata in java code;
identifying an instance of a class from the model that represents the extracted metadata; and
mapping the extracted metadata to the identified instance of the class.
5 . The method of claim 1 , wherein extracting metadata from a deployment descriptor comprises:
parsing the deployment descriptor; and
identifying metadata in the deployment descriptor.
6 . The method of claim 1 , wherein building the second java model from the metadata extracted from the deployment descriptor comprises:
accessing a model comprising java classes representing metadata in java code;
identifying an instance of a class from the model that represents the extracted metadata; and
mapping the extracted metadata to the identified instance of the class.
7 . The method of claim 1 , wherein merging comprises:
parsing the first metadata model;
parsing the second metadata model;
combining the first and second models in a unified model using a set of rules;
constructing a logical graph of the unified model; and
assigning each element in the unified model a unique identifier representing the absolute path to the model element in the graph.
8 . The method of claim 7 , wherein combining the first model and the second model into a unified model comprises applying the set of rules so that no conflicts exist in the application logic.
9 . An apparatus comprising:
a core metadata model to maintain java representations of metadata objects;
a first builder to construct a java model of metadata in program code using the core metadata model responsive to receiving the program code;
a second builder to construct a java model of metadata in a deployment descriptor using the core metadata model responsive to receiving the deployment descriptor; and
a merger to receive the models from the first and second builder and unite the first model and the second model.
10 . The apparatus of claim 9 , wherein each of the builders maps metadata objects to instances of classes from the core metadata model.
11 . The apparatus of claim 9 , wherein the merger merges the models against a set of rules.
12 . A system to run Enterprise Java Beans (EJB) applications, the system comprising:
an input module to receive an EJB application;
a parsing module to parse the metadata in the EJB application; and
a set of builder modules to build Java models of the metadata in the EJB application;
a permanent store to store processed EJB applications; and
a network infrastructure to connect the permanent store to the container.
13 . The system of claim 12 , further comprising a logging module to log events produced by the EJB application.
14 . The system of claim 12 , wherein the set of builder modules comprises:
a first builder module to build a first Java model of metadata from Java source code; and
a second builder module to build a second Java model of metadata from a deployment descriptor.
15 . A machine readable medium having instructions therein that when executed by the machine, cause the machine to:
extract metadata from program code;
build a first java model of the metadata extracted from the program code;
extract metadata from a deployment descriptor;
build a second java model of the metadata extracted from the deployment descriptor; and
merge the first and second models.
16 . The machine readable medium of claim 15 , wherein program code comprises java source code and bytecode.
17 . The machine readable medium of claim 15 , wherein instructions causing the machine to extract metadata from program code, cause the machine to:
parse the program code; and
identify metadata in the program code.
18 . The machine readable medium of claim 15 , wherein instructions causing the machine to build the java model from the metadata extracted from the program code, cause the machine to:
access a model comprising java classes representing metadata in java code;
identify an instance of a class from the model that represents the extracted metadata; and
map the extracted metadata to the identified instance of the class.
19 . The machine readable medium of claim 15 , wherein instructions causing the machine to extract metadata from a deployment descriptor, cause the machine to:
parse the deployment descriptor; and
identify metadata in the deployment descriptor.
20 . The machine readable medium of claim 15 , wherein instructions causing the machine to build the java model from the metadata extracted from the deployment descriptor, cause the machine to:
access a model comprising java classes representing metadata in java code;
identify an instance of a class from the model that represents the extracted metadata; and
map the extracted metadata to the identified instance of the class.
21 . The machine readable medium of claim 15 , wherein instructions causing the machine to merge, cause the machine to:
parse the first metadata model;
parse the second metadata model;
compare the first metadata model to the second metadata model using a set of rules;
combine the first and second models in a unified model;
construct a logical graph of the unified model; and
assign each element in the unified model a unique identifier representing the absolute path to the model element in the graph.
22 . The machine readable medium of claim 21 , wherein instructions causing the machine to combine the first model and the second model into a unified model, cause the machine to apply the set of rules so that no conflicts exist in the application logic.