You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by go...@apache.org on 2011/12/24 17:10:16 UTC

svn commit: r1222995 - in /directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component: ./ hub/ instance/ utilities/

Author: gokturk
Date: Sat Dec 24 16:10:16 2011
New Revision: 1222995

URL: http://svn.apache.org/viewvc?rev=1222995&view=rev
Log:
* ComponentInstance classname is changed to ADSComponentInstance to prevent name clashes with ...ipojo.util.ComponentInstance
* IPojo instance creation in DefaultComponentInstanceGenerator is handled without IPojoHelper for potential performance gain.
* License Header is addition to some files.


Added:
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ADSComponentInstance.java
      - copied, changed from r1222990, directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstance.java
Removed:
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstance.java
Modified:
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/ADSComponent.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentHub.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentManager.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ConfigurationManager.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstanceGenerator.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/DefaultComponentInstanceGenerator.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSComponentHelper.java
    directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/LdifConfigHelper.java

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/ADSComponent.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/ADSComponent.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/ADSComponent.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/ADSComponent.java Sat Dec 24 16:10:16 2011
@@ -26,7 +26,7 @@ import java.util.Properties;
 
 import org.apache.directory.server.component.hub.ComponentManager;
 import org.apache.directory.server.component.instance.CachedComponentInstance;
-import org.apache.directory.server.component.instance.ComponentInstance;
+import org.apache.directory.server.component.instance.ADSComponentInstance;
 import org.apache.directory.server.component.schema.ADSComponentSchema;
 import org.apache.felix.ipojo.Factory;
 
@@ -62,7 +62,7 @@ public class ADSComponent
     /*
      * List holding all the created instances.
      */
-    private List<ComponentInstance> activeInstances;
+    private List<ADSComponentInstance> activeInstances;
 
     /*
      * List holding all the cached instances.
@@ -84,7 +84,7 @@ public class ADSComponent
     {
         this.componentManager = componentManager;
 
-        activeInstances = new ArrayList<ComponentInstance>();
+        activeInstances = new ArrayList<ADSComponentInstance>();
     }
 
 
@@ -93,7 +93,7 @@ public class ADSComponent
      *
      * @param instance instance reference to add to a list
      */
-    public void addInstance( ComponentInstance instance )
+    public void addInstance( ADSComponentInstance instance )
     {
         activeInstances.add( instance );
     }
@@ -104,7 +104,7 @@ public class ADSComponent
      *
      * @param instance to remove from the list
      */
-    public void removeInstance( ComponentInstance instance )
+    public void removeInstance( ADSComponentInstance instance )
     {
         activeInstances.remove( instance );
     }
@@ -135,11 +135,11 @@ public class ADSComponent
     /**
      * Gets the current instances of the component
      *
-     * @return Cloned ComponentInstance list.
+     * @return Cloned ADSComponentInstance list.
      */
-    public List<ComponentInstance> getInstances()
+    public List<ADSComponentInstance> getInstances()
     {
-        return new ArrayList<ComponentInstance>( activeInstances );
+        return new ArrayList<ADSComponentInstance>( activeInstances );
     }
 
 

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentHub.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentHub.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentHub.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentHub.java Sat Dec 24 16:10:16 2011
@@ -108,7 +108,7 @@ public class ComponentHub
     /*
      * Used to manage config partition interactions.
      */
