Use JPA as default and only database backend

Remove the JDO dependencies and set the JPA implementation as only
database alternative and default implementation. Uses the same database
as JDO before.
This commit is contained in:
Martin Stockhammer 2016-12-30 15:35:19 +01:00
parent dfcef53bf9
commit dd311845e1
21 changed files with 110 additions and 59 deletions

View File

@ -168,6 +168,11 @@
<artifactId>xercesImpl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>

View File

@ -209,6 +209,12 @@
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>

View File

@ -235,6 +235,12 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@ -177,6 +177,12 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@ -315,6 +315,12 @@
<scope>test</scope>
<version>${redback.version}</version>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-keys-jpa</artifactId>
<scope>test</scope>
<version>${redback.version}</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
@ -322,6 +328,12 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>

View File

@ -40,7 +40,7 @@ public class RedbackRuntimeConfigurationServiceTest
{
RedbackRuntimeConfiguration redbackRuntimeConfiguration =
getRedbackRuntimeConfigurationService().getRedbackRuntimeConfiguration();
assertEquals( "jdo", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) );
assertEquals( "jpa", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) );
}
@Test
@ -49,7 +49,7 @@ public class RedbackRuntimeConfigurationServiceTest
{
RedbackRuntimeConfiguration redbackRuntimeConfiguration =
getRedbackRuntimeConfigurationService().getRedbackRuntimeConfiguration();
assertEquals( "jdo", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) );
assertEquals( "jpa", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) );
redbackRuntimeConfiguration.setUserManagerImpls( Arrays.asList( "foo" ) );
@ -68,7 +68,7 @@ public class RedbackRuntimeConfigurationServiceTest
RedbackRuntimeConfigurationService service = getRedbackRuntimeConfigurationService();
List<UserManagerImplementationInformation> infos = service.getUserManagerImplementationInformations();
assertThat( infos ).isNotNull().isNotEmpty().contains(
new UserManagerImplementationInformation( "jdo", null, false ) );
new UserManagerImplementationInformation( "jpa", null, false ) );
}
@ -79,7 +79,7 @@ public class RedbackRuntimeConfigurationServiceTest
RedbackRuntimeConfigurationService service = getRedbackRuntimeConfigurationService();
List<RBACManagerImplementationInformation> infos = service.getRbacManagerImplementationInformations();
assertThat( infos ).isNotNull().isNotEmpty().contains(
new RBACManagerImplementationInformation( "jdo", null, false ) );
new RBACManagerImplementationInformation( "jpa", null, false ) );
}

View File

@ -32,7 +32,7 @@
<context:annotation-config/>
<context:component-scan
base-package="org.apache.archiva.rest.services.utils"/>
base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils"/>
<bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties">

View File

@ -338,6 +338,12 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-keys-jpa</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-rest-services</artifactId>
@ -414,6 +420,12 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@ -34,7 +34,7 @@
default-lazy-init="true">
<context:annotation-config/>
<context:component-scan base-package="org.apache.archiva.web.startup, org.apache.archiva.web.runtime, org.apache.archiva.web.api,, org.apache.archiva.web.security"/>
<context:component-scan base-package="org.apache.archiva.redback.keys,org.apache.archiva.web.startup, org.apache.archiva.web.runtime, org.apache.archiva.web.api,, org.apache.archiva.web.security"/>
<util:properties id="archivaRuntimeProperties" location="classpath:application.properties" />

View File

