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> <artifactId>xercesImpl</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<pluginManagement> <pluginManagement>

View File

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

View File

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

View File

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

View File

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

View File

@ -40,7 +40,7 @@ public class RedbackRuntimeConfigurationServiceTest
{ {
RedbackRuntimeConfiguration redbackRuntimeConfiguration = RedbackRuntimeConfiguration redbackRuntimeConfiguration =
getRedbackRuntimeConfigurationService().getRedbackRuntimeConfiguration(); getRedbackRuntimeConfigurationService().getRedbackRuntimeConfiguration();
assertEquals( "jdo", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) ); assertEquals( "jpa", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) );
} }
@Test @Test
@ -49,7 +49,7 @@ public class RedbackRuntimeConfigurationServiceTest
{ {
RedbackRuntimeConfiguration redbackRuntimeConfiguration = RedbackRuntimeConfiguration redbackRuntimeConfiguration =
getRedbackRuntimeConfigurationService().getRedbackRuntimeConfiguration(); getRedbackRuntimeConfigurationService().getRedbackRuntimeConfiguration();
assertEquals( "jdo", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) ); assertEquals( "jpa", redbackRuntimeConfiguration.getUserManagerImpls().get( 0 ) );
redbackRuntimeConfiguration.setUserManagerImpls( Arrays.asList( "foo" ) ); redbackRuntimeConfiguration.setUserManagerImpls( Arrays.asList( "foo" ) );
@ -68,7 +68,7 @@ public class RedbackRuntimeConfigurationServiceTest
RedbackRuntimeConfigurationService service = getRedbackRuntimeConfigurationService(); RedbackRuntimeConfigurationService service = getRedbackRuntimeConfigurationService();
List<UserManagerImplementationInformation> infos = service.getUserManagerImplementationInformations(); List<UserManagerImplementationInformation> infos = service.getUserManagerImplementationInformations();
assertThat( infos ).isNotNull().isNotEmpty().contains( 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(); RedbackRuntimeConfigurationService service = getRedbackRuntimeConfigurationService();
List<RBACManagerImplementationInformation> infos = service.getRbacManagerImplementationInformations(); List<RBACManagerImplementationInformation> infos = service.getRbacManagerImplementationInformations();
assertThat( infos ).isNotNull().isNotEmpty().contains( 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:annotation-config/>
<context:component-scan <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"> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties"> <property name="properties">

View File

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

View File

@ -34,7 +34,7 @@
default-lazy-init="true"> default-lazy-init="true">
<context:annotation-config/> <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" /> <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.UserManagerListener;
import org.apache.archiva.redback.users.UserNotFoundException; import org.apache.archiva.redback.users.UserNotFoundException;
import org.apache.archiva.redback.users.UserQuery; 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.ArrayList;
import java.util.Date; import java.util.Date;
@ -74,7 +74,7 @@ public class SecuritySystemStub
{ {
result = new AuthenticationResult( true, source.getUsername(), null ); result = new AuthenticationResult( true, source.getUsername(), null );
User user = new JdoUser(); User user = new JpaUser();
user.setUsername( source.getUsername() ); user.setUsername( source.getUsername() );
user.setPassword( users.get( source.getUsername() ) ); user.setPassword( users.get( source.getUsername() ) );

View File

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

View File

@ -29,7 +29,7 @@
<context:annotation-config/> <context:annotation-config/>
<context:component-scan <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"> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties"> <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"> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" /> <property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" > <property name="jpaVendorAdapter" >

View File

@ -21,6 +21,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" 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: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 xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context
@ -28,7 +29,8 @@
http://www.springframework.org/schema/task http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/util 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" /> <context:property-placeholder location="classpath:application.properties" />
@ -108,37 +110,6 @@
</bean> </bean>
<!-- END SNIPPET: configuration-files-list --> <!-- 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"> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties"> <property name="properties">
<props> <props>
@ -324,4 +295,28 @@
</bean> </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> </beans>

View File

@ -143,12 +143,6 @@
<res-auth>Container</res-auth> <res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope> <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref> </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> <resource-ref>
<res-ref-name>mail/Session</res-ref-name> <res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type> <res-type>javax.mail.Session</res-type>

View File

@ -26,12 +26,14 @@
</properties> </properties>
<appenders> <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="%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}" /> <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n}" />
</Console> </Console>
<RollingRandomAccessFile name="rolling" fileName="${logsDirectory}/archiva.log" <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> <PatternLayout>
<pattern>%d [%t] %-5p %c %x - %m%n</pattern> <pattern>%d [%t] %-5p %c %x - %m%n</pattern>
</PatternLayout> </PatternLayout>
@ -82,6 +84,9 @@
<logger name="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry" level="debug"/> <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"/> <logger name="org.apache.archiva.scheduler.indexing" level="debug"/>
--> -->

View File

@ -24,12 +24,7 @@
driverClassName="org.apache.derby.jdbc.EmbeddedDriver" driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:${appserver.base}/database/users;create=true" 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" <Resource name="mail/Session" auth="Container"
type="javax.mail.Session" type="javax.mail.Session"
mail.smtp.host="localhost"/> mail.smtp.host="localhost"/>

View File

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

View File

@ -31,7 +31,7 @@
<context:annotation-config/> <context:annotation-config/>
<context:component-scan <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"> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties"> <property name="properties">

View File

@ -30,7 +30,7 @@
<context:property-placeholder system-properties-mode="OVERRIDE"/> <context:property-placeholder system-properties-mode="OVERRIDE"/>
<context:annotation-config/> <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"> <bean name="scheduler" class="org.apache.archiva.redback.components.scheduler.DefaultScheduler">
<property name="properties"> <property name="properties">

11
pom.xml
View File

@ -1029,6 +1029,17 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </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> <dependency>
<groupId>org.apache.archiva.redback</groupId> <groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-rbac-model</artifactId> <artifactId>redback-rbac-model</artifactId>