You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2005/04/08 10:39:48 UTC

svn commit: r160536 - in incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core: RepositoryImpl.java SearchManager.java SessionImpl.java

Author: jukka
Date: Fri Apr  8 01:39:47 2005
New Revision: 160536

URL: http://svn.apache.org/viewcvs?view=rev&rev=160536
Log:
Simplified bean instantiation code using the BeanConfig functionality.

Modified:
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/RepositoryImpl.java
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SearchManager.java
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SessionImpl.java

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/RepositoryImpl.java?view=diff&r1=160535&r2=160536
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/RepositoryImpl.java Fri Apr  8 01:39:47 2005
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.core;
 
-import org.apache.commons.collections.BeanMap;
 import org.apache.commons.collections.ReferenceMap;
 import org.apache.jackrabbit.core.config.PersistenceManagerConfig;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
@@ -67,7 +66,6 @@
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.Properties;
 import java.security.AccessControlContext;
 import java.security.AccessController;
@@ -711,39 +709,26 @@
     }
 
     /**
-     * Returns the workspace persistence manager
+     * Creates a workspace persistence manager based on the given
+     * configuration. The persistence manager is instantiated using
+     * information in the given persistencem manager configuration and
+     * initialized with a persistence manager context containing the other
+     * arguments.
      *
-     * @return the workspace persistence manager
-     * @throws RepositoryException if the persistence manager could not be instantiated/initialized
-     */
-    private static PersistenceManager createPersistenceManager(File homeDir,
-                                                               FileSystem fs,
-                                                               PersistenceManagerConfig pmConfig,
-                                                               String rootNodeUUID,
-                                                               NamespaceRegistry nsReg,
-                                                               NodeTypeRegistry ntReg)
+     * @return the created workspace persistence manager
+     * @throws RepositoryException if the persistence manager could
+     *                             not be instantiated/initialized
+     */
+    private static PersistenceManager createPersistenceManager(
+            File homeDir, FileSystem fs, PersistenceManagerConfig pmConfig,
+            String rootNodeUUID, NamespaceRegistry nsReg, NodeTypeRegistry ntReg)
             throws RepositoryException {
-        String className = pmConfig.getClassName();
-        Map params = pmConfig.getParameters();
         try {
-            Class c = Class.forName(className);
-            PersistenceManager persistMgr = (PersistenceManager) c.newInstance();
-            /**
-             * set the properties of the persistence manager object
-             * from the param map
-             */
-            BeanMap bm = new BeanMap(persistMgr);
-            Iterator iter = params.keySet().iterator();
-            while (iter.hasNext()) {
-                Object name = iter.next();
-                Object value = params.get(name);
-                bm.put(name, value);
-            }
-            PMContext ctx = new PMContext(homeDir, fs, rootNodeUUID, nsReg, ntReg);
-            persistMgr.init(ctx);
-            return persistMgr;
+            PersistenceManager pm = (PersistenceManager) pmConfig.newInstance();
+            pm.init(new PMContext(homeDir, fs, rootNodeUUID, nsReg, ntReg));
+            return pm;
         } catch (Exception e) {
-            String msg = "Cannot instantiate implementing class " + className;
+            String msg = "Cannot instantiate persistence manager " + pmConfig.getClassName();
             log.error(msg, e);
             throw new RepositoryException(msg, e);
         }

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SearchManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SearchManager.java?view=diff&r1=160535&r2=160536
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SearchManager.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SearchManager.java Fri Apr  8 01:39:47 2005
@@ -128,8 +128,7 @@
         ntReg.addListener(propRegistry);
         // initialize query handler
         try {
-            Class handlerClass = Class.forName(config.getHandlerClassName());
-            handler = (QueryHandler) handlerClass.newInstance();
+            handler = (QueryHandler) config.newInstance();
             NodeId rootId = (NodeId) session.getHierarchyManager().resolvePath(Path.ROOT);
             handler.init(fs, session.getItemStateManager(), rootId.getUUID(), propRegistry);
         } catch (Exception e) {

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SessionImpl.java?view=diff&r1=160535&r2=160536
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/SessionImpl.java Fri Apr  8 01:39:47 2005
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.core;
 
-import org.apache.commons.collections.BeanMap;
 import org.apache.commons.collections.ReferenceMap;
 import org.apache.jackrabbit.core.config.AccessManagerConfig;
 import org.apache.jackrabbit.core.config.WorkspaceConfig;
@@ -266,27 +265,13 @@
                                                 HierarchyManager hierMgr)
             throws AccessDeniedException, RepositoryException {
         AccessManagerConfig amConfig = rep.getConfig().getAccessManagerConfig();
-        String className = amConfig.getClassName();
-        Map params = amConfig.getParameters();
         try {
-            Class c = Class.forName(className);
-            AccessManager accessMgr = (AccessManager) c.newInstance();
-            /**
-             * set the properties of the access manager object
-             * from the param map
-             */
-            BeanMap bm = new BeanMap(accessMgr);
-            Iterator iter = params.keySet().iterator();
-            while (iter.hasNext()) {
-                Object name = iter.next();
-                Object value = params.get(name);
-                bm.put(name, value);
-            }
             AMContext ctx = new AMContext(new File(rep.getConfig().getHomeDir()),
                     rep.getConfig().getFileSystem(),
                     subject,
                     hierMgr,
                     wsp.getName());
+            AccessManager accessMgr = (AccessManager) amConfig.newInstance();
             accessMgr.init(ctx);
             return accessMgr;
         } catch (AccessDeniedException ade) {
@@ -294,7 +279,7 @@
             throw ade;
         } catch (Exception e) {
             // wrap in RepositoryException
-            String msg = "failed to instantiate AccessManager implementation: " + className;
+            String msg = "failed to instantiate AccessManager implementation: " + amConfig.getClassName();
             log.error(msg, e);
             throw new RepositoryException(msg, e);
         }