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 2012/05/15 13:24:31 UTC
svn commit: r1338652 - in /directory/apacheds/branches/apacheds-osgi/hub:
api/src/main/java/org/apache/directory/server/hub/api/component/util/
connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/
connectors/ipojo/h...
Author: gokturk
Date: Tue May 15 11:24:30 2012
New Revision: 1338652
URL: http://svn.apache.org/viewvc?rev=1338652&view=rev
Log:
* Make ipojo-connector/handler capable of embedding factory nature from within specific component type annotation
Added:
directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/IPojoComponentConstants.java
- copied, changed from r1338498, directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/InterceptorConstants.java
Removed:
directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/InterceptorConstants.java
Modified:
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/DcMetadataBuilder.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryInterceptorHandler.java
directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/ComponentHubImpl.java
Copied: directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/IPojoComponentConstants.java (from r1338498, directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/InterceptorConstants.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/IPojoComponentConstants.java?p2=directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/IPojoComponentConstants.java&p1=directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/InterceptorConstants.java&r1=1338498&r2=1338652&rev=1338652&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/InterceptorConstants.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/component/util/IPojoComponentConstants.java Tue May 15 11:24:30 2012
@@ -21,8 +21,10 @@
package org.apache.directory.server.hub.api.component.util;
-public class InterceptorConstants
+public class IPojoComponentConstants
{
+ public static final String PROP_IS_FACTORY = "isFactory";
+
public static final String PROP_INTERCEPTION_POINT = "interceptionPoint";
public static final String PROP_INTERCEPTOR_OPERATIONS = "operations";
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/DcMetadataBuilder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/DcMetadataBuilder.java?rev=1338652&r1=1338651&r2=1338652&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/DcMetadataBuilder.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/DcMetadataBuilder.java Tue May 15 11:24:30 2012
@@ -27,6 +27,7 @@ import java.util.Hashtable;
import java.util.List;
import org.apache.directory.server.component.handler.ipojo.property.DirectoryPropertyDescription;
import org.apache.directory.server.hub.api.component.util.ComponentConstants;
+import org.apache.directory.server.hub.api.component.util.IPojoComponentConstants;
import org.apache.directory.server.hub.api.meta.DcMetadataDescriptor;
import org.apache.directory.server.hub.api.meta.DcPropertyDescription;
import org.apache.felix.ipojo.ComponentFactory;
@@ -42,6 +43,7 @@ public class DcMetadataBuilder
{
String metadataPID = factory.getName();
Version metaVersion = factory.getBundleContext().getBundle().getVersion();
+ boolean isFactory = true;
List<DcPropertyDescription> properties = new ArrayList<DcPropertyDescription>();
@@ -57,6 +59,7 @@ public class DcMetadataBuilder
String type = normalizeType( property.getType() );
String description = "";
String containerFor = "";
+
DirectoryPropertyDescription dpd = null;
if ( property instanceof DirectoryPropertyDescription )
@@ -71,9 +74,22 @@ public class DcMetadataBuilder
constant = dpd.isConstant();
}
+ if ( immutable )
+ {
+ // Immutable components must be mandatory too.
+ mandatory = true;
+ }
+
if ( constant )
{
- constants.put( name, defaultValue );
+ if ( name.equals( IPojoComponentConstants.PROP_IS_FACTORY ) )
+ {
+ isFactory = Boolean.parseBoolean( defaultValue );
+ }
+ else
+ {
+ constants.put( name, defaultValue );
+ }
}
else
{
@@ -95,7 +111,7 @@ public class DcMetadataBuilder
String[] implemented = parseArray( interfaces );
String[] extended = parseArray( sclasses );
- DcMetadataDescriptor metadata = new DcMetadataDescriptor( metadataPID, true, metaVersion, className,
+ DcMetadataDescriptor metadata = new DcMetadataDescriptor( metadataPID, isFactory, metaVersion, className,
implemented, extended, constants, properties.toArray( new DcPropertyDescription[0] ) );
return metadata;
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryInterceptorHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryInterceptorHandler.java?rev=1338652&r1=1338651&r2=1338652&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryInterceptorHandler.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryInterceptorHandler.java Tue May 15 11:24:30 2012
@@ -22,9 +22,8 @@ package org.apache.directory.server.comp
import java.util.Hashtable;
-import java.util.Properties;
-import org.apache.directory.server.hub.api.component.util.InterceptorConstants;
+import org.apache.directory.server.hub.api.component.util.IPojoComponentConstants;
import org.apache.felix.ipojo.annotations.Handler;
import org.apache.felix.ipojo.metadata.Element;
@@ -54,12 +53,13 @@ public class DirectoryInterceptorHandler
// Only one interceptor per class is allowed
Element interceptor = interceptors[0];
- String interceptionPoint = interceptor.getAttribute( InterceptorConstants.PROP_INTERCEPTION_POINT );
- String interceptorOperations = interceptor.getAttribute( InterceptorConstants.PROP_INTERCEPTOR_OPERATIONS );
+ String interceptionPoint = interceptor.getAttribute( IPojoComponentConstants.PROP_INTERCEPTION_POINT );
+ String interceptorOperations = interceptor.getAttribute( IPojoComponentConstants.PROP_INTERCEPTOR_OPERATIONS );
Hashtable<String, String> constants = new Hashtable<String, String>();
- constants.put( InterceptorConstants.PROP_INTERCEPTION_POINT, interceptionPoint );
- constants.put( InterceptorConstants.PROP_INTERCEPTOR_OPERATIONS, interceptorOperations );
+ constants.put( IPojoComponentConstants.PROP_INTERCEPTION_POINT, interceptionPoint );
+ constants.put( IPojoComponentConstants.PROP_INTERCEPTOR_OPERATIONS, interceptorOperations );
+ constants.put( IPojoComponentConstants.PROP_IS_FACTORY, "false" );
return constants;
Modified: directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/ComponentHubImpl.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/ComponentHubImpl.java?rev=1338652&r1=1338651&r2=1338652&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/ComponentHubImpl.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/ComponentHubImpl.java Tue May 15 11:24:30 2012
@@ -39,7 +39,7 @@ import org.apache.directory.server.hub.a
import org.apache.directory.server.hub.api.component.DirectoryComponent;
import org.apache.directory.server.hub.api.component.DirectoryComponentConstants;
import org.apache.directory.server.hub.api.component.util.InterceptionPoint;
-import org.apache.directory.server.hub.api.component.util.InterceptorConstants;
+import org.apache.directory.server.hub.api.component.util.IPojoComponentConstants;
import org.apache.directory.server.hub.api.component.util.InterceptorOperation;
import org.apache.directory.server.hub.api.exception.BadConfigurationException;
import org.apache.directory.server.hub.api.exception.ComponentInstantiationException;
@@ -856,8 +856,8 @@ public class ComponentHubImpl implements
configurator.init( this );
DcConfiguration config = new DcConfiguration( new ArrayList<DcProperty>() );
- config.addConstant( InterceptorConstants.PROP_INTERCEPTION_POINT, InterceptionPoint.END.toString() );
- config.addConstant( InterceptorConstants.PROP_INTERCEPTOR_OPERATIONS,
+ config.addConstant( IPojoComponentConstants.PROP_INTERCEPTION_POINT, InterceptionPoint.END.toString() );
+ config.addConstant( IPojoComponentConstants.PROP_INTERCEPTOR_OPERATIONS,
"[" +
InterceptorOperation.ADD + "," +
InterceptorOperation.DELETE + "," +