From 8466235db3542b6d1614f06bb24a5373571cf277 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 31 Jul 2017 13:39:16 +0200 Subject: [PATCH] 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. --- pom.xml | 47 ------- .../jpa/provider/PersistenceProvider.java | 117 +----------------- .../data/jpa/repository/support/Querydsl.java | 3 - .../PersistenceProviderUnitTests.java | 10 -- .../jpa/repository/UserRepositoryTests.java | 7 -- 5 files changed, 2 insertions(+), 182 deletions(-) diff --git a/pom.xml b/pom.xml index b9cbeaf1b..c91137a6d 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,6 @@ 5.2.9.Final 1.8.0.10 2.0.0 - 2.4.1 2.0.0.BUILD-SNAPSHOT reuseReports @@ -189,25 +188,6 @@ true - - org.apache.openjpa - openjpa-persistence-jdbc - ${openjpa} - true - - - commons-logging - commons-logging - - - - - junit - junit - - - - com.querydsl @@ -297,12 +277,6 @@ ${spring} runtime - - org.apache.openjpa - openjpa - ${openjpa} - runtime - org.hsqldb hsqldb @@ -363,27 +337,6 @@ -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 - diff --git a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java b/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java index 108693bbf..bbfafc30b 100644 --- a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java +++ b/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java @@ -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 executeQueryWithResultStream(Query jpaQuery) { - return new OpenJpaResultStreamingIterator(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 the domain type to return - * @since 1.8 - */ - private static class OpenJpaResultStreamingIterator implements CloseableIterator { - - private final Iterator 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 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); - } - } - } } diff --git a/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java b/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java index 423c878c4..6c14c1bd9 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java @@ -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(em, EclipseLinkTemplates.DEFAULT); case HIBERNATE: return new JPAQuery(em, HQLTemplates.DEFAULT); - case OPEN_JPA: - return new JPAQuery(em, OpenJPATemplates.DEFAULT); case GENERIC_JPA: default: return new JPAQuery(em); diff --git a/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java b/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java index eadde71d0..78fcdfb58 100644 --- a/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/provider/PersistenceProviderUnitTests.java @@ -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 { diff --git a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java index 0997ca794..626e59ae0 100644 --- a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java @@ -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", "", ""));