-    private ConfigurationManager configManager = new ConfigurationManager( configPartition,componentSchemaManager );
+    private ConfigurationManager configManager = new ConfigurationManager( configPartition, componentSchemaManager );
 
     /*
      * Used to manage instances' DIT hooks.
@@ -174,10 +174,10 @@ public class ComponentHub
 
         componentSchemaManager.addSchemaGenerator( Interceptor.class.getName(), new DefaultComponentSchemaGenerator() );
         componentSchemaManager.addSchemaGenerator( Partition.class.getName(), new DefaultComponentSchemaGenerator() );
-        
+
         componentManager.addInstanceGenerator( Interceptor.class.getName(), new DefaultComponentInstanceGenerator() );
         componentManager.addInstanceGenerator( Partition.class.getName(), new DefaultComponentInstanceGenerator() );
-        
+
         //compSchemaManager.addSchemaGenerator( DirectoryBackedService.class.getName(), new DefaultComponentSchemaGenerator() );
     }
 
@@ -387,6 +387,8 @@ public class ComponentHub
         component.setComponentName( ADSComponentHelper.getComponentName( component.getFactory() ) );
         component.setComponentVersion( ADSComponentHelper.getComponentVersion( component.getFactory() ) );
 
+        configManager.pairWithComponent( component );
+
         return component;
     }
 

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentManager.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentManager.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ComponentManager.java Sat Dec 24 16:10:16 2011
@@ -28,7 +28,7 @@ import java.util.Properties;
 
 import org.apache.directory.server.component.ADSComponent;
 import org.apache.directory.server.component.instance.CachedComponentInstance;
-import org.apache.directory.server.component.instance.ComponentInstance;
+import org.apache.directory.server.component.instance.ADSComponentInstance;
 import org.apache.directory.server.component.instance.ComponentInstanceGenerator;
 import org.apache.directory.server.component.utilities.ADSConstants;
 import org.slf4j.Logger;
@@ -89,7 +89,7 @@ public class ComponentManager
      * @param component ADSComponent reference create new instance for.
      * @return created instance
      */
-    public ComponentInstance createInstance( ADSComponent component )
+    public ADSComponentInstance createInstance( ADSComponent component )
     {
         if ( component.getDefaultConfiguration() == null )
         {
@@ -111,7 +111,7 @@ public class ComponentManager
             }
         }
 
-        ComponentInstance instance = generateInstance( component, component.getDefaultConfiguration() );
+        ADSComponentInstance instance = generateInstance( component, component.getDefaultConfiguration() );
 
         component.addInstance( instance );
         configManager.injectInstance( instance );
@@ -126,9 +126,9 @@ public class ComponentManager
      *
      * @param component ADSComponent reference to instantiate
      * @param properties Configuration to create instance under.
-     * @return created ComponentInstance reference
+     * @return created ADSComponentInstance reference
      */
