You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/09/11 11:57:24 UTC
svn commit: r442150 - in
/maven/shared/trunk/maven-user/maven-user-acegi/src/main:
java/org/apache/maven/user/acegi/acl/ resources/ resources/org/
resources/org/apache/ resources/org/apache/maven/
resources/org/apache/maven/user/ resources/org/apache/m...
Author: carlos
Date: Mon Sep 11 02:57:23 2006
New Revision: 442150
URL: http://svn.apache.org/viewvc?view=rev&rev=442150
Log:
Move AclInitializer from Continuum
Added:
maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java (with props)
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-derby.sql
maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-hsql.sql
Added: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java?view=auto&rev=442150
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java (added)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java Mon Sep 11 02:57:23 2006
@@ -0,0 +1,154 @@
+package org.apache.maven.user.acegi.acl;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.acegisecurity.acl.basic.jdbc.JdbcExtendedDaoImpl;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.codehaus.mojo.sql.SqlExecMojo;
+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.
+ *
+ * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
+ * @version $Id$
+ */
+public class AclInitializer
+ extends AbstractLogEnabled
+ implements Initializable
+{
+ public static final String ROLE = AclInitializer.class.getName();
+
+ private JdbcExtendedDaoImpl dao;
+
+ private SqlExecMojo sqlMojo;
+
+ private String sqlClasspathResource;
+
+ public void setDao( JdbcExtendedDaoImpl dao )
+ {
+ this.dao = dao;
+ }
+
+ public JdbcExtendedDaoImpl getDao()
+ {
+ return dao;
+ }
+
+ public void setSqlMojo( SqlExecMojo sqlMojo )
+ {
+ this.sqlMojo = sqlMojo;
+ }
+
+ public SqlExecMojo getSqlMojo()
+ {
+ return sqlMojo;
+ }
+
+ public void setSqlClasspathResource( String sqlClasspathResource )
+ {
+ this.sqlClasspathResource = sqlClasspathResource;
+ }
+
+ /**
+ * Classpath resource that contains the SQL to be executed.
+ *
+ * @return classpath path
+ */
+ 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 )
+ {
+ getSqlMojo().setPassword( "" );
+ }
+
+ try
+ {
+ getSqlMojo().execute();
+ }
+ catch ( MojoExecutionException e )
+ {
+ throw new InitializationException( e.getMessage(), e );
+ }
+
+ /* execute Spring initialization callback */
+ getDao().afterPropertiesSet();
+
+ /* poor check to see if this is the first time initializing the database */
+ if ( getSqlMojo().getSuccessfulStatements() >= 2 )
+ {
+ /* tables were created, insert default values */
+ getLogger().info( "Initializing ACL database" );
+
+ insertDefaultData();
+ }
+
+ }
+
+ /**
+ * Callback to insert default data when tables are created
+ */
+ protected void insertDefaultData()
+ {
+ }
+}
Propchange: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/acl/AclInitializer.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-derby.sql
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-derby.sql?view=auto&rev=442150
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-derby.sql (added)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-derby.sql Mon Sep 11 02:57:23 2006
@@ -0,0 +1,32 @@
+CREATE SCHEMA sa;
+
+CREATE TABLE acl_object_identity (
+ id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY CONSTRAINT acl_object_identity_PK PRIMARY KEY,
+ object_identity VARCHAR(250) NOT NULL,
+ parent_object INTEGER,
+ acl_class VARCHAR(250) NOT NULL,
+ CONSTRAINT unique_object_identity UNIQUE(object_identity),
+ FOREIGN KEY (parent_object) REFERENCES acl_object_identity(id) ON DELETE CASCADE
+);
+
+CREATE TABLE acl_permission (
+ id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY CONSTRAINT acl_permission_PK PRIMARY KEY,
+ acl_object_identity INTEGER NOT NULL,
+ recipient VARCHAR(100) NOT NULL,
+ mask INTEGER NOT NULL,
+ CONSTRAINT unique_recipient UNIQUE(acl_object_identity, recipient),
+ FOREIGN KEY (acl_object_identity) REFERENCES acl_object_identity(id) ON DELETE CASCADE
+);
+
+--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);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'marissa', 2);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (3, 'scott', 14);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (6, 'scott', 1);
Added: maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-hsql.sql
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-hsql.sql?view=auto&rev=442150
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-hsql.sql (added)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/main/resources/org/apache/maven/user/acegi/acl/acegi-acl-hsql.sql Mon Sep 11 02:57:23 2006
@@ -0,0 +1,30 @@
+CREATE TABLE acl_object_identity (
+ id INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ object_identity VARCHAR(250) NOT NULL,
+ parent_object INTEGER,
+ acl_class VARCHAR(250) NOT NULL,
+ CONSTRAINT unique_object_identity UNIQUE(object_identity),
+ FOREIGN KEY (parent_object) REFERENCES acl_object_identity(id) ON DELETE CASCADE
+);
+
+CREATE TABLE acl_permission (
+ id INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ acl_object_identity INTEGER NOT NULL,
+ recipient VARCHAR(100) NOT NULL,
+ mask INTEGER NOT NULL,
+ CONSTRAINT unique_recipient UNIQUE(acl_object_identity, recipient),
+ FOREIGN KEY (acl_object_identity) REFERENCES acl_object_identity(id) ON DELETE CASCADE
+);
+
+--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);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (2, 'marissa', 2);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (3, 'scott', 14);
+--INSERT INTO acl_permission (acl_object_identity, recipient, mask) VALUES (6, 'scott', 1);