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>