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/08/19 01:02:57 UTC
svn commit: r432768 - in /maven/shared/trunk/maven-user/maven-user-model: ./
src/main/java/org/apache/maven/user/model/
src/main/java/org/apache/maven/user/model/impl/ src/main/mdo/
src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apache/...
Author: carlos
Date: Fri Aug 18 16:02:56 2006
New Revision: 432768
URL: http://svn.apache.org/viewvc?rev=432768&view=rev
Log:
[CONTINUUM-800] Added JDO fixes and test, upgrade to 1.1.1
Submitted By: Joakim Erdfelt
Added:
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/
maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java (with props)
maven/shared/trunk/maven-user/maven-user-model/src/test/resources/
maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/
maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/
maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml (with props)
maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties (with props)
Modified:
maven/shared/trunk/maven-user/maven-user-model/pom.xml
maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/UserManager.java
maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/impl/DefaultUserManager.java
maven/shared/trunk/maven-user/maven-user-model/src/main/mdo/user.xml
Modified: maven/shared/trunk/maven-user/maven-user-model/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/pom.xml?rev=432768&r1=432767&r2=432768&view=diff
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/pom.xml (original)
+++ maven/shared/trunk/maven-user/maven-user-model/pom.xml Fri Aug 18 16:02:56 2006
@@ -1,9 +1,12 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
-
+
<parent>
<groupId>org.apache.maven.shared.user</groupId>
<artifactId>maven-user</artifactId>
@@ -11,7 +14,7 @@
</parent>
<artifactId>maven-user-model</artifactId>
-
+
<name>Maven User Management Model</name>
<description>User Management Model Classes</description>
@@ -29,6 +32,18 @@
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
+ <dependency>
+ <groupId>jpox</groupId>
+ <artifactId>jpox</artifactId>
+ <version>1.1.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.7.3.3</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
@@ -59,6 +74,17 @@
<execution>
<goals>
<goal>enhance</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
</goals>
</execution>
</executions>
Modified: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/UserManager.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/UserManager.java?rev=432768&r1=432767&r2=432768&view=diff
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/UserManager.java (original)
+++ maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/UserManager.java Fri Aug 18 16:02:56 2006
@@ -29,7 +29,8 @@
*/
public interface UserManager
{
-
+ public static final String ROLE = UserManager.class.getName();
+
// ----------------------------------------------------------------------
// User
// ----------------------------------------------------------------------
Modified: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/impl/DefaultUserManager.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/impl/DefaultUserManager.java?rev=432768&r1=432767&r2=432768&view=diff
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/impl/DefaultUserManager.java (original)
+++ maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/impl/DefaultUserManager.java Fri Aug 18 16:02:56 2006
@@ -44,6 +44,8 @@
/**
* Default implementation of the {@link UserManager} interface.
*
+ * @plexus.component role="org.apache.maven.user.model.UserManager"
+ *
* @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
* @version $Id$
*/
@@ -94,9 +96,9 @@
}
catch ( PlexusStoreException pse )
{
- //log exception
+ // TODO log exception
}
- catch ( EntityExistsException eee )
+ catch ( EntityNotFoundException eee )
{
return null;
}
@@ -193,7 +195,7 @@
{
//log exception
}
- catch ( EntityExistsException eee )
+ catch ( EntityNotFoundException eee )
{
return null;
}
Modified: maven/shared/trunk/maven-user/maven-user-model/src/main/mdo/user.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/main/mdo/user.xml?rev=432768&r1=432767&r2=432768&view=diff
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/src/main/mdo/user.xml (original)
+++ maven/shared/trunk/maven-user/maven-user-model/src/main/mdo/user.xml Fri Aug 18 16:02:56 2006
@@ -10,7 +10,7 @@
</defaults>
<classes>
- <class>
+ <class stash.storable="true">
<name>UserGroup</name>
<version>1.0.0+</version>
<fields>
@@ -33,14 +33,14 @@
<field>
<name>permissions</name>
<version>1.0.0+</version>
- <association stash.part="true" jpox.dependent="false">
+ <association stash.part="false">
<type>Permission</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true">
<name>User</name>
<version>1.0.0+</version>
<fields>
@@ -79,14 +79,14 @@
<field>
<name>group</name>
<version>1.0.0+</version>
- <association stash.part="true" jpox.dependent="false">
+ <association stash.part="false">
<type>UserGroup</type>
- </association>
+ </association>
</field>
</fields>
</class>
- <class>
+ <class stash.storable="true">
<name>Permission</name>
<version>1.0.0+</version>
<fields>
Added: maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java?rev=432768&view=auto
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java (added)
+++ maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java Fri Aug 18 16:02:56 2006
@@ -0,0 +1,372 @@
+package org.apache.maven.user.model.impl;
+
+/*
+ * 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 org.apache.maven.user.model.Permission;
+import org.apache.maven.user.model.User;
+import org.apache.maven.user.model.UserGroup;
+import org.apache.maven.user.model.UserManager;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.jdo.ConfigurableJdoFactory;
+import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
+import org.codehaus.plexus.jdo.JdoFactory;
+import org.jpox.SchemaTool;
+
+import java.net.URL;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
+
+/**
+ * Test Cases for the Default User Manager.
+ *
+ * @version $Id$
+ */
+public class DefaultUserManagerTest
+ extends PlexusTestCase
+{
+ UserManager usermanager = null;
+
+ /**
+ * Creates a new UserManager which contains no data.
+ */
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ ConfigurableJdoFactory jdoFactory = (ConfigurableJdoFactory) lookup( JdoFactory.ROLE );
+ assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() );
+
+ jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" );
+
+ jdoFactory.setDriverName( "org.hsqldb.jdbcDriver" );
+
+ jdoFactory.setUrl( "jdbc:hsqldb:mem:" + getName() );
+
+ jdoFactory.setUserName( "sa" );
+
+ jdoFactory.setPassword( "" );
+
+ jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_UNCOMMITTED" );
+
+ jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_UNCOMMITTED" );
+
+ jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" );
+
+ Properties properties = jdoFactory.getProperties();
+
+ for ( Iterator it = properties.entrySet().iterator(); it.hasNext(); )
+ {
+ Map.Entry entry = (Map.Entry) it.next();
+
+ System.setProperty( (String) entry.getKey(), (String) entry.getValue() );
+ }
+
+ SchemaTool.createSchemaTables( new URL[] { getClass().getResource( "/META-INF/package.jdo" ) }, null, false );
+
+ PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory();
+
+ assertNotNull( pmf );
+
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ pm.close();
+
+ usermanager = (UserManager) lookup( UserManager.ROLE );
+ }
+
+ public void testAddGetUser()
+ throws Exception
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+
+ User smcqueen = new User();
+ smcqueen.setUsername( "smcqueen" );
+ smcqueen.setFullName( "Steve McQueen" );
+ usermanager.addUser( smcqueen );
+
+ assertEquals( 1, usermanager.getUsers().size() );
+
+ User actual = usermanager.getUser( 1 );
+ assertEquals( smcqueen, actual );
+ }
+
+ public void testUpdateUser()
+ {
+ assertNotNull( usermanager );
+
+ User jgarner = new User();
+ jgarner.setUsername( "jgarner" );
+ jgarner.setFullName( "James Garner" );
+ usermanager.addUser( jgarner );
+
+ User fetched = usermanager.getUserByUsername( "jgarner" );
+ fetched.setFullName( "The Scrounger" );
+
+ usermanager.updateUser( fetched );
+
+ User actual = usermanager.getUserByUsername( "jgarner" );
+
+ assertEquals( "The Scrounger", actual.getFullName() );
+ }
+
+ public void testGetUser()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+
+ User rattenborough = new User();
+ rattenborough.setUsername( "rattenborough" );
+ rattenborough.setFullName( "Richard Attenborough" );
+ usermanager.addUser( rattenborough );
+
+ User dpleasence = new User();
+ dpleasence.setUsername( "dpleasence" );
+ dpleasence.setFullName( "Donald Pleasence" );
+ usermanager.addUser( dpleasence );
+
+ assertEquals( 2, usermanager.getUsers().size() );
+
+ User actual = usermanager.getUser( 1 );
+ assertEquals( rattenborough, actual );
+
+ User actual2 = usermanager.getUser( 2 );
+ assertEquals( dpleasence, actual2 );
+ }
+
+ public void testRemoveUser()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+
+ User rattenborough = new User();
+ rattenborough.setUsername( "rattenborough" );
+ rattenborough.setFullName( "Richard Attenborough" );
+ usermanager.addUser( rattenborough );
+
+ User dpleasence = new User();
+ dpleasence.setUsername( "dpleasence" );
+ dpleasence.setFullName( "Donald Pleasence" );
+ usermanager.addUser( dpleasence );
+
+ assertEquals( 2, usermanager.getUsers().size() );
+
+ User actual = usermanager.getUser( 1 );
+ assertEquals( rattenborough, actual );
+
+ usermanager.removeUser( 1 );
+
+ try
+ {
+ actual = usermanager.getUser( 1 );
+ }
+ catch ( Exception e )
+ {
+ fail( "UserManager.getUser(int) should not throw an Exception: " + e.getClass().getName() + " - "
+ + e.getMessage() );
+ }
+ assertNull( "removed user should no longer be returned.", actual );
+
+ User actual2 = usermanager.getUser( 2 );
+ assertEquals( "removed user should not affect existing user ids.", dpleasence, actual2 );
+ }
+
+ public void testAddGetUserGroupByName()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+ assertEquals( "New UserManager should contain no groups.", 0, usermanager.getUserGroups().size() );
+
+ UserGroup british = new UserGroup();
+ british.setName( "raf" );
+ british.setDescription( "Royal Air Force" );
+
+ usermanager.addUserGroup( british );
+
+ UserGroup american = new UserGroup();
+ american.setName( "usaaf" );
+ american.setDescription( "United States Army Air Forces" );
+
+ usermanager.addUserGroup( american );
+
+ assertEquals( 2, usermanager.getUserGroups().size() );
+
+ UserGroup actual = usermanager.getUserGroup( "raf" );
+ assertEquals( british, actual );
+ }
+
+ public void testAddGetUserGroupById()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+ assertEquals( "New UserManager should contain no groups.", 0, usermanager.getUserGroups().size() );
+
+ UserGroup british = new UserGroup();
+ british.setName( "raf" );
+ british.setDescription( "Royal Air Force" );
+
+ usermanager.addUserGroup( british );
+
+ UserGroup american = new UserGroup();
+ american.setName( "usaaf" );
+ american.setDescription( "United States Army Air Forces" );
+
+ usermanager.addUserGroup( american );
+
+ assertEquals( 2, usermanager.getUserGroups().size() );
+
+ UserGroup actualviaName = usermanager.getUserGroup( 1 );
+ assertEquals( british, actualviaName );
+ }
+
+ public void testUpdateUserGroup()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+ assertEquals( "New UserManager should contain no groups.", 0, usermanager.getUserGroups().size() );
+
+ UserGroup british = new UserGroup();
+ british.setName( "raf" );
+ british.setDescription( "Royal Air Force" );
+
+ usermanager.addUserGroup( british );
+
+ assertEquals( 1, usermanager.getUserGroups().size() );
+
+ UserGroup raf = usermanager.getUserGroup( "raf" );
+ raf.setDescription( "Royal Air Force, British" );
+
+ usermanager.updateUserGroup( raf );
+
+ UserGroup actual = usermanager.getUserGroup( "raf" );
+ assertEquals( raf, actual );
+ }
+
+ public void testGetUserGroups()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+ assertEquals( "New UserManager should contain no groups.", 0, usermanager.getUserGroups().size() );
+
+ UserGroup british = new UserGroup();
+ british.setName( "raf" );
+ british.setDescription( "Royal Air Force" );
+
+ usermanager.addUserGroup( british );
+
+ UserGroup american = new UserGroup();
+ american.setName( "usaaf" );
+ american.setDescription( "United States Army Air Forces" );
+
+ usermanager.addUserGroup( american );
+
+ List groups = usermanager.getUserGroups();
+ assertNotNull( groups );
+ assertEquals( 2, groups.size() );
+ }
+
+ public void testRemoveUserGroup()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+ assertEquals( "New UserManager should contain no groups.", 0, usermanager.getUserGroups().size() );
+
+ UserGroup british = new UserGroup();
+ british.setName( "raf" );
+ british.setDescription( "Royal Air Force" );
+
+ usermanager.addUserGroup( british );
+
+ UserGroup american = new UserGroup();
+ american.setName( "usaaf" );
+ american.setDescription( "United States Army Air Forces" );
+
+ usermanager.addUserGroup( american );
+
+ assertEquals( 2, usermanager.getUserGroups().size() );
+
+ UserGroup actual = usermanager.getUserGroup( "raf" );
+ assertEquals( british, actual );
+
+ usermanager.removeUserGroup( 1 );
+
+ try
+ {
+ actual = usermanager.getUserGroup( "raf" );
+ }
+ catch ( Exception e )
+ {
+ fail( "UserManager.getUserGroup(int) should not throw an Exception: " + e.getClass().getName() + " - "
+ + e.getMessage() );
+ }
+ assertNull( "removed user group should no longer be returned.", actual );
+
+ UserGroup actual2 = usermanager.getUserGroup( "usaaf" );
+ assertEquals( "removed user should not affect existing user ids.", american, actual2 );
+ }
+
+ public void testGetSetPermissions()
+ {
+ assertNotNull( usermanager );
+
+ assertEquals( "New UserManager should contain no users.", 0, usermanager.getUsers().size() );
+ assertEquals( "New UserManager should contain no groups.", 0, usermanager.getUserGroups().size() );
+
+ Permission canFly = new Permission();
+ canFly.setName( "can_fly" );
+ canFly.setDescription( "Allows for flight." );
+
+ Permission canBomb = new Permission();
+ canBomb.setName( "can_bomb" );
+ canBomb.setDescription( "Allows for bombing." );
+
+ UserGroup british = new UserGroup();
+ british.setName( "raf" );
+ british.setDescription( "Royal Air Force" );
+ british.addPermission( canFly );
+ british.addPermission( canBomb );
+
+ usermanager.addUserGroup( british );
+
+ UserGroup american = new UserGroup();
+ american.setName( "usaaf" );
+ american.setDescription( "United States Army Air Forces" );
+ american.addPermission( canFly );
+
+ usermanager.addUserGroup( american );
+
+ assertEquals( 2, usermanager.getUserGroups().size() );
+
+ UserGroup actual = usermanager.getUserGroup( "raf" );
+
+ assertEquals( 2, actual.getPermissions().size() );
+ }
+}
Propchange: maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-user/maven-user-model/src/test/java/org/apache/maven/user/model/impl/DefaultUserManagerTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml?rev=432768&view=auto
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml (added)
+++ maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml Fri Aug 18 16:02:56 2006
@@ -0,0 +1,8 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.codehaus.plexus.jdo.JdoFactory</role>
+ <implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation>
+ </component>
+ </components>
+</component-set>
Propchange: maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-user/maven-user-model/src/test/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties?rev=432768&view=auto
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties (added)
+++ maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties Fri Aug 18 16:02:56 2006
@@ -0,0 +1,10 @@
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=WARN, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
Propchange: maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-user/maven-user-model/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"