[dna-commits] DNA SVN: r397 - in trunk/connectors/dna-connector-federation/src: test/java/org/jboss/dna/connector/federation and 1 other directory.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Wed Aug 6 15:59:12 EDT 2008


Author: rhauch
Date: 2008-08-06 15:59:12 -0400 (Wed, 06 Aug 2008)
New Revision: 397

Modified:
   trunk/connectors/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java
   trunk/connectors/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java
Log:
DNA-115 - Create federation service 
http://jira.jboss.com/jira/browse/DNA-115

Simplified how the FederatedRepositorySource implements the JNDI Referenceable interface by also implementing JNDI's ObjectFactory and eliminating the inner class.

Modified: trunk/connectors/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java
===================================================================
--- trunk/connectors/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java	2008-08-06 19:51:05 UTC (rev 396)
+++ trunk/connectors/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java	2008-08-06 19:59:12 UTC (rev 397)
@@ -78,7 +78,7 @@
  * @author Randall Hauch
  */
 @ThreadSafe
-public class FederatedRepositorySource extends AbstractRepositorySource {
+public class FederatedRepositorySource extends AbstractRepositorySource implements ObjectFactory {
 
     /**
      */
@@ -823,7 +823,7 @@
      */
     public synchronized Reference getReference() {
         String className = getClass().getName();
-        String factoryClassName = NamingContextObjectFactory.class.getName();
+        String factoryClassName = this.getClass().getName();
         Reference ref = new Reference(className, factoryClassName, null);
 
         if (getRepositoryName() != null) {
@@ -869,62 +869,56 @@
         return ref;
     }
 
-    public static class NamingContextObjectFactory implements ObjectFactory {
-
-        public NamingContextObjectFactory() {
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        public Object getObjectInstance( Object obj,
-                                         javax.naming.Name name,
-                                         Context nameCtx,
-                                         Hashtable<?, ?> environment ) throws Exception {
-            if (obj instanceof Reference) {
-                Map<String, String> values = new HashMap<String, String>();
-                Reference ref = (Reference)obj;
-                Enumeration<?> en = ref.getAll();
-                while (en.hasMoreElements()) {
-                    RefAddr subref = (RefAddr)en.nextElement();
-                    if (subref instanceof StringRefAddr) {
-                        String key = subref.getType();
-                        Object value = subref.getContent();
-                        if (value != null) values.put(key, value.toString());
-                    }
+    /**
+     * {@inheritDoc}
+     */
+    public Object getObjectInstance( Object obj,
+                                     javax.naming.Name name,
+                                     Context nameCtx,
+                                     Hashtable<?, ?> environment ) throws Exception {
+        if (obj instanceof Reference) {
+            Map<String, String> values = new HashMap<String, String>();
+            Reference ref = (Reference)obj;
+            Enumeration<?> en = ref.getAll();
+            while (en.hasMoreElements()) {
+                RefAddr subref = (RefAddr)en.nextElement();
+                if (subref instanceof StringRefAddr) {
+                    String key = subref.getType();
+                    Object value = subref.getContent();
+                    if (value != null) values.put(key, value.toString());
                 }
-                String repositoryName = values.get(FederatedRepositorySource.REPOSITORY_NAME);
-                String sourceName = values.get(FederatedRepositorySource.SOURCE_NAME);
-                String username = values.get(FederatedRepositorySource.USERNAME);
-                String password = values.get(FederatedRepositorySource.PASSWORD);
-                String configurationSourceName = values.get(FederatedRepositorySource.CONFIGURATION_SOURCE_NAME);
-                String projectionRules = values.get(FederatedRepositorySource.CONFIGURATION_SOURCE_PROJECTION_RULES);
-                String connectionFactoriesJndiName = values.get(FederatedRepositorySource.REPOSITORY_SOURCE_REGISTRY_JNDI_NAME);
-                String environmentJndiName = values.get(FederatedRepositorySource.EXECUTION_CONTEXT_FACTORY_JNDI_NAME);
-                String repositoryJndiName = values.get(FederatedRepositorySource.REPOSITORY_JNDI_NAME);
-                String securityDomain = values.get(FederatedRepositorySource.SECURITY_DOMAIN);
-                String retryLimit = values.get(FederatedRepositorySource.RETRY_LIMIT);
+            }
+            String repositoryName = values.get(FederatedRepositorySource.REPOSITORY_NAME);
+            String sourceName = values.get(FederatedRepositorySource.SOURCE_NAME);
+            String username = values.get(FederatedRepositorySource.USERNAME);
+            String password = values.get(FederatedRepositorySource.PASSWORD);
+            String configurationSourceName = values.get(FederatedRepositorySource.CONFIGURATION_SOURCE_NAME);
+            String projectionRules = values.get(FederatedRepositorySource.CONFIGURATION_SOURCE_PROJECTION_RULES);
+            String connectionFactoriesJndiName = values.get(FederatedRepositorySource.REPOSITORY_SOURCE_REGISTRY_JNDI_NAME);
+            String environmentJndiName = values.get(FederatedRepositorySource.EXECUTION_CONTEXT_FACTORY_JNDI_NAME);
+            String repositoryJndiName = values.get(FederatedRepositorySource.REPOSITORY_JNDI_NAME);
+            String securityDomain = values.get(FederatedRepositorySource.SECURITY_DOMAIN);
+            String retryLimit = values.get(FederatedRepositorySource.RETRY_LIMIT);
 
-                // Create the source instance ...
-                FederatedRepositorySource source = new FederatedRepositorySource();
-                if (repositoryName != null) source.setRepositoryName(repositoryName);
-                if (sourceName != null) source.setName(sourceName);
-                if (username != null) source.setUsername(username);
-                if (password != null) source.setPassword(password);
-                if (configurationSourceName != null) source.setConfigurationSourceName(configurationSourceName);
-                if (projectionRules != null) {
-                    List<String> rules = StringUtil.splitLines(projectionRules);
-                    source.setConfigurationSourceProjectionRules(rules.toArray(new String[rules.size()]));
-                }
-                if (connectionFactoriesJndiName != null) source.setRepositorySourceRegistryJndiName(connectionFactoriesJndiName);
-                if (environmentJndiName != null) source.setExecutionContextFactoryJndiName(environmentJndiName);
-                if (repositoryJndiName != null) source.setRepositoryJndiName(repositoryJndiName);
-                if (securityDomain != null) source.setSecurityDomain(securityDomain);
-                if (retryLimit != null) source.setRetryLimit(Integer.parseInt(retryLimit));
-                return source;
+            // Create the source instance ...
+            FederatedRepositorySource source = new FederatedRepositorySource();
+            if (repositoryName != null) source.setRepositoryName(repositoryName);
+            if (sourceName != null) source.setName(sourceName);
+            if (username != null) source.setUsername(username);
+            if (password != null) source.setPassword(password);
+            if (configurationSourceName != null) source.setConfigurationSourceName(configurationSourceName);
+            if (projectionRules != null) {
+                List<String> rules = StringUtil.splitLines(projectionRules);
+                source.setConfigurationSourceProjectionRules(rules.toArray(new String[rules.size()]));
             }
-            return null;
+            if (connectionFactoriesJndiName != null) source.setRepositorySourceRegistryJndiName(connectionFactoriesJndiName);
+            if (environmentJndiName != null) source.setExecutionContextFactoryJndiName(environmentJndiName);
+            if (repositoryJndiName != null) source.setRepositoryJndiName(repositoryJndiName);
+            if (securityDomain != null) source.setSecurityDomain(securityDomain);
+            if (retryLimit != null) source.setRetryLimit(Integer.parseInt(retryLimit));
+            return source;
         }
+        return null;
     }
 
     /**

Modified: trunk/connectors/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java
===================================================================
--- trunk/connectors/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java	2008-08-06 19:51:05 UTC (rev 396)
+++ trunk/connectors/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java	2008-08-06 19:59:12 UTC (rev 397)
@@ -37,6 +37,7 @@
 import javax.naming.Name;
 import javax.naming.RefAddr;
 import javax.naming.Reference;
+import javax.naming.spi.ObjectFactory;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.login.LoginException;
 import org.jboss.dna.spi.DnaLexicon;
@@ -272,7 +273,7 @@
 
         Reference ref = source.getReference();
         assertThat(ref.getClassName(), is(FederatedRepositorySource.class.getName()));
-        assertThat(ref.getFactoryClassName(), is(FederatedRepositorySource.NamingContextObjectFactory.class.getName()));
+        assertThat(ref.getFactoryClassName(), is(FederatedRepositorySource.class.getName()));
 
         Map<String, Object> refAttributes = new HashMap<String, Object>();
         Enumeration<RefAddr> enumeration = ref.getAll();
@@ -300,7 +301,7 @@
         assertThat(refAttributes.isEmpty(), is(true));
 
         // Recreate the object, use a newly constructed source ...
-        FederatedRepositorySource.NamingContextObjectFactory factory = new FederatedRepositorySource.NamingContextObjectFactory();
+        ObjectFactory factory = new FederatedRepositorySource();
         Name name = mock(Name.class);
         Context context = mock(Context.class);
         Hashtable<?, ?> env = new Hashtable<Object, Object>();




More information about the dna-commits mailing list