You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2007/07/13 08:49:50 UTC

svn commit: r555892 - in /directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core: sp/ sp/java/ trigger/

Author: ersiner
Date: Thu Jul 12 23:49:49 2007
New Revision: 555892

URL: http://svn.apache.org/viewvc?view=rev&rev=555892
Log:
Cleaning up and Javadoc.

Added:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngine.java
      - copied, changed from r555600, directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngine.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngineConfig.java
      - copied, changed from r555600, directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngineConfig.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/LdapJavaStoredProcClassLoader.java
      - copied, changed from r555600, directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapJavaStoredProcClassLoader.java
Removed:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngine.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngineConfig.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapJavaStoredProcClassLoader.java
Modified:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngine.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngineConfig.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcUtils.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerService.java

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngine.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngine.java?view=diff&rev=555892&r1=555891&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngine.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngine.java Thu Jul 12 23:49:49 2007
@@ -25,12 +25,41 @@
 import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapContext;
 
+
+/**
+ * An abstraction over stored procedure execution depending on the type of the language supported.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$ $Date$
+ */
 public interface StoredProcEngine
 {
+    
+    /**
+     * Returns the unique identifier of the supported stored procedure language.
+     * 
+     */
     public String getSPLangId();
     
+    
+    /**
+     * Registers an entry found to be contaning a stored procedure unit which this engine can operate on.
+     *
+     * <p>
+     * This method should be called before an attempt to invoke a stored procedure via this Engine.
+     */
     public void setSPUnitEntry( final Attributes spUnit );
     
-    public Object invokeProcedure( LdapContext rootCtx, String fullSPName, Object[] spArgs ) throws NamingException;
+    
+    /**
+     * Invokes the stored procedure handled by the engine.
+     * 
+     * @param rootDSE A handle on Root DSE to invoke the stored procedure over.
+     * @param fullSPName A fully qualified name of the stored procedure including its unit name.
+     * @param spArgs A list or arguments to be passed to the stored procedure. It should be an empty array if there aren't any parameters defined.
+     * @return The value obtained from invoked procedure. The client should know what will return exactly so that it can downcast to the appropriate type.
+     * @throws NamingException If an error occurs during invocation.
+     */
+    public Object invokeProcedure( LdapContext rootDSE, String fullSPName, Object[] spArgs ) throws NamingException;
 
 }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngineConfig.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngineConfig.java?view=diff&rev=555892&r1=555891&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngineConfig.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngineConfig.java Thu Jul 12 23:49:49 2007
@@ -21,10 +21,26 @@
 
 package org.apache.directory.server.core.sp;
 
+
+/**
+ * A configuration wrapper for {@link StoredProcEngine}s.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$ $Date$
+ */
 public interface StoredProcEngineConfig
 {
+    /**
+     * Returns the type of the associated {@link StoredProcEngine}.
+     * 
+     */
     public Class<? extends StoredProcEngine> getStoredProcEngineType();
     
+    
+    /**
+     * Returns the unique language identifier of the {@link StoredProcEngine}.
+     * 
+     */
     public String getStoredProcLangId();
 
 }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.java?view=diff&rev=555892&r1=555891&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.java Thu Jul 12 23:49:49 2007
@@ -32,40 +32,69 @@
 
 import javax.naming.ldap.LdapContext;
 
