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"