DATAJPA-1158 - Removed remaining references to OpenJPA.

As we now rely on JPA 2.1 as lower baseline for JPA implementations, we already generally removed the support for OpenJPA as it currently doesn't ship any JPA 2.1 compatible version.

This commit removes all remaining references and code paths.
This commit is contained in:
Oliver Gierke
2017-07-31 13:39:16 +02:00
parent ae7470beeb
commit 8466235db3
5 changed files with 2 additions and 182 deletions

47
pom.xml
View File

@@ -25,7 +25,6 @@
<hibernate>5.2.9.Final</hibernate>
<hsqldb1>1.8.0.10</hsqldb1>
<jpa>2.0.0</jpa>
<openjpa>2.4.1</openjpa>
<springdata.commons>2.0.0.BUILD-SNAPSHOT</springdata.commons>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
@@ -189,25 +188,6 @@
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-persistence-jdbc</artifactId>
<version>${openjpa}</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<!-- Transitive dependency pulls in JUnit 3.8.1 -->
<!-- http://sourceforge.net/tracker/?func=detail&aid=2572567&group_id=31479&atid=402282 -->
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- QueryDsl -->
<dependency>
<groupId>com.querydsl</groupId>
@@ -297,12 +277,6 @@
<version>${spring}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<version>${openjpa}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
@@ -363,27 +337,6 @@
<argLine>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco}/org.jacoco.agent-${jacoco}-runtime.jar=destfile=${jacoco.destfile} -javaagent:${settings.localRepository}/org/eclipse/persistence/org.eclipse.persistence.jpa/${eclipselink}/org.eclipse.persistence.jpa-${eclipselink}.jar -javaagent:${settings.localRepository}/org/springframework/spring-instrument/${spring}/spring-instrument-${spring}.jar</argLine>
</configuration>
</execution>
<!--
<execution>
<id>openjpa-tests</id>
<goals>
<goal>test</goal>
</goals>
<phase>test</phase>
<configuration>
<includes>
<include>**/OpenJpa*Tests.java</include>
</includes>
<argLine>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco}/org.jacoco.agent-${jacoco}-runtime.jar=destfile=${jacoco.destfile} -javaagent:${settings.localRepository}/org/apache/openjpa/openjpa/${openjpa}/openjpa-${openjpa}.jar</argLine>
<classpathDependencyExcludes>
<classpathDepencyExclude>org.hsqldb:hsqldb</classpathDepencyExclude>
</classpathDependencyExcludes>
<additionalClasspathElements>
<additionalClasspathElement>${settings.localRepository}/org/hsqldb/hsqldb/${hsqldb1}/hsqldb-${hsqldb1}.jar</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</execution>
-->
</executions>
</plugin>

View File

@@ -21,20 +21,11 @@ import static org.springframework.data.jpa.provider.PersistenceProvider.Constant
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.persistence.metamodel.Metamodel;
import org.apache.openjpa.enhance.PersistenceCapable;
import org.apache.openjpa.persistence.OpenJPAPersistence;
import org.apache.openjpa.persistence.OpenJPAQuery;
import org.apache.openjpa.persistence.jdbc.FetchDirection;
import org.apache.openjpa.persistence.jdbc.JDBCFetchPlan;
import org.apache.openjpa.persistence.jdbc.LRSSizeAlgorithm;
import org.apache.openjpa.persistence.jdbc.ResultSetType;
import org.eclipse.persistence.jpa.JpaQuery;
import org.eclipse.persistence.queries.ScrollableCursor;
import org.hibernate.ScrollMode;
@@ -121,7 +112,8 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor {
/**
* EclipseLink persistence provider.
*/
ECLIPSELINK(Collections.singleton(ECLIPSELINK_ENTITY_MANAGER_INTERFACE), Collections.singleton(ECLIPSELINK_JPA_METAMODEL_TYPE)) {
ECLIPSELINK(Collections.singleton(ECLIPSELINK_ENTITY_MANAGER_INTERFACE),
Collections.singleton(ECLIPSELINK_JPA_METAMODEL_TYPE)) {
public String extractQueryString(Query query) {
return ((JpaQuery<?>) query).getDatabaseQuery().getJPQLString();
@@ -163,48 +155,6 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor {
}
},
/**
* OpenJpa persistence provider.
*/
OPEN_JPA(Collections.singleton(OPENJPA_ENTITY_MANAGER_INTERFACE), Collections.singleton(OPENJPA_JPA_METAMODEL_TYPE)) {
/*
* (non-Javadoc)
* @see org.springframework.data.jpa.repository.query.QueryExtractor#extractQueryString(javax.persistence.Query)
*/
@Override
public String extractQueryString(Query query) {
return ((OpenJPAQuery<?>) query).getQueryString();
}
/*
* (non-Javadoc)
* @see org.springframework.data.jpa.repository.support.ProxyIdAccessor#isProxy(java.lang.Object)
*/
@Override
public boolean shouldUseAccessorFor(Object entity) {
return entity instanceof PersistenceCapable;
}
/*
* (non-Javadoc)
* @see org.springframework.data.jpa.repository.support.ProxyIdAccessor#getIdentifierFrom(java.lang.Object)
*/
@Override
public Object getIdentifierFrom(Object entity) {
return ((PersistenceCapable) entity).pcFetchObjectId();
}
/*
* (non-Javadoc)
* @see org.springframework.data.jpa.provider.PersistenceProvider#executeQueryWithResultStream(javax.persistence.Query)
*/
@Override
public CloseableIterator<Object> executeQueryWithResultStream(Query jpaQuery) {
return new OpenJpaResultStreamingIterator<Object>(jpaQuery);
}
},
/**
* Unknown special provider. Use standard JPA.
*/
@@ -503,67 +453,4 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor {
}
}
}
/**
* {@link CloseableIterator} for OpenJpa.
*
* @author Thomas Darimont
* @author Oliver Gierke
* @param <T> the domain type to return
* @since 1.8
*/
private static class OpenJpaResultStreamingIterator<T> implements CloseableIterator<T> {
private final Iterator<T> iterator;
/**
* Createsa new {@link OpenJpaResultStreamingIterator} for the given JPA {@link Query}.
*
* @param jpaQuery must not be {@literal null}.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public OpenJpaResultStreamingIterator(Query jpaQuery) {
OpenJPAQuery kq = OpenJPAPersistence.cast(jpaQuery);
JDBCFetchPlan fetch = (JDBCFetchPlan) kq.getFetchPlan();
fetch.setFetchBatchSize(20);
fetch.setResultSetType(ResultSetType.SCROLL_SENSITIVE);
fetch.setFetchDirection(FetchDirection.FORWARD);
fetch.setLRSSizeAlgorithm(LRSSizeAlgorithm.LAST);
List<T> resultList = kq.getResultList();
iterator = resultList.iterator();
}
/*
* (non-Javadoc)
* @see java.util.Iterator#hasNext()
*/
@Override
public boolean hasNext() {
return iterator == null ? false : iterator.hasNext();
}
/*
* (non-Javadoc)
* @see java.util.Iterator#next()
*/
@Override
public T next() {
return iterator.next();
}
/*
* (non-Javadoc)
* @see org.springframework.data.util.CloseableIterator#close()
*/
@Override
public void close() {
if (iterator != null) {
OpenJPAPersistence.close(iterator);
}
}
}
}