@ -36,7 +36,7 @@ import org.apache.archiva.redback.users.UserManagerException;
import org.apache.archiva.redback.users.UserManagerListener;
import org.apache.archiva.redback.users.UserNotFoundException;
import org.apache.archiva.redback.users.UserQuery;
import org.apache.archiva.redback.users.jdo.JdoUser;
import org.apache.archiva.redback.users.jpa.model.JpaUser;
import java.util.ArrayList;
import java.util.Date;
@ -74,7 +74,7 @@ public class SecuritySystemStub
{
result = new AuthenticationResult( true, source.getUsername(), null );
User user = new JdoUser();
User user = new JpaUser();
user.setUsername( source.getUsername() );
user.setPassword( users.get( source.getUsername() ) );

View File

@ -30,7 +30,6 @@
<context:property-placeholder system-properties-mode="OVERRIDE"/>
<bean name="commons-configuration" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
<property name="properties">
<value>

View File

@ -29,7 +29,7 @@
<context:annotation-config/>
<context:component-scan
base-package="org.apache.archiva.rest.services.utils"/>
base-package="org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils"/>
<bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties">

View File

@ -49,7 +49,7 @@
<jee:jndi-lookup id="dataSource" jndi-name="java:/comp/env/jdbc/redbackjpa" />
<jee:jndi-lookup id="dataSource" jndi-name="java:/comp/env/jdbc/users" />
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" >

View File

@ -21,6 +21,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task" xmlns:util="http://www.springframework.org/schema/util"
xmlns:tx="http://www.springframework.org/schema/tx"
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
@ -28,7 +29,8 @@
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:property-placeholder location="classpath:application.properties" />
@ -108,37 +110,6 @@
</bean>
<!-- END SNIPPET: configuration-files-list -->
<bean name="jdoFactory#users" class="org.apache.archiva.redback.components.jdo.DataSourceConfigurableJdoFactory">
<property name="connectionFactoryName" value="java:comp/env/jdbc/users"/>
<property name="shutdownConnectionFactoryName" value="java:comp/env/jdbc/usersShutdown"/>
<property name="persistenceManagerFactoryClass" value="org.jpox.PersistenceManagerFactoryImpl"/>
<property name="otherProperties">
<props>
<prop key="org.jpox.autoCreateSchema">true</prop>
<prop key="org.jpox.validateTables">false</prop>
<prop key="org.jpox.validateConstraints">false</prop>
<prop key="org.jpox.validateColumns">false</prop>
<prop key="org.jpox.autoStartMechanism">None</prop>
<prop key="org.jpox.transactionIsolation">READ_COMMITTED</prop>
<prop key="org.jpox.poid.transactionIsolation">READ_COMMITTED</prop>
<prop key="org.jpox.rdbms.dateTimezone">JDK_DEFAULT_TIMEZONE</prop>
<!-- NEEDED FOR MYSQL UTF-8 Databases -->
<prop key="org.jpox.rdbms.stringDefaultLength">255</prop>
<!-- NEEDED FOR POSTGRES, But causes problems in other JDBC implementations.
<prop key="org.jpox.identifier.case">PreserveCase</prop>
-->
<!-- cache activation -->
<prop key="org.jpox.cache.level2">true</prop>
<prop key="org.jpox.cache.level2.type">ehcacheclassbased</prop>
<prop key="org.jpox.cache.level2.cacheName">defaultJpox</prop>
<prop key="org.jpox.cache.level2.configurationFile">/ehcache.xml</prop>
</props>
</property>
</bean>
<bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties">
<props>
@ -324,4 +295,28 @@
</bean>
-->
<bean name="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter" >
<bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter" />
</property>
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="jpaPropertyMap">
<map>
<entry key="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
<entry key="openjpa.jdbc.SchemaFactory" value="native(ForeignKeys=true)" />
<entry key="openjpa.jdbc.MappingDefaults"
value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
<entry key="openjpa.Log" value="DefaultLevel=TRACE, Runtime=TRACE, Tool=INFO, SQL=TRACE"/>
<entry key="openjpa.jdbc.DBDictionary" value="(disableSchemaFactoryColumnTypeErrors=true,BitTypeName=CHAR(1),BooleanTypeName=CHAR(1),BooleanRepresentation=STRING_YN)"/>
</map>
</property>
</bean>
<bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven />
</beans>

View File

@ -143,12 +143,6 @@
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/redbackjpa</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-ref>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>

View File

@ -26,12 +26,14 @@
</properties>
<appenders>
<Console name="console" target="SYSTEM_OUT">
<Console name="console" target="SYSTEM_OUT" level="info">
<!--PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/-->
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n}" />
</Console>
<RollingRandomAccessFile name="rolling" fileName="${logsDirectory}/archiva.log"
filePattern="${logsDirectory}/archiva-%d{MM-dd-yyyy}.log" immediateFlush="false" append="true">
filePattern="${logsDirectory}/archiva-%d{MM-dd-yyyy}.log"
immediateFlush="true" append="true">
<PatternLayout>
<pattern>%d [%t] %-5p %c %x - %m%n</pattern>
</PatternLayout>
@ -82,6 +84,9 @@
<logger name="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry" level="debug"/>
<logger name="org.apache.archiva.redback.components.taskqueue.DefaultTaskQueue" level="info" />
<logger name="org.apache.archiva" level="debug" />
<!--
<logger name="org.apache.archiva.scheduler.indexing" level="debug"/>
-->

View File

@ -24,12 +24,7 @@
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:${appserver.base}/database/users;create=true"
/>
<Resource name="jdbc/redbackjpa" auth="Container" type="javax.sql.DataSource"
username="sa"
password=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:${appserver.base}/database/jpausers;create=true"
/>
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
mail.smtp.host="localhost"/>

View File

@ -149,6 +149,11 @@
<artifactId>redback-rbac-memory</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-keys-jpa</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-users-memory</artifactId>

View File

@ -31,7 +31,7 @@
<context:annotation-config/>
<context:component-scan
base-package="org.apache.archiva.webdav,org.apache.archiva.metadata.repository,org.apache.archiva.webdav.util,org.apache.archiva.common.plexusbridge"/>
base-package="org.apache.archiva.redback.keys,org.apache.archiva.webdav,org.apache.archiva.metadata.repository,org.apache.archiva.webdav.util,org.apache.archiva.common.plexusbridge"/>
<bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties">

View File

@ -30,7 +30,7 @@
<context:property-placeholder system-properties-mode="OVERRIDE"/>
<context:annotation-config/>
<context:component-scan base-package="org.apache.archiva.webdav,org.apache.archiva.metadata.repository"/>
<context:component-scan base-package="org.apache.archiva.redback.keys,org.apache.archiva.webdav,org.apache.archiva.metadata.repository"/>
<bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties">

11
pom.xml
View File

@ -1029,6 +1029,17 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-keys-jpa</artifactId>
<version>${redback.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-rbac-model</artifactId>