You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2008/05/13 15:55:36 UTC

svn commit: r655866 - /directory/studio/trunk/apacheds-configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/model/ServerXmlV152IO.java

Author: pamarcelot
Date: Tue May 13 06:55:36 2008
New Revision: 655866

URL: http://svn.apache.org/viewvc?rev=655866&view=rev
Log:
Added toXml implementation.

Modified:
    directory/studio/trunk/apacheds-configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/model/ServerXmlV152IO.java

Modified: directory/studio/trunk/apacheds-configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/model/ServerXmlV152IO.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/apacheds-configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/model/ServerXmlV152IO.java?rev=655866&r1=655865&r2=655866&view=diff
==============================================================================
--- directory/studio/trunk/apacheds-configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/model/ServerXmlV152IO.java (original)
+++ directory/studio/trunk/apacheds-configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/model/ServerXmlV152IO.java Tue May 13 06:55:36 2008
@@ -26,11 +26,14 @@
 import java.util.List;
 
 import javax.naming.directory.Attributes;
+import javax.xml.transform.TransformerException;
 
-import org.apache.directory.studio.apacheds.configuration.model.AbstractServerXmlIO.BooleanFormatException;
 import org.dom4j.Attribute;
 import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
+import org.dom4j.Namespace;
+import org.dom4j.QName;
 import org.dom4j.io.SAXReader;
 
 