-
+/**
+ * A Factory type class which holds a registry of supported {@link StoredProcEngineConfig}s. A container reference
+ * as the base for Stored Procedure storage on the DIT is also handled by this class.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$ $Date$
+ */
 public class StoredProcExecutionManager
 {
+    
+    private final String storedProcContainer;
 
-    private final String spContainer;
-
-    private final List<StoredProcEngineConfig> spEngineConfigs;
+    private final List<StoredProcEngineConfig> storedProcEngineConfigs;
 
 
-    public StoredProcExecutionManager( final String spContainer, final List<StoredProcEngineConfig> spEngineConfigs )
+    /**
+     * Creates a {@link StoredProcExecutionManager} instance.
+     * 
+     * @param storedProcContainer The base of the DIT subtree used for storing stored procedure units.
+     * @param storedProcEngineConfigs A list of {@link StoredProcEngineConfig}s to register different {@link StoredProcEngine}s with this manager.
+     */
+    public StoredProcExecutionManager( final String storedProcContainer, final List<StoredProcEngineConfig> storedProcEngineConfigs )
     {
-        this.spContainer = spContainer;
-        this.spEngineConfigs = spEngineConfigs;
+        this.storedProcContainer = storedProcContainer;
+        this.storedProcEngineConfigs = storedProcEngineConfigs;
     }
     
-    public Attributes findStoredProcUnit( LdapContext rootCtx, String fullSPName ) throws NamingException
+    /**
+     * Finds and returns a stored procedure unit entry whose identifier name
+     * is extracted from fullSPName.
+     * 
+     * @param rootDSE A handle on the root DSE to be used for searching the SP Unit over.
+     * @param fullSPName Full name of the Stored Procedure including the unit name.
+     * @return The entry associated with the SP Unit.
+     * @throws NamingException If the unit cannot be located or any other error occurs.
+     */
+    public Attributes findStoredProcUnit( LdapContext rootDSE, String fullSPName ) throws NamingException
     {
         SearchControls controls = new SearchControls();
         controls.setReturningAttributes( new String[] { "*" } );
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         String spUnitName = StoredProcUtils.extractStoredProcUnitName( fullSPName );
         String filter = "(storedProcUnitName=" + spUnitName + ")";
-        NamingEnumeration<SearchResult> results = rootCtx.search( spContainer, filter, controls );
+        NamingEnumeration<SearchResult> results = rootDSE.search( storedProcContainer, filter, controls );
         Attributes spUnitEntry = results.nextElement().getAttributes();
         return spUnitEntry;
     }
 
 
+    /**
+     * Initializes and returns a {@link StoredProcEngine} instance which can operate on spUnitEntry
+     * considering its specific stored procedure language.
+     * 
+     * @param spUnitEntry The entry which a {@link StoredProcEngine} type will be mathched with respect to the language identifier.
+     * @return A {@link StoredProcEngine} associated with spUnitEntry.
+     * @throws NamingException If no {@link StoredProcEngine} that can be associated with the language identifier in spUnitEntry can be found.
+     */
     public StoredProcEngine getStoredProcEngineInstance( Attributes spUnitEntry ) throws NamingException
     {
 
         String spLangId = ( String ) spUnitEntry.get( "storedProcLangId" ).get();
 
-        for ( StoredProcEngineConfig engineConfig : spEngineConfigs )
+        for ( StoredProcEngineConfig engineConfig : storedProcEngineConfigs )
         {
             if ( engineConfig.getStoredProcLangId().equalsIgnoreCase( spLangId ) )
             {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcUtils.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcUtils.java?view=diff&rev=555892&r1=555891&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcUtils.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/StoredProcUtils.java Thu Jul 12 23:49:49 2007
@@ -21,9 +21,17 @@
 
 package org.apache.directory.server.core.sp;
 
+
+/**
+ * A utility class for working with Stored Procedures.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$ $Date$
+ */
 public class StoredProcUtils
 {
     
+    /** The delimiter used to tokenize a full SP name into the unit and SP name */
     public static final String SPUnitDelimiter = ":";
 
     public static String extractStoredProcName( String fullSPName )
@@ -39,4 +47,5 @@
         String className = fullSPName.substring( 0, delimiter );
         return className;
     }
+    
 }

Copied: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngine.java (from r555600, directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngine.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngine.java?view=diff&rev=555892&p1=directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngine.java&r1=555600&p2=directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngine.java&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngine.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngine.java Thu Jul 12 23:49:49 2007
@@ -19,7 +19,7 @@
  */
 
 
-package org.apache.directory.server.core.sp;
+package org.apache.directory.server.core.sp.java;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -32,9 +32,17 @@
 import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapContext;
 
+import org.apache.directory.server.core.sp.StoredProcEngine;
+import org.apache.directory.server.core.sp.StoredProcUtils;
 import org.apache.directory.shared.ldap.util.DirectoryClassUtils;
 
 
+/**
+ * A {@link StoredProcEngine} implementation specific to Java stored procedures.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$ $Date$
+ */
 public class JavaStoredProcEngine implements StoredProcEngine
 {
 
@@ -43,6 +51,9 @@
     private Attributes spUnit;
 
 
+    /* (non-Javadoc)
+     * @see org.apache.directory.server.core.sp.StoredProcEngine#invokeProcedure(javax.naming.ldap.LdapContext, java.lang.String, java.lang.Object[])
+     */
     public Object invokeProcedure( LdapContext rootCtx, String fullSPName, Object[] spArgs ) throws NamingException
     {
         Attribute javaByteCode = spUnit.get( "javaByteCode" );
@@ -100,12 +111,18 @@
     }
 
 
+    /* (non-Javadoc)
+     * @see org.apache.directory.server.core.sp.StoredProcEngine#getSPLangId()
+     */
     public String getSPLangId()
     {
         return storedProcLangId;
     }
 
 
+    /* (non-Javadoc)
+     * @see org.apache.directory.server.core.sp.StoredProcEngine#setSPUnitEntry(javax.naming.directory.Attributes)
+     */
     public void setSPUnitEntry( Attributes spUnit )
     {
         this.spUnit = spUnit;

Copied: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngineConfig.java (from r555600, directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngineConfig.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngineConfig.java?view=diff&rev=555892&p1=directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngineConfig.java&r1=555600&p2=directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngineConfig.java&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/JavaStoredProcEngineConfig.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngineConfig.java Thu Jul 12 23:49:49 2007
@@ -19,17 +19,33 @@
  */
 
 
-package org.apache.directory.server.core.sp;
+package org.apache.directory.server.core.sp.java;
 
+import org.apache.directory.server.core.sp.StoredProcEngine;
+import org.apache.directory.server.core.sp.StoredProcEngineConfig;
+
+
+/**
+ * A {@link StoredProcEngineConfig} implementation specific to Java stored procedures.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$ $Date$
+ */
 public class JavaStoredProcEngineConfig implements StoredProcEngineConfig
 {
 
+    /* (non-Javadoc)
+     * @see org.apache.directory.server.core.sp.StoredProcEngineConfig#getStoredProcEngineType()
+     */
     public Class<? extends StoredProcEngine> getStoredProcEngineType()
     {
         return JavaStoredProcEngine.class;
     }
 
 
+    /* (non-Javadoc)
+     * @see org.apache.directory.server.core.sp.StoredProcEngineConfig#getStoredProcLangId()
+     */
     public String getStoredProcLangId()
     {
         return JavaStoredProcEngine.storedProcLangId;

Copied: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/LdapJavaStoredProcClassLoader.java (from r555600, directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapJavaStoredProcClassLoader.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/LdapJavaStoredProcClassLoader.java?view=diff&rev=555892&p1=directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapJavaStoredProcClassLoader.java&r1=555600&p2=directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/LdapJavaStoredProcClassLoader.java&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapJavaStoredProcClassLoader.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/java/LdapJavaStoredProcClassLoader.java Thu Jul 12 23:49:49 2007
@@ -18,7 +18,7 @@
  *  
  */
 
-package org.apache.directory.server.core.sp;
+package org.apache.directory.server.core.sp.java;
 
 
 import javax.naming.NamingException;

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerService.java?view=diff&rev=555892&r1=555891&r2=555892
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerService.java Thu Jul 12 23:49:49 2007
@@ -49,10 +49,10 @@
 import org.apache.directory.server.core.invocation.InvocationStack;
 import org.apache.directory.server.core.jndi.ServerLdapContext;
 import org.apache.directory.server.core.partition.PartitionNexusProxy;
-import org.apache.directory.server.core.sp.JavaStoredProcEngineConfig;
 import org.apache.directory.server.core.sp.StoredProcEngine;
 import org.apache.directory.server.core.sp.StoredProcEngineConfig;
 import org.apache.directory.server.core.sp.StoredProcExecutionManager;
+import org.apache.directory.server.core.sp.java.JavaStoredProcEngineConfig;
 import org.apache.directory.server.core.subtree.SubentryService;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;