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/26 11:47:30 UTC
svn commit: r1224709 - in
/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities:
ADSSchemaConstants.java LdifConfigHelper.java
Author: gokturk
Date: Mon Dec 26 10:47:30 2011
New Revision: 1224709
URL: http://svn.apache.org/viewvc?rev=1224709&view=rev
Log:
* Utility class for conversions between LdifEntry(instance's entry) and Properties(instance's configuration) is implemented.
Modified:
directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSSchemaConstants.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/utilities/ADSSchemaConstants.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSSchemaConstants.java?rev=1224709&r1=1224708&r2=1224709&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSSchemaConstants.java (original)
+++ directory/apacheds/branches/apacheds-osgi/component-hub/src/main/java/org/apache/directory/server/component/utilities/ADSSchemaConstants.java Mon Dec 26 10:47:30 2011
@@ -58,4 +58,10 @@ public class ADSSchemaConstants
*/
public static final String ADS_COMPONENT_ATTRIB_PURGE = "ads-componentpurgecount";
public static final String ADS_COMPONENT_ATTRIB_PURGE_OID = "1.3.6.1.4.1.18060.0.4.4.0.1.4";
+
+ /*
+ * Attribute name of component instance name
+ */
+ public static final String ADS_COMPONENT_INSTANCE_ATTRIB_NAME = "ads-instance";
+ public static final String ADS_COMPONENT_INSTANCE_ATTRIB_NAME_OID = "1.3.6.1.4.1.18060.0.4.4.0.1.5";
}
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=1224709&r1=1224708&r2=1224709&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 Mon Dec 26 10:47:30 2011
@@ -20,10 +20,23 @@
package org.apache.directory.server.component.utilities;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
import java.util.Properties;
+import org.apache.directory.server.component.ADSComponent;
+import org.apache.directory.server.component.hub.ComponentManager;
import org.apache.directory.server.component.instance.ADSComponentInstance;
+import org.apache.directory.shared.ldap.model.entry.Attribute;
+import org.apache.directory.shared.ldap.model.entry.Entry;
+import org.apache.directory.shared.ldap.model.exception.LdapInvalidAttributeValueException;
+import org.apache.directory.shared.ldap.model.exception.LdapInvalidDnException;
+import org.apache.directory.shared.ldap.model.ldif.LdapLdifException;
import org.apache.directory.shared.ldap.model.ldif.LdifEntry;
+import org.apache.directory.shared.ldap.model.name.Dn;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class LdifConfigHelper
@@ -37,7 +50,55 @@ public class LdifConfigHelper
*/
public static LdifEntry instanceToLdif( ADSComponentInstance instance )
{
- return null;
+ ADSComponent parentComponent = instance.getParentComponent();
+ Properties instanceConfiguration = instance.getInstanceConfiguration();
+
+ String instanceName = ( String ) instanceConfiguration.get(
+ ADSConstants.ADS_COMPONENT_INSTANCE_PROP_NAME );
+
+ if ( instanceName == null )
+ {
+ return null;
+ }
+
+ String instancesDn = ADSComponentHelper.getComponentInstancesDn( parentComponent );
+ String instanceRdn = ADSSchemaConstants.ADS_COMPONENT_INSTANCE_ATTRIB_NAME + "=" + instanceName;
+ String instanceDn = instanceRdn + "," + instancesDn;
+
+ List<String> attributes = new ArrayList<String>();
+
+ for ( Object key : instanceConfiguration.keySet() )
+ {
+ if ( key.equals( ADSConstants.ADS_COMPONENT_INSTANCE_PROP_NAME ) )
+ {
+ continue;
+ }
+
+ String attribute = ( String ) key + "=" + ( String ) instanceConfiguration.get( key );
+ attributes.add( attribute );
+ }
+ LdifEntry instanceEntry;
+ try
+ {
+ instanceEntry = new LdifEntry( new Dn( instanceDn ), attributes.toArray() );
+ }
+ catch ( LdapInvalidDnException e )
+ {
+ e.printStackTrace();
+ return null;
+ }
+ catch ( LdapInvalidAttributeValueException e )
+ {
+ e.printStackTrace();
+ return null;
+ }
+ catch ( LdapLdifException e )
+ {
+ e.printStackTrace();
+ return null;
+ }
+
+ return instanceEntry;
}
@@ -47,8 +108,43 @@ public class LdifConfigHelper
* @param entry LdifEntry reference to extract instance configuration
* @return Extracted instance configuration
*/
- public static Properties instanceEntryToConfiguration( LdifEntry entry )
+ public static Properties instanceEntryToConfiguration( LdifEntry instanceEntry )
{
- return null;
+ Entry entry = instanceEntry.getEntry();
+ Properties configuration = new Properties();
+
+ try
+ {
+ String instanceName = entry.get( ADSSchemaConstants.ADS_COMPONENT_INSTANCE_ATTRIB_NAME ).getString();
+ if ( instanceName == null )
+ {
+ //Entry is not instance entry.
+ return null;
+ }
+
+ configuration.put( ADSConstants.ADS_COMPONENT_INSTANCE_PROP_NAME, instanceName );
+
+ Collection<Attribute> attributes = entry.getAttributes();
+ for ( Attribute attribute : attributes )
+ {
+ String attribName = attribute.getId();
+ String attribVal = attribute.getString();
+
+ if ( attribName.equals( ADSSchemaConstants.ADS_COMPONENT_INSTANCE_ATTRIB_NAME ) )
+ {
+ continue;
+ }
+
+ configuration.put( attribName, attribVal );
+ }
+
+ }
+ catch ( LdapInvalidAttributeValueException e )
+ {
+ e.printStackTrace();
+ return null;
+ }
+
+ return configuration;
}
}