summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-04-14 22:01:33 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-04-14 22:01:33 +0000
commitb091e96bb4da0365bde5d0ddcf0f4def583da251 (patch)
treed08b7463299cba928661b71a74f760174eb42830 /java
parentf330ecb12554fcf91675ab49aec2bb858118875f (diff)
Allows Definitions to be added to the extension point
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@764975 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java28
-rw-r--r--java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java19
2 files changed, 29 insertions, 18 deletions
diff --git a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
index 9c5891a8db..1fb9cf8fdc 100644
--- a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
+++ b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
@@ -47,7 +47,8 @@ public class DefaultDefinitionsExtensionPoint implements DefinitionsExtensionPoi
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 @@ public class DefaultDefinitionsExtensionPoint implements DefinitionsExtensionPoi
* 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 @@ public class DefaultDefinitionsExtensionPoint implements DefinitionsExtensionPoi
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 @@ public class DefaultDefinitionsExtensionPoint implements DefinitionsExtensionPoi
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);
+ }
}
diff --git a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
index 88d45bd0af..61b815577f 100644
--- a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
+++ b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
@@ -33,25 +33,32 @@ public interface DefinitionsExtensionPoint {
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();
}