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();
 
 }


Reply via email to