Author: carlos Date: Tue Aug 29 00:07:26 2006 New Revision: 437988 URL: http://svn.apache.org/viewvc?rev=437988&view=rev Log: Take out database code from UserManager into UserStore
Added: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java (with props) maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java (with props) Modified: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/impl/DefaultUserManager.java 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=437988&r1=437987&r2=437988&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 Tue Aug 29 00:07:26 2006 @@ -17,17 +17,10 @@ */ import java.util.ArrayList; -import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; -import javax.jdo.Extent; -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; -import javax.jdo.Query; -import javax.jdo.Transaction; - import org.apache.maven.user.model.Messages; import org.apache.maven.user.model.PasswordEncoder; import org.apache.maven.user.model.PasswordRule; @@ -37,10 +30,7 @@ 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.jdo.JdoFactory; -import org.codehaus.plexus.jdo.PlexusJdoUtils; -import org.codehaus.plexus.jdo.PlexusObjectNotFoundException; -import org.codehaus.plexus.jdo.PlexusStoreException; +import org.apache.maven.user.model.store.UserStore; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; import org.codehaus.plexus.util.StringUtils; @@ -59,40 +49,36 @@ /** * @plexus.requirement */ - private JdoFactory jdoFactory; - + private UserStore userStore; + /** * @plexus.requirement role-hint="sha256" */ private PasswordEncoder passwordEncoder; - + /** * @plexus.configuration default-value="Step doog ekam Skravdraa" */ private String salt; - + /** * The List of [EMAIL PROTECTED] PasswordRule} objects. */ private List rules; - - private PersistenceManagerFactory pmf; - - + // ---------------------------------------------------------------------- // Component Lifecycle // ---------------------------------------------------------------------- - + public void initialize() throws InitializationException { - pmf = jdoFactory.getPersistenceManagerFactory(); rules = new ArrayList(); - + // TODO: Find way to have plexus initialize this list with only 1 item. - addPasswordRule(new MustHavePasswordRule()); + addPasswordRule( new MustHavePasswordRule() ); } - + public boolean login( String username, String rawPassword ) { User user = getUser( username ); @@ -103,26 +89,25 @@ return this.passwordEncoder.isPasswordValid( user.getEncodedPassword(), rawPassword, salt ); } - - + public User addUser( User user ) throws PasswordRuleViolationException { - if(user.getAccountId() > 0) + if ( user.getAccountId() > 0 ) { - throw new IllegalStateException( Messages.getString("user.manager.cannot.add.user.with.accountId") ); //$NON-NLS-1$ + throw new IllegalStateException( Messages.getString( "user.manager.cannot.add.user.with.accountId" ) ); //$NON-NLS-1$ } - + processPasswordChange( user ); - - return (User) addObject( user ); + + return userStore.addUser( user ); } private void processPasswordChange( User user ) throws PasswordRuleViolationException { validatePassword( user ); - + if ( user.isGuest() ) { //TODO we shouldn't allow password changes for guest users, throw exception before getting here @@ -133,7 +118,7 @@ user.setEncodedPassword( this.passwordEncoder.encodePassword( user.getPassword(), salt ) ); } user.setPassword( null ); - + user.setLastPasswordChange( new Date() ); // update timestamp to now. } @@ -159,12 +144,12 @@ public UserGroup addUserGroup( UserGroup userGroup ) { - if(userGroup.getId() > 0) + if ( userGroup.getId() > 0 ) { - throw new IllegalStateException( Messages.getString("user.manager.cannot.add.group.with.id") ); //$NON-NLS-1$ + throw new IllegalStateException( Messages.getString( "user.manager.cannot.add.group.with.id" ) ); //$NON-NLS-1$ } - - return (UserGroup) addObject( userGroup ); + + return userStore.addUserGroup( userGroup ); } public PasswordEncoder getPasswordEncoder() @@ -174,20 +159,9 @@ public User getUser( int accountId ) { - User user = null; - - try - { - user = (User) getObjectById( User.class, accountId ); - } - catch ( PlexusStoreException pse ) - { - // TODO log exception - } - return user; - + return userStore.getUser( accountId ); } - + /** * Get a user by name. User password won't be returned for security reasons. * @@ -199,188 +173,66 @@ { return getUser( username ); } - + public User getUser( String username ) { - PersistenceManager pm = getPersistenceManager(); - - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - Extent extent = pm.getExtent( User.class, true ); - - Query query = pm.newQuery( extent ); - - query.declareImports( "import java.lang.String" ); //$NON-NLS-1$ - - query.declareParameters( "String username" ); //$NON-NLS-1$ - - query.setFilter( "this.username == username" ); //$NON-NLS-1$ - - Collection result = (Collection) query.execute( username ); - - if ( result.size() == 0 ) - { - tx.commit(); - - return null; - } - - Object object = pm.detachCopy( result.iterator().next() ); - - tx.commit(); - - return (User) object; - } - finally - { - rollback( tx ); - } - } + return userStore.getUser( username ); + } public User getGuestUser() { - PersistenceManager pm = getPersistenceManager(); - - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - Extent extent = pm.getExtent( User.class, true ); - - Query query = pm.newQuery( extent ); - - query.setFilter( "this.guest == true" ); //$NON-NLS-1$ - - Collection result = (Collection) query.execute(); - - if ( result.size() == 0 ) - { - tx.commit(); - - return null; - } - - Object object = pm.detachCopy( result.iterator().next() ); - - tx.commit(); - - return (User) object; - } - finally - { - rollback( tx ); - } + return userStore.getGuestUser(); } public UserGroup getUserGroup( int userGroupId ) { - UserGroup userGroup = null; - - try - { - userGroup = (UserGroup) getObjectById( UserGroup.class, userGroupId ); - } - catch ( PlexusStoreException pse ) - { - //TODO log exception - } - return userGroup; + return userStore.getUserGroup( userGroupId ); } public UserGroup getUserGroup( String name ) { - PersistenceManager pm = getPersistenceManager(); - - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - Extent extent = pm.getExtent( UserGroup.class, true ); - - Query query = pm.newQuery( extent ); - - query.declareImports( "import java.lang.String" ); //$NON-NLS-1$ - - query.declareParameters( "String name" ); //$NON-NLS-1$ - - query.setFilter( "this.name == name" ); //$NON-NLS-1$ - - Collection result = (Collection) query.execute( name ); - - if ( result.size() == 0 ) - { - tx.commit(); - - return null; - } - - Object object = pm.detachCopy( result.iterator().next() ); - - tx.commit(); - - return (UserGroup) object; - } - finally - { - rollback( tx ); - } + return userStore.getUserGroup( name ); } public List getUserGroups() { - return getAllObjectsDetached( UserGroup.class ); + return userStore.getUserGroups(); } public List getUsers() { - return getAllObjectsDetached( User.class ); + return userStore.getUsers(); } public void removeUser( int userId ) { - User user = getUser( userId ); - - removeObject( user ); + userStore.removeUser( userId ); } public void removeUser( String username ) { - User user = getUser( username ); - - removeObject( user ); + userStore.removeUser( username ); } - + public void removeUserGroup( int userGroupId ) { - UserGroup userGroup = getUserGroup( userGroupId ); - - removeObject( userGroup ); + userStore.removeUserGroup( userGroupId ); } - + public void removeUserGroup( String userGroupName ) { - UserGroup userGroup = getUserGroup( userGroupName ); - - removeObject( userGroup ); + userStore.removeUserGroup( userGroupName ); } public void setPasswordEncoder( PasswordEncoder passwordEncoder ) { this.passwordEncoder = passwordEncoder; } - + public void addPasswordRule( PasswordRule rule ) { // TODO: check for duplicates? - + this.rules.add( rule ); } @@ -397,157 +249,37 @@ public void updateUser( User user ) throws PasswordRuleViolationException { - try + // If password is supplied, assume changing of password. + if ( !StringUtils.isEmpty( user.getPassword() ) ) { - // If password is supplied, assume changing of password. - if ( !StringUtils.isEmpty( user.getPassword() ) ) - { - processPasswordChange( user ); - } - - updateObject( user ); - } - catch ( PlexusStoreException pse ) - { - //log exception + processPasswordChange( user ); } + + userStore.updateUser( user ); } public void updateUserGroup( UserGroup userGroup ) { - try - { - updateObject( userGroup ); - } - catch ( PlexusStoreException pse ) - { - //log exception - } + userStore.updateUserGroup( userGroup ); } public List getPermissions() { - return getAllObjectsDetached( Permission.class ); + return userStore.getPermissions(); } public Permission getPermission( String name ) { - PersistenceManager pm = getPersistenceManager(); - - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - Extent extent = pm.getExtent( Permission.class, true ); - - Query query = pm.newQuery( extent ); - - query.declareImports( "import java.lang.String" ); //$NON-NLS-1$ - - query.declareParameters( "String name" ); //$NON-NLS-1$ - - query.setFilter( "this.name == name" ); //$NON-NLS-1$ - - Collection result = (Collection) query.execute( name ); - - if ( result.size() == 0 ) - { - tx.commit(); - - return null; - } - - Object object = pm.detachCopy( result.iterator().next() ); - - tx.commit(); - - return (Permission) object; - } - finally - { - rollback( tx ); - } + return userStore.getPermission( name ); } public Permission addPermission( Permission perm ) { - if(perm.getId() > 0) + if ( perm.getId() > 0 ) { - throw new IllegalStateException( Messages.getString("user.manager.cannot.add.permission.with.id") ); //$NON-NLS-1$ + throw new IllegalStateException( Messages.getString( "user.manager.cannot.add.permission.with.id" ) ); //$NON-NLS-1$ } - - return (Permission) addObject( perm ); - } - - private Object addObject( Object object ) - { - return PlexusJdoUtils.addObject( getPersistenceManager(), object ); - } - - private Object getObjectById( Class clazz, int id ) - throws PlexusStoreException - { - return getObjectById( clazz, id, null ); - } - - private Object getObjectById( Class clazz, int id, String fetchGroup ) - throws PlexusStoreException - { - try - { - return PlexusJdoUtils.getObjectById( getPersistenceManager(), clazz, id, fetchGroup ); - } - catch ( PlexusObjectNotFoundException e ) - { - // TODO make PlexusObjectNotFoundException runtime or change plexus not to wrap jdo exceptions - throw new RuntimeException( e.getMessage() ); - } - catch ( PlexusStoreException e ) - { - throw new PlexusStoreException( e.getMessage(), e ); - } - } - - private List getAllObjectsDetached( Class clazz ) - { - return getAllObjectsDetached( clazz, null ); - } - private List getAllObjectsDetached( Class clazz, String fetchGroup ) - { - return getAllObjectsDetached( clazz, null, fetchGroup ); + return (Permission) userStore.addPermission( perm ); } - - private List getAllObjectsDetached( Class clazz, String ordering, String fetchGroup ) - { - return PlexusJdoUtils.getAllObjectsDetached( getPersistenceManager(), clazz, ordering, fetchGroup ); - } - - private void removeObject( Object o ) - { - PlexusJdoUtils.removeObject( getPersistenceManager(), o ); - } - - private void updateObject( Object object ) - throws PlexusStoreException - { - PlexusJdoUtils.updateObject( getPersistenceManager(), object ); - } - - private PersistenceManager getPersistenceManager() - { - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.getFetchPlan().setMaxFetchDepth( -1 ); - - return pm; - } - - private void rollback( Transaction tx ) - { - PlexusJdoUtils.rollbackIfActive( tx ); - } - } Added: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java?rev=437988&view=auto ============================================================================== --- maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java (added) +++ maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java Tue Aug 29 00:07:26 2006 @@ -0,0 +1,70 @@ +package org.apache.maven.user.model.store; + +/* + * Copyright 2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.util.List; + +import org.apache.maven.user.model.Permission; +import org.apache.maven.user.model.User; +import org.apache.maven.user.model.UserGroup; + +/** + * DAO to manage persistence of user related objects. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Carlos Sanchez</a> + * @version $Id$ + */ +public interface UserStore +{ + + User addUser( User user ); + + UserGroup addUserGroup( UserGroup userGroup ); + + User getUser( int accountId ); + + User getUser( String username ); + + User getGuestUser(); + + UserGroup getUserGroup( int userGroupId ); + + UserGroup getUserGroup( String name ); + + List getUserGroups(); + + List getUsers(); + + void removeUser( int userId ); + + void removeUser( String username ); + + void removeUserGroup( int userGroupId ); + + void removeUserGroup( String userGroupName ); + + void updateUser( User user ); + + void updateUserGroup( UserGroup userGroup ); + + List getPermissions(); + + Permission getPermission( String name ); + + Permission addPermission( Permission perm ); + +} \ No newline at end of file Propchange: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/UserStore.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java?rev=437988&view=auto ============================================================================== --- maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java (added) +++ maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java Tue Aug 29 00:07:26 2006 @@ -0,0 +1,420 @@ +package org.apache.maven.user.model.store.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 java.util.Collection; +import java.util.List; + +import javax.jdo.Extent; +import javax.jdo.PersistenceManager; +import javax.jdo.PersistenceManagerFactory; +import javax.jdo.Query; +import javax.jdo.Transaction; + +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.store.UserStore; +import org.codehaus.plexus.jdo.JdoFactory; +import org.codehaus.plexus.jdo.PlexusJdoUtils; +import org.codehaus.plexus.jdo.PlexusObjectNotFoundException; +import org.codehaus.plexus.jdo.PlexusStoreException; +import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; +import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; + +/** + * User DAO implementation using JDO. + * + * @plexus.component role="org.apache.maven.user.model.store.UserStore" + * + * @author <a href="mailto:[EMAIL PROTECTED]">Carlos Sanchez</a> + * @version $Id$ + */ +public class DefaultUserStore + implements UserStore, Initializable +{ + /** + * @plexus.requirement + */ + private JdoFactory jdoFactory; + + private PersistenceManagerFactory pmf; + + // ---------------------------------------------------------------------- + // Component Lifecycle + // ---------------------------------------------------------------------- + + public void initialize() + throws InitializationException + { + pmf = jdoFactory.getPersistenceManagerFactory(); + } + + public User addUser( User user ) + { + return (User) addObject( user ); + } + + public UserGroup addUserGroup( UserGroup userGroup ) + { + return (UserGroup) addObject( userGroup ); + } + + public User getUser( int accountId ) + { + User user = null; + + try + { + user = (User) getObjectById( User.class, accountId ); + } + catch ( PlexusStoreException pse ) + { + // TODO log exception + } + return user; + + } + + /** + * Get a user by name. User password won't be returned for security reasons. + * + * @param username + * @return null if the user doesn't exist + * @deprecated use [EMAIL PROTECTED] #getUser(String)} instead. + */ + public User getUserByUsername( String username ) + { + return getUser( username ); + } + + public User getUser( String username ) + { + PersistenceManager pm = getPersistenceManager(); + + Transaction tx = pm.currentTransaction(); + + try + { + tx.begin(); + + Extent extent = pm.getExtent( User.class, true ); + + Query query = pm.newQuery( extent ); + + query.declareImports( "import java.lang.String" ); //$NON-NLS-1$ + + query.declareParameters( "String username" ); //$NON-NLS-1$ + + query.setFilter( "this.username == username" ); //$NON-NLS-1$ + + Collection result = (Collection) query.execute( username ); + + if ( result.size() == 0 ) + { + tx.commit(); + + return null; + } + + Object object = pm.detachCopy( result.iterator().next() ); + + tx.commit(); + + return (User) object; + } + finally + { + rollback( tx ); + } + } + + public User getGuestUser() + { + PersistenceManager pm = getPersistenceManager(); + + Transaction tx = pm.currentTransaction(); + + try + { + tx.begin(); + + Extent extent = pm.getExtent( User.class, true ); + + Query query = pm.newQuery( extent ); + + query.setFilter( "this.guest == true" ); //$NON-NLS-1$ + + Collection result = (Collection) query.execute(); + + if ( result.size() == 0 ) + { + tx.commit(); + + return null; + } + + Object object = pm.detachCopy( result.iterator().next() ); + + tx.commit(); + + return (User) object; + } + finally + { + rollback( tx ); + } + } + + public UserGroup getUserGroup( int userGroupId ) + { + UserGroup userGroup = null; + + try + { + userGroup = (UserGroup) getObjectById( UserGroup.class, userGroupId ); + } + catch ( PlexusStoreException pse ) + { + //TODO log exception + } + return userGroup; + } + + public UserGroup getUserGroup( String name ) + { + PersistenceManager pm = getPersistenceManager(); + + Transaction tx = pm.currentTransaction(); + + try + { + tx.begin(); + + Extent extent = pm.getExtent( UserGroup.class, true ); + + Query query = pm.newQuery( extent ); + + query.declareImports( "import java.lang.String" ); //$NON-NLS-1$ + + query.declareParameters( "String name" ); //$NON-NLS-1$ + + query.setFilter( "this.name == name" ); //$NON-NLS-1$ + + Collection result = (Collection) query.execute( name ); + + if ( result.size() == 0 ) + { + tx.commit(); + + return null; + } + + Object object = pm.detachCopy( result.iterator().next() ); + + tx.commit(); + + return (UserGroup) object; + } + finally + { + rollback( tx ); + } + } + + public List getUserGroups() + { + return getAllObjectsDetached( UserGroup.class ); + } + + public List getUsers() + { + return getAllObjectsDetached( User.class ); + } + + public void removeUser( int userId ) + { + User user = getUser( userId ); + + removeObject( user ); + } + + public void removeUser( String username ) + { + User user = getUser( username ); + + removeObject( user ); + } + + public void removeUserGroup( int userGroupId ) + { + UserGroup userGroup = getUserGroup( userGroupId ); + + removeObject( userGroup ); + } + + public void removeUserGroup( String userGroupName ) + { + UserGroup userGroup = getUserGroup( userGroupName ); + + removeObject( userGroup ); + } + + public void updateUser( User user ) + { + try + { + updateObject( user ); + } + catch ( PlexusStoreException pse ) + { + //TODO log exception + } + } + + public void updateUserGroup( UserGroup userGroup ) + { + try + { + updateObject( userGroup ); + } + catch ( PlexusStoreException pse ) + { + //TODO log exception + } + } + + public List getPermissions() + { + return getAllObjectsDetached( Permission.class ); + } + + public Permission getPermission( String name ) + { + PersistenceManager pm = getPersistenceManager(); + + Transaction tx = pm.currentTransaction(); + + try + { + tx.begin(); + + Extent extent = pm.getExtent( Permission.class, true ); + + Query query = pm.newQuery( extent ); + + query.declareImports( "import java.lang.String" ); //$NON-NLS-1$ + + query.declareParameters( "String name" ); //$NON-NLS-1$ + + query.setFilter( "this.name == name" ); //$NON-NLS-1$ + + Collection result = (Collection) query.execute( name ); + + if ( result.size() == 0 ) + { + tx.commit(); + + return null; + } + + Object object = pm.detachCopy( result.iterator().next() ); + + tx.commit(); + + return (Permission) object; + } + finally + { + rollback( tx ); + } + } + + public Permission addPermission( Permission perm ) + { + return (Permission) addObject( perm ); + } + + private Object addObject( Object object ) + { + return PlexusJdoUtils.addObject( getPersistenceManager(), object ); + } + + private Object getObjectById( Class clazz, int id ) + throws PlexusStoreException + { + return getObjectById( clazz, id, null ); + } + + private Object getObjectById( Class clazz, int id, String fetchGroup ) + throws PlexusStoreException + { + try + { + return PlexusJdoUtils.getObjectById( getPersistenceManager(), clazz, id, fetchGroup ); + } + catch ( PlexusObjectNotFoundException e ) + { + // TODO make PlexusObjectNotFoundException runtime or change plexus not to wrap jdo exceptions + throw new RuntimeException( e.getMessage() ); + } + catch ( PlexusStoreException e ) + { + throw new PlexusStoreException( e.getMessage(), e ); + } + } + + private List getAllObjectsDetached( Class clazz ) + { + return getAllObjectsDetached( clazz, null ); + } + + private List getAllObjectsDetached( Class clazz, String fetchGroup ) + { + return getAllObjectsDetached( clazz, null, fetchGroup ); + } + + private List getAllObjectsDetached( Class clazz, String ordering, String fetchGroup ) + { + return PlexusJdoUtils.getAllObjectsDetached( getPersistenceManager(), clazz, ordering, fetchGroup ); + } + + private void removeObject( Object o ) + { + PlexusJdoUtils.removeObject( getPersistenceManager(), o ); + } + + private void updateObject( Object object ) + throws PlexusStoreException + { + PlexusJdoUtils.updateObject( getPersistenceManager(), object ); + } + + private PersistenceManager getPersistenceManager() + { + PersistenceManager pm = pmf.getPersistenceManager(); + + pm.getFetchPlan().setMaxFetchDepth( -1 ); + + return pm; + } + + private void rollback( Transaction tx ) + { + PlexusJdoUtils.rollbackIfActive( tx ); + } +} Propchange: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/maven-user/maven-user-model/src/main/java/org/apache/maven/user/model/store/impl/DefaultUserStore.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"