TIA,
Maas

Attachment: jsr88-DeploymentFactoryManagerTest.jar
Description: Zip archive

Index: incubator-geronimo/modules/core/src/java/javax/enterprise/deploy/shared/factories/DeploymentFactoryManager.java
===================================================================
RCS file: /home/cvspublic/incubator-geronimo/modules/core/src/java/javax/enterprise/deploy/shared/factories/DeploymentFactoryManager.java,v
retrieving revision 1.1
diff -u -r1.1 DeploymentFactoryManager.java
--- incubator-geronimo/modules/core/src/java/javax/enterprise/deploy/shared/factories/DeploymentFactoryManager.java	13 Aug 2003 19:42:07 -0000	1.1
+++ incubator-geronimo/modules/core/src/java/javax/enterprise/deploy/shared/factories/DeploymentFactoryManager.java	13 Aug 2003 22:30:49 -0000
@@ -62,29 +62,67 @@
 import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
 import javax.enterprise.deploy.spi.DeploymentManager;
 import javax.enterprise.deploy.spi.factories.DeploymentFactory;
+import java.util.Iterator;
+import java.util.ArrayList;
 
 public class DeploymentFactoryManager {
-    /[EMAIL PROTECTED] imlement */
+    private static DeploymentFactoryManager instance;
+
+    private ArrayList deploymentFactories = new ArrayList();
+
     public static DeploymentFactoryManager getInstance() {
-        return null;
+        if (instance == null) {
+            instance = new DeploymentFactoryManager();
+        }
+        return instance;
     }
 
-    /[EMAIL PROTECTED] imlement */
+    public void registerDeploymentFactory(DeploymentFactory factory) {
+          // apparently we dont care about null values, the Sun RI even adds the null
+          // to the list. So after registerDeploymentFactory(null) getDeploymentFactories()
+          // return an array with length 1.
+          deploymentFactories.add(factory);
+      }
+
     public DeploymentFactory[] getDeploymentFactories() {
-        return null;
+        return (DeploymentFactory[]) deploymentFactories.toArray(new DeploymentFactory[]{});
     }
 
-    /[EMAIL PROTECTED] imlement */
     public DeploymentManager getDeploymentManager(String uri, String username, String password) throws DeploymentManagerCreationException {
-        return null;
-    }
+        // RI doesn't care about uri being null, neither do we
 
-    /[EMAIL PROTECTED] imlement */
-    public void registerDeploymentFactory(DeploymentFactory factory) {
+        for (Iterator i = deploymentFactories.iterator(); i.hasNext();) {
+            DeploymentFactory factory = (DeploymentFactory) i.next();
+            if (factory != null) {
+                if (factory.handlesURI(uri)) {
+                    try {
+                        return factory.getDeploymentManager(uri, username, password);
+                    } catch (DeploymentManagerCreationException e) {
+                        // Just like the RI we throw a new exception with a generic message
+                        throw new DeploymentManagerCreationException("Could not get DeploymentManager");
+                    }
+                }
+            }
+        }
+        throw new DeploymentManagerCreationException("Could not get DeploymentManager");
     }
 
-    /[EMAIL PROTECTED] imlement */
     public DeploymentManager getDisconnectedDeploymentManager(String uri) throws DeploymentManagerCreationException {
-        return null;
+        // RI doesn't care about uri being null, neither do we
+
+        for (Iterator i = deploymentFactories.iterator(); i.hasNext();) {
+            DeploymentFactory factory = (DeploymentFactory) i.next();
+            if (factory != null) {
+                if (factory.handlesURI(uri)) {
+                    try {
+                        return factory.getDisconnectedDeploymentManager(uri);
+                    } catch (DeploymentManagerCreationException e) {
+                        // Just like the RI we throw a new exception with a generic message
+                        throw new DeploymentManagerCreationException("Could not get DeploymentManager");
+                    }
+                }
+            }
+        }
+        throw new DeploymentManagerCreationException("Could not get DeploymentManager");
     }
 }

Reply via email to