@@ -43,6 +46,13 @@
  */
 public class ServerXmlV152IO extends AbstractServerXmlIO implements ServerXmlIO
 {
+    private static final Namespace NAMESPACE_APACHEDS = new Namespace( null, "http://apacheds.org/config/1.0" );
+    private static final Namespace NAMESPACE_SPRINGFRAMEWORK = new Namespace( "s",
+        "http://www.springframework.org/schema/beans" );
+    private static final Namespace NAMESPACE_XBEAN_SPRING = new Namespace( "spring",
+        "http://xbean.apache.org/schemas/spring/1.0" );
+
+
     /* (non-Javadoc)
      * @see org.apache.directory.studio.apacheds.configuration.model.ServerXmlIO#isValid(java.io.InputStream)
      */
@@ -811,7 +821,317 @@
      */
     public String toXml( ServerConfiguration serverConfiguration )
     {
+        // Creating the document
+        Document document = DocumentHelper.createDocument();
+
+        // Creating the root element with its namespaces definitions
+        Element root = document.addElement( new QName( "beans", NAMESPACE_XBEAN_SPRING ) );
+        root.add( NAMESPACE_SPRINGFRAMEWORK );
+        root.add( NAMESPACE_APACHEDS );
+
+        // DefaultDirectoryService Bean
+        createDefaultDirectoryServiceBean( root, serverConfiguration );
+
+        // Adding the 'standardThreadPool' element
+        Element standardThreadPoolElement = root.addElement( "standardThreadPool" );
+        standardThreadPoolElement.addAttribute( "id", "standardThreadPool" );
+        standardThreadPoolElement.addAttribute( "maxThreads", "" + serverConfiguration.getMaxThreads() );
+
+        // Adding the 'datagramAcceptor' element
+        Element datagramAcceptorElement = root.addElement( "datagramAcceptor" );
+        datagramAcceptorElement.addAttribute( "id", "datagramAcceptor" );
+        datagramAcceptorElement.addAttribute( "logicExecutor", "#standardThreadPool" );
+
+        // Adding the 'socketAcceptor' element
+        Element socketAcceptorElement = root.addElement( "socketAcceptor" );
+        socketAcceptorElement.addAttribute( "id", "socketAcceptor" );
+        socketAcceptorElement.addAttribute( "logicExecutor", "#standardThreadPool" );
+
+        // ChangePasswordServer Bean
+        createChangePasswordServerBean( root, serverConfiguration );
+
+        // KdcServer Bean
+        createKdcServerBean( root, serverConfiguration );
+
+        // NtpServer Bean
+        createNtpServerBean( root, serverConfiguration );
+
+        // DnsServer Bean
+        createDnsServerBean( root, serverConfiguration );
+
+        // LdapsServer Bean
+        createLdapsServerBean( root, serverConfiguration );
+
+        // LdapServer Bean
+        createLdapServerBean( root, serverConfiguration );
+
+        // ApacheDS Bean
+        createApacheDSBean( root, serverConfiguration );
+
+        // CustomEditorConfigurer Bean
+        createCustomEditorConfigurerBean( root, serverConfiguration );
+
+        Document stylizedDocument = null;
+        try
+        {
+            stylizedDocument = styleDocument( document );
+        }
+        catch ( TransformerException e )
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        return stylizedDocument.asXML();
+    }
+
+
+    /**
+     * Creates the DefaultDirectoryService bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createDefaultDirectoryServiceBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        // Adding the 'defaultDirectoryService' element
+        Element defaultDirectoryServiceElement = root.addElement( "defaultDirectoryService" );
+
+        // Id
+        defaultDirectoryServiceElement.addAttribute( "id", "directoryService" );
+
+        // InstanceId
+        defaultDirectoryServiceElement.addAttribute( "instanceId", "default" );
+
+        // WorkingDirectory
+        defaultDirectoryServiceElement.addAttribute( "workingDirectory", "example.com" );
+
+        // AllowAnonymousAccess
+        defaultDirectoryServiceElement.addAttribute( "allowAnonymousAccess", ""
+            + serverConfiguration.isAllowAnonymousAccess() );
+
+        // AccessControlEnabled
+        defaultDirectoryServiceElement.addAttribute( "accessControlEnabled", ""
+            + serverConfiguration.isEnableAccessControl() );
+
+        // DenormalizeOpAttrsEnabled
+        defaultDirectoryServiceElement.addAttribute( "denormalizeOpAttrsEnabled", ""
+            + serverConfiguration.isDenormalizeOpAttr() );
+
+        // Adding the 'systemPartition' element
+        Element systemPartitionElement = defaultDirectoryServiceElement.addElement( "systemPartition" );
+
+        // TODO Add the system partition
+
+        // Adding the 'partitions' element
+        Element partitionsElement = defaultDirectoryServiceElement.addElement( "partitions" );
+
+        // TODO Add the partitions
+
+        // Adding the 'interceptors' element
+        Element interceptorsElement = defaultDirectoryServiceElement.addElement( "interceptors" );
+
+        // TODO Add the interceptors
+    }
+
+
+    /**
+     * Creates the ChangePasswordServer bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createChangePasswordServerBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        if ( serverConfiguration.isEnableChangePassword() )
+        {
+            // Adding the 'changePasswordServer' element
+            Element changePasswordServerElement = root.addElement( "changePasswordServer" );
+
+            // IpPort
+            changePasswordServerElement.addAttribute( "ipPort", "" + serverConfiguration.getChangePasswordPort() );
+
+            // Adding 'directoryService' element
+            changePasswordServerElement.addElement( "directoryService" ).setText( "#directoryService" );
+
+            // Adding 'datagramAcceptor' element
+            changePasswordServerElement.addElement( "datagramAcceptor" ).setText( "#datagramAcceptor" );
+
+            // Adding 'socketAcceptor' element
+            changePasswordServerElement.addElement( "socketAcceptor" ).setText( "#socketAcceptor" );
+        }
+    }
+
+
+    /**
+     * Creates the KdcServer bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createKdcServerBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        if ( serverConfiguration.isEnableKerberos() )
+        {
+            // Adding the 'kdcServer' element
+            Element kdcServerElement = root.addElement( "kdcServer" );
+
+            // IpPort
+            kdcServerElement.addAttribute( "ipPort", "" + serverConfiguration.getKerberosPort() );
+
+            // Adding 'directoryService' element
+            kdcServerElement.addElement( "directoryService" ).setText( "#directoryService" );
+
+            // Adding 'datagramAcceptor' element
+            kdcServerElement.addElement( "datagramAcceptor" ).setText( "#datagramAcceptor" );
+
+            // Adding 'socketAcceptor' element
+            kdcServerElement.addElement( "socketAcceptor" ).setText( "#socketAcceptor" );
+        }
+    }
+
+
+    /**
+     * Creates the NtpServer bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createNtpServerBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        if ( serverConfiguration.isEnableNtp() )
+        {
+            // Adding the 'ntpServer' element
+            Element ntpServerElement = root.addElement( "ntpServer" );
+
+            // IpPort
+            ntpServerElement.addAttribute( "ipPort", "" + serverConfiguration.getNtpPort() );
+
+            // Adding 'datagramAcceptor' element
+            ntpServerElement.addElement( "datagramAcceptor" ).setText( "#datagramAcceptor" );
+
+            // Adding 'socketAcceptor' element
+            ntpServerElement.addElement( "socketAcceptor" ).setText( "#socketAcceptor" );
+        }
+    }
+
+
+    /**
+     * Creates the DnsServer bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createDnsServerBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        if ( serverConfiguration.isEnableDns() )
+        {
+            // Adding the 'dnsServer' element
+            Element dnsServerElement = root.addElement( "dnsServer" );
+
+            // IpPort
+            dnsServerElement.addAttribute( "ipPort", "" + serverConfiguration.getDnsPort() );
+
+            // Adding 'directoryService' element
+            dnsServerElement.addElement( "directoryService" ).setText( "#directoryService" );
+
+            // Adding 'datagramAcceptor' element
+            dnsServerElement.addElement( "datagramAcceptor" ).setText( "#datagramAcceptor" );
+
+            // Adding 'socketAcceptor' element
+            dnsServerElement.addElement( "socketAcceptor" ).setText( "#socketAcceptor" );
+        }
+    }
+
+
+    /**
+     * Creates the LdapsServer bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createLdapsServerBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        if ( serverConfiguration.isEnableLdaps() )
+        {
+            // Adding the 'ldapServer' element
+            Element ldapServerElement = root.addElement( "ldapServer" );
+
+            // Id
+            ldapServerElement.addAttribute( "id", "ldapsServer" );
+
+            // IpPort
+            ldapServerElement.addAttribute( "ipPort", "" + serverConfiguration.getDnsPort() );
+
+            // Enable
+            ldapServerElement.addAttribute( "enable", "" + "true" );
+
+            // EnableLdaps
+            ldapServerElement.addAttribute( "enableLdaps", "" + "true" );
+
+            // Adding 'directoryService' element
+            ldapServerElement.addElement( "directoryService" ).setText( "#directoryService" );
+
+            // Adding 'socketAcceptor' element
+            ldapServerElement.addElement( "socketAcceptor" ).setText( "#socketAcceptor" );
+        }
+    }
+
+
+    private void createLdapServerBean( Element root, ServerConfiguration serverConfiguration )
+    {
         // TODO Auto-generated method stub
-        return null;
+
+    }
+
+
+    private void createApacheDSBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        // TODO Auto-generated method stub
+
+    }
+
+
+    /**
+     * Creates the CustomEditorConfigurer bean.
+     *
+     * @param root
+     *      the root element
+     * @param serverConfiguration
+     *      the server configuration
+     */
+    private void createCustomEditorConfigurerBean( Element root, ServerConfiguration serverConfiguration )
+    {
+        // Adding the 'bean' element
+        Element beanElement = root.addElement( new QName( "bean", NAMESPACE_XBEAN_SPRING ) );
+        beanElement.addAttribute( "class", "org.springframework.beans.factory.config.CustomEditorConfigurer" );
+
+        // Adding the 'property' element
+        Element propertyElement = beanElement.addElement( new QName( "property", NAMESPACE_XBEAN_SPRING ) );
+        propertyElement.addAttribute( "name", "customEditors" );
+
+        // Adding the 'map' element
+        Element mapElement = propertyElement.addElement( new QName( "map", NAMESPACE_XBEAN_SPRING ) );
+
+        // Adding the 'entry' element
+        Element entryElement = mapElement.addElement( new QName( "entry", NAMESPACE_XBEAN_SPRING ) );
+        entryElement.addAttribute( "key", "javax.naming.directory.Attributes" );
+
+        // Adding the inner 'bean' element
+        Element innerBeanElement = entryElement.addElement( new QName( "entry", NAMESPACE_XBEAN_SPRING ) );
+        innerBeanElement.addAttribute( "class",
+            "org.apache.directory.server.core.configuration.AttributesPropertyEditor" );
     }
 }