You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/04/08 00:57:14 UTC

svn commit: r1310907 - in /archiva/redback/redback-core/trunk/redback-rbac: redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/ redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/ redback-rbac-providers/redback-rbac-...

Author: olamy
Date: Sat Apr  7 22:57:13 2012
New Revision: 1310907

URL: http://svn.apache.org/viewvc?rev=1310907&view=rev
Log:
package move to o.a.a.r module redback-rbac-jdo

Added:
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManager.java
      - copied, changed from r1310900, archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoRbacManager.java
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoTool.java
      - copied, changed from r1310900, archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoTool.java
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java   (with props)
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java   (with props)
Removed:
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/codehaus/
Modified:
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/resources/META-INF/spring-context.xml
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/resources/spring-context.xml
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/java/org/codehaus/plexus/redback/role/JpoxRoleManagerTest.java
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/resources/jpox-spring-context.xml

Copied: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManager.java (from r1310900, archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoRbacManager.java)
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManager.java?p2=archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManager.java&p1=archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoRbacManager.java&r1=1310900&r2=1310907&rev=1310907&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoRbacManager.java (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManager.java Sat Apr  7 22:57:13 2012
@@ -1,4 +1,4 @@
-package org.codehaus.plexus.redback.rbac.jdo;
+package org.apache.archiva.redback.rbac.jdo;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -31,6 +31,12 @@ import org.apache.archiva.redback.rbac.R
 import org.apache.archiva.redback.rbac.UserAssignment;
 import org.apache.archiva.redback.rbac.Permission;
 import org.apache.archiva.redback.rbac.RBACObjectAssertions;
+import org.codehaus.plexus.redback.rbac.jdo.JdoOperation;
+import org.codehaus.plexus.redback.rbac.jdo.JdoPermission;
+import org.codehaus.plexus.redback.rbac.jdo.JdoResource;
+import org.codehaus.plexus.redback.rbac.jdo.JdoRole;
+import org.codehaus.plexus.redback.rbac.jdo.JdoUserAssignment;
+import org.codehaus.plexus.redback.rbac.jdo.RbacJdoModelModelloMetadata;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;

Copied: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoTool.java (from r1310900, archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoTool.java)
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoTool.java?p2=archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoTool.java&p1=archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoTool.java&r1=1310900&r2=1310907&rev=1310907&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/codehaus/plexus/redback/rbac/jdo/JdoTool.java (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/java/org/apache/archiva/redback/rbac/jdo/JdoTool.java Sat Apr  7 22:57:13 2012
@@ -1,4 +1,4 @@
-package org.codehaus.plexus.redback.rbac.jdo;
+package org.apache.archiva.redback.rbac.jdo;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -25,6 +25,7 @@ import org.apache.archiva.redback.rbac.R
 import org.apache.archiva.redback.rbac.RbacObjectNotFoundException;
 import org.apache.archiva.redback.rbac.Role;
 import org.codehaus.plexus.jdo.JdoFactory;
+import org.codehaus.plexus.redback.rbac.jdo.JdoRole;
 import org.codehaus.plexus.util.StringUtils;
 import org.springframework.stereotype.Service;
 

Modified: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/resources/META-INF/spring-context.xml?rev=1310907&r1=1310906&r2=1310907&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/resources/META-INF/spring-context.xml (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/main/resources/META-INF/spring-context.xml Sat Apr  7 22:57:13 2012
@@ -20,18 +20,15 @@
   -->
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-           http://www.springframework.org/schema/context 
-           http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
        default-lazy-init="true">
 
-  <bean name="rBACManager#jdo" class="org.codehaus.plexus.redback.rbac.jdo.JdoRbacManager" init-method="initialize">
+  <bean name="rBACManager#jdo" class="org.apache.archiva.redback.rbac.jdo.JdoRbacManager" init-method="initialize">
     <property name="jdo" ref="jdoTool"/>
   </bean>
 
-  <bean id="jdoTool" class="org.codehaus.plexus.redback.rbac.jdo.JdoTool" init-method="initialize" lazy-init="true">
+  <bean id="jdoTool" class="org.apache.archiva.redback.rbac.jdo.JdoTool" init-method="initialize" lazy-init="true">
     <property name="jdoFactory" ref="jdoFactory#users"/>
   </bean>
 </beans>
\ No newline at end of file

Added: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java?rev=1310907&view=auto
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java (added)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java Sat Apr  7 22:57:13 2012
@@ -0,0 +1,216 @@
+package org.apache.archiva.redback.rbac.jdo;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 net.sf.ehcache.CacheManager;
+import org.apache.archiva.redback.rbac.RbacManagerException;
+import org.apache.archiva.redback.rbac.jdo.JdoRbacManager;
+import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
+import org.apache.archiva.redback.common.jdo.test.StoreManagerDebug;
+import org.apache.archiva.redback.rbac.RBACManager;
+import org.codehaus.plexus.redback.tests.AbstractRbacManagerTestCase;
+import org.jpox.AbstractPersistenceManagerFactory;
+import org.jpox.SchemaTool;
+import org.junit.Before;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
+import java.io.File;
+import java.net.URL;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * JdoRbacManagerTest:
+ *
+ * @author Jesse McConnell <jm...@apache.org>
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class JdoRbacManagerTest
+    extends AbstractRbacManagerTestCase
+{
+    private StoreManagerDebug storeManager;
+
+    @Inject
+    @Named( value = "jdoFactory#users" )
+    DefaultConfigurableJdoFactory jdoFactory;
+
+    @Inject
+    @Named( value = "rBACManager#jdo" )
+    RBACManager rbacManager;
+
+    /**
+     * Creates a new RbacStore which contains no data.
+     */
+    @Before
+    public void setUp()
+        throws Exception
+    {
+
+        super.setUp();
+
+        assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() );
+
+        jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" ); //$NON-NLS-1$
+
+        jdoFactory.setDriverName(
+            System.getProperty( "jdo.test.driver", "org.hsqldb.jdbcDriver" ) ); //$NON-NLS-1$  //$NON-NLS-2$
+
+        jdoFactory.setUrl(
+            System.getProperty( "jdo.test.url", "jdbc:hsqldb:mem:" + getName() ) ); //$NON-NLS-1$  //$NON-NLS-2$
+
+        jdoFactory.setUserName( System.getProperty( "jdo.test.user", "sa" ) ); //$NON-NLS-1$
+
+        jdoFactory.setPassword( System.getProperty( "jdo.test.pass", "" ) ); //$NON-NLS-1$
+
+        jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_COMMITTED" ); //$NON-NLS-1$ //$NON-NLS-2$
+
+        jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_COMMITTED" ); //$NON-NLS-1$ //$NON-NLS-2$
+
+        jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" ); //$NON-NLS-1$ //$NON-NLS-2$
+
+        jdoFactory.setProperty( "org.jpox.autoCreateTables", "true" );
+
+        jdoFactory.setProperty( "javax.jdo.option.RetainValues", "true" );
+
+        jdoFactory.setProperty( "javax.jdo.option.RestoreValues", "true" );
+
+        // jdoFactory.setProperty( "org.jpox.autoCreateColumns", "true" );
+
+        jdoFactory.setProperty( "org.jpox.validateTables", "true" );
+
+        jdoFactory.setProperty( "org.jpox.validateColumns", "true" );
+
+        jdoFactory.setProperty( "org.jpox.validateConstraints", "true" );
+
+        /* Enable the level 2 Ehcache class-based cache */
+        jdoFactory.setProperty( "org.jpox.cache.level2", "true" );
+        jdoFactory.setProperty( "org.jpox.cache.level2.type", "ehcacheclassbased" );
+        jdoFactory.setProperty( "org.jpox.cache.level2.configurationFile", "/ehcache.xml" ); // ehcache config
+        jdoFactory.setProperty( "org.jpox.cache.level2.cacheName", "default" ); // default cache name
+
+        Properties properties = jdoFactory.getProperties();
+
+        for ( Map.Entry<Object, Object> entry : properties.entrySet() )
+        {
+            System.setProperty( (String) entry.getKey(), (String) entry.getValue() );
+        }
+
+        URL[] jdoFileUrls =
+            new URL[]{ getClass().getResource( "/org/codehaus/plexus/redback/rbac/jdo/package.jdo" ) }; //$NON-NLS-1$
+
+
+
+        if ( ( jdoFileUrls == null ) || ( jdoFileUrls[0] == null ) )
+        {
+            fail( "Unable to process test " + getName() + " - missing package.jdo." );
+        }
+
+        File propsFile = null; // intentional
+        boolean verbose = true;
+
+        PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory();
+
+        assertNotNull( pmf );
+
+        /* set our own Store Manager to allow counting SQL statements */
+        StoreManagerDebug.setup( (AbstractPersistenceManagerFactory) pmf );
+
+        /* clean up the db */
+        SchemaTool.deleteSchemaTables( jdoFileUrls, new URL[]{ }, propsFile, verbose );
+        SchemaTool.createSchemaTables( jdoFileUrls, new URL[]{ }, propsFile, verbose, null );
+
+        PersistenceManager pm = pmf.getPersistenceManager();
+
+        pm.close();
+
+        setRbacManager( rbacManager );
+
+        /* save the store manager to access the queries executed */
+        JdoRbacManager rbacManager = (JdoRbacManager) getRbacManager();
+        storeManager = StoreManagerDebug.getConfiguredStoreManager( rbacManager.getJdo().getPersistenceManager() );
+    }
+
+
+    @Override
+    public void testGetAssignedRoles()
+        throws RbacManagerException
+    {
+        storeManager.resetCounter();
+        super.testGetAssignedRoles();
+        int counter = storeManager.counter();
+        /* without Level 2 cache: 15 queries */
+        /* with    Level 2 cache:  8 queries */
+        assertEquals( "Number of SQL queries", 8, counter );
+    }
+
+    @Override
+    public void testGetAssignedPermissionsDeep()
+        throws RbacManagerException
+    {
+        super.testGetAssignedPermissionsDeep();
+        int counter = storeManager.counter();
+        /* without Level 2 cache: 26 queries */
+        /* with    Level 2 cache: 10 queries */
+        assertEquals( "Number of SQL queries", 10, counter );
+    }
+
+    @Override
+    protected void afterSetup()
+    {
+        super.afterSetup();
+        storeManager.resetCounter();
+    }
+
+    @Override
+    public void testLargeApplicationInit()
+        throws RbacManagerException
+    {
+        for (String cacheName : CacheManager.getInstance().getCacheNames())
+        {
+            CacheManager.getInstance().getCache( cacheName ).removeAll();
+        }
+        super.testLargeApplicationInit();
+    }
+
+    @Override
+    public void testGetRolesDeep()
+        throws RbacManagerException
+    {
+        for (String cacheName : CacheManager.getInstance().getCacheNames())
+        {
+            CacheManager.getInstance().getCache( cacheName ).removeAll();
+        }
+        super.testGetRolesDeep();
+    }
+
+
+    @Override
+    public void testStoreInitialization()
+        throws Exception
+    {
+        rbacManager.eraseDatabase();
+        eventTracker.rbacInit( true );
+        super.testStoreInitialization();
+    }
+}

Propchange: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/JdoRbacManagerTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java?rev=1310907&view=auto
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java (added)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java Sat Apr  7 22:57:13 2012
@@ -0,0 +1,202 @@
+package org.apache.archiva.redback.rbac.jdo;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.StringReader;
+import java.io.StringWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+import javax.xml.stream.XMLStreamException;
+
+import junit.framework.TestCase;
+
+import org.apache.archiva.redback.rbac.Operation;
+import org.apache.archiva.redback.rbac.Resource;
+import org.codehaus.plexus.redback.rbac.jdo.JdoOperation;
+import org.codehaus.plexus.redback.rbac.jdo.JdoPermission;
+import org.codehaus.plexus.redback.rbac.jdo.JdoResource;
+import org.codehaus.plexus.redback.rbac.jdo.JdoRole;
+import org.codehaus.plexus.redback.rbac.jdo.JdoUserAssignment;
+import org.codehaus.plexus.redback.rbac.jdo.RbacDatabase;
+import org.codehaus.plexus.redback.rbac.jdo.io.stax.RbacJdoModelStaxReader;
+import org.codehaus.plexus.redback.rbac.jdo.io.stax.RbacJdoModelStaxWriter;
+
+/**
+ * Test the StAX reader and writer generated.
+ */
+public class RbacJdoModelStaxTest
+    extends TestCase
+{
+    @SuppressWarnings("unchecked")
+    public void testStax()
+        throws IOException, XMLStreamException
+    {
+        RbacDatabase database = new RbacDatabase();
+
+        JdoRole role = new JdoRole();
+        role.setAssignable( true );
+        role.setDescription( "descriptor" );
+        role.setName( "name" );
+        role.setPermanent( true );
+        role.addChildRoleName( "childRole1" );
+        role.addChildRoleName( "childRole2" );
+
+        JdoPermission permission = new JdoPermission();
+        permission.setDescription( "permDesc" );
+        permission.setName( "permName" );
+
+        JdoOperation operation = new JdoOperation();
+        operation.setDescription( "opDesc" );
+        operation.setName( "opName" );
+        operation.setPermanent( true );
+        operation.setResourceRequired( true );
+        permission.setOperation( operation );
+        database.addOperation( operation );
+
+        JdoResource resource = new JdoResource();
+        resource.setIdentifier( "resId" );
+        resource.setPattern( true );
+        resource.setPermanent( true );
+        permission.setResource( resource );
+        database.addResource( resource );
+        permission.setPermanent( true );
+        role.addPermission( permission );
+        database.addPermission( permission );
+
+        database.addRole( role );
+
+        JdoUserAssignment assignment = new JdoUserAssignment();
+        assignment.setPermanent( false );
+        assignment.setPrincipal( "principal" );
+        assignment.setTimestamp( new Date() );
+        assignment.addRoleName( "name" );
+
+        database.addUserAssignment( assignment );
+
+        StringWriter w = new StringWriter();
+        new RbacJdoModelStaxWriter().write( w, database );
+
+        RbacDatabase newDatabase = new RbacJdoModelStaxReader().read( new StringReader( w.toString() ) );
+
+        List<JdoRole> expectedRoles = database.getRoles();
+        List<JdoRole> roles = newDatabase.getRoles();
+        assertEquals( expectedRoles.size(), roles.size() );
+        for ( JdoRole r : roles )
+        {
+            boolean found = false;
+            for ( JdoRole expectedRole : expectedRoles )
+            {
+                if ( expectedRole.getName().equals( r.getName() ) )
+                {
+                    found = true;
+
+                    assertRole( expectedRole, r );
+                }
+            }
+            if ( !found )
+            {
+                fail( "Couldn't find role: " + r.getName() );
+            }
+        }
+
+        List<JdoUserAssignment> expectedUserAssignments = database.getUserAssignments();
+        List<JdoUserAssignment> userAssignments = newDatabase.getUserAssignments();
+        assertEquals( expectedUserAssignments.size(), userAssignments.size() );
+        for ( JdoUserAssignment a : userAssignments )
+        {
+            boolean found = false;
+            for ( JdoUserAssignment expectedAssignment : expectedUserAssignments )
+            {
+                if ( expectedAssignment.getPrincipal().equals( a.getPrincipal() ) )
+                {
+                    found = true;
+
+                    assertUserAssignment( expectedAssignment, a );
+                }
+            }
+            if ( !found )
+            {
+                fail( "Couldn't find assignment: " + a.getPrincipal() );
+            }
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void assertRole( JdoRole expectedRole, JdoRole role )
+    {
+        assertEquals( expectedRole.getDescription(), role.getDescription() );
+        assertPermissions( expectedRole.getPermissions(), role.getPermissions() );
+        assertEquals( expectedRole.getChildRoleNames(), role.getChildRoleNames() );
+    }
+
+    private void assertUserAssignment( JdoUserAssignment expectedAssignment, JdoUserAssignment assignment )
+    {
+        SimpleDateFormat sdf = new SimpleDateFormat( "EEE, d MMM yyyy HH:mm:ss Z", Locale.US );
+        assertNotNull( expectedAssignment.getTimestamp() );
+        assertNotNull( assignment.getTimestamp() );
+
+        assertEquals( sdf.format( expectedAssignment.getTimestamp() ), sdf.format( assignment.getTimestamp() ) );
+        assertEquals( expectedAssignment.getRoleNames(), assignment.getRoleNames() );
+    }
+
+    private void assertPermissions( List<JdoPermission> expectedPermissions, List<JdoPermission> permissions )
+    {
+        assertEquals( expectedPermissions.size(), permissions.size() );
+        for ( JdoPermission permission : permissions )
+        {
+            boolean found = false;
+            for ( JdoPermission expectedPermission : expectedPermissions )
+            {
+                if ( expectedPermission.getName().equals( permission.getName() ) )
+                {
+                    found = true;
+
+                    assertPermission( expectedPermission, permission );
+                }
+            }
+            if ( !found )
+            {
+                fail( "Couldn't find permission: " + permission.getName() );
+            }
+        }
+    }
+
+    private void assertPermission( JdoPermission expectedPermission, JdoPermission permission )
+    {
+        assertEquals( expectedPermission.getDescription(), permission.getDescription() );
+        assertOperation( expectedPermission.getOperation(), permission.getOperation() );
+        assertResource( expectedPermission.getResource(), permission.getResource() );
+    }
+
+    private void assertResource( Resource expectedResource, Resource resource )
+    {
+        assertEquals( expectedResource.getIdentifier(), resource.getIdentifier() );
+    }
+
+    private void assertOperation( Operation expectedOperation, Operation operation )
+    {
+        assertEquals( expectedOperation.getName(), operation.getName() );
+        assertEquals( expectedOperation.getDescription(), operation.getDescription() );
+    }
+}

Propchange: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/java/org/apache/archiva/redback/rbac/jdo/RbacJdoModelStaxTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/resources/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/resources/spring-context.xml?rev=1310907&r1=1310906&r2=1310907&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/resources/spring-context.xml (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-jdo/src/test/resources/spring-context.xml Sat Apr  7 22:57:13 2012
@@ -20,11 +20,8 @@
   -->
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-           http://www.springframework.org/schema/context 
-           http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
   <bean name="jdoFactory#users" class="org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory">
     <property name="driverName" value="org.hsqldb.jdbcDriver"/>

Modified: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/java/org/codehaus/plexus/redback/role/JpoxRoleManagerTest.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/java/org/codehaus/plexus/redback/role/JpoxRoleManagerTest.java?rev=1310907&r1=1310906&r2=1310907&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/java/org/codehaus/plexus/redback/role/JpoxRoleManagerTest.java (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/java/org/codehaus/plexus/redback/role/JpoxRoleManagerTest.java Sat Apr  7 22:57:13 2012
@@ -19,8 +19,8 @@ package org.codehaus.plexus.redback.role
  * under the License.
  */
 
+import org.apache.archiva.redback.rbac.jdo.JdoRbacManager;
 import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
-import org.codehaus.plexus.redback.rbac.jdo.JdoRbacManager;
 import org.junit.Before;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;

Modified: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/resources/jpox-spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/resources/jpox-spring-context.xml?rev=1310907&r1=1310906&r2=1310907&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/resources/jpox-spring-context.xml (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-role-manager/src/test/resources/jpox-spring-context.xml Sat Apr  7 22:57:13 2012
@@ -49,7 +49,7 @@
   <alias name="roleManager" alias="roleManager#jpox"/>
 
 
-  <bean name="rBACManager#jdo" class="org.codehaus.plexus.redback.rbac.jdo.JdoRbacManager">
+  <bean name="rBACManager#jdo" class="org.apache.archiva.redback.rbac.jdo.JdoRbacManager">
     <property name="jdo" ref="jdoTool"/>
     <property name="enableCache" value="false"/>
   </bean>