On 1 October 2016 at 06:38, <marti...@apache.org> wrote: > Setting database schema names from JDO > > > Project: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/repo > Commit: http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/commit/f3bcedfd > Tree: http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/tree/f3bcedfd > Diff: http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/diff/f3bcedfd > > Branch: refs/heads/jpa > Commit: f3bcedfdf824fc3d90dc35b51b7a863ebd421f49 > Parents: 9e09e8f > Author: Martin Stockhammer <marti...@apache.org> > Authored: Fri Sep 30 22:37:22 2016 +0200 > Committer: Martin Stockhammer <marti...@apache.org> > Committed: Fri Sep 30 22:37:22 2016 +0200 > > ---------------------------------------------------------------------- > .../redback/users/jpa/JpaUserManager.java | 35 +++++++++++++++++--- > .../redback/users/jpa/model/JpaUser.java | 23 ++++++++++++- > .../src/main/resources/spring-context.xml | 31 +++++++++++++++++ > .../redback/users/jpa/JpaUserManagerTest.java | 1 - > 4 files changed, 84 insertions(+), 6 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/blob/f3bcedfd/redback-users/redback-users-providers/ > redback-users-jpa/src/main/java/org/apache/archiva/redback/users/jpa/ > JpaUserManager.java > ---------------------------------------------------------------------- > diff --git a/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/JpaUserManager.java > b/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/JpaUserManager.java > index c4c83f6..448552d 100644 > --- a/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/JpaUserManager.java > +++ b/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/JpaUserManager.java > @@ -75,7 +75,6 @@ public class JpaUserManager extends AbstractUserManager { > > @Override > public User createUser(String username, String fullName, String > emailAddress) throws UserManagerException { > - > JpaUser user = new JpaUser(); > user.setUsername(username); > user.setFullName(fullName); > @@ -270,6 +269,27 @@ public class JpaUserManager extends > AbstractUserManager { > > @Override > public void addUserUnchecked(User user) throws UserManagerException { > + log.info("addUserUnchecked "+user.getUsername()); > + if ( !( user instanceof JpaUser ) ) > + { > + throw new UserManagerException( "Unable to Add User. User > object " + user.getClass().getName() + > + " is not an instance of " + JpaUser.class.getName() ); > + } > + > + if ( org.codehaus.plexus.util.StringUtils.isEmpty( > user.getUsername() ) ) >
Do not hesitate to use StringUtils from commons-lang! (this one is pure legacy :-) ) > + { > + throw new IllegalStateException( > + Messages.getString( > "user.manager.cannot.add.user.without.username" > ) ); //$NON-NLS-1$ > + } > + > + em.getTransaction().begin(); > + TypedQuery<JpaUser> q = em.createQuery("SELECT u FROM JpaUser u", > JpaUser.class); > + for (JpaUser u : q.getResultList()) { > + log.info("USER FOUND: "+u.getUsername()); > + } > + log.info("NEW USER "+user.getUsername()); > + em.persist((JpaUser)user); > + em.getTransaction().commit(); > > } > > @@ -277,9 +297,16 @@ public class JpaUserManager extends > AbstractUserManager { > public void eraseDatabase() { > EntityManager em = getEm(); > em.getTransaction().begin(); > - Query q = em.createQuery("DELETE FROM JpaUser u"); > - q.executeUpdate(); > + TypedQuery<JpaUser> q = em.createQuery("SELECT u FROM JpaUser u", > JpaUser.class); > + for (JpaUser u : q.getResultList()) { > + u.getPreviousEncodedPasswords().clear(); > + } > + em.flush(); > + Query qd = em.createQuery("DELETE FROM JpaUser u"); > + qd.executeUpdate(); > em.getTransaction().commit(); > + em.clear(); > + > } > > @Override > @@ -298,7 +325,7 @@ public class JpaUserManager extends > AbstractUserManager { > > @Override > public String getDescriptionKey() { > - return null; > + return "archiva.redback.usermanager.jpa"; > } > > > > http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/blob/f3bcedfd/redback-users/redback-users-providers/ > redback-users-jpa/src/main/java/org/apache/archiva/ > redback/users/jpa/model/JpaUser.java > ---------------------------------------------------------------------- > diff --git a/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/model/JpaUser.java > b/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/model/JpaUser.java > index 04f441e..cfdaa4e 100644 > --- a/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/model/JpaUser.java > +++ b/redback-users/redback-users-providers/redback-users-jpa/ > src/main/java/org/apache/archiva/redback/users/jpa/model/JpaUser.java > @@ -19,9 +19,13 @@ package org.apache.archiva.redback.users.jpa.model; > * under the License. > */ > > +import javax.persistence.CollectionTable; > +import javax.persistence.Column; > import javax.persistence.ElementCollection; > import javax.persistence.Entity; > import javax.persistence.Id; > +import javax.persistence.JoinColumn; > +import javax.persistence.OrderColumn; > import javax.persistence.Table; > import java.util.ArrayList; > import java.util.Date; > @@ -35,21 +39,38 @@ import java.util.List; > public class JpaUser implements org.apache.archiva.redback.users.User { > > @Id > + @Column(name="USERNAME") > private String username; > - > + @Column(name="FULL_NAME") > private String fullName; > + @Column(name="EMAIL") > private String email; > + @Column(name="ENCODED_PASSWORD") > private String encodedPassword; > + @Column(name="LAST_PASSWORD_CHANGE") > private Date lastPasswordChange; > @ElementCollection > + @OrderColumn(name="INTEGER_IDX") > + @Column(name="STRING_ELE") > + @CollectionTable(name="JDOUSER_PREVIOUSENCODEDPASSWORDS", > + joinColumns = @JoinColumn(name = "USERNAME_OID", > referencedColumnName = "USERNAME") > + ) > private List<String> previousEncodedPasswords = new > ArrayList<String>(); > + @Column(name="PERMANENT") > private boolean permanent; > + @Column(name="LOCKED") > private boolean locked; > + @Column(name="PASSWORD_CHANGE_REQUIRED") > private boolean passwordChangeRequired; > + @Column(name="VALIDATED") > private boolean validated; > + @Column(name="COUNT_FAILED_LOGIN_ATTEMPTS") > private int countFailedLoginAttempts; > + @Column(name="ACCOUNT_CREATION_DATE") > private Date accountCreationDate; > + @Column(name="LAST_LOGIN_DATE") > private Date lastLoginDate; > + @Column(name="USER_PASSSWORD") > private String rawPassword; > > > > http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/blob/f3bcedfd/redback-users/redback-users-providers/ > redback-users-jpa/src/main/resources/spring-context.xml > ---------------------------------------------------------------------- > diff --git a/redback-users/redback-users-providers/redback-users-jpa/ > src/main/resources/spring-context.xml b/redback-users/redback-users- > providers/redback-users-jpa/src/main/resources/spring-context.xml > new file mode 100644 > index 0000000..a56a218 > --- /dev/null > +++ b/redback-users/redback-users-providers/redback-users-jpa/ > src/main/resources/spring-context.xml > @@ -0,0 +1,31 @@ > +<?xml version="1.0"?> > + > +<!-- > + ~ 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. > + --> > +<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"> > + > + <context:component-scan base-package="org.apache.archiva.redback.users.jpa" > /> > + > +</beans> > \ No newline at end of file > > http://git-wip-us.apache.org/repos/asf/archiva-redback- > core/blob/f3bcedfd/redback-users/redback-users-providers/ > redback-users-jpa/src/test/java/org/apache/archiva/redback/users/jpa/ > JpaUserManagerTest.java > ---------------------------------------------------------------------- > diff --git a/redback-users/redback-users-providers/redback-users-jpa/ > src/test/java/org/apache/archiva/redback/users/jpa/JpaUserManagerTest.java > b/redback-users/redback-users-providers/redback-users-jpa/ > src/test/java/org/apache/archiva/redback/users/jpa/JpaUserManagerTest.java > index 4556755..75cda6d 100644 > --- a/redback-users/redback-users-providers/redback-users-jpa/ > src/test/java/org/apache/archiva/redback/users/jpa/JpaUserManagerTest.java > +++ b/redback-users/redback-users-providers/redback-users-jpa/ > src/test/java/org/apache/archiva/redback/users/jpa/JpaUserManagerTest.java > @@ -65,7 +65,6 @@ public class JpaUserManagerTest extends > AbstractUserManagerTestCase { > is.close(); > EntityManagerFactory emf = Persistence. > createEntityManagerFactory("redback-jpa",props); > > - log.info("test setup"); > jpaUserManager.setEntityManager(emf.createEntityManager()); > super.setUserManager(jpaUserManager); > assertNotNull(jpaUserManager); > > -- Olivier Lamy http://twitter.com/olamy | http://linkedin.com/in/olamy