-    public ComponentInstance generateInstance( ADSComponent component, Properties properties )
+    public ADSComponentInstance generateInstance( ADSComponent component, Properties properties )
     {
         if ( properties.get( ADSConstants.ADS_COMPONENT_INSTANCE_PROP_NAME ) == null )
         {
@@ -138,7 +138,7 @@ public class ComponentManager
         ComponentInstanceGenerator generator = instanceGenerators.get( component.getComponentType() );
         if ( generator != null )
         {
-            ComponentInstance instance = generator.createInstance( component, properties );
+            ADSComponentInstance instance = generator.createInstance( component, properties );
 
             return instance;
         }
@@ -157,13 +157,13 @@ public class ComponentManager
      * @param component ADSComponent reference to load its cached instances.
      * @return loaded instances.
      */
-    public List<ComponentInstance> loadCachedInstances( ADSComponent component )
+    public List<ADSComponentInstance> loadCachedInstances( ADSComponent component )
     {
-        List<ComponentInstance> loadedInstances = new ArrayList<ComponentInstance>();
+        List<ADSComponentInstance> loadedInstances = new ArrayList<ADSComponentInstance>();
 
         for ( CachedComponentInstance cachedConf : component.getCachedInstances() )
         {
-            ComponentInstance instance = loadInstance( component, cachedConf );
+            ADSComponentInstance instance = loadInstance( component, cachedConf );
             if ( instance != null )
             {
                 loadedInstances.add( instance );
@@ -179,11 +179,11 @@ public class ComponentManager
      *
      * @param component ADSComponent reference owning cached instance
      * @param cachedInstance cached instance reference
-     * @return ComponentInstance which is loaded from cache.
+     * @return ADSComponentInstance which is loaded from cache.
      */
-    public ComponentInstance loadInstance( ADSComponent component, CachedComponentInstance cachedInstance )
+    public ADSComponentInstance loadInstance( ADSComponent component, CachedComponentInstance cachedInstance )
     {
-        ComponentInstance instance = generateInstance( component, cachedInstance.getCachedConfiguration() );
+        ADSComponentInstance instance = generateInstance( component, cachedInstance.getCachedConfiguration() );
 
         if ( instance == null )
         {
@@ -229,7 +229,7 @@ public class ComponentManager
 
         }
 
-        for ( ComponentInstance ins : component.getInstances() )
+        for ( ADSComponentInstance ins : component.getInstances() )
         {
             String instanceName = ins.getInstanceConfiguration().getProperty(
                 ADSConstants.ADS_COMPONENT_INSTANCE_PROP_NAME );

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ConfigurationManager.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ConfigurationManager.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/hub/ConfigurationManager.java Sat Dec 24 16:10:16 2011
@@ -28,7 +28,7 @@ import javax.naming.directory.SearchCont
 
 import org.apache.directory.server.component.ADSComponent;
 import org.apache.directory.server.component.instance.CachedComponentInstance;
-import org.apache.directory.server.component.instance.ComponentInstance;
+import org.apache.directory.server.component.instance.ADSComponentInstance;
 import org.apache.directory.server.component.utilities.ADSComponentHelper;
 import org.apache.directory.server.component.utilities.ADSConstants;
 import org.apache.directory.server.component.utilities.ADSSchemaConstants;
@@ -148,9 +148,9 @@ public class ConfigurationManager
     /**
      * Injects an instance's configuration into config partition.
      *
-     * @param instance ComponentInstance to set in config partition.
+     * @param instance ADSComponentInstance to set in config partition.
      */
-    public void injectInstance( ComponentInstance instance )
+    public void injectInstance( ADSComponentInstance instance )
     {
         LdifEntry instanceEntry = LdifConfigHelper.instanceToLdif( instance );
 

Copied: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ADSComponentInstance.java (from r1222990, directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstance.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ADSComponentInstance.java?p2=directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ADSComponentInstance.java&p1=directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstance.java&r1=1222990&r2=1222995&rev=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstance.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ADSComponentInstance.java Sat Dec 24 16:10:16 2011
@@ -31,7 +31,7 @@ import org.apache.directory.server.compo
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class ComponentInstance
+public class ADSComponentInstance
 {
     /*
      * Actual instance reference.
@@ -56,13 +56,13 @@ public class ComponentInstance
 
     /**
      * 
-     * Creates a new instance of ComponentInstance.
+     * Creates a new instance of ADSComponentInstance.
      *
      * @param component Parent component of the component instance
      * @param pojo Underlying Pojo object if the component instance
      * @param configuration Configuration of the Pojo
      */
-    public ComponentInstance( ADSComponent component, Object pojo, Properties configuration )
+    public ADSComponentInstance( ADSComponent component, Object pojo, Properties configuration )
     {
         this.parentComponent = component;
         this.instance = pojo;

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstanceGenerator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstanceGenerator.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstanceGenerator.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/ComponentInstanceGenerator.java Sat Dec 24 16:10:16 2011
@@ -35,7 +35,7 @@ public interface ComponentInstanceGenera
      * @param component ADSComponent reference to be instantiated
      * @return ADSInstance reference created from ADSComponent
      */
-    public ComponentInstance createInstance( ADSComponent component, Properties properties );
+    public ADSComponentInstance createInstance( ADSComponent component, Properties properties );
 
 
     /**

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/DefaultComponentInstanceGenerator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/DefaultComponentInstanceGenerator.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/DefaultComponentInstanceGenerator.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/instance/DefaultComponentInstanceGenerator.java Sat Dec 24 16:10:16 2011
@@ -25,7 +25,12 @@ import java.util.Properties;
 import org.apache.directory.server.component.ADSComponent;
 import org.apache.directory.server.component.schema.DefaultComponentSchemaGenerator;
 import org.apache.directory.shared.ipojo.helpers.IPojoHelper;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.ConfigurationException;
 import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.InstanceManager;
+import org.apache.felix.ipojo.MissingHandlerException;
+import org.apache.felix.ipojo.UnacceptableConfiguration;
 import org.apache.felix.ipojo.architecture.PropertyDescription;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,7 +52,7 @@ public class DefaultComponentInstanceGen
      * @see org.apache.directory.server.component.instance.ComponentInstanceGenerator#createInstance(org.apache.directory.server.component.ADSComponent)
      */
     @Override
-    public ComponentInstance createInstance( ADSComponent component, Properties properties )
+    public ADSComponentInstance createInstance( ADSComponent component, Properties properties )
     {
         if ( properties == null && component.getDefaultConfiguration() == null )
         {
@@ -57,15 +62,41 @@ public class DefaultComponentInstanceGen
 
         // We create the IPojo instance using supplied configuration, 
         // configuration have instance.name property at that point.
-        Object pojo = IPojoHelper.createIPojoComponent( component.getFactory().getName(), null, properties );
+        try
+        {
+            ComponentInstance comp = component.getFactory().createComponentInstance( properties );
+            Object pojo = ( ( InstanceManager ) comp ).getPojoObject();
 
-        //Create the ComponentInstance reference using the pojo just created.
-        ComponentInstance instance = new ComponentInstance( component, pojo, properties );
+            //Create the ADSComponentInstance reference using the pojo just created.
+            ADSComponentInstance instance = new ADSComponentInstance( component, pojo, properties );
 
-        return instance;
+            return instance;
+        }
+        catch ( UnacceptableConfiguration e )
+        {
+            LOG.info( "Configuration is not valid to create instance of component:" + component );
+            e.printStackTrace();
+            return null;
+        }
+        catch ( MissingHandlerException e )
+        {
+            LOG.info( "Instance creation is lacking an IPojo handler for component" + component );
+            e.printStackTrace();
+            return null;
+        }
+        catch ( ConfigurationException e )
+        {
+            LOG.info( "Instance configuration failed for component:" + component );
+            e.printStackTrace();
+            return null;
+        }
     }
 
 
+    /*
+     * (non-Javadoc)
+     * @see org.apache.directory.server.component.instance.ComponentInstanceGenerator#extractDefaultConfiguration(org.apache.directory.server.component.ADSComponent)
+     */
     @Override
     public Properties extractDefaultConfiguration( ADSComponent component )
     {

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSComponentHelper.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSComponentHelper.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSComponentHelper.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSComponentHelper.java Sat Dec 24 16:10:16 2011
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.directory.server.component.utilities;
 
 

Modified: directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/LdifConfigHelper.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/LdifConfigHelper.java?rev=1222995&r1=1222994&r2=1222995&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/LdifConfigHelper.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/LdifConfigHelper.java Sat Dec 24 16:10:16 2011
@@ -23,7 +23,7 @@ package org.apache.directory.server.comp
 import java.util.Properties;
 
 import org.apache.directory.server.component.ADSComponent;
-import org.apache.directory.server.component.instance.ComponentInstance;
+import org.apache.directory.server.component.instance.ADSComponentInstance;
 import org.apache.directory.shared.ldap.model.ldif.LdifEntry;
 
 
@@ -33,10 +33,10 @@ public class LdifConfigHelper
     /**
      * Transforms a component instance into its corresponding entry in ldif format.
      *
-     * @param instance ComponentInstance to transform into Ldif entry.
+     * @param instance ADSComponentInstance to transform into Ldif entry.
      * @return Generated Ldif entry.
      */
-    public static LdifEntry instanceToLdif( ComponentInstance instance )
+    public static LdifEntry instanceToLdif( ADSComponentInstance instance )
     {
         return null;
     }