You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ca...@apache.org on 2006/08/23 03:36:55 UTC

svn commit: r433825 - in /maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src: main/java/org/apache/maven/continuum/security/acegi/acl/ main/resources/org/apache/maven/continuum/security/acegi/acl/ test/java/org/apa...

Author: carlos
Date: Tue Aug 22 18:36:49 2006
New Revision: 433825

URL: http://svn.apache.org/viewvc?rev=433825&view=rev
Log:
[CONTINUUM-825] Make AclInitializer read SQL statements from classpath

Modified:
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.java
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java
    maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.xml

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java?rev=433825&r1=433824&r2=433825&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/java/org/apache/maven/continuum/security/acegi/acl/AclInitializer.java Tue Aug 22 18:36:49 2006
@@ -16,6 +16,9 @@
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.io.InputStream;
+
 import org.acegisecurity.acl.basic.NamedEntityObjectIdentity;
 import org.acegisecurity.acl.basic.SimpleAclEntry;
 import org.acegisecurity.acl.basic.jdbc.JdbcExtendedDaoImpl;
@@ -25,6 +28,7 @@
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.util.IOUtil;
 
 /**
  * Initialize the ACL system with some default values.
@@ -42,6 +46,8 @@
 
     private SqlExecMojo sqlMojo;
 
+    private String sqlClasspathResource;
+
     public void setDao( JdbcExtendedDaoImpl dao )
     {
         this.dao = dao;
@@ -62,9 +68,57 @@
         return sqlMojo;
     }
 
+    public void setSqlClasspathResource( String sqlClasspathResource )
+    {
+        this.sqlClasspathResource = sqlClasspathResource;
+    }
+
+    /**
+     * Classpath resource that contains the SQL to be executed.
+     * 
+     * @return
+     */
+    public String getSqlClasspathResource()
+    {
+        return sqlClasspathResource;
+    }
+
     public void initialize()
         throws InitializationException
     {
+
+        InputStream is = null;
+        String sql = null;
+        try
+        {
+            is = this.getClass().getClassLoader().getResourceAsStream( getSqlClasspathResource() );
+            if ( is == null )
+            {
+                throw new InitializationException( getSqlClasspathResource() + " does not exist in the classpath" );
+            }
+            sql = IOUtil.toString( is );
+        }
+        catch ( IOException e )
+        {
+            throw new InitializationException( "Unable to read sql file from classpath: " + getSqlClasspathResource(),
+                                               e );
+        }
+        finally
+        {
+            if ( is != null )
+            {
+                try
+                {
+                    is.close();
+                }
+                catch ( IOException e )
+                {
+                    // nothing to do here
+                }
+            }
+        }
+
+        getSqlMojo().addText( sql );
 
         if ( getSqlMojo().getPassword() == null )
         {

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql?rev=433825&r1=433824&r2=433825&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql Tue Aug 22 18:36:49 2006
@@ -18,12 +18,12 @@
      FOREIGN KEY (acl_object_identity) REFERENCES acl_object_identity(id)
 );
 
---INSERT INTO acl_object_identity VALUES (1, 'org.apache.maven.continuum.model.project.Project:1', null, 'org.acegisecurity.acl.basic.SimpleAclEntry');
---INSERT INTO acl_object_identity VALUES (2, 'org.apache.maven.continuum.model.project.Project:2', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
---INSERT INTO acl_object_identity VALUES (3, 'org.apache.maven.continuum.model.project.Project:3', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
---INSERT INTO acl_object_identity VALUES (4, 'org.apache.maven.continuum.model.project.Project:4', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
---INSERT INTO acl_object_identity VALUES (5, 'org.apache.maven.continuum.model.project.Project:5', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
---INSERT INTO acl_object_identity VALUES (6, 'org.apache.maven.continuum.model.project.Project:6', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity (object_identity, parent_object, acl_class) VALUES ('org.apache.maven.continuum.model.project.ProjectGroup:1', null, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity (object_identity, parent_object, acl_class) VALUES ('org.apache.maven.continuum.model.project.ProjectGroup:2', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity (object_identity, parent_object, acl_class) VALUES ('org.apache.maven.continuum.model.project.ProjectGroup:3', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity (object_identity, parent_object, acl_class) VALUES ('org.apache.maven.continuum.model.project.ProjectGroup:4', 1, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity (object_identity, parent_object, acl_class) VALUES ('org.apache.maven.continuum.model.project.ProjectGroup:5', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
+--INSERT INTO acl_object_identity (object_identity, parent_object, acl_class) VALUES ('org.apache.maven.continuum.model.project.ProjectGroup:6', 3, 'org.acegisecurity.acl.basic.SimpleAclEntry');
 
 --INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (1, 'ROLE_ADMIN', 1);
 --INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'ROLE_ADMIN', 0);

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.java?rev=433825&r1=433824&r2=433825&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.java (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.java Tue Aug 22 18:36:49 2006
@@ -16,16 +16,7 @@
  * limitations under the License.
  */
 
-import java.io.File;
-
-import javax.sql.DataSource;
-
-import org.acegisecurity.acl.basic.jdbc.JdbcExtendedDaoImpl;
-import org.apache.commons.dbcp.BasicDataSource;
-import org.codehaus.mojo.sql.SqlExecMojo;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.console.ConsoleLogger;
 
 /**
  * Test for {@link AclInitializer} using Plexus to inject dependencies

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java?rev=433825&r1=433824&r2=433825&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/java/org/apache/maven/continuum/security/acegi/acl/AclInitializerTest.java Tue Aug 22 18:36:49 2006
@@ -16,8 +16,6 @@
  * limitations under the License.
  */
 
-import java.io.File;
-
 import javax.sql.DataSource;
 
 import junit.framework.TestCase;
@@ -48,14 +46,13 @@
         super.setUp();
         initializer = new AclInitializer();
         initializer.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "" ) );
+        initializer.setSqlClasspathResource( "org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql" );
 
         sqlMojo = new SqlExecMojo();
         sqlMojo.setUsername( "sa" );
         sqlMojo.setPassword( "" );
         sqlMojo.setDriver( "org.apache.derby.jdbc.EmbeddedDriver" );
         sqlMojo.setUrl( "jdbc:derby:target/acl-initializer-database;create=true" );
-        sqlMojo.setSrcFiles( new File[] { new File( "src/main/resources/"
-            + "org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql" ) } );
         sqlMojo.setOnError( SqlExecMojo.ON_ERROR_CONTINUE );
         initializer.setSqlMojo( sqlMojo );
 

Modified: maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.xml?rev=433825&r1=433824&r2=433825&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.xml (original)
+++ maven/continuum/branches/continuum-acegi/continuum-security/continuum-security-acegi/src/test/resources/org/apache/maven/continuum/security/acegi/acl/AclInitializerPlexusTest.xml Tue Aug 22 18:36:49 2006
@@ -15,6 +15,9 @@
           <field-name>dao</field-name>
         </requirement>
       </requirements>
+      <configuration>
+        <sqlClasspathResource>org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql</sqlClasspathResource>
+      </configuration>
     </component>
 
     <component>
@@ -48,9 +51,6 @@
         <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
         <url>jdbc:derby:${plexus.home}/database;create=true</url>
         <onError>continue</onError>
-        <srcFiles>
-          <file>src/main/resources/org/apache/maven/continuum/security/acegi/acl/acegi-acl-derby.sql</file>
-        </srcFiles>
       </configuration>
     </component>