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/07/27 15:08:32 UTC
svn commit: r1366375 - in /directory/apacheds/branches/apacheds-osgi/hub:
api/src/main/java/org/apache/directory/server/hub/api/
api/src/main/java/org/apache/directory/server/hub/api/meta/
connectors/ipojo/core/src/main/java/org/apache/directory/server...
Author: gokturk
Date: Fri Jul 27 13:08:31 2012
New Revision: 1366375
URL: http://svn.apache.org/viewvc?rev=1366375&view=rev
Log:
Couple of changes to make ComponentHub pure OSGI compliant in reconfiguration manner. And some refinements to decrease DoF on reconfiguration parameters:
* Helper flags on component factories are disabled and use of them removed from the code.(thread-safe, exclusive)
* Immutable property behaviour is changed. It is now only rejecting reconfigurations on immutable properties is component is created already.
* Reinstantiation of component on reconfiguration is disabled.
Modified:
directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/AbstractComponentListener.java
directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/ComponentListener.java
directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/meta/DcMetadataDescriptor.java
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/DirectoryComponent.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryInterceptor.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryPartition.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryProperty.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryServer.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DcHandlerConstants.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryComponentHandler.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/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryPartitionHandler.java
directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryServerHandler.java
directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/ComponentHubImpl.java
directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/HubClientManager.java
directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/store/StoreConfigManager.java
Modified: directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/AbstractComponentListener.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/AbstractComponentListener.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/AbstractComponentListener.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/AbstractComponentListener.java Fri Jul 27 13:08:31 2012
@@ -21,7 +21,6 @@
package org.apache.directory.server.hub.api;
-import org.apache.directory.server.hub.api.component.DcConfiguration;
import org.apache.directory.server.hub.api.component.DirectoryComponent;
import org.apache.directory.server.hub.api.exception.HubAbortException;
@@ -62,7 +61,7 @@ public class AbstractComponentListener i
* @see org.apache.directory.server.hub.api.ComponentListener#componentReconfigured(org.apache.directory.server.hub.api.component.DirectoryComponent, boolean)
*/
@Override
- public void componentReconfigured( DirectoryComponent component, boolean newInstance )
+ public void componentReconfigured( DirectoryComponent component )
{
}
Modified: directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/ComponentListener.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/ComponentListener.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/ComponentListener.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/ComponentListener.java Fri Jul 27 13:08:31 2012
@@ -36,5 +36,5 @@ public interface ComponentListener
public abstract void componentDeactivated( DirectoryComponent component );
- public abstract void componentReconfigured( DirectoryComponent component, boolean newInstance );
+ public abstract void componentReconfigured( DirectoryComponent component );
}
\ No newline at end of file
Modified: directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/meta/DcMetadataDescriptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/meta/DcMetadataDescriptor.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/meta/DcMetadataDescriptor.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/api/src/main/java/org/apache/directory/server/hub/api/meta/DcMetadataDescriptor.java Fri Jul 27 13:08:31 2012
@@ -43,8 +43,6 @@ public class DcMetadataDescriptor
private Hashtable<String, String> attributes;
private boolean factory;
- private boolean exclusive;
- private boolean threadSafe;
public DcMetadataDescriptor(
@@ -90,30 +88,6 @@ public class DcMetadataDescriptor
}
- public boolean isExclusive()
- {
- return exclusive;
- }
-
-
- public void setExclusive( boolean exclusive )
- {
- this.exclusive = exclusive;
- }
-
-
- public boolean isThreadSafe()
- {
- return threadSafe;
- }
-
-
- public void setThreadSafe( boolean threadSafe )
- {
- this.threadSafe = threadSafe;
- }
-
-
public Version getMetaVersion()
{
return metaVersion;
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=1366375&r1=1366374&r2=1366375&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 Fri Jul 27 13:08:31 2012
@@ -46,9 +46,6 @@ public class DcMetadataBuilder
Version metaVersion = factory.getBundleContext().getBundle().getVersion();
boolean isFactory = true;
- boolean isExclusive = false;
- boolean isThreadSafe = true;
-
List<DcPropertyDescription> properties = new ArrayList<DcPropertyDescription>();
Hashtable<String, String> attributes = new Hashtable<String, String>();
@@ -89,14 +86,6 @@ public class DcMetadataBuilder
{
isFactory = Boolean.parseBoolean( defaultValue );
}
- else if ( name.equals( DcHandlerConstants.META_IS_EXCLUSIVE ) )
- {
- isExclusive = Boolean.parseBoolean( defaultValue );
- }
- else if ( name.equals( DcHandlerConstants.META_IS_THREAD_SAFE ) )
- {
- isThreadSafe = Boolean.parseBoolean( defaultValue );
- }
else
{
attributes.put( name, defaultValue );
@@ -126,9 +115,6 @@ public class DcMetadataBuilder
className,
implemented, extended, attributes, properties.toArray( new DcPropertyDescription[0] ) );
- metadata.setExclusive( isExclusive );
- metadata.setThreadSafe( isThreadSafe );
-
return metadata;
}
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryComponent.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/DirectoryComponent.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryComponent.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryComponent.java Fri Jul 27 13:08:31 2012
@@ -34,10 +34,4 @@ import java.lang.annotation.Target;
public @interface DirectoryComponent
{
boolean factory() default true;
-
-
- boolean exclusive() default false;
-
-
- boolean threadsafe() default true;
}
\ No newline at end of file
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryInterceptor.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/DirectoryInterceptor.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryInterceptor.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryInterceptor.java Fri Jul 27 13:08:31 2012
@@ -36,20 +36,16 @@ import org.apache.directory.server.hub.a
@Target(ElementType.TYPE)
public @interface DirectoryInterceptor
{
- boolean factory() default true;
+ boolean factory() default true;
- boolean exclusive() default false;
-
-
- boolean threadsafe() default true;
-
/*
* Used to specify interception point for all component instances
* instantiated from factory.
*/
InterceptionPoint interceptionPoint() default InterceptionPoint.END;
+
/*
* Used to specify in which operations this factory's instances
* will be called.
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryPartition.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/DirectoryPartition.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryPartition.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryPartition.java Fri Jul 27 13:08:31 2012
@@ -32,11 +32,6 @@ import java.lang.annotation.Target;
@Target(ElementType.TYPE)
public @interface DirectoryPartition
{
- boolean factory() default true;
+ boolean factory() default true;
-
- boolean exclusive() default false;
-
-
- boolean threadsafe() default true;
}
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryProperty.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/DirectoryProperty.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryProperty.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryProperty.java Fri Jul 27 13:08:31 2012
@@ -68,6 +68,7 @@ public @interface DirectoryProperty
/*
* Whether property will be immutable
+ * Means only assignable at creation time.
*/
boolean immutable() default false;
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryServer.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/DirectoryServer.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryServer.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/DirectoryServer.java Fri Jul 27 13:08:31 2012
@@ -33,11 +33,5 @@ import java.lang.annotation.Target;
@Target(ElementType.TYPE)
public @interface DirectoryServer
{
- boolean factory() default true;
-
-
- boolean exclusive() default false;
-
-
- boolean threadsafe() default true;
+ boolean factory() default true;
}
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DcHandlerConstants.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/DcHandlerConstants.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DcHandlerConstants.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DcHandlerConstants.java Fri Jul 27 13:08:31 2012
@@ -44,15 +44,11 @@ public class DcHandlerConstants
*/
public static final String DSCOMPONENT_OWNER_PROP_NAME = "dscomponent.owner";
public static final String DSCOMPONENT_FACTORY_PROP_NAME = "factory";
- public static final String DSCOMPONENT_EXCLUSIVE_PROP_NAME = "exclusive";
- public static final String DSCOMPONENT_THREADSAFE_PROP_NAME = "threadsafe";
/*
* Property names for meta proeprties at connector level
*/
public static final String META_IS_FACTORY = "isFactory";
- public static final String META_IS_EXCLUSIVE = "isImmutable";
- public static final String META_IS_THREAD_SAFE = "isThreadSafe";
public static final String INTERCEPTOR_INTERCEPTION_POINT = "interceptionPoint";
public static final String INTERCEPTOR_INTERCEPTOR_OPERATIONS = "operations";
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryComponentHandler.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/DirectoryComponentHandler.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryComponentHandler.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryComponentHandler.java Fri Jul 27 13:08:31 2012
@@ -60,18 +60,6 @@ public class DirectoryComponentHandler e
constants.put( DcHandlerConstants.META_IS_FACTORY, isFactory );
}
- String isExclusive = component.getAttribute( DcHandlerConstants.DSCOMPONENT_EXCLUSIVE_PROP_NAME );
- if ( isExclusive != null )
- {
- constants.put( DcHandlerConstants.META_IS_EXCLUSIVE, isExclusive );
- }
-
- String isThreadSafe = component.getAttribute( DcHandlerConstants.DSCOMPONENT_THREADSAFE_PROP_NAME );
- if ( isThreadSafe != null )
- {
- constants.put( DcHandlerConstants.META_IS_THREAD_SAFE, isThreadSafe );
- }
-
return constants;
}
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=1366375&r1=1366374&r2=1366375&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 Fri Jul 27 13:08:31 2012
@@ -64,18 +64,6 @@ public class DirectoryInterceptorHandler
constants.put( DcHandlerConstants.META_IS_FACTORY, isFactory );
}
- String isExclusive = interceptor.getAttribute( DcHandlerConstants.DSCOMPONENT_EXCLUSIVE_PROP_NAME );
- if ( isExclusive != null )
- {
- constants.put( DcHandlerConstants.META_IS_EXCLUSIVE, isExclusive );
- }
-
- String isThreadSafe = interceptor.getAttribute( DcHandlerConstants.DSCOMPONENT_THREADSAFE_PROP_NAME );
- if ( isThreadSafe != null )
- {
- constants.put( DcHandlerConstants.META_IS_THREAD_SAFE, isThreadSafe );
- }
-
constants.put( DcHandlerConstants.INTERCEPTOR_INTERCEPTION_POINT, interceptionPoint );
constants.put( DcHandlerConstants.INTERCEPTOR_INTERCEPTOR_OPERATIONS, interceptorOperations );
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryPartitionHandler.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/DirectoryPartitionHandler.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryPartitionHandler.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryPartitionHandler.java Fri Jul 27 13:08:31 2012
@@ -61,18 +61,6 @@ public class DirectoryPartitionHandler e
constants.put( DcHandlerConstants.META_IS_FACTORY, isFactory );
}
- String isExclusive = partition.getAttribute( DcHandlerConstants.DSCOMPONENT_EXCLUSIVE_PROP_NAME );
- if ( isExclusive != null )
- {
- constants.put( DcHandlerConstants.META_IS_EXCLUSIVE, isExclusive );
- }
-
- String isThreadSafe = partition.getAttribute( DcHandlerConstants.DSCOMPONENT_THREADSAFE_PROP_NAME );
- if ( isThreadSafe != null )
- {
- constants.put( DcHandlerConstants.META_IS_THREAD_SAFE, isThreadSafe );
- }
-
return constants;
}
Modified: directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryServerHandler.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/DirectoryServerHandler.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryServerHandler.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/connectors/ipojo/handler/src/main/java/org/apache/directory/server/component/handler/ipojo/DirectoryServerHandler.java Fri Jul 27 13:08:31 2012
@@ -61,18 +61,6 @@ public class DirectoryServerHandler exte
constants.put( DcHandlerConstants.META_IS_FACTORY, isFactory );
}
- String isExclusive = server.getAttribute( DcHandlerConstants.DSCOMPONENT_EXCLUSIVE_PROP_NAME );
- if ( isExclusive != null )
- {
- constants.put( DcHandlerConstants.META_IS_EXCLUSIVE, isExclusive );
- }
-
- String isThreadSafe = server.getAttribute( DcHandlerConstants.DSCOMPONENT_THREADSAFE_PROP_NAME );
- if ( isThreadSafe != null )
- {
- constants.put( DcHandlerConstants.META_IS_THREAD_SAFE, isThreadSafe );
- }
-
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=1366375&r1=1366374&r2=1366375&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 Fri Jul 27 13:08:31 2012
@@ -82,6 +82,7 @@ public class ComponentHubImpl implements
private ConfiguratorInterceptor configurator;
+
public ComponentHubImpl( HubStore store )
{
this.store = store;
@@ -258,28 +259,25 @@ public class ComponentHubImpl implements
}
}
- boolean isExclusive = metadata.isExclusive();
- boolean reinstantiate = false;
-
- // Immutable property change handling
if ( component.getRuntimeInfo() != null )
{
- for ( DcProperty prop : newConfiguration )
+ // Immutable property modification prevention
+ for ( DcProperty newProp : newConfiguration )
{
- DcPropertyDescription pd = metadata.getPropertyDescription( prop.getName() );
- if ( pd != null && pd.isImmutable() )
+ String propName = newProp.getName();
+ DcPropertyDescription propDesc = metadata.getPropertyDescription( propName );
+ if ( propDesc.isImmutable() )
{
- DcProperty oldProp = component.getConfiguration().getProperty( prop.getName() );
- if ( oldProp != null && !( oldProp.getValue().equals( prop.getValue() ) ) )
+ String oldPropVal = component.getConfiguration().getProperty( propName ).getValue();
+ if ( newProp.getValue() != oldPropVal )
{
- reinstantiate = true;
+ throw new HubAbortException( "Changing a immmutable property of active instance is forbidden!" );
}
}
}
}
DcConfiguration oldConfiguration = component.getConfiguration();
- DcRuntime oldRuntime = component.getRuntimeInfo();
DcOperationsManager operations = handlersReg.getPIDHandler( component.getComponentManagerPID() );
@@ -290,6 +288,8 @@ public class ComponentHubImpl implements
}
catch ( BadConfigurationException e )
{
+ component.setConfiguration( oldConfiguration );
+
throw new HubAbortException( "New configuration is rejected while processing", e );
}
@@ -297,23 +297,9 @@ public class ComponentHubImpl implements
{
try
{
- if ( reinstantiate )
- {
- if ( isExclusive )
- {
- operations.disposeComponent( component );
- }
- else
- {
- component.setRuntimeInfo( null );
- }
- }
- else
- {
- operations.reconfigureComponent( component );
- }
+ operations.reconfigureComponent( component );
- clientManager.fireDCReconfigured( component, reinstantiate );
+ clientManager.fireDCReconfigured( component );
List<ParentLink> parents = parentLinksReg.getParentLinks( component );
if ( parents != null )
@@ -332,34 +318,26 @@ public class ComponentHubImpl implements
}
catch ( Exception e )
{
- if ( reinstantiate && !isExclusive )
+
+ component.setConfiguration( oldConfiguration );
+ try
{
- component.setRuntimeInfo( oldRuntime );
- component.setConfiguration( oldConfiguration );
+ processConfiguration( component );
+ operations.reconfigureComponent( component );
+ // We ensured the previous state, now inform the reconfiguration agent with exception
throw new HubAbortException( "Reconfiguration is rejected by target component:"
+ component.getComponentPID(), e );
}
- else
+ catch ( Exception e2 )
{
- component.setConfiguration( oldConfiguration );
- try
- {
- processConfiguration( component );
- operations.reconfigureComponent( component );
-
- throw new HubAbortException( "Reconfiguration is rejected by target component:"
- + component.getComponentPID(), e );
- }
- catch ( Exception e2 )
- {
- deactivateComponent( component );
+ deactivateComponent( component );
- throw new HubAbortException( "Reconfiguration reverted but component couldn't be saved:"
- + component.getComponentPID(), e );
+ throw new HubAbortException( "Reconfiguration reverted but component couldn't be saved:"
+ + component.getComponentPID(), e );
- }
}
+
}
}
else
@@ -473,18 +451,18 @@ public class ComponentHubImpl implements
// TODO log given parent couldn't be reverted from cancelled removal of its referenced property.
}
}
-
+
removed = false;
break;
}
}
-
- if(removed)
+
+ if ( removed )
{
parentLinksReg.destroyComponentLinks( component );
}
}
-
+
deactivateComponent( component );
componentsReg.removeDirectoryComponent( component );
Modified: directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/HubClientManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/HubClientManager.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/HubClientManager.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/HubClientManager.java Fri Jul 27 13:08:31 2012
@@ -128,12 +128,12 @@ public class HubClientManager
}
- public void fireDCReconfigured( DirectoryComponent component, boolean newInstance )
+ public void fireDCReconfigured( DirectoryComponent component )
{
List<AbstractComponentListener> clients = getRegisteredClients( component );
for ( ComponentListener client : clients )
{
- client.componentReconfigured( component, newInstance );
+ client.componentReconfigured( component );
}
}
Modified: directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/store/StoreConfigManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/store/StoreConfigManager.java?rev=1366375&r1=1366374&r2=1366375&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/store/StoreConfigManager.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/store/StoreConfigManager.java Fri Jul 27 13:08:31 2012
@@ -196,8 +196,6 @@ public class StoreConfigManager
.getMetaVersion().toString() );
mdEntry.add( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_FACTORY ),
( metadata.isFactory() ) ? "TRUE" : "FALSE" );
- mdEntry.add( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_EXCLUSIVE ),
- ( metadata.isExclusive() ) ? "TRUE" : "FALSE" );
mdEntry.add( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_CLASSNAME ),
metadata.getClassName() );