View File

@@ -37,7 +37,6 @@ import com.querydsl.core.types.dsl.PathBuilder;
import com.querydsl.jpa.EclipseLinkTemplates;
import com.querydsl.jpa.HQLTemplates;
import com.querydsl.jpa.JPQLQuery;
import com.querydsl.jpa.OpenJPATemplates;
import com.querydsl.jpa.impl.AbstractJPAQuery;
import com.querydsl.jpa.impl.JPAQuery;
@@ -83,8 +82,6 @@ public class Querydsl {
return new JPAQuery<T>(em, EclipseLinkTemplates.DEFAULT);
case HIBERNATE:
return new JPAQuery<T>(em, HQLTemplates.DEFAULT);
case OPEN_JPA:
return new JPAQuery<T>(em, OpenJPATemplates.DEFAULT);
case GENERIC_JPA:
default:
return new JPAQuery<T>(em);

View File

@@ -50,16 +50,6 @@ public class PersistenceProviderUnitTests {
this.shadowingClassLoader = new ShadowingClassLoader(getClass().getClassLoader());
}
@Test
public void detectsOpenJpaPersistenceProvider() throws Exception {
shadowingClassLoader.excludePackage("org.apache.openjpa.persistence");
EntityManager em = mockProviderSpecificEntityManagerInterface(OPENJPA_ENTITY_MANAGER_INTERFACE);
assertThat(fromEntityManager(em), is(OPEN_JPA));
}
@Test
public void detectsEclipseLinkPersistenceProvider() throws Exception {

View File

@@ -16,7 +16,6 @@
package org.springframework.data.jpa.repository;
import static org.assertj.core.api.Assertions.*;
import static org.hamcrest.core.IsEqual.*;
import static org.springframework.data.domain.Example.*;
import static org.springframework.data.domain.ExampleMatcher.*;
import static org.springframework.data.domain.Sort.Direction.*;
@@ -42,8 +41,6 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.hamcrest.core.IsNot;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -69,7 +66,6 @@ import org.springframework.data.jpa.domain.sample.Address;
import org.springframework.data.jpa.domain.sample.Role;
import org.springframework.data.jpa.domain.sample.SpecialUser;
import org.springframework.data.jpa.domain.sample.User;
import org.springframework.data.jpa.provider.PersistenceProvider;
import org.springframework.data.jpa.repository.sample.SampleEvaluationContextExtension.SampleSecurityContextHolder;
import org.springframework.data.jpa.repository.sample.UserRepository;
import org.springframework.test.context.ContextConfiguration;
@@ -1883,9 +1879,6 @@ public class UserRepositoryTests {
@Test // DATAJPA-218
public void findAllByExampleWithIncludeNull() {
// something is wrong with OpenJPA - I do not know what
Assume.assumeThat(PersistenceProvider.fromEntityManager(em), IsNot.not(equalTo(PersistenceProvider.OPEN_JPA)));
flushTestUsers();
firstUser.setAddress(new Address("andor", "caemlyn", "", ""));