Author: rfeng
Date: Tue Apr 14 22:01:33 2009
New Revision: 764975
URL: http://svn.apache.org/viewvc?rev=764975&view=rev
Log:
Allows Definitions to be added to the extension point
Modified:
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
Modified:
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java?rev=764975&r1=764974&r2=764975&view=diff
==============================================================================
---
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
(original)
+++
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
Tue Apr 14 22:01:33 2009
@@ -47,7 +47,8 @@
private static final URI DEFINITIONS_URI =
URI.create("META-INF/definitions.xml");
private ExtensionPointRegistry registry;
private List<URL> documents = new ArrayList<URL>();
- private List<Definitions> definitions;
+ private List<Definitions> definitions = new ArrayList<Definitions>();
+ private boolean documentsLoaded;
private boolean loaded;
public DefaultDefinitionsExtensionPoint(ExtensionPointRegistry registry) {
@@ -66,8 +67,8 @@
* Load definitions declarations from META-INF/services/
* org.apache.tuscany.sca.contribution.processor.Definitions files
*/
- private synchronized void loadDefinitions() {
- if (loaded)
+ private synchronized void loadDefinitionsDocuments() {
+ if (documentsLoaded)
return;
// Get the definitions declarations
@@ -87,21 +88,15 @@
documents.add(url);
}
- loaded = true;
- }
-
- public List<URL> getDefinitionsDocuments() {
- loadDefinitions();
- return documents;
+ documentsLoaded = true;
}
public synchronized List<Definitions> getDefinitions() {
- if (definitions == null) {
- loadDefinitions();
+ if (!loaded) {
+ loadDefinitionsDocuments();
URLArtifactProcessorExtensionPoint processors =
registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
URLArtifactProcessor<Definitions> processor =
processors.getProcessor(Definitions.class);
- definitions = new ArrayList<Definitions>();
for (URL url : documents) {
Definitions def;
try {
@@ -111,7 +106,16 @@
logger.log(Level.SEVERE, e.getMessage(), e);
}
}
+ loaded = true;
}
return definitions;
}
+
+ public void addDefinitions(Definitions def) {
+ this.definitions.add(def);
+ }
+
+ public void removeDefinitions(Definitions def) {
+ this.definitions.remove(def);
+ }
}
Modified:
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java?rev=764975&r1=764974&r2=764975&view=diff
==============================================================================
---
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
(original)
+++
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
Tue Apr 14 22:01:33 2009
@@ -33,25 +33,32 @@
String DEFINITIONS_FILE =
"org.apache.tuscany.sca.definitions.xml.Definitions";
/**
- * Add a definitions.
+ * Add a definitions document
*
* @param url the URL of the definitions
*/
void addDefinitionsDocument(URL url);
/**
- * Remove a definitions.
+ * Remove a definitions document
*
* @param url the URL of the definitions
*/
void removeDefinitionsDocument(URL url);
-
+
+ /**
+ * @param definitions
+ */
+ void addDefinitions(Definitions definitions);
/**
- * Returns the list of definitions registered in the extension point.
- * @return the list of definitions
+ * @param definitions
*/
- List<URL> getDefinitionsDocuments();
+ void removeDefinitions(Definitions definitions);
+ /**
+ * Get the list of definitions
+ * @return A list of definitions
+ */
List<Definitions> getDefinitions();
}