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/06/13 15:41:22 UTC
svn commit: r1349840 - in /directory/apacheds/branches/apacheds-osgi/hub:
api/src/main/java/org/apache/directory/server/hub/api/meta/
connectors/ipojo/core/src/main/java/org/apache/directory/server/hub/connector/ipojo/core/
connectors/ipojo/handler/src...
Author: gokturk
Date: Wed Jun 13 13:41:21 2012
New Revision: 1349840
URL: http://svn.apache.org/viewvc?rev=1349840&view=rev
Log:
* Added new thread-safe flag for components to specify whether reconfiguration on them needs exclusive locking
Modified:
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/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/connector/collection/CollectionMetaDescriptorGenerator.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/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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -44,12 +44,12 @@ public class DcMetadataDescriptor
private boolean factory;
private boolean exclusive;
+ private boolean threadSafe;
public DcMetadataDescriptor(
String metadataPID,
boolean isFactory,
- boolean isExclusive,
Version metaVersion,
String className,
String[] implemented,
@@ -59,7 +59,6 @@ public class DcMetadataDescriptor
{
this.metadataPID = metadataPID;
this.factory = isFactory;
- this.exclusive = isExclusive;
this.metaVersion = metaVersion;
this.className = className;
this.implemented = implemented;
@@ -97,6 +96,24 @@ public class DcMetadataDescriptor
}
+ 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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -45,7 +45,9 @@ public class DcMetadataBuilder
String metadataPID = factory.getName();
Version metaVersion = factory.getBundleContext().getBundle().getVersion();
boolean isFactory = true;
+
boolean isExclusive = false;
+ boolean isThreadSafe = true;
List<DcPropertyDescription> properties = new ArrayList<DcPropertyDescription>();
@@ -91,6 +93,10 @@ public class DcMetadataBuilder
{
isExclusive = Boolean.parseBoolean( defaultValue );
}
+ else if ( name.equals( DcHandlerConstants.META_IS_THREAD_SAFE ) )
+ {
+ isThreadSafe = Boolean.parseBoolean( defaultValue );
+ }
else
{
attributes.put( name, defaultValue );
@@ -116,10 +122,13 @@ public class DcMetadataBuilder
String[] implemented = parseArray( interfaces );
String[] extended = parseArray( sclasses );
- DcMetadataDescriptor metadata = new DcMetadataDescriptor( metadataPID, isFactory, isExclusive, metaVersion,
+ DcMetadataDescriptor metadata = new DcMetadataDescriptor( metadataPID, isFactory, metaVersion,
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -37,4 +37,7 @@ public @interface DirectoryComponent
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -40,6 +40,9 @@ public @interface DirectoryInterceptor
boolean exclusive() default false;
+
+
+ boolean threadsafe() default true;
/*
* Used to specify interception point for all component instances
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -36,4 +36,7 @@ public @interface DirectoryPartition
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/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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -37,4 +37,7 @@ public @interface DirectoryServer
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/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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -45,12 +45,14 @@ 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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -65,6 +65,12 @@ public class DirectoryComponentHandler e
{
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -70,6 +70,12 @@ public class DirectoryInterceptorHandler
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -54,7 +54,7 @@ public class DirectoryPartitionHandler e
Element partition = partitions[0];
Hashtable<String, String> constants = new Hashtable<String, String>();
-
+
String isFactory = partition.getAttribute( DcHandlerConstants.DSCOMPONENT_FACTORY_PROP_NAME );
if ( isFactory != null )
{
@@ -67,6 +67,12 @@ public class DirectoryPartitionHandler e
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -47,7 +47,7 @@ public class DirectoryServerHandler exte
@Override
- protected Hashtable<String,String> extractConstantProperties( Element ipojoMetadata )
+ protected Hashtable<String, String> extractConstantProperties( Element ipojoMetadata )
{
Element[] servers = ipojoMetadata.getElements( getHandlerName(), getHandlerNamespaceName() );
// Only one server per class is allowed
@@ -67,6 +67,12 @@ public class DirectoryServerHandler exte
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -925,7 +925,7 @@ public class ComponentHubImpl implements
component.setDirty( false );
DcMetadataDescriptor configuratorMeta =
- new DcMetadataDescriptor( "configuratorMeta", false, false, new Version( "2.0.0" ),
+ new DcMetadataDescriptor( "configuratorMeta", false, new Version( "2.0.0" ),
ConfiguratorInterceptor.class.getName(), new String[]
{ Interceptor.class.getName() }, new String[0], null, new DcPropertyDescription[0] );
Modified: directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/connector/collection/CollectionMetaDescriptorGenerator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/connector/collection/CollectionMetaDescriptorGenerator.java?rev=1349840&r1=1349839&r2=1349840&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/connector/collection/CollectionMetaDescriptorGenerator.java (original)
+++ directory/apacheds/branches/apacheds-osgi/hub/core/src/main/java/org/apache/directory/server/hub/core/connector/collection/CollectionMetaDescriptorGenerator.java Wed Jun 13 13:41:21 2012
@@ -70,7 +70,7 @@ public class CollectionMetaDescriptorGen
ComponentConstants.PRIMITIVE_STR, Object.class.getName(), "Specifies collection's container type",
true, false, DirectoryComponentConstants.DC_VAL_NULL ) };
- return new DcMetadataDescriptor( metaPid, true, false, metaVersion, className, implemented, extended, null,
+ return new DcMetadataDescriptor( metaPid, true, metaVersion, className, implemented, extended, null,
properties );
}
@@ -89,7 +89,7 @@ public class CollectionMetaDescriptorGen
ComponentConstants.PRIMITIVE_STR, Object.class.getName(), "Specifies collection's container type",
true, false, DirectoryComponentConstants.DC_VAL_NULL ) };
- return new DcMetadataDescriptor( metaPid, true, false, metaVersion, className, implemented, extended, null,
+ return new DcMetadataDescriptor( metaPid, true, metaVersion, className, implemented, extended, null,
properties );
}
@@ -106,7 +106,7 @@ public class CollectionMetaDescriptorGen
ComponentConstants.PRIMITIVE_STR, Object.class.getName(), "Specifies collection's container type",
true, false, DirectoryComponentConstants.DC_VAL_NULL ) };
- return new DcMetadataDescriptor( metaPid, true, false, metaVersion, className, implemented, extended, null,
+ return new DcMetadataDescriptor( metaPid, true, metaVersion, className, implemented, extended, null,
properties );
}
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=1349840&r1=1349839&r2=1349840&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 Wed Jun 13 13:41:21 2012
@@ -564,7 +564,6 @@ public class StoreConfigManager
Attribute implemented = entry.get( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_IMPLEMENTS ) );
Attribute props = entry.get( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_PROP ) );
Attribute factory = entry.get( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_FACTORY ) );
- Attribute exclusive = entry.get( schemaManager.getAttributeType( StoreSchemaConstants.HUB_AT_MD_EXCLUSIVE ) );
try
{
@@ -600,9 +599,8 @@ public class StoreConfigManager
}
}
boolean isFactory = Boolean.parseBoolean( factory.getString() );
- boolean isExclusive = Boolean.parseBoolean( exclusive.getString() );
- return new DcMetadataDescriptor( pid.getString(), isFactory, isExclusive, new Version(
+ return new DcMetadataDescriptor( pid.getString(), isFactory, new Version(
version.getString() ), classname.getString(),
implementedList.toArray( new String[0] ), extendedList.toArray( new String[0] ), null,
pds.toArray( new DcPropertyDescription[0] ) );