svn commit: r1684055 - in /openjpa/branches/openjpa_jpa-2.1: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-kernel/src/main/java/org/apache/openjpa/meta/ openjpa-persistence-jdbc/s
Author: rmannibucau Date: Sun Jun 7 18:12:39 2015 New Revision: 1684055 URL: http://svn.apache.org/r1684055 Log: mapping db param to jpa param for stored procedure parameter names + starting to impl cursor support (need testing) Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/XROP.java openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MultiQueryMetaData.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/TestStoredProcedure.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/entity/EntityWithStoredProcedure.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java?rev=1684055r1=1684054r2=1684055view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java Sun Jun 7 18:12:39 2015 @@ -37,7 +37,7 @@ import java.sql.CallableStatement; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -105,7 +105,7 @@ public class StoredProcedureQuery extend } } } -return new StoredProcedureQueryExecutor(this, mappings, classes); +return new StoredProcedureQueryExecutor(this, mappings, classes, _meta); } public boolean supportsParameterDeclarations() { @@ -128,9 +128,11 @@ public class StoredProcedureQuery extend public class StoredProcedureQueryExecutor extends AbstractExecutor { private final ListClass? _resultClasses; private final ListQueryResultMapping _resultMappings; +private final MapString, String _parametersNameMapping = new HashMapString, String(); +private final MapString, String _parametersNameMappingReverse = new HashMapString, String(); public StoredProcedureQueryExecutor(StoredProcedureQuery q, ListQueryResultMapping resultMapping, -ListClass? classes) { +ListClass? classes, MultiQueryMetaData _meta) { QueryContext ctx = q.getContext(); _resultMappings = resultMapping; _resultClasses = classes; @@ -140,6 +142,14 @@ public class StoredProcedureQuery extend if (_proc == null) { throw new RuntimeException(Can not find stored procedure + procName); } +for (final Column c : _proc.getColumns()) { +final String name = _meta.getParameters().get(c.getIndex()).getName(); +if (name != null) { +final String dbName = c.getIdentifier().getName(); +_parametersNameMapping.put(name, dbName); +_parametersNameMappingReverse.put(dbName, name); +} +} } StoredProcedure getStoredProcedure(Connection conn, DBDictionary dict, String procedureName) { @@ -167,21 +177,26 @@ public class StoredProcedureQuery extend Connection conn = _store.getConnection(); CallableStatement stmnt = conn.prepareCall(_proc.getCallSQL()); -final StoredProcedureQuery spq = StoredProcedureQuery.class.cast(q); -for (Column c : spq.getProcedure().getInColumns()) { -dict.setUnknown(stmnt, c.getIndex() + 1, params[c.getIndex()], c); -} -for (Column c : spq.getProcedure().getInOutColumns()) { -final int index = c.getIndex() + 1; -stmnt.registerOutParameter(index, c.getType()); -dict.setUnknown(stmnt, index, params[index - 1], c); -} -for (Column c : spq.getProcedure().getOutColumns
svn commit: r1683972 [1/2] - in /openjpa/branches/openjpa_jpa-2.1: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-jdb
Author: rmannibucau Date: Sun Jun 7 01:05:22 2015 New Revision: 1683972 URL: http://svn.apache.org/r1683972 Log: OPENJPA-2592 basic stored procedure impl import Added: openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/XROP.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/StoredProcedure.java openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryResultCallback.java openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MultiQueryMetaData.java openjpa/branches/openjpa_jpa-2.1/openjpa-lib/src/main/java/org/apache/openjpa/lib/rop/BatchedResultObjectProvider.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/ openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/TestStoredProcedure.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/derby/ openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/derby/Procedures.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/entity/ openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/entity/EntityWithStoredProcedure.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Column.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryLanguages.java openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/MappingTag.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AbstractQuery.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataFactory.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java?rev=1683972r1=1683971r2=1683972view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java Sun Jun 7 01:05:22 2015 @@ -46,6 +46,7 @@ public class DBIdentifier extends Identi
svn commit: r1683972 [2/2] - in /openjpa/branches/openjpa_jpa-2.1: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-jdb
Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?rev=1683972r1=1683971r2=1683972view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java Sun Jun 7 01:05:22 2015 @@ -63,6 +63,8 @@ import static org.apache.openjpa.persist import static org.apache.openjpa.persistence.MetaDataTag.QUERY; import static org.apache.openjpa.persistence.MetaDataTag.READ_ONLY; import static org.apache.openjpa.persistence.MetaDataTag.SEQ_GENERATOR; +import static org.apache.openjpa.persistence.MetaDataTag.STOREDPROCEDURE_QUERIES; +import static org.apache.openjpa.persistence.MetaDataTag.STOREDPROCEDURE_QUERY; import static org.apache.openjpa.persistence.MetaDataTag.TYPE; import static org.apache.openjpa.persistence.MetaDataTag.VERSION; @@ -120,9 +122,12 @@ import javax.persistence.NamedNativeQuer import javax.persistence.NamedNativeQuery; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; +import javax.persistence.NamedStoredProcedureQueries; +import javax.persistence.NamedStoredProcedureQuery; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.OrderBy; +import javax.persistence.ParameterMode; import javax.persistence.PostLoad; import javax.persistence.PostPersist; import javax.persistence.PostRemove; @@ -132,6 +137,7 @@ import javax.persistence.PreRemove; import javax.persistence.PreUpdate; import javax.persistence.QueryHint; import javax.persistence.SequenceGenerator; +import javax.persistence.StoredProcedureParameter; import javax.persistence.Version; import org.apache.commons.lang.StringUtils; @@ -156,6 +162,7 @@ import org.apache.openjpa.meta.Lifecycle import org.apache.openjpa.meta.MetaDataFactory; import org.apache.openjpa.meta.MetaDataModes; import org.apache.openjpa.meta.MetaDataRepository; +import org.apache.openjpa.meta.MultiQueryMetaData; import org.apache.openjpa.meta.Order; import org.apache.openjpa.meta.QueryMetaData; import org.apache.openjpa.meta.SequenceMetaData; @@ -203,6 +210,8 @@ public class AnnotationPersistenceMetaDa _tags.put(MapsId.class, MAPPED_BY_ID); _tags.put(NamedNativeQueries.class, NATIVE_QUERIES); _tags.put(NamedNativeQuery.class, NATIVE_QUERY); +_tags.put(NamedStoredProcedureQueries.class, STOREDPROCEDURE_QUERIES); +_tags.put(NamedStoredProcedureQuery.class, STOREDPROCEDURE_QUERY); _tags.put(NamedQueries.class, QUERIES); _tags.put(NamedQuery.class, QUERY); _tags.put(OrderBy.class, ORDER_BY); @@ -471,6 +480,14 @@ public class AnnotationPersistenceMetaDa if (isQueryMode() (pkgMode MODE_QUERY) == 0) parseNamedQueries(pkg, (NamedQuery) anno); break; +case STOREDPROCEDURE_QUERIES: +if (isQueryMode()) +parseNamedStoredProcedureQueries(pkg, ((NamedStoredProcedureQueries) anno).value()); +break; +case STOREDPROCEDURE_QUERY: +if (isQueryMode()) +parseNamedStoredProcedureQueries(pkg, ((NamedStoredProcedureQuery) anno)); +break; case SEQ_GENERATOR: if (isMappingOverrideMode() (pkgMode MODE_MAPPING) == 0) @@ -623,6 +640,14 @@ public class AnnotationPersistenceMetaDa if (isQueryMode() (meta.getSourceMode() MODE_QUERY)==0) parseNamedQueries(_cls, (NamedQuery) anno); break; +case STOREDPROCEDURE_QUERIES: +if (isQueryMode()) +parseNamedStoredProcedureQueries(_cls, ((NamedStoredProcedureQueries) anno).value()); +break; +case STOREDPROCEDURE_QUERY: +if (isQueryMode()) +parseNamedStoredProcedureQueries(_cls, ((NamedStoredProcedureQuery) anno)); +break; case SEQ_GENERATOR: if (isMappingOverrideMode()) parseSequenceGenerator(_cls, (SequenceGenerator) anno); @@ -1043,8 +1068,8 @@ public class AnnotationPersistenceMetaDa * If FetchGroup A includes FetchGroup B, then a bi-link is set between * A and B. Both A and B must be declared in the same Class. * br -
svn commit: r1683976 - in /openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence: MetaDataTag.java XMLPersistenceMetaDataParser.java
Author: rmannibucau Date: Sun Jun 7 01:17:38 2015 New Revision: 1683976 URL: http://svn.apache.org/r1683976 Log: basis for stored procedure query xml parsing Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java?rev=1683976r1=1683975r2=1683976view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java Sun Jun 7 01:17:38 2015 @@ -91,5 +91,9 @@ public enum MetaDataTag { OPENJPA_VERSION, // JPA 2.1 STOREDPROCEDURE_QUERIES, -STOREDPROCEDURE_QUERY +STOREDPROCEDURE_QUERY, +PARAMETER, +RESULT_CLASS, +RESULT_SET_MAPPING, +HINT } Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1683976r1=1683975r2=1683976view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java Sun Jun 7 01:17:38 2015 @@ -39,6 +39,7 @@ import javax.persistence.CascadeType; import javax.persistence.GenerationType; import javax.persistence.LockModeType; +import static java.util.Arrays.asList; import static javax.persistence.CascadeType.*; import org.apache.commons.lang.StringUtils; @@ -65,6 +66,7 @@ import org.apache.openjpa.meta.Lifecycle import org.apache.openjpa.meta.MetaDataContext; import org.apache.openjpa.meta.MetaDataDefaults; import org.apache.openjpa.meta.MetaDataFactory; +import org.apache.openjpa.meta.MultiQueryMetaData; import org.apache.openjpa.meta.UpdateStrategies; import static org.apache.openjpa.meta.MetaDataModes.*; @@ -156,6 +158,11 @@ public class XMLPersistenceMetaDataParse _elems.put(ELEM_XML_MAP_META_COMPLETE, ELEM_XML_MAP_META_COMPLETE); _elems.put(ELEM_DELIM_IDS, ELEM_DELIM_IDS); +_elems.put(parameter, PARAMETER); +_elems.put(result-class, RESULT_CLASS); +_elems.put(result-set-mapping, RESULT_SET_MAPPING); +_elems.put(hint, HINT); + _elems.put(entity-listeners, ENTITY_LISTENERS); _elems.put(pre-persist, PRE_PERSIST); _elems.put(post-persist, POST_PERSIST); @@ -170,6 +177,7 @@ public class XMLPersistenceMetaDataParse _elems.put(named-query, QUERY); _elems.put(named-native-query, NATIVE_QUERY); +_elems.put(named-stored-procedure-query, STOREDPROCEDURE_QUERY); _elems.put(query-hint, QUERY_HINT); _elems.put(query, QUERY_STRING); @@ -618,6 +626,21 @@ public class XMLPersistenceMetaDataParse case NATIVE_QUERY: ret = startNamedNativeQuery(attrs); break; +case STOREDPROCEDURE_QUERY: +ret = startStoredQuery(attrs); +break; +case PARAMETER: +ret = startStoredProcedureParameter(attrs); +break; +case RESULT_CLASS: +ret = startResultClass(); +break; +case RESULT_SET_MAPPING: +ret = startResultSetMapping(); +break; +case HINT: +ret = startStoredProcedureHint(attrs); +break; case QUERY_STRING: ret = startQueryString(attrs); break; @@ -683,6 +706,15 @@ public class XMLPersistenceMetaDataParse case NATIVE_QUERY: endNamedNativeQuery(); break; +case STOREDPROCEDURE_QUERY: +popElement(); +break; +case RESULT_CLASS: +endResultClass(); +break; +case RESULT_SET_MAPPING: +endResultSetMapping(); +break
svn commit: r1683942 - in /openjpa/branches/openjpa_jpa-2.1: ./ openjpa-integration/tck/ openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/ openjpa-jest/
Author: rmannibucau Date: Sat Jun 6 19:19:11 2015 New Revision: 1683942 URL: http://svn.apache.org/r1683942 Log: upgrading API (throwing exception for all new methods) to JPA 2.1 Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java openjpa/branches/openjpa_jpa-2.1/openjpa-jest/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/NonstandardMappingEntity.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoreCacheImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java openjpa/branches/openjpa_jpa-2.1/openjpa-project/assembly.xml openjpa/branches/openjpa_jpa-2.1/openjpa-project/bin-assembly.xml openjpa/branches/openjpa_jpa-2.1/openjpa-slice/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-fetch-statistics/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/dependingArtifact/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/nonDefaultPersistenceXml/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/sqlActionDropSchema/pom.xml openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/testDependencies/pom.xml openjpa/branches/openjpa_jpa-2.1/pom.xml openjpa/branches/openjpa_jpa-2.1/scripts/mmg.bat Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml?rev=1683942r1=1683941r2=1683942view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml Sat Jun 6 19:19:11 2015 @@ -458,7 +458,7 @@ databaseName=${db.name} dependencies dependency groupIdorg.apache.geronimo.specs/groupId -artifactIdgeronimo-jpa_2.0_spec/artifactId +artifactIdgeronimo-jpa_2.1_spec/artifactId scopecompile/scope /dependency dependency Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java URL: http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java?rev=1683942r1=1683941r2=1683942view=diff == --- openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java (original) +++ openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java Sat Jun 6 19:19:11 2015 @@ -32,6 +32,16 @@ public class DummyProvider1 implements P return null; } +@Override +public void generateSchema(PersistenceUnitInfo info, Map map) { +// no-op +} + +@Override +public boolean generateSchema(String persistenceUnitName, Map map) { +return false; +} + public EntityManagerFactory createEntityManagerFactory(String s, Map map) { return null; } Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java URL: http://svn.apache.org/viewvc
svn commit: r1683938 - /openjpa/branches/openjpa_jpa-2.1/
Author: rmannibucau Date: Sat Jun 6 17:38:42 2015 New Revision: 1683938 URL: http://svn.apache.org/r1683938 Log: creating a jpa 2.1 branchfrom trunk Added: openjpa/branches/openjpa_jpa-2.1/ (props changed) - copied from r1683937, openjpa/trunk/ Propchange: openjpa/branches/openjpa_jpa-2.1/ -- --- svn:ignore (added) +++ svn:ignore Sat Jun 6 17:38:42 2015 @@ -0,0 +1,15 @@ +.* +openjpa-database +target +subs +*.bat +enhance.xml +user.dict +wip +patches +bin +*.log +maven-eclipse.xml +*.iml +*.ipr +*.iws Propchange: openjpa/branches/openjpa_jpa-2.1/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Sat Jun 6 17:38:42 2015 @@ -0,0 +1,6 @@ +/openjpa/branches/1.0.x:736493 +/openjpa/branches/2.0.x:1504611 +/openjpa/branches/2.1.x:1415379,1415398,1485010,1513249,1517838,1530146,1533218,1533280,1539188,1569528,1575444,1591536,1636464,1655218,1662610,1673300,1673491 +/openjpa/branches/2.2.1.x:1415367,1415413,1415425,1504719,1508186,1530347,1533222,1539193,1651808 +/openjpa/branches/2.2.x:1384400,1415459-1415460,1415469,1485013,1530364,1533223,1580898,1580939,1591681,1631786,1641906,1642555,1666312 +/openjpa/branches/2.3.x:1533462,1535560,1536912,1540277,1564121
svn commit: r1688082 - /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java
Author: rmannibucau Date: Mon Jun 29 04:25:16 2015 New Revision: 1688082 URL: http://svn.apache.org/r1688082 Log: OPENJPA-2597 DECIMAL and NUMERIC needs scale configuration for hsqldb Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?rev=1688082r1=1688081r2=1688082view=diff == --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java Mon Jun 29 04:25:16 2015 @@ -97,6 +97,8 @@ public class HSQLDictionary extends DBDi fixedSizeTypeNameSet.addAll(Arrays.asList(new String[]{ TEXT })); +fixedSizeTypeNameSet.remove(NUMERIC); +fixedSizeTypeNameSet.remove(DECIMAL); } /**
svn commit: r1716891 - in /openjpa/trunk: openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java openjpa-persistence/src/main/java/org/apache/openjpa/persisten
Author: rmannibucau Date: Fri Nov 27 15:52:13 2015 New Revision: 1716891 URL: http://svn.apache.org/viewvc?rev=1716891=rev Log: OPENJPA-2618 pevent Tuple to pass through in createXQuery methods since we dont support it yet Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java - copied, changed from r1716854, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java (from r1716854, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java) URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java=1716854=1716891=1716891=diff == --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java (original) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java Fri Nov 27 15:52:13 2015 @@ -18,19 +18,15 @@ */ package org.apache.openjpa.persistence.query; -import javax.persistence.EntityManager; -import javax.persistence.Query; - import junit.textui.TestRunner; import org.apache.openjpa.persistence.simple.NamedEntity; import org.apache.openjpa.persistence.test.SingleEMFTestCase; -/** - * Test that we can query by an entity's abstract schema name. - * - * @author Abe White - */ -public class TestAbstractSchemaName +import javax.persistence.EntityManager; +import javax.persistence.PersistenceException; +import javax.persistence.Tuple; + +public class TupleQueryTest extends SingleEMFTestCase { public void setUp() { @@ -46,17 +42,20 @@ public class TestAbstractSchemaName em.close(); } -public void testQuery() { +public void testNormalQuery() { EntityManager em = emf.createEntityManager(); -Query q = em.createQuery("select e from named e"); -NamedEntity e = (NamedEntity) q.getSingleResult(); -assertNotNull(e); -assertEquals("e", e.getName()); -em.close(); +try { +em.createQuery("select e.name from named e", Tuple.class); +fail(); +} catch (final PersistenceException pe) { +// ok +} finally { +em.close(); +} } public static void main(String[] args) { -TestRunner.run(TestAbstractSchemaName.class); +TestRunner.run(TupleQueryTest.class); } } Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=1716891=1716890=1716891=diff == --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java Fri Nov 27 15:52:13 2015 @@ -46,6 +46,7 @@ import javax.persistence.FlushModeType; import javax.persistence.LockModeType; import javax.persistence.PessimisticLockScope; import javax.persistence.Query; +import javax.persistence.Tuple; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.ParameterExpression; @@ -972,9 +973,16 @@ public class EntityManagerImpl @SuppressWarnings("unchecked") public TypedQuery createQuery(String query, Class resultClass) { +checkTuple(resultClass); return createQuery(query).setResultClass(resultClass); } - + +private void checkTuple(Class resultClass) { +if (Tuple.class == resultClass) { +throw new PersistenceException("Tuple is not a valid type", null, null, true); +} +} + public OpenJPAQuery createQuery(String query) { return createQuery(JPQLParser.LANG_JPQL, query); } @@ -1014,6 +1022,7 @@ public class EntityManagerImpl @SuppressWarnings("unchecked") public TypedQuery createNamedQuery(String name, Class resultClass) { +checkTuple(resultClass); return createNamedQuery(na
svn commit: r1718043 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
Author: rmannibucau Date: Fri Dec 4 21:59:08 2015 New Revision: 1718043 URL: http://svn.apache.org/viewvc?rev=1718043=rev Log: new line - checkstyle fix Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java?rev=1718043=1718042=1718043=diff == --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java (original) +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java Fri Dec 4 21:59:08 2015 @@ -59,3 +59,4 @@ public class BlacklistClassResolver { return false; } } +
svn commit: r1719469 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
Author: rmannibucau Date: Fri Dec 11 16:27:33 2015 New Revision: 1719469 URL: http://svn.apache.org/viewvc?rev=1719469=rev Log: forcing EOL for BlacklistClassResolver Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java (props changed) Propchange: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java -- svn:eol-style = LF
svn commit: r1716864 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
Author: rmannibucau Date: Fri Nov 27 12:41:31 2015 New Revision: 1716864 URL: http://svn.apache.org/viewvc?rev=1716864=rev Log: better whitelist handling Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java?rev=1716864=1716863=1716864=diff == --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java (original) +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java Fri Nov 27 12:41:31 2015 @@ -20,10 +20,9 @@ package org.apache.openjpa.util; public class BlacklistClassResolver { public static final BlacklistClassResolver DEFAULT = new BlacklistClassResolver( -toArray( -System.getProperty( -"openjpa.serialization.class.blacklist", - "org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan")), +toArray(System.getProperty( +"openjpa.serialization.class.blacklist", + "org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan")), toArray(System.getProperty("openjpa.serialization.class.whitelist"))); private final String[] blacklist; @@ -35,7 +34,7 @@ public class BlacklistClassResolver { } protected boolean isBlacklisted(final String name) { -return !contains(whitelist, name) && contains(blacklist, name); +return (whitelist != null && !contains(whitelist, name)) || contains(blacklist, name); } public final String check(final String name) {
svn commit: r1716859 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/util/ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/
Author: rmannibucau Date: Fri Nov 27 12:15:47 2015 New Revision: 1716859 URL: http://svn.apache.org/viewvc?rev=1716859=rev Log: OPENJPA-2617 adding BlacklistClassResolver to support blacklisting of class loading in our ObjectInputStream Added: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java Added: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java?rev=1716859=auto == --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java (added) +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java Fri Nov 27 12:15:47 2015 @@ -0,0 +1,62 @@ +/* + * 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. + */ +package org.apache.openjpa.util; + +public class BlacklistClassResolver { +public static final BlacklistClassResolver DEFAULT = new BlacklistClassResolver( +toArray( +System.getProperty( +"openjpa.serialization.class.blacklist", + "org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan")), +toArray(System.getProperty("openjpa.serialization.class.whitelist"))); + +private final String[] blacklist; +private final String[] whitelist; + +protected BlacklistClassResolver(final String[] blacklist, final String[] whitelist) { +this.whitelist = whitelist; +this.blacklist = blacklist; +} + +protected boolean isBlacklisted(final String name) { +return !contains(whitelist, name) && contains(blacklist, name); +} + +public final String check(final String name) { +if (isBlacklisted(name)) { +throw new SecurityException(name + " is not whitelisted as deserialisable, prevented before loading."); +} +return name; +} + +private static String[] toArray(final String property) { +return property == null ? null : property.split(" *, *"); +} + +private static boolean contains(final String[] list, String name) { +if (list != null) { +for (final String white : list) { +if (name.startsWith(white)) { +return true; +} +} +} +return false; +} +} Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java?rev=1716859=1716858=1716859=diff == --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java (original) +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java Fri Nov 27 12:15:47 2015 @@ -128,12 +128,13 @@ public class Serialization { protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { +String name = BlacklistClassResolver.DEFAULT.check(desc.getName()); MultiClassLoader loader = AccessController .doPrivileged(J2DoPrivHelper.newMultiClassLoaderAction()); addContextClassLoaders(loader); loader.addClassLoader(getClass().getClassLoader()); loader.addClassLoader(MultiClassLoader.SYSTEM_LOADER); -return Class.forName(desc.getName(), true, loader); +return Class.forName(name, true, loader); } protected void addContextClassLoaders(MultiClassLoader loader) { Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa
svn commit: r1727495 - in /openjpa/sandboxes/21: openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java openjpa/pom.xml
Author: rmannibucau Date: Fri Jan 29 08:07:05 2016 New Revision: 1727495 URL: http://svn.apache.org/viewvc?rev=1727495=rev Log: applying OPENJPA-2607 Modified: openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java openjpa/sandboxes/21/openjpa/pom.xml Modified: openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java URL: http://svn.apache.org/viewvc/openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=1727495=1727494=1727495=diff == --- openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java (original) +++ openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java Fri Jan 29 08:07:05 2016 @@ -2032,34 +2032,7 @@ public class EntityManagerImpl return newProcedure(procedureName, meta); } - /** -* Creates a query to execute a Stored Procedure. -* -* Construction of a {@link StoredProcedureQuery} object is a three step process -* -* a {@link org.apache.openjpa.kernel.Query kernel query} {@code kQ} is created for -* {@link QueryLanguages#LANG_SQL SQL} language with the string {@code S} -* a {@link QueryImpl facade query} {@code fQ} is created that delegates to the kernel query {@code kQ} -* a {@link StoredProcedureQueryImpl stored procedure query} is created that delegates to the facade query -* {@code fQ}. -* -* -* @param sql name of the database stored procedure. -* @param meta -* @param mappingName -* @return -*/ - private StoredProcedureQuery newProcedure(String procedureName, MultiQueryMetaData meta) { -org.apache.openjpa.kernel.QueryImpl kernelQuery = (org.apache.openjpa.kernel.QueryImpl) - _broker.newQuery(QueryLanguages.LANG_STORED_PROC, procedureName); -kernelQuery.getStoreQuery().setQuery(meta); -if (meta != null) { - getConfiguration().getMetaDataRepositoryInstance().addQueryMetaData(meta); - kernelQuery.setResultMapping(null, meta.getResultSetMappingName()); -} -org.apache.openjpa.persistence.QueryImpl facadeQuery = new QueryImpl(this, _ret, kernelQuery, meta, _log); -return new StoredProcedureQueryImpl(procedureName, facadeQuery); - } + @Override public boolean isJoinedToTransaction() { Modified: openjpa/sandboxes/21/openjpa/pom.xml URL: http://svn.apache.org/viewvc/openjpa/sandboxes/21/openjpa/pom.xml?rev=1727495=1727494=1727495=diff == --- openjpa/sandboxes/21/openjpa/pom.xml (original) +++ openjpa/sandboxes/21/openjpa/pom.xml Fri Jan 29 08:07:05 2016 @@ -120,7 +120,22 @@ org.apache.openjpa.persistence.osgi.PersistenceActivator org.apache.openjpa.*;version=${project.version} - com.ibm.*;resolution:=optional,org.postgresql.*;resolution:=optional,org.apache.tools.ant.*;resolution:=optional,org.apache.log4j.*;resolution:=optional,org.slf4j.*;resolution:=optional,org.apache.commons.logging.*;resolution:=optional,javax.activation.xa*;resolution:=optional,javax.jms.*;version="[1.1.0,1.2)";resolution:=optional,javax.transaction.*;version="[1.1.0,1.2)";resolution:=optional,javax.validation.*;version="[1.0.0,1.1)";resolution:=optional,javax.xml.bind.*;resolution:=optional,serp.*;resolution:=optional,javax.persistence.*;version="[1.1.0,2.1)",* + + com.ibm.*;resolution:=optional, + org.postgresql.*;resolution:=optional, + org.apache.tools.ant.*;resolution:=optional, + org.apache.log4j.*;resolution:=optional, + org.slf4j.*;resolution:=optional, + org.apache.commons.logging.*;resolution:=optional, + javax.activation.xa*;resolution:=optional, + javax.jms.*;version="[1.1.0,1.2)";resolution:=optional, + javax.transaction.*;version="[1.1,1.3)";resolution:=optional, + javax.validation.*;version="[1.0.0,1.1)";resolution:=optional, + javax.xml.bind.*;resolution:=optional, + serp.*;resolution:=optional, + javax.persistence.*;version="[1.1.0,2.1)", + * +
svn commit: r1727520 - in /openjpa/trunk/openjpa-kernel/src: main/java/org/apache/openjpa/enhance/AsmAdaptor.java main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java test/java/org/apache/
Author: rmannibucau Date: Fri Jan 29 10:36:53 2016 New Revision: 1727520 URL: http://svn.apache.org/viewvc?rev=1727520=rev Log: OPENJPA-2626 support of java 8 bytecode test for isEnhanced - avoid to have logs full of exception/warnings when it actually works cause it is already enahnced at build time Added: openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java?rev=1727520=1727519=1727520=diff == --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java (original) +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java Fri Jan 29 10:36:53 2016 @@ -20,22 +20,29 @@ package org.apache.openjpa.enhance; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.net.URLDecoder; import org.apache.xbean.asm5.ClassReader; +import org.apache.xbean.asm5.ClassVisitor; import org.apache.xbean.asm5.ClassWriter; +import org.apache.xbean.asm5.Opcodes; import serp.bytecode.BCClass; +import static java.util.Arrays.asList; + /** * Use ASM to add required StackMapTable attribute to the byte code generated by * Serp. */ public final class AsmAdaptor { +private static final boolean USE_ASM = System.getProperty("java.version").compareTo("1.6") > 0; private static final int Java7_MajorVersion = 51; @SuppressWarnings("deprecation") @@ -95,6 +102,70 @@ public final class AsmAdaptor { return cw.toByteArray(); } +public static boolean use() +{ +return USE_ASM; +} + +public static boolean isEnhanced(final byte[] b) +{ +if (b == null) +{ +return false; +} +final ClassReader cr = new ClassReader(b); +try +{ +cr.accept(new ClassVisitor(Opcodes.ASM5) +{ +@Override +public void visit(final int i, final int i1, + final String name, final String s, + final String parent, final String[] interfaces) +{ +boolean enhanced = interfaces != null && interfaces.length > 0 && + asList(interfaces).contains("org/apache/openjpa/enhance/PersistenceCapable"); +if (!enhanced && name != null && parent != null && +!"java/lang/Object".equals(parent) && !name.equals(parent)) { +enhanced = isEnhanced(bytes(parent)); +} +throw new EnhancedStatusException(enhanced); +} +}, 0); +return false; +} catch (final EnhancedStatusException e) { +return e.status; +} catch (final Exception e) { +return false; +} +} + +private static byte[] bytes(final String type) +{ +final ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); +final InputStream stream = Thread.currentThread().getContextClassLoader() +.getResourceAsStream(type + ".class"); +if (stream == null) { +return null; +} +try { +int c; +byte[] buffer = new byte[1024]; +while ((c = stream.read(buffer)) >= 0) { +baos.write(buffer, 0, c); +} +} catch (IOException e) { +return null; +} finally { +try { +stream.close(); +} catch (IOException e) { +// no-op +} +} +return baos.toByteArray(); +} + private static class BCClassWriter extends ClassWriter { private final ClassLoader _loader; @@ -128,4 +199,12 @@ public final class AsmAdaptor { return class1.getName().replace('.', '/'); } } + +private static class EnhancedStatusException extends RuntimeException { +private final boolean status; + +private EnhancedStatusException(final boolean status) { +this.status = status; +} +} } Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache
svn commit: r1757319 - /openjpa/trunk/openjpa-project/checkstyle.xml
Author: rmannibucau Date: Tue Aug 23 07:57:16 2016 New Revision: 1757319 URL: http://svn.apache.org/viewvc?rev=1757319=rev Log: ensure checkstyle uses UNIx EOL to have a portable build on windows Modified: openjpa/trunk/openjpa-project/checkstyle.xml Modified: openjpa/trunk/openjpa-project/checkstyle.xml URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/checkstyle.xml?rev=1757319=1757318=1757319=diff == --- openjpa/trunk/openjpa-project/checkstyle.xml (original) +++ openjpa/trunk/openjpa-project/checkstyle.xml Tue Aug 23 07:57:16 2016 @@ -18,7 +18,9 @@ we can remove this file and remove the reference from the pom.xml --> - + + +
svn commit: r1757320 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java
Author: rmannibucau Date: Tue Aug 23 07:57:38 2016 New Revision: 1757320 URL: http://svn.apache.org/viewvc?rev=1757320=rev Log: OPENJPA-2300 avoid warnings due to annotation processor Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java?rev=1757320=1757319=1757320=diff == --- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java (original) +++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java Tue Aug 23 07:57:38 2016 @@ -18,8 +18,6 @@ */ package org.apache.openjpa.persistence.meta; -import static javax.lang.model.SourceVersion.RELEASE_6; - import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -38,7 +36,7 @@ import javax.annotation.processing.Proce import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; import javax.annotation.processing.SupportedOptions; -import javax.annotation.processing.SupportedSourceVersion; +import javax.lang.model.SourceVersion; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.lang.model.type.TypeKind; @@ -103,7 +101,6 @@ import org.apache.openjpa.persistence.ut "openjpa.header", "openjpa.metamodel" }) -@SupportedSourceVersion(RELEASE_6) public class AnnotationProcessor6 extends AbstractProcessor { private SourceAnnotationHandler handler; @@ -113,6 +110,7 @@ public class AnnotationProcessor6 extend private List header = new ArrayList(); private boolean active; private static Localizer _loc = Localizer.forPackage(AnnotationProcessor6.class); +private SourceVersion supportedSourceVersion; /** * Category of members as per JPA 2.0 type system. @@ -183,7 +181,15 @@ public class AnnotationProcessor6 extend return TypeCategory.MAP; return TypeCategory.ATTRIBUTE; } - + +@Override +public SourceVersion getSupportedSourceVersion() { +if (supportedSourceVersion != null) { +return supportedSourceVersion; +} +return SourceVersion.latestSupported(); +} + /** * Initialization. */ @@ -193,6 +199,14 @@ public class AnnotationProcessor6 extend active = "true".equalsIgnoreCase(getOptionValue("openjpa.metamodel")); if (!active) return; + +final String supported = getOptionValue("openjpa.processor.supportedversion"); +if (supported != null) { +supportedSourceVersion = SourceVersion.valueOf(supported); +} else { // default to ensure we don't log a false warning for every compilation, see OPENJPA-2300 +supportedSourceVersion = SourceVersion.latestSupported(); +} + processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, _loc.get("mmg-tool-banner").toString()); logger = new CompileTimeLogger(processingEnv, getOptionValue("openjpa.log")); setSourceVersion();
svn commit: r1770509 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ openjpa-jdbc/src/main/java/org/apache/open
Author: rmannibucau Date: Sat Nov 19 18:08:44 2016 New Revision: 1770509 URL: http://svn.apache.org/viewvc?rev=1770509=rev Log: OPENJPA-2554 JPA 2.1 - Schema Generation, patch from Roberto Cortez, doc to update still Added: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/SchemaGenerationAction.java openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/SchemaGenerationSource.java openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaGenerationProperties.java openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/create-after-metadata.sql openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/create.sql openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/drop-after-metadata.sql openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/drop.sql openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/load.sql Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java?rev=1770509=1770508=1770509=diff == --- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java (original) +++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java Sat Nov 19 18:08:44 2016 @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Map; +import org.apache.openjpa.conf.SchemaGenerationSource; import org.apache.openjpa.lib.util.StringUtil; import org.apache.openjpa.jdbc.conf.JDBCConfiguration; import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl; @@ -36,6 +37,19 @@ import org.apache.openjpa.lib.conf.Confi import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.util.UserException; +import static org.apache.openjpa.conf.SchemaGenerationAction.CREATE; +import static org.apache.openjpa.conf.SchemaGenerationAction.DROP; +import static org.apache.openjpa.conf.SchemaGenerationAction.DROP_AND_CREATE; +import static org.apache.openjpa.conf.SchemaGenerationSource.METADATA; +import static org.apache.openjpa.conf.SchemaGenerationSource.METADATA_THEN_SCRIPT; +import static org.apache.openjpa.conf.SchemaGenerationSource.SCRIPT; +import static org.apache.openjpa.conf.SchemaGenerationSource.SCRIPT_THEN_METADATA; +import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_ADD; +import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_DROP; +import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_SCRIPT_CREATE; +import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_SCRIPT_DROP; +import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_SCRIPT_LOAD; + /** * BrokerFactory type for use with the JDBC runtime. * @@ -133,6 +147,7 @@ public class JDBCBrokerFactory */ protected void synchronizeMappings(ClassLoader loader, JDBCConfiguration conf) { +mapSchemaGenerationToSynchronizeMappings(conf); String action = conf.getSynchronizeMappings(); if (StringUtil.isEmpty(action)) return; @@ -163,4 +178,80 @@ public class JDBCBrokerFactory protected void synchronizeMappings(ClassLoader loader) { synchronizeMappings(loader, (JDBCConfiguration) getConfiguration()); } + +private void mapSchemaGenerationToSynchronizeMappings(JDBCConfiguration conf) { +String actions = ""; +if (conf.getDatabaseAction() != null) { +int databaseAction = conf.getDatabaseActionConstant(); +if (databaseAction == CREATE) { +actions = generateSchemaCreation(conf); +} else if (databaseAction == DROP) { +actions = generateSchemaDrop(conf); +} else if (databaseAction == DROP_AND_CREATE) { +actions = generateSchemaDropC
svn commit: r1838151 - /openjpa/trunk/openjpa-features/src/main/feature/feature.xml
Author: rmannibucau Date: Thu Aug 16 06:35:24 2018 New Revision: 1838151 URL: http://svn.apache.org/viewvc?rev=1838151=rev Log: OPENJPA-2746 patch from jbonofre, OpenJPA Karaf feature is not complete, missing xbean asm 6 and provider capabilities Modified: openjpa/trunk/openjpa-features/src/main/feature/feature.xml Modified: openjpa/trunk/openjpa-features/src/main/feature/feature.xml URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-features/src/main/feature/feature.xml?rev=1838151=1838150=1838151=diff == --- openjpa/trunk/openjpa-features/src/main/feature/feature.xml (original) +++ openjpa/trunk/openjpa-features/src/main/feature/feature.xml Thu Aug 16 06:35:24 2018 @@ -28,8 +28,11 @@ mvn:commons-dbcp/commons-dbcp/1.4 mvn:commons-collections/commons-collections/3.2.2 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.14.1_1 -mvn:org.apache.xbean/xbean-asm5-shaded/4.3 +mvn:org.apache.xbean/xbean-asm6-shaded/4.9 mvn:org.apache.openjpa/openjpa/${project.version} + + osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl +
[openjpa] branch master updated: OPENJPA-2770 ensure equal(xxx, literal(boolean)) works in criteria builder
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 9e22265 OPENJPA-2770 ensure equal(xxx, literal(boolean)) works in criteria builder 9e22265 is described below commit 9e222652dff1d959a2252cf96e5abb48a11dd7fd Author: Romain Manni-Bucau AuthorDate: Wed Jan 23 10:21:53 2019 +0100 OPENJPA-2770 ensure equal(xxx, literal(boolean)) works in criteria builder --- .../persistence/criteria/TestTypesafeCriteria.java | 10 ++ .../persistence/criteria/CriteriaBuilderImpl.java | 18 ++ .../openjpa/persistence/criteria/PredicateImpl.java| 3 +++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java index d850c16..5f2f8e5 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java @@ -76,6 +76,16 @@ public class TestTypesafeCriteria extends CriteriaTest { assertEquivalence(q.where(cb.literal(Boolean.FALSE)), FALSE_JPQL); } +public void testBooleanLiteralInEquals() { +CriteriaQuery q = cb.createQuery(Order.class); +Root root = q.from(Order.class); +Path path = root.get("delivered"); +Expression literal = cb.literal(Boolean.FALSE); +assertEquals( // we don't want o.delivered = 1 <> 1 but o.delivered = false +"SELECT o FROM Order o WHERE o.delivered = false", +((OpenJPACriteriaQuery) q.select(root).where(cb.equal(path, literal))).toCQL()); +} + public void testDefaultAndIsTrue() { CriteriaQuery q = cb.createQuery(Person.class); q.from(Person.class); diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java index 05a6b13..a3e54ed 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java @@ -264,19 +264,19 @@ public class CriteriaBuilderImpl implements OpenJPACriteriaBuilder, ExpressionPa @Override public Expression diff(Expression x, Expression y) { -return new Expressions.Diff<>(x, y); +return new Expressions.Diff<>(replaceExpressionForBinaryOperator(x), replaceExpressionForBinaryOperator(y)); } @Override public Expression diff( Expression x, N y) { -return new Expressions.Diff<>(x, y); +return new Expressions.Diff<>(replaceExpressionForBinaryOperator(x), y); } @Override public Expression diff(N x, Expression y) { -return new Expressions.Diff<>(x, y); +return new Expressions.Diff<>(x, replaceExpressionForBinaryOperator(y)); } @Override @@ -288,7 +288,17 @@ public class CriteriaBuilderImpl implements OpenJPACriteriaBuilder, ExpressionPa public Predicate equal(Expression x, Expression y) { if (y == null) return new Expressions.IsNull((ExpressionImpl )x); -return new Expressions.Equal(x, y); +return new Expressions.Equal(replaceExpressionForBinaryOperator(x), replaceExpressionForBinaryOperator(y)); +} + +private Expression replaceExpressionForBinaryOperator(final Expression expression) { +if (expression == PredicateImpl.TRUE()) { +return (Expression) PredicateImpl.TRUE_CONSTANT; +} +if (expression == PredicateImpl.FALSE()) { +return (Expression) PredicateImpl.FALSE_CONSTANT; +} +return expression; } @Override diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java index 9c6f34a..ea79d75 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java @@ -45,6 +45,9 @@ import org.apache.openjpa.kernel.exps.Literal; * @since 2.0.0 */ abstract class PredicateImpl extends ExpressionImpl implements Predicate { +static final Expression TRUE_CONSTANT = new Expressions.Constant<>(true); +static final Expression FALSE_CONSTANT = new
[openjpa] branch master updated: OPENJPA-2743 skip AttributeConverter when loading the Metamodel and preparing the broker to avoid to fail if it was registered in persistent classes (allowed in JPA to
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new ef98e18 OPENJPA-2743 skip AttributeConverter when loading the Metamodel and preparing the broker to avoid to fail if it was registered in persistent classes (allowed in JPA to bypass scanning but enable converters) ef98e18 is described below commit ef98e1848096448ba7e60f65839d69451dfcc06d Author: Romain Manni-Bucau AuthorDate: Mon Jul 29 17:40:09 2019 +0200 OPENJPA-2743 skip AttributeConverter when loading the Metamodel and preparing the broker to avoid to fail if it was registered in persistent classes (allowed in JPA to bypass scanning but enable converters) --- .../org/apache/openjpa/jdbc/meta/MappingTool.java | 2 +- .../apache/openjpa/conf/OpenJPAConfiguration.java | 4 ++ .../openjpa/conf/OpenJPAConfigurationImpl.java | 16 + .../org/apache/openjpa/enhance/PCEnhancer.java | 4 ++ .../apache/openjpa/meta/MetaDataRepository.java| 22 +- .../apache/openjpa/lib/conf/ClassListValue.java| 80 + openjpa-persistence-jdbc/src/main/ant/enhancer.xml | 1 + .../jdbc/JDBCPersistenceProductDerivation.java | 6 ++ .../persistence/meta/TestMetamodelWithEnum.java| 83 ++ .../openjpa/persistence/meta/MetamodelImpl.java| 4 ++ 10 files changed, 220 insertions(+), 2 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java index 511eabb..1e368de 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java @@ -748,7 +748,7 @@ public class MappingTool ClassMapping mapping = repos.getMapping(cls, null, false); if (mapping != null) return mapping; -if (!validate || cls.isInterface() +if (!validate || cls.isInterface() || repos.skipMetadata(cls) || repos.getPersistenceAware(cls) != null) return null; throw new MetaDataException(_loc.get("no-meta", cls, cls.getClassLoader())); diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java index bd844f6..703b487 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java @@ -2009,5 +2009,9 @@ public interface OpenJPAConfiguration String getDropScriptTarget(); String getLoadScriptSource(); + +Collection> getTypesWithoutEnhancement(); + +void setTypesWithoutEnhancement(Collection> value); } diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java index 17d9b84..6727e14 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java @@ -18,6 +18,8 @@ */ package org.apache.openjpa.conf; +import static java.util.Arrays.asList; + import java.util.Collection; import java.util.HashSet; import java.util.Map; @@ -54,6 +56,7 @@ import org.apache.openjpa.kernel.Seq; import org.apache.openjpa.kernel.exps.AggregateListener; import org.apache.openjpa.kernel.exps.FilterListener; import org.apache.openjpa.lib.conf.BooleanValue; +import org.apache.openjpa.lib.conf.ClassListValue; import org.apache.openjpa.lib.conf.ConfigurationImpl; import org.apache.openjpa.lib.conf.Configurations; import org.apache.openjpa.lib.conf.IntValue; @@ -178,6 +181,7 @@ public class OpenJPAConfigurationImpl public BooleanValue postLoadOnMerge; public BooleanValue optimizeIdCopy; public BooleanValue useTcclForSelectNew; +public ClassListValue typesWithoutEnhancement; // JPA Properties public IntValue databaseAction; @@ -672,6 +676,8 @@ public class OpenJPAConfigurationImpl useTcclForSelectNew.setDefault("false"); useTcclForSelectNew.set(false); +typesWithoutEnhancement = new ClassListValue(); + // initialize supported options that some runtimes may not support supportedOptions.add(OPTION_NONTRANS_READ); supportedOptions.add(OPTION_OPTIMISTIC); @@ -2278,5 +2284,15 @@ public class OpenJPAConfigurationImpl setUseTCCLinSelectNew(useTcclForSelectNew.booleanValue()); } } + +@Override +public Collection> getTypesWithoutEnhancement() { +return asList(typesWithoutEnhancement.get()); +} + +
[openjpa] branch master updated: OPENJPA-2803 make dbcp2 optional in OSGi
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 36ddbac OPENJPA-2803 make dbcp2 optional in OSGi 36ddbac is described below commit 36ddbac0e4dd39494887664f9a96024ad6df798a Author: Romain Manni-Bucau AuthorDate: Tue Feb 11 07:48:04 2020 +0100 OPENJPA-2803 make dbcp2 optional in OSGi --- openjpa/pom.xml | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openjpa/pom.xml b/openjpa/pom.xml index 7a93f96..fd16eb6 100644 --- a/openjpa/pom.xml +++ b/openjpa/pom.xml @@ -122,9 +122,9 @@ org.apache.openjpa.*;version=${project.version} -oracle.jdbc.pool;resolution:=optional, -oracle.jdbc;resolution:=optional, -oracle.sql;resolution:=optional, +oracle.jdbc.pool;resolution:=optional, +oracle.jdbc;resolution:=optional, +oracle.sql;resolution:=optional, com.ibm.*;resolution:=optional, org.postgresql.*;resolution:=optional, org.apache.tools.ant.*;resolution:=optional, @@ -137,6 +137,8 @@ javax.validation.*;version="[1.0.0,1.1)";resolution:=optional, javax.xml.bind.*;resolution:=optional, serp.*;resolution:=optional, +org.apache.commons.dbcp2.*;resolution:=optional, +io.fabric8.kubernetes.*;resolution:=optional, javax.persistence.*;version="[1.1.0,2.2)", *
[openjpa] branch master updated: removing kubernetes module from our osgi bundle
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new aad345f removing kubernetes module from our osgi bundle aad345f is described below commit aad345fc4a690db8b07a428ff6fa82cd02cf4183 Author: Romain Manni-Bucau AuthorDate: Tue Feb 11 08:10:44 2020 +0100 removing kubernetes module from our osgi bundle --- openjpa/pom.xml | 7 --- 1 file changed, 7 deletions(-) diff --git a/openjpa/pom.xml b/openjpa/pom.xml index 3300b37..a3a4b8e 100644 --- a/openjpa/pom.xml +++ b/openjpa/pom.xml @@ -83,7 +83,6 @@ org.apache.openjpa:openjpa-persistence-jdbc org.apache.openjpa:openjpa-xmlstore org.apache.openjpa:openjpa-slice - org.apache.openjpa:openjpa-kubernetes @@ -139,7 +138,6 @@ serp.*;resolution:=optional, org.apache.commons.dbcp2.*;resolution:=optional, org.apache.commons.pool2.*;resolution:=optional, -io.fabric8.kubernetes.*;resolution:=optional, javax.persistence.*;version="[1.1.0,2.2)", * @@ -238,10 +236,5 @@ openjpa-slice ${project.version} - -org.apache.openjpa -openjpa-kubernetes -${project.version} -
[openjpa] branch master updated: OPENJPA-2803 make pool2 optional in OSGi
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new a7c4f44 OPENJPA-2803 make pool2 optional in OSGi a7c4f44 is described below commit a7c4f4405eacd749659ecd0130cdb4d5e05acd3a Author: Romain Manni-Bucau AuthorDate: Tue Feb 11 07:53:25 2020 +0100 OPENJPA-2803 make pool2 optional in OSGi --- openjpa/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/openjpa/pom.xml b/openjpa/pom.xml index fd16eb6..3300b37 100644 --- a/openjpa/pom.xml +++ b/openjpa/pom.xml @@ -138,6 +138,7 @@ javax.xml.bind.*;resolution:=optional, serp.*;resolution:=optional, org.apache.commons.dbcp2.*;resolution:=optional, +org.apache.commons.pool2.*;resolution:=optional, io.fabric8.kubernetes.*;resolution:=optional, javax.persistence.*;version="[1.1.0,2.2)", *
[openjpa] branch master updated: extracting directory enhancement logic in a runnable for junit5 module to be able to reuse it easily
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new beb1255 extracting directory enhancement logic in a runnable for junit5 module to be able to reuse it easily beb1255 is described below commit beb125500f10b77cca8d40b88d23252af78fae21 Author: Romain Manni-Bucau AuthorDate: Tue Mar 31 09:28:32 2020 +0200 extracting directory enhancement logic in a runnable for junit5 module to be able to reuse it easily --- ...ension.java => OpenJPADirectoriesEnhancer.java} | 98 --- .../openjpa/junit5/internal/OpenJPAExtension.java | 318 + 2 files changed, 56 insertions(+), 360 deletions(-) diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java similarity index 84% copy from openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java copy to openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index 2478cad..7c62942 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -22,7 +22,6 @@ import org.apache.openjpa.conf.OpenJPAConfigurationImpl; import org.apache.openjpa.enhance.AsmAdaptor; import org.apache.openjpa.enhance.PCEnhancer; import org.apache.openjpa.enhance.PersistenceCapable; -import org.apache.openjpa.junit5.OpenJPASupport; import org.apache.openjpa.lib.log.LogFactory; import org.apache.openjpa.lib.log.LogFactoryImpl; import org.apache.openjpa.lib.log.SLF4JLogFactory; @@ -33,9 +32,6 @@ import org.apache.xbean.asm7.ClassReader; import org.apache.xbean.asm7.Type; import org.apache.xbean.asm7.shade.commons.EmptyVisitor; import org.apache.xbean.finder.ClassLoaders; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.platform.commons.util.AnnotationUtils; import serp.bytecode.BCClass; import serp.bytecode.Project; @@ -47,7 +43,6 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.InvocationTargetException; import java.net.URL; import java.nio.file.FileVisitResult; import java.nio.file.Files; @@ -66,53 +61,62 @@ import static org.apache.xbean.asm7.ClassReader.SKIP_CODE; import static org.apache.xbean.asm7.ClassReader.SKIP_DEBUG; import static org.apache.xbean.asm7.ClassReader.SKIP_FRAMES; -public class OpenJPAExtension implements BeforeAllCallback { -private static final Logger LOGGER = Logger.getLogger(OpenJPAExtension.class.getName()); +public class OpenJPADirectoriesEnhancer implements Runnable { +private static final Logger LOGGER = Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName()); +public static final StackTraceElement[] NO_STACK_TRACE = new StackTraceElement[0]; + +private final boolean auto; +private final String[] entities; +private final Class logFactory; + +public OpenJPADirectoriesEnhancer(final boolean auto, final String[] entities, final Class logFactory) { +this.auto = auto; +this.entities = entities; +this.logFactory = logFactory; +} @Override -public void beforeAll(final ExtensionContext context) { -AnnotationUtils.findAnnotation(context.getElement(), OpenJPASupport.class).ifPresent(s -> { -final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); -final OpenJpaClassLoader enhancementClassLoader = new OpenJpaClassLoader( -classLoader, createLogFactory(classLoader, s.logFactory())); -final Thread thread = Thread.currentThread(); -thread.setContextClassLoader(enhancementClassLoader); -try { -if (s.auto()) { +public void run() { +final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); +final OpenJpaClassLoader enhancementClassLoader = new OpenJpaClassLoader( +classLoader, createLogFactory(classLoader)); +final Thread thread = Thread.currentThread(); +thread.setContextClassLoader(enhancementClassLoader); +try { +if (auto) { +try { + ClassLoaders.findUrls(enhancementClassLoader.getParent()).stream() +.map(org.apache.xbean.finder.util.Files::toFile) +.filter(File::isDirectory) +.map(File::toPath) +.forEach(dir -> { +LO
[openjpa] branch master updated: OPENJPA-2811 asm8 support
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new a975a3d OPENJPA-2811 asm8 support a975a3d is described below commit a975a3d1c63a82a6897b79a5cc9fcc4a3ebbb01f Author: Romain Manni-Bucau AuthorDate: Mon Apr 27 16:52:11 2020 +0200 OPENJPA-2811 asm8 support --- openjpa-features/src/main/feature/feature.xml | 2 +- .../junit5/internal/OpenJPADirectoriesEnhancer.java| 14 +++--- openjpa-kernel/pom.xml | 2 +- .../main/java/org/apache/openjpa/enhance/AsmAdaptor.java | 10 +- openjpa-project/assembly.xml | 2 +- openjpa-project/bin-assembly.xml | 2 +- pom.xml| 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/openjpa-features/src/main/feature/feature.xml b/openjpa-features/src/main/feature/feature.xml index 63b39c0..c3fc1c3 100644 --- a/openjpa-features/src/main/feature/feature.xml +++ b/openjpa-features/src/main/feature/feature.xml @@ -28,7 +28,7 @@ mvn:org.apache.commons/commons-dbcp2/2.7.0 mvn:org.apache.commons/commons-collections4/4.4 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.14.1_1 -mvn:org.apache.xbean/xbean-asm7-shaded/${xbean.version} +mvn:org.apache.xbean/xbean-asm8-shaded/${xbean.version} mvn:org.apache.openjpa/openjpa/${project.version} osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index 7c62942..19b4419 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -27,10 +27,10 @@ import org.apache.openjpa.lib.log.LogFactoryImpl; import org.apache.openjpa.lib.log.SLF4JLogFactory; import org.apache.openjpa.meta.MetaDataRepository; import org.apache.openjpa.persistence.PersistenceMetaDataFactory; -import org.apache.xbean.asm7.AnnotationVisitor; -import org.apache.xbean.asm7.ClassReader; -import org.apache.xbean.asm7.Type; -import org.apache.xbean.asm7.shade.commons.EmptyVisitor; +import org.apache.xbean.asm8.AnnotationVisitor; +import org.apache.xbean.asm8.ClassReader; +import org.apache.xbean.asm8.Type; +import org.apache.xbean.asm8.shade.commons.EmptyVisitor; import org.apache.xbean.finder.ClassLoaders; import serp.bytecode.BCClass; import serp.bytecode.Project; @@ -57,9 +57,9 @@ import java.util.logging.Logger; import java.util.stream.Stream; import static java.util.Arrays.asList; -import static org.apache.xbean.asm7.ClassReader.SKIP_CODE; -import static org.apache.xbean.asm7.ClassReader.SKIP_DEBUG; -import static org.apache.xbean.asm7.ClassReader.SKIP_FRAMES; +import static org.apache.xbean.asm8.ClassReader.SKIP_CODE; +import static org.apache.xbean.asm8.ClassReader.SKIP_DEBUG; +import static org.apache.xbean.asm8.ClassReader.SKIP_FRAMES; public class OpenJPADirectoriesEnhancer implements Runnable { private static final Logger LOGGER = Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName()); diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml index 5a32849..5d97ccb 100644 --- a/openjpa-kernel/pom.xml +++ b/openjpa-kernel/pom.xml @@ -77,7 +77,7 @@ org.apache.xbean -xbean-asm7-shaded +xbean-asm8-shaded ${xbean.version} diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java index d3cfe03..7bef1ef 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java @@ -30,10 +30,10 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URLDecoder; -import org.apache.xbean.asm7.ClassReader; -import org.apache.xbean.asm7.ClassVisitor; -import org.apache.xbean.asm7.ClassWriter; -import org.apache.xbean.asm7.Opcodes; +import org.apache.xbean.asm8.ClassReader; +import org.apache.xbean.asm8.ClassVisitor; +import org.apache.xbean.asm8.ClassWriter; +import org.apache.xbean.asm8.Opcodes; import serp.bytecode.BCClass; @@ -117,7 +117,7 @@ public final class AsmAdaptor { final ClassReader cr = new ClassReader(b); try { -cr.accept(new
[openjpa] 01/02: OPENJPA-2813 PersistenceProvider#generateSchema (misses the boolean state)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git commit bf418eb1b3036f49d9536db66e30ef7ceb83332d Author: Romain Manni-Bucau AuthorDate: Wed Apr 29 20:47:12 2020 +0200 OPENJPA-2813 PersistenceProvider#generateSchema (misses the boolean state) --- .../openjpa/jdbc/kernel/JDBCBrokerFactory.java | 11 +++-- .../persistence/PersistenceProviderImpl.java | 54 -- .../slice/jdbc/DistributedJDBCBrokerFactory.java | 6 ++- 3 files changed, 60 insertions(+), 11 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java index 1597c00..ecf0f8c 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java @@ -147,17 +147,17 @@ public class JDBCBrokerFactory extends AbstractBrokerFactory { /** * Synchronize the mappings of the classes listed in the configuration. */ -protected void synchronizeMappings(ClassLoader loader, +protected boolean synchronizeMappings(ClassLoader loader, JDBCConfiguration conf) { mapSchemaGenerationToSynchronizeMappings(conf); String action = conf.getSynchronizeMappings(); if (StringUtil.isEmpty(action)) -return; +return false; MappingRepository repo = conf.getMappingRepositoryInstance(); Collection> classes = repo.loadPersistentTypes(false, loader); if (classes.isEmpty()) -return; +return false; String props = Configurations.getProperties(action); action = Configurations.getClassName(action); @@ -175,10 +175,11 @@ public class JDBCBrokerFactory extends AbstractBrokerFactory { } } tool.record(); +return true; // todo: check? } -protected void synchronizeMappings(ClassLoader loader) { -synchronizeMappings(loader, (JDBCConfiguration) getConfiguration()); +protected boolean synchronizeMappings(ClassLoader loader) { +return synchronizeMappings(loader, (JDBCConfiguration) getConfiguration()); } private void mapSchemaGenerationToSynchronizeMappings(JDBCConfiguration conf) { diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java index 1d337af..0b6d998 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java @@ -20,6 +20,8 @@ package org.apache.openjpa.persistence; import java.lang.instrument.ClassFileTransformer; import java.lang.instrument.IllegalClassFormatException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.security.ProtectionDomain; import java.util.HashMap; import java.util.Map; @@ -36,6 +38,7 @@ import org.apache.openjpa.conf.OpenJPAConfiguration; import org.apache.openjpa.conf.OpenJPAConfigurationImpl; import org.apache.openjpa.enhance.PCClassFileTransformer; import org.apache.openjpa.enhance.PCEnhancerAgent; +import org.apache.openjpa.kernel.AbstractBrokerFactory; import org.apache.openjpa.kernel.Bootstrap; import org.apache.openjpa.kernel.BrokerFactory; import org.apache.openjpa.kernel.ConnectionRetainModes; @@ -223,13 +226,56 @@ public class PersistenceProviderImpl } @Override -public void generateSchema(PersistenceUnitInfo info, Map map) { -throw new UnsupportedOperationException("JPA 2.1"); +public void generateSchema(final PersistenceUnitInfo info, final Map map) { +final Map runMap = map == null ? new HashMap<>() : new HashMap<>(map); +runMap.put("javax.persistence.schema-generation.database.action", "create"); +final OpenJPAEntityManagerFactory factory = createContainerEntityManagerFactory(info, runMap); +try { +synchronizeMappings(factory); +} finally { +factory.close(); +} } @Override -public boolean generateSchema(String persistenceUnitName, Map map) { -throw new UnsupportedOperationException("JPA 2.1"); +public boolean generateSchema(final String persistenceUnitName, final Map map) { +final Map runMap = map == null ? new HashMap<>() : new HashMap<>(map); +runMap.put("javax.persistence.schema-generation.database.action", "create"); +final OpenJPAEntityManagerFactory factory = createEntityManagerFactory(persistenceUnitNa
[openjpa] 02/02: OPENJPA-2812 snake_case support in dbdictionary for db column names
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git commit d0875670dd470473e305aea00d66984735a8e3dc Author: Romain Manni-Bucau AuthorDate: Wed Apr 29 20:47:28 2020 +0200 OPENJPA-2812 snake_case support in dbdictionary for db column names --- .../openjpa/jdbc/meta/MappingDefaultsImpl.java | 16 +- .../org/apache/openjpa/jdbc/sql/DBDictionary.java | 37 + .../apache/openjpa/jdbc/sql/TestDBDictionary.java | 35 + .../apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java | 162 + 4 files changed, 246 insertions(+), 4 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java index ca1bf38..c9f872e 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java @@ -630,14 +630,22 @@ public class MappingDefaultsImpl * Correct the given column's name. */ protected void correctName(Table table, Column col) { +DBIdentifier name = col.getIdentifier(); +boolean corrected = false; +if (dict.javaToDbColumnNameProcessing != null) { +name = dict.processDBColumnName(name); +corrected = true; +} if (!_defMissing || _removeHungarianNotation) { -DBIdentifier name = col.getIdentifier(); if (_removeHungarianNotation) name = DBIdentifier.removeHungarianNotation(name); -DBIdentifier correctedName = dict.getValidColumnName(name, table); -col.setIdentifier(correctedName); -table.addCorrectedColumnName(correctedName, true); +corrected = true; +} +if (corrected) { +name = dict.getValidColumnName(name, table, false); +col.setIdentifier(name); +table.addCorrectedColumnName(name, true); } } diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java index 82ee861..26e13fc 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java @@ -135,6 +135,8 @@ import org.apache.openjpa.util.StoreException; import org.apache.openjpa.util.UnsupportedException; import org.apache.openjpa.util.UserException; +import static java.util.Locale.ROOT; + /** * Class which allows the creation of SQL dynamically, in a @@ -223,6 +225,7 @@ public class DBDictionary public String selectWords = null; public String fixedSizeTypeNames = null; public String schemaCase = SCHEMA_CASE_UPPER; +public String javaToDbColumnNameProcessing; public boolean setStringRightTruncationOn = true; public boolean fullResultCollectionInOrderByRelation = false; public boolean disableSchemaFactoryColumnTypeErrors = false; //OPENJPA-2627 @@ -3292,6 +3295,32 @@ public class DBDictionary return toDBName(getColumnIdentifier(column)); } +public String toSnakeCase(final String name) { +final StringBuilder out = new StringBuilder(name.length() + 3); +final boolean isDelimited = name.startsWith(getLeadingDelimiter()) && name.endsWith(getTrailingDelimiter()); +final String toConvert; +if (isDelimited) { +toConvert = name.substring(2, name.length() - 1); +out.append(name.substring(0, 2).toLowerCase(ROOT)); +} else { +toConvert = name.substring(1); +out.append(Character.toLowerCase(name.charAt(0))); +} +for (final char c : toConvert.toCharArray()) { +if (!Character.isLetter(c)) { // delimiter +out.append(c); +} else if (Character.isUpperCase(c)) { +out.append('_').append(Character.toLowerCase(c)); +} else { +out.append(c); +} +} +if (toConvert.length() != name.length() - 1) { +out.append(name.charAt(name.length() - 1)); +} +return out.toString(); +} + /** * Returns the full name of the table, including the schema (delimited * by {@link #catalogSeparator}). @@ -3389,6 +3418,14 @@ public class DBDictionary return getValidColumnName(DBIdentifier.newColumn(name), table, true).getName(); } +public DBIdentifier processDBColumnName(final DBIdentifier name) { +if ("snake_case".equalsIgnoreCase(javaToDbColumnNameProcessing)) { +return DBIdentifier.newColumn(toSnakeCase(name.getName())); +} +throw new IllegalArgumentException( +
[openjpa] branch master updated (a975a3d -> d087567)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from a975a3d OPENJPA-2811 asm8 support new bf418eb OPENJPA-2813 PersistenceProvider#generateSchema (misses the boolean state) new d087567 OPENJPA-2812 snake_case support in dbdictionary for db column names The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../openjpa/jdbc/kernel/JDBCBrokerFactory.java | 11 +- .../openjpa/jdbc/meta/MappingDefaultsImpl.java | 16 +- .../org/apache/openjpa/jdbc/sql/DBDictionary.java | 37 + .../apache/openjpa/jdbc/sql/TestDBDictionary.java} | 25 ++-- .../apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java | 162 + .../persistence/PersistenceProviderImpl.java | 54 ++- .../slice/jdbc/DistributedJDBCBrokerFactory.java | 6 +- 7 files changed, 282 insertions(+), 29 deletions(-) copy openjpa-jdbc/src/{main/java/org/apache/openjpa/jdbc/sql/Calendard.java => test/java/org/apache/openjpa/jdbc/sql/TestDBDictionary.java} (61%) create mode 100644 openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
[openjpa] branch master updated: activating back seasar repo for uow-api now xbean had been downloaded on the ci
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 868a446 activating back seasar repo for uow-api now xbean had been downloaded on the ci 868a446 is described below commit 868a446a3e45fd026280c977de86dd6c4f123113 Author: Romain Manni-Bucau AuthorDate: Thu May 7 09:46:06 2020 +0200 activating back seasar repo for uow-api now xbean had been downloaded on the ci --- openjpa-kernel/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml index 7241235..5d97ccb 100644 --- a/openjpa-kernel/pom.xml +++ b/openjpa-kernel/pom.xml @@ -165,7 +165,7 @@ -
[openjpa] branch master updated: commenting seasar-repo since it should be useless now (and try to get back the CI green/blue)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 560a850 commenting seasar-repo since it should be useless now (and try to get back the CI green/blue) 560a850 is described below commit 560a850bfdee09171a34acd3f79cd676f37279a4 Author: Romain Manni-Bucau AuthorDate: Thu May 7 09:39:07 2020 +0200 commenting seasar-repo since it should be useless now (and try to get back the CI green/blue) --- openjpa-kernel/pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml index 5d97ccb..7241235 100644 --- a/openjpa-kernel/pom.xml +++ b/openjpa-kernel/pom.xml @@ -165,7 +165,7 @@ - +
[openjpa] branch master updated: ensure TestSnakeCaseDDL runs in enhanced mode otherwise there is an issue in column name uniqueness check + fixing MappingDefaultsImpl name definition
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new e721abf ensure TestSnakeCaseDDL runs in enhanced mode otherwise there is an issue in column name uniqueness check + fixing MappingDefaultsImpl name definition e721abf is described below commit e721abfdaa5a89489f7fec11d4cf3a0d2b804556 Author: Romain Manni-Bucau AuthorDate: Thu May 7 10:02:45 2020 +0200 ensure TestSnakeCaseDDL runs in enhanced mode otherwise there is an issue in column name uniqueness check + fixing MappingDefaultsImpl name definition --- .../java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java | 2 +- .../org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java | 10 -- .../java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java | 5 +++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java index c9f872e..0554235 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java @@ -643,7 +643,7 @@ public class MappingDefaultsImpl corrected = true; } if (corrected) { -name = dict.getValidColumnName(name, table, false); +name = dict.getValidColumnName(name, table, true); col.setIdentifier(name); table.addCorrectedColumnName(name, true); } diff --git a/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java b/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java index f779a04..99dbf71 100644 --- a/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java +++ b/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java @@ -26,6 +26,7 @@ import org.apache.openjpa.jdbc.schema.Table; import org.junit.Test; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; public class TestMappingDefaultsImpl { @@ -52,11 +53,8 @@ public class TestMappingDefaultsImpl { mr.setConfiguration(conf); Version version = new Version(new ClassMapping(String.class,mr)); mapping.populateColumns(version, table, cols); -assertFalse("column names are conflicted : " + cols[0].getName(), -cols[0].getName().equals(cols[1].getName())); -assertFalse("column names are conflicted : " + cols[0].getName(), -cols[0].getName().equals(cols[2].getName())); -assertFalse("column names are conflicted : " + cols[1].getName(), -cols[1].getName().equals(cols[2].getName())); +assertNotEquals("column names are conflicted : " + cols[0].getName(), cols[0].getName(), cols[1].getName()); +assertNotEquals("column names are conflicted : " + cols[0].getName(), cols[0].getName(), cols[2].getName()); +assertNotEquals("column names are conflicted : " + cols[1].getName(), cols[1].getName(), cols[2].getName()); } } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java index 053ccfa..94d1a51 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java @@ -57,7 +57,6 @@ public class TestSnakeCaseDDL { ds.setUrl("jdbc:derby:memory:ddlInSnakeCase;create=true"); persistenceUnitInfo.setJtaDataSource(ds); persistenceUnitInfo.setProperty("openjpa.jdbc.DBDictionary", "derby(javaToDbColumnNameProcessing=snake_case)"); -persistenceUnitInfo.setProperty("openjpa.RuntimeUnenhancedClasses", "supported"); new PersistenceProviderImpl().generateSchema(persistenceUnitInfo, new HashMap<>()); final Collection createdTables = new HashSet<>(); final Map> columns = new HashMap<>(); @@ -95,7 +94,9 @@ public class TestSnakeCaseDDL { em.persist(entity); em.getTransaction().commit(); } catch (final RuntimeException re) { -em.getTransaction().rollback(); +if (em.getTransaction().isActive()) { +em.getTransaction().rollback(); +} throw re; } finally { em.close();
[openjpa] branch master updated: OPENJPA-2809 adding openjpa-junit5 module
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new ae9b2a9 OPENJPA-2809 adding openjpa-junit5 module ae9b2a9 is described below commit ae9b2a904bc5611257e2db888d3c61c7235be19f Author: Romain Manni-Bucau AuthorDate: Tue Mar 17 17:17:19 2020 +0100 OPENJPA-2809 adding openjpa-junit5 module --- openjpa-examples/image-gallery/pom.xml | 2 - openjpa-examples/openbooks/pom.xml | 1 - openjpa-examples/pom.xml | 3 +- openjpa-examples/simple/pom.xml| 1 - openjpa-features/src/main/feature/feature.xml | 6 +- openjpa-integration/daytrader/pom.xml | 2 - openjpa-integration/examples/pom.xml | 3 - openjpa-integration/jmx/pom.xml| 2 - openjpa-integration/slf4j/pom.xml | 2 - openjpa-integration/tck/pom.xml| 1 - openjpa-integration/validation/pom.xml | 1 - {openjpa-tools => openjpa-junit5}/pom.xml | 54 ++-- .../org/apache/openjpa/junit5/OpenJPASupport.java | 57 .../openjpa/junit5/internal/OpenJPAExtension.java | 346 + .../java/org/apache/openjpa/junit5/MyEntity.java | 28 ++ .../apache/openjpa/junit5/OpenJPASupportTest.java | 32 ++ openjpa-kernel/pom.xml | 2 +- openjpa-project/checkstyle.xml | 20 +- openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 1 - openjpa-tools/openjpa-fetch-statistics/pom.xml | 1 - openjpa-tools/openjpa-maven-plugin/pom.xml | 1 - openjpa-tools/pom.xml | 4 - pom.xml| 41 ++- 23 files changed, 543 insertions(+), 68 deletions(-) diff --git a/openjpa-examples/image-gallery/pom.xml b/openjpa-examples/image-gallery/pom.xml index bff6ae3..8bfc302 100644 --- a/openjpa-examples/image-gallery/pom.xml +++ b/openjpa-examples/image-gallery/pom.xml @@ -38,8 +38,6 @@ Apache OpenJPA Examples - image-gallery - ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml - ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml 256m 1024m -Xmx${test.jvm.maxheapsize} diff --git a/openjpa-examples/openbooks/pom.xml b/openjpa-examples/openbooks/pom.xml index b33c758..2a00c1e 100644 --- a/openjpa-examples/openbooks/pom.xml +++ b/openjpa-examples/openbooks/pom.xml @@ -40,7 +40,6 @@ Apache OpenJPA Examples - OpenBooks - ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml org.apache.openjpa.examples.openbooks diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml index 96ed800..b7d5289 100644 --- a/openjpa-examples/pom.xml +++ b/openjpa-examples/pom.xml @@ -39,8 +39,7 @@ DefaultLevel=WARN - ${project.basedir}${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml - ${project.basedir}${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml + ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml index 7e9c7df..661d26a 100644 --- a/openjpa-examples/simple/pom.xml +++ b/openjpa-examples/simple/pom.xml @@ -47,7 +47,6 @@ - ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml ${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml org.apache.openjpa.examples.simple diff --git a/openjpa-features/src/main/feature/feature.xml b/openjpa-features/src/main/feature/feature.xml index 4737feb..63b39c0 100644 --- a/openjpa-features/src/main/feature/feature.xml +++ b/openjpa-features/src/main/feature/feature.xml @@ -25,10 +25,10 @@ mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1 mvn:org.apache.geronimo.specs/geronimo-el_1.0_spec/1.0.1 mvn:org.apache.commons/commons-pool2/2.6.0 -mvn:org.apache.commons/commons-dbcp2/2.6.0 -mvn:org.apache.commons/commons-collections4/4.3 +mvn:org.apache.commons/commons-dbcp2/2.7.0 +mvn:org.apache.commons/commons-collections4/4.4 mvn:org.apache.servicemix.bund
[openjpa] branch master updated: using same jpa spec jar in junit5 module than others
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 4c9ac41 using same jpa spec jar in junit5 module than others 4c9ac41 is described below commit 4c9ac41fd1367396e34151dcc5e9b98674d2665b Author: Romain Manni-Bucau AuthorDate: Mon Mar 23 09:24:12 2020 +0100 using same jpa spec jar in junit5 module than others --- openjpa-junit5/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openjpa-junit5/pom.xml b/openjpa-junit5/pom.xml index 45668cb..fb6d5ab 100644 --- a/openjpa-junit5/pom.xml +++ b/openjpa-junit5/pom.xml @@ -39,8 +39,7 @@ org.apache.geronimo.specs -geronimo-jpa_2.1_spec -1.0-alpha-1 +geronimo-jpa_2.2_spec provided
[openjpa] branch master updated: fixing parent version of junit5 module
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new d2ba842 fixing parent version of junit5 module d2ba842 is described below commit d2ba842d61266ab67bc17245c00db37a06da666b Author: Romain Manni-Bucau AuthorDate: Mon Mar 23 08:56:00 2020 +0100 fixing parent version of junit5 module --- openjpa-junit5/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openjpa-junit5/pom.xml b/openjpa-junit5/pom.xml index 4f72473..1eb5c6c 100644 --- a/openjpa-junit5/pom.xml +++ b/openjpa-junit5/pom.xml @@ -24,7 +24,7 @@ org.apache.openjpa openjpa-parent -3.0.1-SNAPSHOT +3.1.2-SNAPSHOT openjpa-junit5
[openjpa] branch master updated: OPENJPA-2809 ensure embeddabe too are enhanced
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new f9b0906 OPENJPA-2809 ensure embeddabe too are enhanced f9b0906 is described below commit f9b0906c1baa080ea67b3b1b26430a2489013671 Author: Romain Manni-Bucau AuthorDate: Mon Mar 23 08:45:20 2020 +0100 OPENJPA-2809 ensure embeddabe too are enhanced --- .../java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java index 2761291..2478cad 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java @@ -39,6 +39,7 @@ import org.junit.platform.commons.util.AnnotationUtils; import serp.bytecode.BCClass; import serp.bytecode.Project; +import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.MappedSuperclass; import java.io.ByteArrayInputStream; @@ -191,6 +192,7 @@ public class OpenJPAExtension implements BeforeAllCallback { private static class OpenJpaClassLoader extends BaseClassLoader { private static final String PERSITENCE_CAPABLE = Type.getDescriptor(PersistenceCapable.class); private static final String ENTITY = Type.getDescriptor(Entity.class); +private static final String EMBEDDABLE = Type.getDescriptor(Embeddable.class); private static final String MAPPED_SUPERCLASS = Type.getDescriptor(MappedSuperclass.class); private final MetaDataRepository repos; @@ -280,7 +282,9 @@ public class OpenJPAExtension implements BeforeAllCallback { @Override public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { -if (ENTITY.equals(descriptor) || MAPPED_SUPERCLASS.equals(descriptor)) { +if (ENTITY.equals(descriptor) || +EMBEDDABLE.equals(descriptor) || +MAPPED_SUPERCLASS.equals(descriptor)) { throw new MissingEnhancement(); // we already went into visit() so we miss the enhancement } return new EmptyVisitor().visitAnnotation(descriptor, visible);
[openjpa] branch master updated: [OPENJPA-2829] ensure empty lines are ignored for executeScript action
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 8dbdc14 [OPENJPA-2829] ensure empty lines are ignored for executeScript action 8dbdc14 is described below commit 8dbdc143219734d3c8ab05f13fa11b791e643458 Author: Romain Manni-Bucau AuthorDate: Tue Sep 15 16:57:43 2020 +0200 [OPENJPA-2829] ensure empty lines are ignored for executeScript action --- .../src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java index f7d528f..f57293d 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java @@ -529,6 +529,9 @@ public class SchemaTool { if (semiColonPosition != -1) { sql = sql.substring(0, semiColonPosition); } +if (sql.isEmpty()) { +continue; +} script.add(sql); }
[openjpa] branch master updated: [OPENJPA-2830] ensure we don't drop a SQL statement when running action executeScript
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new a38684b [OPENJPA-2830] ensure we don't drop a SQL statement when running action executeScript a38684b is described below commit a38684b3231e13cef7fa6588194c68f226589d52 Author: Romain Manni-Bucau AuthorDate: Tue Sep 15 17:57:24 2020 +0200 [OPENJPA-2830] ensure we don't drop a SQL statement when running action executeScript --- .../src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java| 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java index f57293d..1bdbf64 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java @@ -525,9 +525,9 @@ public class SchemaTool { continue; } -int semiColonPosition = sql.indexOf(";"); -if (semiColonPosition != -1) { -sql = sql.substring(0, semiColonPosition); +int semiColonPosition = sql.indexOf(";"); // ';' can be in string, don't blindly drop it +if (sql.endsWith(";")) { +sql = sql.substring(0, sql.length() - 1); } if (sql.isEmpty()) { continue;
[openjpa] branch master updated: dropping java < 8 asm test since we require java >= 8
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 1862e2b dropping java < 8 asm test since we require java >= 8 1862e2b is described below commit 1862e2bad507949caed81cecb9155360b9731220 Author: Romain Manni-Bucau AuthorDate: Wed Sep 16 10:32:04 2020 +0200 dropping java < 8 asm test since we require java >= 8 --- .../org/apache/openjpa/enhance/AsmAdaptor.java | 6 -- .../openjpa/enhance/PCClassFileTransformer.java| 23 +- .../org/apache/openjpa/enhance/TestAsmAdaptor.java | 4 3 files changed, 1 insertion(+), 32 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java index 6bb26d9..4c8b3a4 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java @@ -43,7 +43,6 @@ import serp.bytecode.BCClass; * Serp. */ public final class AsmAdaptor { -private static final boolean USE_ASM = System.getProperty("java.version").compareTo("1.6") > 0; private static final int Java7_MajorVersion = 51; @SuppressWarnings("deprecation") @@ -117,11 +116,6 @@ public final class AsmAdaptor { return cw.toByteArray(); } -public static boolean use() -{ -return USE_ASM; -} - public static boolean isEnhanced(final byte[] b) { if (b == null) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index d67fb48..d5f35ae 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -35,7 +35,6 @@ import org.apache.openjpa.util.GeneralException; import serp.bytecode.BCClass; import serp.bytecode.Project; -import serp.bytecode.lowlevel.ConstantPoolTable; /** @@ -227,26 +226,6 @@ public class PCClassFileTransformer * {@link PersistenceCapable}. */ private static boolean isEnhanced(byte[] b) { -if (AsmAdaptor.use()) -{ -return AsmAdaptor.isEnhanced(b); -} - -ConstantPoolTable table = new ConstantPoolTable(b); -int idx = table.getEndIndex(); - -idx += 6; // skip access, cls, super -int ifaces = table.readUnsignedShort(idx); -int clsEntry, utfEntry; -String name; -for (int i = 0; i < ifaces; i++) { -idx += 2; -clsEntry = table.readUnsignedShort(idx); -utfEntry = table.readUnsignedShort(table.get(clsEntry)); -name = table.readString(table.get(utfEntry)); -if ("org/apache/openjpa/enhance/PersistenceCapable".equals(name)) -return true; -} -return false; +return AsmAdaptor.isEnhanced(b); } } diff --git a/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java b/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java index d64c7f8..970b981 100644 --- a/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java +++ b/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java @@ -33,10 +33,6 @@ public class TestAsmAdaptor @Test public void isEnhanced() { -if (!AsmAdaptor.use()) -{ -return; -} assertTrue(AsmAdaptor.isEnhanced(bytes(Enhanced.class))); assertTrue(AsmAdaptor.isEnhanced(bytes(TransitivelyEnhanced.class))); assertFalse(AsmAdaptor.isEnhanced(bytes(NotEnhanced.class)));
[openjpa] branch master updated: [OPENJPA-2833] asm 9
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 910a812 [OPENJPA-2833] asm 9 910a812 is described below commit 910a812a1550382d2bafd9a001a66c5e7425ccf5 Author: Romain Manni-Bucau AuthorDate: Tue Sep 29 16:57:20 2020 +0200 [OPENJPA-2833] asm 9 --- .../junit5/internal/OpenJPADirectoriesEnhancer.java| 14 +++--- openjpa-kernel/pom.xml | 2 +- .../main/java/org/apache/openjpa/enhance/AsmAdaptor.java | 8 pom.xml| 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index dd8e169..c8be809 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -27,10 +27,10 @@ import org.apache.openjpa.lib.log.LogFactoryImpl; import org.apache.openjpa.lib.log.SLF4JLogFactory; import org.apache.openjpa.meta.MetaDataRepository; import org.apache.openjpa.persistence.PersistenceMetaDataFactory; -import org.apache.xbean.asm8.AnnotationVisitor; -import org.apache.xbean.asm8.ClassReader; -import org.apache.xbean.asm8.Type; -import org.apache.xbean.asm8.shade.commons.EmptyVisitor; +import org.apache.xbean.asm9.AnnotationVisitor; +import org.apache.xbean.asm9.ClassReader; +import org.apache.xbean.asm9.Type; +import org.apache.xbean.asm9.shade.commons.EmptyVisitor; import org.apache.xbean.finder.ClassLoaders; import serp.bytecode.BCClass; import serp.bytecode.Project; @@ -58,9 +58,9 @@ import java.util.logging.Logger; import java.util.stream.Stream; import static java.util.Arrays.asList; -import static org.apache.xbean.asm8.ClassReader.SKIP_CODE; -import static org.apache.xbean.asm8.ClassReader.SKIP_DEBUG; -import static org.apache.xbean.asm8.ClassReader.SKIP_FRAMES; +import static org.apache.xbean.asm9.ClassReader.SKIP_CODE; +import static org.apache.xbean.asm9.ClassReader.SKIP_DEBUG; +import static org.apache.xbean.asm9.ClassReader.SKIP_FRAMES; public class OpenJPADirectoriesEnhancer implements Runnable { private static final Logger LOGGER = Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName()); diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml index 89450bd..d0d2793 100644 --- a/openjpa-kernel/pom.xml +++ b/openjpa-kernel/pom.xml @@ -77,7 +77,7 @@ org.apache.xbean -xbean-asm8-shaded +xbean-asm9-shaded ${xbean.version} diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java index 4c8b3a4..24f7c61 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java @@ -30,10 +30,10 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URLDecoder; -import org.apache.xbean.asm8.ClassReader; -import org.apache.xbean.asm8.ClassVisitor; -import org.apache.xbean.asm8.ClassWriter; -import org.apache.xbean.asm8.Opcodes; +import org.apache.xbean.asm9.ClassReader; +import org.apache.xbean.asm9.ClassVisitor; +import org.apache.xbean.asm9.ClassWriter; +import org.apache.xbean.asm9.Opcodes; import serp.bytecode.BCClass; diff --git a/pom.xml b/pom.xml index 6bc4c9f..cf6c223 100644 --- a/pom.xml +++ b/pom.xml @@ -94,7 +94,7 @@ 3.0.0-M4 -4.17 +4.18 1.1.2 2.9.0 -SUBMODULES-NEED-TO-OVERRIDE-THIS-
[openjpa] branch master updated (049c2ef -> 758b866)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 049c2ef Merge pull request #71 from eolivelli/fix/OPENJPA-2820-delim new b24a6a2 OPENJPA-2832 DROP COLUMN does not use delimiters and always add double quotes new 61f11a7 add test new 758b866 Merge pull request #75 from eolivelli/fix/OPENJPA-2832 The 5090 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../org/apache/openjpa/jdbc/sql/DBDictionary.java | 2 +- .../jdbc/sql/TestDBDictionaryGeneratedSQL.java | 32 ++ 2 files changed, 33 insertions(+), 1 deletion(-)
[openjpa] branch master updated: [OPENJPA-2834] ensure setProperty invalid properties cache in em
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 4a546f7 [OPENJPA-2834] ensure setProperty invalid properties cache in em 4a546f7 is described below commit 4a546f759cee4220495e4206abc3c0503af204fa Author: Romain Manni-Bucau AuthorDate: Wed Sep 30 13:43:55 2020 +0200 [OPENJPA-2834] ensure setProperty invalid properties cache in em --- .../org/apache/openjpa/persistence/EntityManagerFactoryImpl.java | 8 +--- .../java/org/apache/openjpa/persistence/EntityManagerImpl.java| 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java index 0c8ff9a..ff06de6 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java @@ -281,9 +281,11 @@ public class EntityManagerFactoryImpl OpenJPAEntityManagerSPI em = newEntityManagerImpl(broker); // allow setting of other bean properties of EM -Set entrySet = props.entrySet(); -for (Map.Entry entry : entrySet) { -em.setProperty(entry.getKey().toString(), entry.getValue()); +if (!props.isEmpty()) { +Set entrySet = props.entrySet(); +for (Map.Entry entry : entrySet) { +em.setProperty(entry.getKey().toString(), entry.getValue()); +} } if (canCacheGetProperties) { if (emEmptyPropsProperties == null) { diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java index 9782412..1a171dd 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java @@ -2121,6 +2121,7 @@ public class EntityManagerImpl */ @Override public void setProperty(String prop, Object value) { +properties = null; if (!setKernelProperty(this, prop, value)) { if (!setKernelProperty(this.getFetchPlan(), prop, value)) { Log log = getConfiguration().getLog(OpenJPAConfiguration.LOG_RUNTIME);
[openjpa] branch master updated: [OPENJPA-2834] cache EMF#properties
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new bd015d0 [OPENJPA-2834] cache EMF#properties bd015d0 is described below commit bd015d02e95bd3d7c39f3b0a9bdf2cb448bedc75 Author: Romain Manni-Bucau AuthorDate: Wed Sep 30 12:14:35 2020 +0200 [OPENJPA-2834] cache EMF#properties --- .../persistence/EntityManagerFactoryImpl.java | 27 ++ .../openjpa/persistence/EntityManagerImpl.java | 8 +++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java index 4dd9728..0c8ff9a 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java @@ -75,6 +75,8 @@ public class EntityManagerFactoryImpl private transient StoreCache _cache = null; private transient QueryResultCache _queryCache = null; private transient MetamodelImpl _metaModel; +private transient Map properties; +private transient Map emEmptyPropsProperties; /** * Default constructor provided for auto-instantiation. @@ -111,10 +113,19 @@ public class EntityManagerFactoryImpl @Override public Map getProperties() { -Map props = _factory.getProperties(); -// convert to user readable values -props.putAll(createEntityManager().getProperties()); -return props; +if (properties == null) { +Map props = _factory.getProperties(); +// convert to user readable values +if (emEmptyPropsProperties != null) { +props.putAll(emEmptyPropsProperties); +} else { +props.putAll(createEntityManager().getProperties()); +} +// no need to sync or volatile, worse case concurrent threads create 2 instances +// we just want to avoid to do it after some "init" phase +this.properties = props; +} +return properties; } @Override @@ -201,6 +212,7 @@ public class EntityManagerFactoryImpl props = new HashMap(props); } +boolean canCacheGetProperties = props.isEmpty(); // nominal case OpenJPAConfiguration conf = getConfiguration(); Log log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME); @@ -273,6 +285,13 @@ public class EntityManagerFactoryImpl for (Map.Entry entry : entrySet) { em.setProperty(entry.getKey().toString(), entry.getValue()); } +if (canCacheGetProperties) { +if (emEmptyPropsProperties == null) { +emEmptyPropsProperties = em.getProperties(); +} else if (EntityManagerImpl.class.isInstance(em)) { + EntityManagerImpl.class.cast(em).setProperties(emEmptyPropsProperties); +} +} if (log != null && log.isTraceEnabled()) { log.trace(this + " created EntityManager " + em + "."); } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java index 35606f0..9782412 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java @@ -122,6 +122,7 @@ public class EntityManagerImpl protected RuntimeExceptionTranslator _ret = PersistenceExceptions.getRollbackTranslator(this); private boolean _convertPositionalParams = false; private boolean _isJoinedToTransaction; +private Map properties; public EntityManagerImpl() { // for Externalizable @@ -1792,6 +1793,10 @@ public class EntityManagerImpl } } +public void setProperties(final Map emEmptyPropsProperties) { +this.properties = emEmptyPropsProperties; +} + private static class BrokerBytesInputStream extends ObjectInputStream { private OpenJPAConfiguration conf; @@ -1935,6 +1940,9 @@ public class EntityManagerImpl */ @Override public Map getProperties() { +if (properties != null) { +return properties; +} Map props = _broker.getProperties(); for (String s : _broker.getSupportedProperties()) { String kernelKey = getBeanPropertyName(s);
[openjpa] branch master updated: OPENJPA-2820
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new bc63cd2 OPENJPA-2820 new 049c2ef Merge pull request #71 from eolivelli/fix/OPENJPA-2820-delim bc63cd2 is described below commit bc63cd2e45b386040ea5e402d8ab6abd4d98c833 Author: Enrico Olivelli AuthorDate: Thu Jul 23 10:14:43 2020 +0200 OPENJPA-2820 --- .../java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java| 6 -- .../java/org/apache/openjpa/lib/identifier/IdentifierImpl.java | 9 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java index aa1f888..255784a 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java @@ -142,6 +142,7 @@ public class DBIdentifier extends IdentifierImpl implements Cloneable, Identifie if (DBIdentifierType.CONSTANT != getType() && DBIdentifierType.COLUMN_DEFINITION != getType()) { if (delimit) { name = Normalizer.delimit(name, true); +setNameDelimited(true); } else { name = Normalizer.normalizeString(name); } @@ -325,6 +326,7 @@ public class DBIdentifier extends IdentifierImpl implements Cloneable, Identifie sName.setNameInternal(getNameInternal()); sName.setType(getType()); sName.setIgnoreCase(getIgnoreCase()); +sName.setNameDelimited(isNameDelimited()); return sName; } @@ -859,7 +861,7 @@ public class DBIdentifier extends IdentifierImpl implements Cloneable, Identifie * @param name */ public static DBIdentifier removeDelimiters(DBIdentifier name) { -if (DBIdentifier.isNull(name)) { +if (DBIdentifier.isNull(name) || !name.isDelimited()) { return name; } if (!name.isDelimited()) { @@ -927,7 +929,7 @@ public class DBIdentifier extends IdentifierImpl implements Cloneable, Identifie if (DBIdentifier.isEmpty(this)) { return false; } -return Normalizer.isDelimited(getNameInternal()); +return isNameDelimited() || Normalizer.isDelimited(getNameInternal()); } /** diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java index 3958cd3..99a636d 100644 --- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java +++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java @@ -28,6 +28,7 @@ public class IdentifierImpl implements Identifier, Serializable { private static final long serialVersionUID = 1L; private String _name = null; +private boolean nameDelimited = false; protected IdentifierImpl() {} @@ -45,6 +46,14 @@ public class IdentifierImpl implements Identifier, Serializable { return _name; } +public boolean isNameDelimited() { +return nameDelimited; +} + +public void setNameDelimited(boolean nameDelimited) { +this.nameDelimited = nameDelimited; +} + @Override public String toString() { return getName();
[openjpa] branch master updated: [OPENJPA-2834] ensure getProperties does not fail with xmlstore
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 9fa619f [OPENJPA-2834] ensure getProperties does not fail with xmlstore 9fa619f is described below commit 9fa619f94ecec2510d2ec560bb719eecd8f222c1 Author: Romain Manni-Bucau AuthorDate: Wed Sep 30 15:34:44 2020 +0200 [OPENJPA-2834] ensure getProperties does not fail with xmlstore --- .../openjpa/conf/OpenJPAConfigurationImpl.java | 3 ++ .../openjpa/enhance/PCClassFileTransformer.java| 45 -- .../apache/openjpa/enhance/PCEnhancerAgent.java| 2 +- .../java/org/apache/openjpa/kernel/BrokerImpl.java | 5 ++- .../persistence/PersistenceProviderImpl.java | 2 +- 5 files changed, 43 insertions(+), 14 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java index 6727e14..4660b8d 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java @@ -2023,6 +2023,9 @@ public class OpenJPAConfigurationImpl @Override public FinderCache getFinderCacheInstance() { +if (finderCachePlugin == null) { // xmlstore case +return null; +} if (finderCachePlugin.get() == null) { finderCachePlugin.instantiate(FinderCache.class, this); } diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index d5f35ae..8376c6e 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -54,7 +54,6 @@ public class PCClassFileTransformer private final ClassLoader _tmpLoader; private final Log _log; private final Set _names; -private boolean _transforming = false; /** * Constructor. @@ -104,6 +103,13 @@ public class PCClassFileTransformer _log.info(_loc.get("runtime-enhance-pcclasses")); } +public static PCClassFileTransformer newInstance(final MetaDataRepository repos, final Options parseProperties, + final ClassLoader tmpLoader) { +return parseProperties != null && parseProperties.getBooleanProperty("Reentrant") ? +new PCClassFileTransformer.Reentrant(repos, parseProperties, tmpLoader) : +new PCClassFileTransformer(repos, parseProperties, tmpLoader); +} + @Override public byte[] transform(ClassLoader loader, String className, Class redef, ProtectionDomain domain, byte[] bytes) throws IllegalClassFormatException { @@ -115,14 +121,6 @@ public class PCClassFileTransformer if (className == null) { return null; } -// prevent re-entrant calls, which can occur if the enhancing -// loader is used to also load OpenJPA libraries; this is to prevent -// recursive enhancement attempts for internal openjpa libraries -if (_transforming) -return null; - -_transforming = true; - return transform0(className, redef, bytes); } @@ -131,7 +129,7 @@ public class PCClassFileTransformer * ClassCircularityError when executing method using pure-JIT JVMs * such as JRockit. */ -private byte[] transform0(String className, Class redef, byte[] bytes) +protected byte[] transform0(String className, Class redef, byte[] bytes) throws IllegalClassFormatException { byte[] returnBytes = null; @@ -169,7 +167,6 @@ public class PCClassFileTransformer throw (IllegalClassFormatException) t; throw new GeneralException(t); } finally { -_transforming = false; if (returnBytes != null && _log.isTraceEnabled()) _log.trace(_loc.get("runtime-enhance-complete", className, bytes.length, returnBytes.length)); @@ -228,4 +225,30 @@ public class PCClassFileTransformer private static boolean isEnhanced(byte[] b) { return AsmAdaptor.isEnhanced(b); } + +public static class Reentrant extends PCClassFileTransformer { +private final ThreadLocal transforming = new ThreadLocal<>(); + +public Reentrant(final MetaDataRepository repos, final Options opts, final ClassLoader loader) { +super(repos, opts, loader); +} + +public Reentrant(final MetaDataRepository repos, final PCEnhancer.Flag
[openjpa] branch master updated (f93ea15 -> 4c624c0)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from f93ea15 [OPENJPA-2828] Fix method equals() (#72) new dd9bce0 OPENJPA-2816 Add HerdDB DBDictionary - more fixes new 963ed59 remove useless conversion and extension point new e95dbc8 add tests new 4c624c0 Merge pull request #74 from eolivelli/fix/herddb-delimitall-real The 5083 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../openjpa/jdbc/kernel/ClassTableJDBCSeq.java | 6 +- .../apache/openjpa/jdbc/kernel/TableJDBCSeq.java | 7 +- .../openjpa/jdbc/kernel/ValueTableJDBCSeq.java | 4 +- .../org/apache/openjpa/jdbc/sql/DBDictionary.java | 3 + .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 5 +- .../openjpa/jdbc/kernel/TableJDBCSeqTest.java | 161 + 6 files changed, 179 insertions(+), 7 deletions(-) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeqTest.java
[openjpa] branch master updated: useless import
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 629ebae useless import 629ebae is described below commit 629ebaefce481863ec0a154b06ef8b5ccf41a620 Author: Romain Manni-Bucau AuthorDate: Thu Oct 1 10:52:41 2020 +0200 useless import --- .../src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java index a9377dc..8fc3472 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java @@ -18,8 +18,6 @@ */ package org.apache.openjpa.jdbc.sql; -import java.sql.Types; - /** * Dictionary for HerdDB. */
[openjpa] branch master updated: [OPENJPA-2834] also cache properties in the em - even if less useful, but no need to recompute it again and again
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 574e226 [OPENJPA-2834] also cache properties in the em - even if less useful, but no need to recompute it again and again 574e226 is described below commit 574e226ba074dda5927623f5f1b33c009c4d1187 Author: Romain Manni-Bucau AuthorDate: Thu Oct 1 09:49:00 2020 +0200 [OPENJPA-2834] also cache properties in the em - even if less useful, but no need to recompute it again and again --- .../src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java index 1a171dd..d5f78fe 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java @@ -1965,6 +1965,7 @@ public class EntityManagerImpl props.put(userKey.equals(kernelKey) ? s : userKey, JPAProperties.convertToUserValue(userKey, kvalue)); } } +properties = props; // no need to synchronize, we don't care of the actual ref, we just want it as value return props; }
[openjpa] branch master updated: [OPENJPA-2834] enable to bypass synchronizeMappings when calling getProperties
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 0b68db6 [OPENJPA-2834] enable to bypass synchronizeMappings when calling getProperties 0b68db6 is described below commit 0b68db6ba164943d8470d46fb4de326a19fc9485 Author: Romain Manni-Bucau AuthorDate: Thu Oct 1 09:45:50 2020 +0200 [OPENJPA-2834] enable to bypass synchronizeMappings when calling getProperties --- .../apache/openjpa/persistence/EntityManagerFactoryImpl.java | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java index ff06de6..9242ccd 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java @@ -119,7 +119,7 @@ public class EntityManagerFactoryImpl if (emEmptyPropsProperties != null) { props.putAll(emEmptyPropsProperties); } else { -props.putAll(createEntityManager().getProperties()); +props.putAll(doCreateEM(SynchronizationType.SYNCHRONIZED, null, true).getProperties()); } // no need to sync or volatile, worse case concurrent threads create 2 instances // we just want to avoid to do it after some "init" phase @@ -198,6 +198,12 @@ public class EntityManagerFactoryImpl */ @Override public OpenJPAEntityManagerSPI createEntityManager(SynchronizationType synchronizationType, Map props) { +return doCreateEM(synchronizationType, props, false); +} + +private OpenJPAEntityManagerSPI doCreateEM(SynchronizationType synchronizationType, + Map props, + boolean byPassSynchronizeMappings) { if (synchronizationType == null) { throw new NullPointerException("SynchronizationType must not be null"); } @@ -271,7 +277,9 @@ public class EntityManagerFactoryImpl } validateCfNameProps(conf, cfName, cf2Name); -Broker broker = _factory.newBroker(user, pass, managed, retainMode, false, cfName, cf2Name); +Broker broker = byPassSynchronizeMappings ? +conf.newBrokerInstance(user, pass) : +_factory.newBroker(user, pass, managed, retainMode, false, cfName, cf2Name); // add autodetach for close and rollback conditions to the configuration broker.setAutoDetach(AutoDetach.DETACH_CLOSE, true);
[openjpa] branch master updated: [OPENJPA-2834] invalid properties cache when a propery changes
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 6f26922 [OPENJPA-2834] invalid properties cache when a propery changes 6f26922 is described below commit 6f2692228fbc75656f34c5d1d7cc6dbe2de631ca Author: Romain Manni-Bucau AuthorDate: Tue Oct 27 15:43:24 2020 +0100 [OPENJPA-2834] invalid properties cache when a propery changes --- .../openjpa/persistence/EntityManagerImpl.java | 23 ++ 1 file changed, 23 insertions(+) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java index d5f78fe..6c4d551 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java @@ -262,6 +262,7 @@ public class EntityManagerImpl public void setMultithreaded(boolean multithreaded) { assertNotCloseInvoked(); _broker.setMultithreaded(multithreaded); +properties = null; } @Override @@ -273,6 +274,7 @@ public class EntityManagerImpl public void setIgnoreChanges(boolean val) { assertNotCloseInvoked(); _broker.setIgnoreChanges(val); +properties = null; } @Override @@ -284,6 +286,7 @@ public class EntityManagerImpl public void setNontransactionalRead(boolean val) { assertNotCloseInvoked(); _broker.setNontransactionalRead(val); +properties = null; } @Override @@ -295,6 +298,7 @@ public class EntityManagerImpl public void setNontransactionalWrite(boolean val) { assertNotCloseInvoked(); _broker.setNontransactionalWrite(val); +properties = null; } @Override @@ -306,6 +310,7 @@ public class EntityManagerImpl public void setOptimistic(boolean val) { assertNotCloseInvoked(); _broker.setOptimistic(val); +properties = null; } @Override @@ -317,12 +322,14 @@ public class EntityManagerImpl public void setRestoreState(RestoreStateType val) { assertNotCloseInvoked(); _broker.setRestoreState(val.toKernelConstant()); +properties = null; } @Override public void setRestoreState(int restore) { assertNotCloseInvoked(); _broker.setRestoreState(restore); +properties = null; } @Override @@ -334,6 +341,7 @@ public class EntityManagerImpl public void setRetainState(boolean val) { assertNotCloseInvoked(); _broker.setRetainState(val); +properties = null; } @Override @@ -345,12 +353,14 @@ public class EntityManagerImpl public void setAutoClear(AutoClearType val) { assertNotCloseInvoked(); _broker.setAutoClear(val.toKernelConstant()); +properties = null; } @Override public void setAutoClear(int autoClear) { assertNotCloseInvoked(); _broker.setAutoClear(autoClear); +properties = null; } @Override @@ -362,12 +372,14 @@ public class EntityManagerImpl public void setDetachState(DetachStateType type) { assertNotCloseInvoked(); _broker.setDetachState(type.toKernelConstant()); +properties = null; } @Override public void setDetachState(int detach) { assertNotCloseInvoked(); _broker.setDetachState(detach); +properties = null; } @Override @@ -379,30 +391,35 @@ public class EntityManagerImpl public void setAutoDetach(AutoDetachType flag) { assertNotCloseInvoked(); _broker.setAutoDetach(AutoDetachType.fromEnumSet(EnumSet.of(flag))); +properties = null; } @Override public void setAutoDetach(EnumSet flags) { assertNotCloseInvoked(); _broker.setAutoDetach(AutoDetachType.fromEnumSet(flags)); +properties = null; } @Override public void setAutoDetach(int autoDetachFlags) { assertNotCloseInvoked(); _broker.setAutoDetach(autoDetachFlags); +properties = null; } @Override public void setAutoDetach(AutoDetachType value, boolean on) { assertNotCloseInvoked(); _broker.setAutoDetach(AutoDetachType.fromEnumSet(EnumSet.of(value)),on); +properties = null; } @Override public void setAutoDetach(int flag, boolean on) { assertNotCloseInvoked(); _broker.setAutoDetach(flag, on); +properties = null; } @Override @@ -414,6 +431,7 @@ public class EntityManagerImpl public void setEvictFromStoreCache(boolean evict) { assertNotCloseInvoked
[openjpa] branch master updated: OPENJPA-2816 Add HerdDB DBDictionary - implement HerdDBDictionary - add autodiscovery of HerdDB
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new c933137 OPENJPA-2816 Add HerdDB DBDictionary - implement HerdDBDictionary - add autodiscovery of HerdDB new 0e32d49 Merge pull request #63 from eolivelli/fix/OPENJPA-2816-herddb c933137 is described below commit c93313767d369d60ed3201c784b257c8592892c6 Author: Enrico Olivelli AuthorDate: Mon Jul 13 17:18:23 2020 +0200 OPENJPA-2816 Add HerdDB DBDictionary - implement HerdDBDictionary - add autodiscovery of HerdDB --- .../openjpa/jdbc/conf/JDBCConfigurationImpl.java | 1 + .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 44 ++ .../src/doc/manual/ref_guide_dbsetup.xml | 11 ++ 3 files changed, 56 insertions(+) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java index abfea8a..2b2ac33 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java @@ -215,6 +215,7 @@ public class JDBCConfigurationImpl "jdatastore", org.apache.openjpa.jdbc.sql.JDataStoreDictionary.class.getName(), "mariadb", org.apache.openjpa.jdbc.sql.MariaDBDictionary.class.getName(), "mysql", org.apache.openjpa.jdbc.sql.MySQLDictionary.class.getName(), +"herddb", org.apache.openjpa.jdbc.sql.HerdDBDictionary.class.getName(), "oracle", org.apache.openjpa.jdbc.sql.OracleDictionary.class.getName(), "pointbase", org.apache.openjpa.jdbc.sql.PointbaseDictionary.class.getName(), "postgres", org.apache.openjpa.jdbc.sql.PostgresDictionary.class.getName(), diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java new file mode 100644 index 000..31986e8 --- /dev/null +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java @@ -0,0 +1,44 @@ +/* + * 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. + */ +package org.apache.openjpa.jdbc.sql; + +/** + * Dictionary for HerdDB. + */ +public class HerdDBDictionary +extends org.apache.openjpa.jdbc.sql.DBDictionary { + +private static final String DELIMITER_BACK_TICK = "`"; + +public HerdDBDictionary() { +platform = "HerdDB"; +databaseProductName = "HerdDB"; +supportsForeignKeys = false; +supportsUniqueConstraints = false; +supportsCascadeDeleteAction = false; + +// make OpenJPA escape everything, because Apache Calcite has a lot of reserved words, like 'User', 'Value'... +setDelimitIdentifiers(true); +setSupportsDelimitedIdentifiers(true); +setLeadingDelimiter(DELIMITER_BACK_TICK); +setTrailingDelimiter(DELIMITER_BACK_TICK); +} + +} + diff --git a/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml b/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml index 6de9dac..c839c87 100644 --- a/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml +++ b/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml @@ -4353,6 +4353,17 @@ dictionaries provided by OpenJPA are in the following table. ] + + + HerdDBDictionary + + + ` + + + ` + +
[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions updated: excluding asm too
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/OPENJPA-2817_PCClassFileTransformer-exclusions by this push: new 96b2b12 excluding asm too 96b2b12 is described below commit 96b2b128c180089d6999288ade928e6e183ce5da Author: Romain Manni-Bucau AuthorDate: Tue Jul 14 20:25:00 2020 +0200 excluding asm too --- .../main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index 63b4d2e..45d8838 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -144,7 +144,8 @@ public class PCClassFileTransformer if (className.startsWith("org/apache/")) { final String sub = className.substring("org/apache/".length()); if (sub.startsWith("openjpa/") || -sub.startsWith("commons/")) { +sub.startsWith("commons/") || +sub.startsWith("xbean/")) { return true; } }
[openjpa] 01/01: OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git commit 763e20c3777be37df7eafc62f3b103d524f51704 Author: Romain Manni-Bucau AuthorDate: Tue Jul 14 19:38:48 2020 +0200 OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list --- .../openjpa/enhance/PCClassFileTransformer.java| 80 +++--- 1 file changed, 55 insertions(+), 25 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index 872d413..63b4d2e 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -55,7 +55,6 @@ public class PCClassFileTransformer private final ClassLoader _tmpLoader; private final Log _log; private final Set _names; -private boolean _transforming = false; /** * Constructor. @@ -107,6 +106,9 @@ public class PCClassFileTransformer _log.info(_loc.get("runtime-enhance-pcclasses")); } +// this must be called under a proper locking, this is guaranteed by either +// a correct concurrent classloader with transformation support OR +// a mono-threaded access guarantee (build, deploy time enhancements). @Override public byte[] transform(ClassLoader loader, String className, Class redef, ProtectionDomain domain, byte[] bytes) @@ -118,17 +120,43 @@ public class PCClassFileTransformer if (className == null) { return null; } -// prevent re-entrant calls, which can occur if the enhancing -// loader is used to also load OpenJPA libraries; this is to prevent -// recursive enhancement attempts for internal openjpa libraries -if (_transforming) -return null; - -_transforming = true; return transform0(className, redef, bytes); } +// very simplified flavor of +// @apache/tomee > +// container/openejb-core > +// org/apache/openejb/util/classloader/URLClassLoaderFirst.java#L207 +private boolean isExcluded(final String className) { +if (// api +className.startsWith("javax/") || +className.startsWith("jakarta/") || +// openjpa dependencies +className.startsWith("serp/") || +// jvm +className.startsWith("java/") || +className.startsWith("sun/") || +className.startsWith("jdk/")) { +return true; +} +// it is faster to use substring when multiple tests are needed +if (className.startsWith("org/apache/")) { +final String sub = className.substring("org/apache/".length()); +if (sub.startsWith("openjpa/") || +sub.startsWith("commons/")) { +return true; +} +} +if (className.startsWith("com/")) { +final String sub = className.substring("com/".length()); +if (sub.startsWith("oracle/") || sub.startsWith("sun/")) { // jvm +return true; +} +} +return false; +} + /** * We have to split the transform method into two methods to avoid * ClassCircularityError when executing method using pure-JIT JVMs @@ -151,7 +179,7 @@ public class PCClassFileTransformer try { PCEnhancer enhancer = new PCEnhancer(_repos.getConfiguration(), new Project().loadClass(new ByteArrayInputStream(bytes), -_tmpLoader), _repos); +_tmpLoader), _repos, _tmpLoader); enhancer.setAddDefaultConstructor(_flags.addDefaultConstructor); enhancer.setEnforcePropertyRestrictions (_flags.enforcePropertyRestrictions); @@ -172,7 +200,6 @@ public class PCClassFileTransformer throw (IllegalClassFormatException) t; throw new GeneralException(t); } finally { -_transforming = false; if (returnBytes != null && _log.isTraceEnabled()) _log.trace(_loc.get("runtime-enhance-complete", className, bytes.length, returnBytes.length)); @@ -182,41 +209,44 @@ public class PCClassFileTransformer /** * Return whether the given class needs enhancement. */ -private Boolean needsEnhance(String clsName, Clas
[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions created (now 763e20c)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git. at 763e20c OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list This branch includes the following new commits: new 763e20c OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[openjpa] branch master updated: OPENJPA-2815 jakarta bundle
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new db5912b OPENJPA-2815 jakarta bundle db5912b is described below commit db5912b309a3dabc74b7155285f8771dad360446 Author: Romain Manni-Bucau AuthorDate: Mon Jun 8 13:35:12 2020 +0200 OPENJPA-2815 jakarta bundle --- openjpa/pom.xml | 88 + 1 file changed, 88 insertions(+) diff --git a/openjpa/pom.xml b/openjpa/pom.xml index a20817c..6c80ebd 100644 --- a/openjpa/pom.xml +++ b/openjpa/pom.xml @@ -96,6 +96,94 @@ + +shade-jakarta +package + +shade + + + true + jakarta + false + ${createSources} + + + + + + org.apache.openjpa:openjpa-lib + org.apache.openjpa:openjpa-kernel + org.apache.openjpa:openjpa-jdbc + org.apache.openjpa:openjpa-persistence + org.apache.openjpa:openjpa-persistence-jdbc + org.apache.openjpa:openjpa-xmlstore + org.apache.openjpa:openjpa-slice + + + + +javax.annotation + jakarta.annotation + + +javax.el +jakarta.el + + +javax.enterprise + jakarta.enterprise + + +javax.decorator + jakarta.decorator + + +javax.inject + jakarta.inject + + +javax.interceptor + jakarta.interceptor + + +javax.servlet + jakarta.servlet + + +javax.transaction + jakarta.transaction + + +javax.validation + jakarta.validation + + +javax.persistence + jakarta.persistence + + +javax.faces + jakarta.faces + + +javax.ejb +jakarta.ejb + + +javax.jms +jakarta.jms + + +javax.transaction + jakarta.transaction + + + + +
[openjpa] branch master updated: [OPENJPA-2824] simplify OpenJPADirectoriesEnhancer runtime when in auto mode
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 119df60 [OPENJPA-2824] simplify OpenJPADirectoriesEnhancer runtime when in auto mode 119df60 is described below commit 119df603b8223043499b28410ce28a1edae22459 Author: Romain Manni-Bucau AuthorDate: Fri Jul 24 11:46:13 2020 +0200 [OPENJPA-2824] simplify OpenJPADirectoriesEnhancer runtime when in auto mode --- .../internal/OpenJPADirectoriesEnhancer.java | 37 -- .../openjpa/junit5/internal/OpenJPAExtension.java | 3 -- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index 19b4419..dd8e169 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -53,6 +53,7 @@ import java.nio.file.StandardOpenOption; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.Collection; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Logger; import java.util.stream.Stream; @@ -65,6 +66,8 @@ public class OpenJPADirectoriesEnhancer implements Runnable { private static final Logger LOGGER = Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName()); public static final StackTraceElement[] NO_STACK_TRACE = new StackTraceElement[0]; +private static final AtomicBoolean AUTO_DONE = new AtomicBoolean(false); + private final boolean auto; private final String[] entities; private final Class logFactory; @@ -84,22 +87,24 @@ public class OpenJPADirectoriesEnhancer implements Runnable { thread.setContextClassLoader(enhancementClassLoader); try { if (auto) { -try { - ClassLoaders.findUrls(enhancementClassLoader.getParent()).stream() -.map(org.apache.xbean.finder.util.Files::toFile) -.filter(File::isDirectory) -.map(File::toPath) -.forEach(dir -> { -LOGGER.fine(() -> "Enhancing folder '" + dir + "'"); -try { -enhanceDirectory(enhancementClassLoader, dir); -} catch (final IOException e) { -throw new IllegalStateException(e); -} -}); -} catch (final IOException e) { -throw new IllegalStateException(e); -} +if (AUTO_DONE.compareAndSet(false, true)) { +try { + ClassLoaders.findUrls(enhancementClassLoader.getParent()).stream() + .map(org.apache.xbean.finder.util.Files::toFile) +.filter(File::isDirectory) +.map(File::toPath) +.forEach(dir -> { +LOGGER.fine(() -> "Enhancing folder '" + dir + "'"); +try { + enhanceDirectory(enhancementClassLoader, dir); +} catch (final IOException e) { +throw new IllegalStateException(e); +} +}); +} catch (final IOException e) { +throw new IllegalStateException(e); +} +} // else: already done, skip useless work } else { Stream.of(entities).forEach(e -> { try { diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java index 2cacd5e..86147e3 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java @@ -23,10 +23,7 @@ import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.util.AnnotationUtils; -import java.util.logging.Logger; - public class OpenJPAExtension implements BeforeAllCallback { -private static final Logger LO
[openjpa] branch master updated (0e32d49 -> c1a6aa5)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 0e32d49 Merge pull request #63 from eolivelli/fix/OPENJPA-2816-herddb new dcc313b OPENJPA-2819 Add simple GitHub Actions validation for Pull Requests new 6ec962f remove snapshots new c97bb58 hard code key cache new 6ddfe4e add quotes new d4882b0 indent new 29ca489 better clause new 5263d8c Switch to verify new 7822592 use 'package' new 80c7d3c use 'install' goal new c1a6aa5 Merge pull request #70 from eolivelli/fix/OPENJPA-2819 The 5052 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .github/workflows/pr-validation.yml | 38 + 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/pr-validation.yml
[openjpa] 02/02: excluding asm too
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git commit 1c14bc28cb399e32afba5e59d4b23c6eb6ad3067 Author: Romain Manni-Bucau AuthorDate: Tue Jul 14 20:25:00 2020 +0200 excluding asm too --- .../main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index 45bc953..f0ac151 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -143,7 +143,8 @@ public class PCClassFileTransformer if (className.startsWith("org/apache/")) { final String sub = className.substring("org/apache/".length()); if (sub.startsWith("openjpa/") || -sub.startsWith("commons/")) { +sub.startsWith("commons/") || +sub.startsWith("xbean/")) { return true; } }
[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions updated (9e665c0 -> 1c14bc2)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git. omit 9e665c0 Merge branch 'master' into OPENJPA-2817_PCClassFileTransformer-exclusions omit 96b2b12 excluding asm too omit 763e20c OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list new fd70273 OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list new 1c14bc2 excluding asm too This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (9e665c0) \ N -- N -- N refs/heads/OPENJPA-2817_PCClassFileTransformer-exclusions (1c14bc2) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/openjpa/enhance/PCClassFileTransformer.java | 18 -- 1 file changed, 8 insertions(+), 10 deletions(-)
[openjpa] 01/02: OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git commit fd70273f246255e86411bc4ed738860bd5cdc8f6 Author: Romain Manni-Bucau AuthorDate: Tue Jul 14 19:38:48 2020 +0200 OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list --- .../openjpa/enhance/PCClassFileTransformer.java| 78 +++--- 1 file changed, 53 insertions(+), 25 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index d67fb48..45bc953 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -55,7 +55,6 @@ public class PCClassFileTransformer private final ClassLoader _tmpLoader; private final Log _log; private final Set _names; -private boolean _transforming = false; /** * Constructor. @@ -64,7 +63,8 @@ public class PCClassFileTransformer * @param opts enhancer configuration options * @param loader temporary class loader for loading intermediate classes */ -public PCClassFileTransformer(MetaDataRepository repos, Options opts, ClassLoader loader) { +public PCClassFileTransformer(MetaDataRepository repos, Options opts, +ClassLoader loader) { this(repos, toFlags(opts), loader, opts.removeBooleanProperty ("scanDevPath", "ScanDevPath", false)); } @@ -105,6 +105,9 @@ public class PCClassFileTransformer _log.info(_loc.get("runtime-enhance-pcclasses")); } +// this must be called under a proper locking, this is guaranteed by either +// a correct concurrent classloader with transformation support OR +// a mono-threaded access guarantee (build, deploy time enhancements). @Override public byte[] transform(ClassLoader loader, String className, Class redef, ProtectionDomain domain, byte[] bytes) throws IllegalClassFormatException { @@ -116,17 +119,43 @@ public class PCClassFileTransformer if (className == null) { return null; } -// prevent re-entrant calls, which can occur if the enhancing -// loader is used to also load OpenJPA libraries; this is to prevent -// recursive enhancement attempts for internal openjpa libraries -if (_transforming) -return null; - -_transforming = true; return transform0(className, redef, bytes); } +// very simplified flavor of +// @apache/tomee > +// container/openejb-core > +// org/apache/openejb/util/classloader/URLClassLoaderFirst.java#L207 +private boolean isExcluded(final String className) { +if (// api +className.startsWith("javax/") || +className.startsWith("jakarta/") || +// openjpa dependencies +className.startsWith("serp/") || +// jvm +className.startsWith("java/") || +className.startsWith("sun/") || +className.startsWith("jdk/")) { +return true; +} +// it is faster to use substring when multiple tests are needed +if (className.startsWith("org/apache/")) { +final String sub = className.substring("org/apache/".length()); +if (sub.startsWith("openjpa/") || +sub.startsWith("commons/")) { +return true; +} +} +if (className.startsWith("com/")) { +final String sub = className.substring("com/".length()); +if (sub.startsWith("oracle/") || sub.startsWith("sun/")) { // jvm +return true; +} +} +return false; +} + /** * We have to split the transform method into two methods to avoid * ClassCircularityError when executing method using pure-JIT JVMs @@ -149,7 +178,7 @@ public class PCClassFileTransformer try { PCEnhancer enhancer = new PCEnhancer(_repos.getConfiguration(), new Project().loadClass(new ByteArrayInputStream(bytes), -_tmpLoader), _repos); +_tmpLoader), _repos, _tmpLoader); enhancer.setAddDefaultConstructor(_flags.addDefaultConstructor); enhancer.setEnforcePropertyRestrictions (_flags.enforcePropertyRestrictions); @@ -170,7 +199,6 @@ public
[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions updated (96b2b12 -> 9e665c0)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch OPENJPA-2817_PCClassFileTransformer-exclusions in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 96b2b12 excluding asm too add c933137 OPENJPA-2816 Add HerdDB DBDictionary - implement HerdDBDictionary - add autodiscovery of HerdDB add 0e32d49 Merge pull request #63 from eolivelli/fix/OPENJPA-2816-herddb add dcc313b OPENJPA-2819 Add simple GitHub Actions validation for Pull Requests add 6ec962f remove snapshots add c97bb58 hard code key cache add 6ddfe4e add quotes add d4882b0 indent add 29ca489 better clause add 5263d8c Switch to verify add 7822592 use 'package' add 80c7d3c use 'install' goal add c1a6aa5 Merge pull request #70 from eolivelli/fix/OPENJPA-2819 add e3bb1f1 OPENJPA-2818 DBDictionary > delimitIdentifiers = true does not work (#69) add 589d775 detect newer java versions as well add 5d9c88d just fix broken javadoc add bf03bdb OPENJPA-2822 get rid of tricks < java8 add ab6e0ed OPENJPA-2823 treat jakarta.* like javax.* add 94a033d OPENJPA-2821 use AsmAdapter for subclassing add 5b81bea use proper maven structure for persistence.xml add 093a547 Fix typo add 9e665c0 Merge branch 'master' into OPENJPA-2817_PCClassFileTransformer-exclusions No new revisions were added by this update. Summary of changes: .github/workflows/pr-validation.yml| 38 ++ .../{java => resources}/META-INF/persistence.xml | 0 openjpa-jdbc/nbproject/project.properties | 0 .../openjpa/jdbc/conf/JDBCConfigurationImpl.java | 1 + .../openjpa/jdbc/identifier/DBIdentifier.java | 42 +- .../org/apache/openjpa/jdbc/schema/SchemaTool.java | 7 +- .../java/org/apache/openjpa/jdbc/schema/Table.java | 38 +- .../openjpa/jdbc/sql/DBDictionaryFactory.java | 5 +- ...{CacheDictionary.java => HerdDBDictionary.java} | 37 +- .../org/apache/openjpa/jdbc/sql/SelectImpl.java| 6 +- .../openjpa/jdbc/sql/DBDictionaryFactoryTest.java | 61 +++ .../apache/openjpa/jdbc/sql/TestSelectImpl.java| 92 .../org/apache/openjpa/enhance/AsmAdaptor.java | 14 + .../org/apache/openjpa/enhance/ClassRedefiner.java | 44 +- .../openjpa/enhance/InstrumentationFactory.java| 9 - .../openjpa/enhance/ManagedClassSubclasser.java| 7 +- .../openjpa/enhance/PCClassFileTransformer.java| 32 +- .../org/apache/openjpa/lib/util/JavaVersions.java | 6 +- .../openjpa/jdbc/sql/TestDelimitIdentifiers.java | 536 + .../persistence/PersistenceProviderImpl.java | 2 - .../src/doc/manual/ref_guide_dbsetup.xml | 11 + 21 files changed, 878 insertions(+), 110 deletions(-) create mode 100644 .github/workflows/pr-validation.yml rename openjpa-examples/simple/src/main/{java => resources}/META-INF/persistence.xml (100%) create mode 100644 openjpa-jdbc/nbproject/project.properties copy openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/{CacheDictionary.java => HerdDBDictionary.java} (52%) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactoryTest.java create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSelectImpl.java create mode 100644 openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestDelimitIdentifiers.java
[openjpa] branch master updated: [OPENJPA-2838] jul log factory
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 440cdb3 [OPENJPA-2838] jul log factory 440cdb3 is described below commit 440cdb37719d0431e07adcf8dff2f70aab6c292a Author: Romain Manni-Bucau AuthorDate: Mon Nov 16 14:11:08 2020 +0100 [OPENJPA-2838] jul log factory --- .../internal/OpenJPADirectoriesEnhancer.java | 7 +- .../apache/openjpa/lib/conf/ConfigurationImpl.java | 1 + .../org/apache/openjpa/lib/log/JULLogFactory.java | 158 + .../apache/openjpa/lib/log/JULLogFactoryTest.java | 61 4 files changed, 226 insertions(+), 1 deletion(-) diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index c8be809..c79535f 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -22,6 +22,7 @@ import org.apache.openjpa.conf.OpenJPAConfigurationImpl; import org.apache.openjpa.enhance.AsmAdaptor; import org.apache.openjpa.enhance.PCEnhancer; import org.apache.openjpa.enhance.PersistenceCapable; +import org.apache.openjpa.lib.log.JULLogFactory; import org.apache.openjpa.lib.log.LogFactory; import org.apache.openjpa.lib.log.LogFactoryImpl; import org.apache.openjpa.lib.log.SLF4JLogFactory; @@ -125,7 +126,11 @@ public class OpenJPADirectoriesEnhancer implements Runnable { try { return new SLF4JLogFactory(); } catch (final Error | Exception e) { -return new LogFactoryImpl(); +try { +return new LogFactoryImpl(); +} catch (final Error | Exception e2) { +return new JULLogFactory(); +} } } return logFactory.asSubclass(LogFactory.class).getConstructor().newInstance(); diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java index 14076c4..d7d54c3 100644 --- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java +++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java @@ -158,6 +158,7 @@ public class ConfigurationImpl "commons", "org.apache.openjpa.lib.log.CommonsLogFactory", "log4j", "org.apache.openjpa.lib.log.Log4JLogFactory", "slf4j", "org.apache.openjpa.lib.log.SLF4JLogFactory", +"jul", "org.apache.openjpa.lib.log.JULLogFactory", "none", NoneLogFactory.class.getName(), "false", NoneLogFactory.class.getName(), }; diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/JULLogFactory.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/JULLogFactory.java new file mode 100644 index 000..72a2727 --- /dev/null +++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/JULLogFactory.java @@ -0,0 +1,158 @@ +/* + * 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. + */ +package org.apache.openjpa.lib.log; + +import org.apache.openjpa.lib.conf.Configurable; +import org.apache.openjpa.lib.conf.Configuration; +import org.apache.openjpa.lib.conf.Value; + +import java.util.logging.Level; +import java.util.logging.Logger; + +public class JULLogFactory implements LogFactory, Configurable { +private ClassLoader classLoader; + +public JULLogFactory() { +classLoader = Thread.currentThread().getContextClassLoader(); +} + +@Override +public Log getLog(final String channel) { +final Thread thread; +final ClassLoader oldLoader; +if (classLoader != null)
[openjpa] branch master updated: [OPENJPA-2840] light abstraction for asm
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 0d78162 [OPENJPA-2840] light abstraction for asm 0d78162 is described below commit 0d7816290ea9950a8f1aa02dfe418d877481dc0a Author: Romain Manni-Bucau AuthorDate: Fri Nov 20 09:43:42 2020 +0100 [OPENJPA-2840] light abstraction for asm --- .../org/apache/openjpa/enhance/AsmAdaptor.java | 202 +++-- .../org/apache/openjpa/enhance/asm/AsmSpi.java | 42 + .../enhance/{AsmAdaptor.java => asm/AsmSpi9.java} | 50 +++-- 3 files changed, 96 insertions(+), 198 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java index 24f7c61..86d2818 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java @@ -18,24 +18,15 @@ */ package org.apache.openjpa.enhance; -import static java.util.Arrays.asList; +import org.apache.openjpa.enhance.asm.AsmSpi; +import org.apache.openjpa.enhance.asm.AsmSpi9; +import serp.bytecode.BCClass; -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; -import java.net.URLDecoder; - -import org.apache.xbean.asm9.ClassReader; -import org.apache.xbean.asm9.ClassVisitor; -import org.apache.xbean.asm9.ClassWriter; -import org.apache.xbean.asm9.Opcodes; - -import serp.bytecode.BCClass; +import java.util.ServiceLoader; +import java.util.stream.StreamSupport; /** @@ -43,179 +34,46 @@ import serp.bytecode.BCClass; * Serp. */ public final class AsmAdaptor { -private static final int Java7_MajorVersion = 51; - -@SuppressWarnings("deprecation") -public static void write(BCClass bc) throws IOException { -if (bc.getMajorVersion() < Java7_MajorVersion) { -bc.write(); -} else { -String name = bc.getName(); -int dotIndex = name.lastIndexOf('.') + 1; -name = name.substring(dotIndex); -Class type = bc.getType(); - -OutputStream out = new FileOutputStream( -URLDecoder.decode(type.getResource(name + ".class").getFile())); +private final static AsmSpi impl; +static { +impl = StreamSupport.stream(ServiceLoader.load(AsmSpi.class).spliterator(), false).min((a, b) -> { +final int v1; try { -writeJava7(bc, out); -} finally { -out.flush(); -out.close(); +v1 = Integer.parseInt(a.getClass().getName().replace("AsmSpi", "")); +} catch (final Exception e) { +// not matching our default naming so an user impl so let's use it +return -1; } -} -} - -public static void write(BCClass bc, File outFile) throws IOException { -if (bc.getMajorVersion() < Java7_MajorVersion) { -bc.write(outFile); -} else { -OutputStream out = new FileOutputStream(outFile); +final int v2; try { -writeJava7(bc, out); -} finally { -out.flush(); -out.close(); +v2 = Integer.parseInt(b.getClass().getName().replace("AsmSpi", "")); +} catch (final Exception e) { +// not matching our default naming so an user impl so let's use it +return 1; } -} +return v2 - v1; // reverse since we want the higher +}).orElseGet(AsmSpi9::new); } -public static void write(BCClass bc, OutputStream os) throws IOException { -if (bc.getMajorVersion() < Java7_MajorVersion) { -bc.write(os); -} -else { -try { -writeJava7(bc, os); -} finally { -os.flush(); -os.close(); -} -} +@SuppressWarnings("deprecation") +public static void write(BCClass bc) throws IOException { +impl.write(bc); } -public static byte[] toByteArray(BCClass bc, byte[] returnBytes) throws IOException { -if (bc.getMajorVersion() >= Java7_MajorVersion) { -returnBytes = toJava7ByteArray(bc, returnBytes); -} -return returnBytes; +public static void write(BCClass bc, File outFile) throws IOException { +impl.write(bc, outFile); } -private static void w
[openjpa] branch master updated (6f26922 -> aabbc25)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 6f26922 [OPENJPA-2834] invalid properties cache when a propery changes new 02e9144 OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique Indexes new bb35ca7 add test case and set supportsCascadeUpdateAction=false new a998255 add test cases new 117f75c fix checkstyle new aabbc25 Merge pull request #76 from eolivelli/OPENJPA-2836-herddb-dict-enhance The 5103 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 6 +- .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 + 2 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java
[openjpa] branch master updated (6f26922 -> aabbc25)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 6f26922 [OPENJPA-2834] invalid properties cache when a propery changes new 02e9144 OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique Indexes new bb35ca7 add test case and set supportsCascadeUpdateAction=false new a998255 add test cases new 117f75c fix checkstyle new aabbc25 Merge pull request #76 from eolivelli/OPENJPA-2836-herddb-dict-enhance The 5103 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 6 +- .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 + 2 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java
[openjpa] branch master updated (6f26922 -> aabbc25)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 6f26922 [OPENJPA-2834] invalid properties cache when a propery changes new 02e9144 OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique Indexes new bb35ca7 add test case and set supportsCascadeUpdateAction=false new a998255 add test cases new 117f75c fix checkstyle new aabbc25 Merge pull request #76 from eolivelli/OPENJPA-2836-herddb-dict-enhance The 5103 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 6 +- .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 + 2 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java
[openjpa] branch master updated (6f26922 -> aabbc25)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 6f26922 [OPENJPA-2834] invalid properties cache when a propery changes new 02e9144 OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique Indexes new bb35ca7 add test case and set supportsCascadeUpdateAction=false new a998255 add test cases new 117f75c fix checkstyle new aabbc25 Merge pull request #76 from eolivelli/OPENJPA-2836-herddb-dict-enhance The 5103 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 6 +- .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 + 2 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java
[openjpa] branch master updated (6f26922 -> aabbc25)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 6f26922 [OPENJPA-2834] invalid properties cache when a propery changes new 02e9144 OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique Indexes new bb35ca7 add test case and set supportsCascadeUpdateAction=false new a998255 add test cases new 117f75c fix checkstyle new aabbc25 Merge pull request #76 from eolivelli/OPENJPA-2836-herddb-dict-enhance The 5103 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/openjpa/jdbc/sql/HerdDBDictionary.java | 6 +- .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 + 2 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java
[openjpa] branch master updated (ba985ac -> 722eb57)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from ba985ac [maven-release-plugin] prepare for next development iteration new 4894c17 OPENJPA-2875 make sure to avoid doing things when another persistence provider is specified. new 2771cce Small fixes on the tests new 722eb57 Merge pull request #80 from jeanouii/OPENJPA-2875_filterJPAProvider The 5214 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../TestPersistenceProviderFilteringTestCase.java | 98 ++ .../persistence/PersistenceProviderImpl.java | 65 ++ 2 files changed, 148 insertions(+), 15 deletions(-) create mode 100644 openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/TestPersistenceProviderFilteringTestCase.java
[openjpa] branch master updated: [OPENJPA-2852] marking mojo as threadsafe
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 9a96e0c [OPENJPA-2852] marking mojo as threadsafe 9a96e0c is described below commit 9a96e0cd89ee9bac41a39d89388468a0774a519d Author: Romain Manni-Bucau AuthorDate: Wed Mar 31 10:18:21 2021 +0200 [OPENJPA-2852] marking mojo as threadsafe --- .../main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java | 3 ++- .../main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java| 3 ++- .../src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java | 3 ++- .../java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java index cba95de..fc79dec 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java +++ b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java @@ -29,6 +29,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope; * @version $Id: OpenJpaEnhancerMojo.java 10954 2009-10-23 22:05:45Z struberg $ * @since 1.0 */ -@Mojo(name="enhance", defaultPhase=LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution=ResolutionScope.COMPILE) +@Mojo(name="enhance", defaultPhase=LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution=ResolutionScope.COMPILE, +threadSafe = true) public class OpenJpaEnhancerMojo extends AbstractOpenJpaEnhancerMojo { } diff --git a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java index 186baff..857e22d 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java +++ b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java @@ -34,7 +34,8 @@ import org.apache.openjpa.lib.util.Options; * @version $Id$ * @since 1.0 */ -@Mojo(name="schema", defaultPhase=LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution=ResolutionScope.COMPILE) +@Mojo(name="schema", defaultPhase=LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution=ResolutionScope.COMPILE, +threadSafe = true) public class OpenJpaSchemaMojo extends AbstractOpenJpaMappingToolMojo { /** diff --git a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java index 79c1fec..6907f31 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java +++ b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java @@ -34,7 +34,8 @@ import org.apache.openjpa.lib.util.Options; * @version $Id$ * @since 1.0 */ -@Mojo(name="sql", defaultPhase=LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution=ResolutionScope.COMPILE) +@Mojo(name="sql", defaultPhase=LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution=ResolutionScope.COMPILE, +threadSafe = true) public class OpenJpaSqlMojo extends AbstractOpenJpaMappingToolMojo { /** diff --git a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java index 28d05e7..3a4e245 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java +++ b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java @@ -34,7 +34,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope; * @since 1.1 */ @Mojo(name="test-enhance", defaultPhase=LifecyclePhase.PROCESS_TEST_CLASSES, - requiresDependencyResolution=ResolutionScope.TEST) + requiresDependencyResolution=ResolutionScope.TEST, threadSafe = true) public class OpenJpaTestEnhancerMojo extends AbstractOpenJpaEnhancerMojo { /**
[openjpa] branch master updated: OPENJPA-2882: Exception passing javax.persistence.* String values to createEntityManager(Map)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 30c443d OPENJPA-2882: Exception passing javax.persistence.* String values to createEntityManager(Map) new 0fa0ee9 Merge pull request #82 from dazey3/OJ2882_master 30c443d is described below commit 30c443dcc32fdc43b75431c9579f8ca415421d17 Author: Will Dazey AuthorDate: Mon Oct 18 13:05:17 2021 -0500 OPENJPA-2882: Exception passing javax.persistence.* String values to createEntityManager(Map) Signed-off-by: Will Dazey --- .../persistence/property/TestEMProperties.java | 81 ++ .../apache/openjpa/persistence/JPAProperties.java | 14 +++- 2 files changed, 94 insertions(+), 1 deletion(-) diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/property/TestEMProperties.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/property/TestEMProperties.java new file mode 100644 index 000..bcff7b1 --- /dev/null +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/property/TestEMProperties.java @@ -0,0 +1,81 @@ +/* + * 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 agEmployee_Last_Name 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. + */ +package org.apache.openjpa.persistence.property; + +import java.util.HashMap; +import java.util.Map; + +import javax.persistence.EntityManager; + +import org.apache.openjpa.persistence.OpenJPAPersistence; +import org.apache.openjpa.persistence.OpenJPAQuery; +import org.apache.openjpa.persistence.test.SingleEMFTestCase; + +/** + * TestEMProperties is used to test various persistence properties set through EntityManager.setProperty() API + * to ensure no errors are thrown. + */ +public class TestEMProperties extends SingleEMFTestCase { + +@Override +public void setUp() { +setUp(EntityContact.class, + EmbeddableAddress.class, + DROP_TABLES, "javax.persistence.query.timeout", 23456); +} + +public void testQueryTimeoutPropertyDefault() { +EntityManager em = emf.createEntityManager(); + +String sql = "select * from EntityContact"; +OpenJPAQuery query = OpenJPAPersistence.cast(em.createNativeQuery(sql)); +assertEquals(23456, query.getFetchPlan().getQueryTimeout()); + +em.clear(); +em.close(); +} + +public void testQueryTimeoutPropertyOnEntityManagerCreation() { +Map properties = new HashMap(); +properties.put("javax.persistence.query.timeout", "12345"); +// Setting a value of type String should convert if possible and not return an error +EntityManager em = emf.createEntityManager(properties); + +String sql = "select * from EntityContact"; +OpenJPAQuery query = OpenJPAPersistence.cast(em.createNativeQuery(sql)); +assertEquals(12345, query.getFetchPlan().getQueryTimeout()); + +em.clear(); +em.close(); +} + +public void testQueryTimeoutPropertySetOnEntityManager() { +EntityManager em = emf.createEntityManager(); + +// Setting a value of type String should convert if possible and not return an error +em.setProperty("javax.persistence.query.timeout", "12345"); + +String sql = "select * from EntityContact"; +OpenJPAQuery query = OpenJPAPersistence.cast(em.createNativeQuery(sql)); +assertEquals(12345, query.getFetchPlan().getQueryTimeout()); + +em.clear(); +em.close(); +} +} diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java index 89f2a79..162003c 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java @@ -18,6 +18,8 @@ */ package org.apache.openjpa.persistence; +import java.math.BigDecimal; +imp
[openjpa] branch master updated (cb258ae -> e7774e3)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from cb258ae Merge pull request #81 from tandraschko/master new fe42383 [OPENJPA-2891] allow configuration of @Generated annotation. new ad5f051 [OPENJPA-2891] default for addGeneratedOption, use switch new 3e9644d [OPENJPA-2891][DOCS] add description for openjpa.addGeneratedAnnotation. new e7774e3 Merge pull request #90 from bmarwell/OPENJPA-2891_annotation The 5237 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: openjpa-persistence/pom.xml| 5 +++ .../persistence/meta/AnnotationProcessor6.java | 48 +++--- .../openjpa/persistence/meta/localizer.properties | 2 + .../src/doc/manual/jpa_overview_criteria.xml | 10 + pom.xml| 6 +++ 5 files changed, 66 insertions(+), 5 deletions(-)
[openjpa] branch master updated: OPENJPA-2885 ensure openjpa-junit5 can support jakarta as well without any shade
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 1fdf245 OPENJPA-2885 ensure openjpa-junit5 can support jakarta as well without any shade 1fdf245 is described below commit 1fdf245200fc839d25d59a637994c62173429bd2 Author: Romain Manni-Bucau AuthorDate: Tue Oct 26 16:54:26 2021 +0200 OPENJPA-2885 ensure openjpa-junit5 can support jakarta as well without any shade --- .../junit5/internal/OpenJPADirectoriesEnhancer.java| 14 ++ 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index c79535f..d86f2bd 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -205,9 +205,12 @@ public class OpenJPADirectoriesEnhancer implements Runnable { private static class OpenJpaClassLoader extends BaseClassLoader { private static final String PERSITENCE_CAPABLE = Type.getDescriptor(PersistenceCapable.class); -private static final String ENTITY = Type.getDescriptor(Entity.class); -private static final String EMBEDDABLE = Type.getDescriptor(Embeddable.class); -private static final String MAPPED_SUPERCLASS = Type.getDescriptor(MappedSuperclass.class); +private static final String ENTITY = "Ljavax/persistence/Entity;"; +private static final String ENTITY2 = "Ljakarta/persistence/Entity;"; +private static final String EMBEDDABLE = "Ljavax/persistence/Entity;"; +private static final String EMBEDDABLE2 = "Ljakarta/persistence/Entity;"; +private static final String MAPPED_SUPERCLASS = "Ljavax/persistence/Entity;"; +private static final String MAPPED_SUPERCLASS2 = "Ljakarta/persistence/Entity;"; private final MetaDataRepository repos; private final ClassLoader tmpLoader; @@ -298,7 +301,10 @@ public class OpenJPADirectoriesEnhancer implements Runnable { public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { if (ENTITY.equals(descriptor) || EMBEDDABLE.equals(descriptor) || -MAPPED_SUPERCLASS.equals(descriptor)) { +MAPPED_SUPERCLASS.equals(descriptor) || +ENTITY2.equals(descriptor) || +EMBEDDABLE2.equals(descriptor) || +MAPPED_SUPERCLASS2.equals(descriptor)) { throw new MissingEnhancement(); // we already went into visit() so we miss the enhancement } return new EmptyVisitor().visitAnnotation(descriptor, visible);
[openjpa] branch master updated: OPENJPA-2884 trying to not relocate javax.annotation.processing
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 3b6a69e OPENJPA-2884 trying to not relocate javax.annotation.processing 3b6a69e is described below commit 3b6a69e9f0d041b034ce11d934d7321732d069c8 Author: Romain Manni-Bucau AuthorDate: Tue Oct 26 16:20:43 2021 +0200 OPENJPA-2884 trying to not relocate javax.annotation.processing --- openjpa/pom.xml | 24 ++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/openjpa/pom.xml b/openjpa/pom.xml index 4365ed1..3df7d46 100644 --- a/openjpa/pom.xml +++ b/openjpa/pom.xml @@ -123,8 +123,28 @@ -javax.annotation - jakarta.annotation + javax.annotation.security + jakarta.annotation.security + + + javax.annotation.Generated + jakarta.annotation.Generated + + + javax.annotation.PostConstruct + jakarta.annotation.PostConstruct + + + javax.annotation.PreDestroy + jakarta.annotation.PreDestroy + + + javax.annotation.Resource + jakarta.annotation.Resource + + + javax.annotation.Resources + jakarta.annotation.Resources javax.el
[openjpa] branch master updated (1fdf245 -> cb258ae)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 1fdf245 OPENJPA-2885 ensure openjpa-junit5 can support jakarta as well without any shade new 116eda9 OPENJPA-2877 new d698cca OPENJPA-2877 added caching of method new a0e4079 OPENJPA-2877 test new 08fe274 Merge branch 'apache:master' into master new 8ff3dff OPENJPA-2877 added caching of constructor new cb258ae Merge pull request #81 from tandraschko/master The 5233 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../org/apache/openjpa/meta/FieldMetaData.java | 188 ++--- .../org/apache/openjpa/meta/localizer.properties | 2 + .../persistence/meta/TestExternalValues.java | 3 + .../meta/common/apps/ExternalValues.java | 13 ++ ...ntimeTest2.java => UuidAttributeConverter.java} | 35 ++-- .../AnnotationPersistenceMetaDataParser.java | 7 + .../apache/openjpa/persistence/MetaDataTag.java| 3 +- 7 files changed, 167 insertions(+), 84 deletions(-) copy openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/common/apps/{RuntimeTest2.java => UuidAttributeConverter.java} (67%)
[openjpa] branch master updated: [OPENJPA-2889] Align commons-pool2 bundle version in Karaf features repository with the actual one
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 4d932bc [OPENJPA-2889] Align commons-pool2 bundle version in Karaf features repository with the actual one new cc55aec Merge pull request #87 from jbonofre/OPENJPA-2889 4d932bc is described below commit 4d932bc787ffaa4b8a79b44366b5ec80f58b9dda Author: Jean-Baptiste Onofré AuthorDate: Mon Nov 22 16:07:50 2021 +0100 [OPENJPA-2889] Align commons-pool2 bundle version in Karaf features repository with the actual one --- openjpa-features/src/main/feature/feature.xml | 2 +- pom.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openjpa-features/src/main/feature/feature.xml b/openjpa-features/src/main/feature/feature.xml index d32e459..fa9834d 100644 --- a/openjpa-features/src/main/feature/feature.xml +++ b/openjpa-features/src/main/feature/feature.xml @@ -24,7 +24,7 @@ mvn:org.eclipse.persistence/javax.persistence/2.1.0 mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1 mvn:org.apache.geronimo.specs/geronimo-el_1.0_spec/1.0.1 -mvn:org.apache.commons/commons-pool2/2.6.0 + mvn:org.apache.commons/commons-pool2/${pool2.version} mvn:org.apache.commons/commons-dbcp2/2.7.0 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.14.1_1 mvn:org.apache.xbean/xbean-asm9-shaded/${xbean.version} diff --git a/pom.xml b/pom.xml index 9fe6986..5685d7d 100644 --- a/pom.xml +++ b/pom.xml @@ -105,6 +105,7 @@ 2.9.0 -SUBMODULES-NEED-TO-OVERRIDE-THIS- 2.8.0 + 2.9.0 @@ -1725,7 +1726,7 @@ org.apache.commons commons-pool2 -2.9.0 + ${pool2.version} commons-logging
[openjpa] branch master updated (a605d87 -> 641dfd9)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from a605d87 [OPENJPA-2713] Fixing OffsetDateTime conversion new 6d7ee9b refine Jakarta relocate patterns new e5c29f4 Requires the full package for the pattern new 641dfd9 Merge pull request #93 from jeanouii/jakarta-relocate The 5249 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: openjpa/pom.xml | 73 +++-- 1 file changed, 14 insertions(+), 59 deletions(-)
svn commit: r52378 - in /dev/openjpa: apache-openjpa-3.2.1-source.zip apache-openjpa-3.2.1-source.zip.asc apache-openjpa-3.2.1-source.zip.sha512
Author: rmannibucau Date: Thu Feb 3 10:17:01 2022 New Revision: 52378 Log: apache openjpa 3.2.1 dev area Added: dev/openjpa/apache-openjpa-3.2.1-source.zip (with props) dev/openjpa/apache-openjpa-3.2.1-source.zip.asc dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512 Added: dev/openjpa/apache-openjpa-3.2.1-source.zip == Binary file - no diff available. Propchange: dev/openjpa/apache-openjpa-3.2.1-source.zip -- svn:mime-type = application/octet-stream Added: dev/openjpa/apache-openjpa-3.2.1-source.zip.asc == --- dev/openjpa/apache-openjpa-3.2.1-source.zip.asc (added) +++ dev/openjpa/apache-openjpa-3.2.1-source.zip.asc Thu Feb 3 10:17:01 2022 @@ -0,0 +1,11 @@ +-BEGIN PGP SIGNATURE- + +iQEzBAABCgAdFiEEz4CgVaKtKOnvv5QqcxKfWN5h7L0FAmH7qn4ACgkQcxKfWN5h +7L02MwgAo6JIBnzRW6Ni+Nb7eL6PI1bhX/7qgY/xaKi+kXrt9PTOKxxRsn0wC78R +MZTrXggOEsMvqRkjy6ynoYUau1I6SlV2qyGayrPyX0mdWT1UoDQQNo5B/BYEDW0p +/BQw8ve/n1umCP560OvHmg4MtJUTCFI2U+M/D1nla9JqL+eK7qEdtOhwu1mtVSsM +cvEywEv3nGksb9QiKvE0S6RSttWyNkgHfvxFyiZ3h/lL+Xukw3p+4UWC3/SVQ1ij +SFkeXErXMhVAFeULDnrU3GfR0chgxoLOdiIM229/gIYpYmXnNMXd7FDTk0dGAJpd +xh41b67RpaBPUZwbEi/nGcjfBak5UQ== +=95Vx +-END PGP SIGNATURE- Added: dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512 == --- dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512 (added) +++ dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512 Thu Feb 3 10:17:01 2022 @@ -0,0 +1 @@ +eff573cddc427ea496ab9bde6c1de3d1d1579272f5fe7fdfc79018cf31678694f8e59fb528415a5d5444e99cb74c5ded647b3b37cfea969805ebe491339d8e65 apache-openjpa-3.2.1-source.zip
[openjpa] branch master updated (468a453 -> 68b77e1)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git. from 468a453 [OPENJPA-2896] automatic module name is set for bundles (#92) new 000c065 [maven-release-plugin] prepare release 3.2.1 new 68b77e1 [maven-release-plugin] prepare for next development iteration The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: openjpa-all/pom.xml| 2 +- openjpa-examples/image-gallery/pom.xml | 2 +- openjpa-examples/openbooks/pom.xml | 2 +- openjpa-examples/pom.xml | 2 +- openjpa-examples/simple/pom.xml| 2 +- openjpa-features/pom.xml | 2 +- openjpa-integration/daytrader/pom.xml | 2 +- openjpa-integration/examples/pom.xml | 2 +- openjpa-integration/jmx/pom.xml| 2 +- openjpa-integration/pom.xml| 2 +- openjpa-integration/slf4j/pom.xml | 2 +- openjpa-integration/tck/pom.xml| 2 +- openjpa-integration/validation/pom.xml | 2 +- openjpa-jdbc/pom.xml | 2 +- openjpa-jest/pom.xml | 2 +- openjpa-junit5/pom.xml | 2 +- openjpa-kernel/pom.xml | 2 +- openjpa-kubernetes/pom.xml | 2 +- openjpa-lib/pom.xml| 2 +- openjpa-persistence-jdbc/pom.xml | 2 +- openjpa-persistence-locking/pom.xml| 2 +- openjpa-persistence/pom.xml| 2 +- openjpa-project/pom.xml| 2 +- openjpa-slice/pom.xml | 2 +- openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 2 +- openjpa-tools/openjpa-fetch-statistics/pom.xml | 2 +- openjpa-tools/openjpa-maven-plugin/pom.xml | 2 +- openjpa-tools/pom.xml | 2 +- openjpa-xmlstore/pom.xml | 2 +- openjpa/pom.xml| 2 +- pom.xml| 2 +- 31 files changed, 31 insertions(+), 31 deletions(-)
[openjpa] 01/02: [maven-release-plugin] prepare release 3.2.1
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git commit 000c065dbe8ceb4589fc1f789a37b8d68af6311e Author: Romain Manni-Bucau AuthorDate: Thu Feb 3 11:08:53 2022 +0100 [maven-release-plugin] prepare release 3.2.1 --- openjpa-all/pom.xml| 2 +- openjpa-examples/image-gallery/pom.xml | 2 +- openjpa-examples/openbooks/pom.xml | 2 +- openjpa-examples/pom.xml | 2 +- openjpa-examples/simple/pom.xml| 2 +- openjpa-features/pom.xml | 2 +- openjpa-integration/daytrader/pom.xml | 2 +- openjpa-integration/examples/pom.xml | 2 +- openjpa-integration/jmx/pom.xml| 2 +- openjpa-integration/pom.xml| 2 +- openjpa-integration/slf4j/pom.xml | 2 +- openjpa-integration/tck/pom.xml| 2 +- openjpa-integration/validation/pom.xml | 2 +- openjpa-jdbc/pom.xml | 2 +- openjpa-jest/pom.xml | 2 +- openjpa-junit5/pom.xml | 2 +- openjpa-kernel/pom.xml | 2 +- openjpa-kubernetes/pom.xml | 2 +- openjpa-lib/pom.xml| 2 +- openjpa-persistence-jdbc/pom.xml | 2 +- openjpa-persistence-locking/pom.xml| 2 +- openjpa-persistence/pom.xml| 2 +- openjpa-project/pom.xml| 2 +- openjpa-slice/pom.xml | 2 +- openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 2 +- openjpa-tools/openjpa-fetch-statistics/pom.xml | 2 +- openjpa-tools/openjpa-maven-plugin/pom.xml | 2 +- openjpa-tools/pom.xml | 2 +- openjpa-xmlstore/pom.xml | 2 +- openjpa/pom.xml| 2 +- pom.xml| 4 ++-- 31 files changed, 32 insertions(+), 32 deletions(-) diff --git a/openjpa-all/pom.xml b/openjpa-all/pom.xml index 1c15072..b1b7ade 100644 --- a/openjpa-all/pom.xml +++ b/openjpa-all/pom.xml @@ -28,7 +28,7 @@ org.apache.openjpa openjpa-parent -3.2.1-SNAPSHOT +3.2.1 openjpa-all diff --git a/openjpa-examples/image-gallery/pom.xml b/openjpa-examples/image-gallery/pom.xml index 6dd6a1f..67e2e1b 100644 --- a/openjpa-examples/image-gallery/pom.xml +++ b/openjpa-examples/image-gallery/pom.xml @@ -27,7 +27,7 @@ org.apache.openjpa openjpa-examples - 3.2.1-SNAPSHOT + 3.2.1 org.apache.openjpa.openjpa-examples diff --git a/openjpa-examples/openbooks/pom.xml b/openjpa-examples/openbooks/pom.xml index c24a191..310609b 100644 --- a/openjpa-examples/openbooks/pom.xml +++ b/openjpa-examples/openbooks/pom.xml @@ -29,7 +29,7 @@ org.apache.openjpa openjpa-examples -3.2.1-SNAPSHOT +3.2.1 org.apache.openjpa.openjpa-examples diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml index 7e06581..8acb1be 100644 --- a/openjpa-examples/pom.xml +++ b/openjpa-examples/pom.xml @@ -28,7 +28,7 @@ org.apache.openjpa openjpa-parent -3.2.1-SNAPSHOT +3.2.1 openjpa-examples diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml index 9a3ca4f..455f37f 100644 --- a/openjpa-examples/simple/pom.xml +++ b/openjpa-examples/simple/pom.xml @@ -28,7 +28,7 @@ org.apache.openjpa openjpa-examples -3.2.1-SNAPSHOT +3.2.1 org.apache.openjpa.openjpa-examples diff --git a/openjpa-features/pom.xml b/openjpa-features/pom.xml index 63b368b..03fce76 100644 --- a/openjpa-features/pom.xml +++ b/openjpa-features/pom.xml @@ -18,7 +18,7 @@ org.apache.openjpa openjpa-parent -3.2.1-SNAPSHOT +3.2.1 openjpa-features diff --git a/openjpa-integration/daytrader/pom.xml b/openjpa-integration/daytrader/pom.xml index 2b913b7..aee0d95 100644 --- a/openjpa-integration/daytrader/pom.xml +++ b/openjpa-integration/daytrader/pom.xml @@ -27,7 +27,7 @@ org.apache.openjpa openjpa-integration -3.2.1-SNAPSHOT +3.2.1 openjpa-integration-daytrader diff --git a/openjpa-integration/examples/pom.xml b/openjpa-integration/examples/pom.xml index a6062a4..db60555 100644 --- a/openjpa-integration/examples/pom.xml +++ b/openjpa-integration/examples/pom.xml @@ -37,7 +37,7 @@ org.apache.openjpa openjpa-integration -3.2.1-SNAPSHOT +3.2.1 openjpa-integration-examples diff --git a/openjpa-integration/jmx/pom.xml b/openjpa
[openjpa] annotated tag 3.2.1 created (now 85a3466)
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a change to annotated tag 3.2.1 in repository https://gitbox.apache.org/repos/asf/openjpa.git. at 85a3466 (tag) tagging 000c065dbe8ceb4589fc1f789a37b8d68af6311e (commit) replaces 3.2.0 by Romain Manni-Bucau on Thu Feb 3 11:08:53 2022 +0100 - Log - [maven-release-plugin] copy for tag 3.2.1 --- This annotated tag includes the following new commits: new 000c065 [maven-release-plugin] prepare release 3.2.1 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
[openjpa] 02/02: [maven-release-plugin] prepare for next development iteration
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git commit 68b77e1ae7a078fa336d42b0ea6bf1c9b6e65dca Author: Romain Manni-Bucau AuthorDate: Thu Feb 3 11:08:53 2022 +0100 [maven-release-plugin] prepare for next development iteration --- openjpa-all/pom.xml| 2 +- openjpa-examples/image-gallery/pom.xml | 2 +- openjpa-examples/openbooks/pom.xml | 2 +- openjpa-examples/pom.xml | 2 +- openjpa-examples/simple/pom.xml| 2 +- openjpa-features/pom.xml | 2 +- openjpa-integration/daytrader/pom.xml | 2 +- openjpa-integration/examples/pom.xml | 2 +- openjpa-integration/jmx/pom.xml| 2 +- openjpa-integration/pom.xml| 2 +- openjpa-integration/slf4j/pom.xml | 2 +- openjpa-integration/tck/pom.xml| 2 +- openjpa-integration/validation/pom.xml | 2 +- openjpa-jdbc/pom.xml | 2 +- openjpa-jest/pom.xml | 2 +- openjpa-junit5/pom.xml | 2 +- openjpa-kernel/pom.xml | 2 +- openjpa-kubernetes/pom.xml | 2 +- openjpa-lib/pom.xml| 2 +- openjpa-persistence-jdbc/pom.xml | 2 +- openjpa-persistence-locking/pom.xml| 2 +- openjpa-persistence/pom.xml| 2 +- openjpa-project/pom.xml| 2 +- openjpa-slice/pom.xml | 2 +- openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 2 +- openjpa-tools/openjpa-fetch-statistics/pom.xml | 2 +- openjpa-tools/openjpa-maven-plugin/pom.xml | 2 +- openjpa-tools/pom.xml | 2 +- openjpa-xmlstore/pom.xml | 2 +- openjpa/pom.xml| 2 +- pom.xml| 4 ++-- 31 files changed, 32 insertions(+), 32 deletions(-) diff --git a/openjpa-all/pom.xml b/openjpa-all/pom.xml index b1b7ade..646aa36 100644 --- a/openjpa-all/pom.xml +++ b/openjpa-all/pom.xml @@ -28,7 +28,7 @@ org.apache.openjpa openjpa-parent -3.2.1 +3.2.2-SNAPSHOT openjpa-all diff --git a/openjpa-examples/image-gallery/pom.xml b/openjpa-examples/image-gallery/pom.xml index 67e2e1b..3e05306 100644 --- a/openjpa-examples/image-gallery/pom.xml +++ b/openjpa-examples/image-gallery/pom.xml @@ -27,7 +27,7 @@ org.apache.openjpa openjpa-examples - 3.2.1 + 3.2.2-SNAPSHOT org.apache.openjpa.openjpa-examples diff --git a/openjpa-examples/openbooks/pom.xml b/openjpa-examples/openbooks/pom.xml index 310609b..3fcbeef 100644 --- a/openjpa-examples/openbooks/pom.xml +++ b/openjpa-examples/openbooks/pom.xml @@ -29,7 +29,7 @@ org.apache.openjpa openjpa-examples -3.2.1 +3.2.2-SNAPSHOT org.apache.openjpa.openjpa-examples diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml index 8acb1be..42b9bb8 100644 --- a/openjpa-examples/pom.xml +++ b/openjpa-examples/pom.xml @@ -28,7 +28,7 @@ org.apache.openjpa openjpa-parent -3.2.1 +3.2.2-SNAPSHOT openjpa-examples diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml index 455f37f..17f0c5c 100644 --- a/openjpa-examples/simple/pom.xml +++ b/openjpa-examples/simple/pom.xml @@ -28,7 +28,7 @@ org.apache.openjpa openjpa-examples -3.2.1 +3.2.2-SNAPSHOT org.apache.openjpa.openjpa-examples diff --git a/openjpa-features/pom.xml b/openjpa-features/pom.xml index 03fce76..6e49653 100644 --- a/openjpa-features/pom.xml +++ b/openjpa-features/pom.xml @@ -18,7 +18,7 @@ org.apache.openjpa openjpa-parent -3.2.1 +3.2.2-SNAPSHOT openjpa-features diff --git a/openjpa-integration/daytrader/pom.xml b/openjpa-integration/daytrader/pom.xml index aee0d95..18fc9c9 100644 --- a/openjpa-integration/daytrader/pom.xml +++ b/openjpa-integration/daytrader/pom.xml @@ -27,7 +27,7 @@ org.apache.openjpa openjpa-integration -3.2.1 +3.2.2-SNAPSHOT openjpa-integration-daytrader diff --git a/openjpa-integration/examples/pom.xml b/openjpa-integration/examples/pom.xml index db60555..c2c5bc0 100644 --- a/openjpa-integration/examples/pom.xml +++ b/openjpa-integration/examples/pom.xml @@ -37,7 +37,7 @@ org.apache.openjpa openjpa-integration -3.2.1 +3.2.2-SNAPSHOT openjpa-integration-examples diff --git a/openjpa-integration/jmx/pom.xml
svn commit: r52416 - in /release/openjpa: 3.2.0/ 3.2.1/ 3.2.1/apache-openjpa-3.2.1-source.zip 3.2.1/apache-openjpa-3.2.1-source.zip.asc 3.2.1/apache-openjpa-3.2.1-source.zip.sha512
Author: rmannibucau Date: Sun Feb 6 14:33:19 2022 New Revision: 52416 Log: openjpa release v3.2.1 Added: release/openjpa/3.2.1/ release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip (with props) release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512 Removed: release/openjpa/3.2.0/ Added: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip == Binary file - no diff available. Propchange: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip -- svn:mime-type = application/octet-stream Added: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc == --- release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc (added) +++ release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc Sun Feb 6 14:33:19 2022 @@ -0,0 +1,11 @@ +-BEGIN PGP SIGNATURE- + +iQEzBAABCgAdFiEEz4CgVaKtKOnvv5QqcxKfWN5h7L0FAmH7qn4ACgkQcxKfWN5h +7L02MwgAo6JIBnzRW6Ni+Nb7eL6PI1bhX/7qgY/xaKi+kXrt9PTOKxxRsn0wC78R +MZTrXggOEsMvqRkjy6ynoYUau1I6SlV2qyGayrPyX0mdWT1UoDQQNo5B/BYEDW0p +/BQw8ve/n1umCP560OvHmg4MtJUTCFI2U+M/D1nla9JqL+eK7qEdtOhwu1mtVSsM +cvEywEv3nGksb9QiKvE0S6RSttWyNkgHfvxFyiZ3h/lL+Xukw3p+4UWC3/SVQ1ij +SFkeXErXMhVAFeULDnrU3GfR0chgxoLOdiIM229/gIYpYmXnNMXd7FDTk0dGAJpd +xh41b67RpaBPUZwbEi/nGcjfBak5UQ== +=95Vx +-END PGP SIGNATURE- Added: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512 == --- release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512 (added) +++ release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512 Sun Feb 6 14:33:19 2022 @@ -0,0 +1 @@ +eff573cddc427ea496ab9bde6c1de3d1d1579272f5fe7fdfc79018cf31678694f8e59fb528415a5d5444e99cb74c5ded647b3b37cfea969805ebe491339d8e65 apache-openjpa-3.2.1-source.zip
svn commit: r52417 - in /dev/openjpa: apache-openjpa-3.2.1-source.zip apache-openjpa-3.2.1-source.zip.asc apache-openjpa-3.2.1-source.zip.sha512
Author: rmannibucau Date: Sun Feb 6 14:33:29 2022 New Revision: 52417 Log: openjpa release v3.2.1 - cleanup of dev Removed: dev/openjpa/apache-openjpa-3.2.1-source.zip dev/openjpa/apache-openjpa-3.2.1-source.zip.asc dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512
[openjpa] branch master updated: moving to Class.forName to force clinit call instead of creating a dead instance
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new a494966e8 moving to Class.forName to force clinit call instead of creating a dead instance a494966e8 is described below commit a494966e8b04e1a31f9895947f7b4ac68d4f888b Author: Romain Manni-Bucau AuthorDate: Mon Jul 17 19:48:36 2023 +0200 moving to Class.forName to force clinit call instead of creating a dead instance --- .../org/apache/openjpa/enhance/ManagedClassSubclasser.java | 10 +- .../java/org/apache/openjpa/util/ClassLoaderProxyService.java | 8 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java index cde3f0412..08ea4d3ec 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java @@ -291,15 +291,7 @@ public class ManagedClassSubclasser { // this is the new subclass ClassLoader loader = GeneratedClasses.getMostDerivedLoader(cls, PersistenceCapable.class); String className = cnt.getClassNode().name.replace("/", "."); -final Class subclass = GeneratedClasses.loadAsmClass(className, byteArray, cls, loader); -try { -// Ugly workaround to trigger clinit static initializer block :( -subclass.newInstance(); -} -catch (Exception e) { -throw new RuntimeException(e); -} -subs.add(subclass); +subs.add(GeneratedClasses.loadAsmClass(className, byteArray, cls, loader)); } } } diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java index 4ba872cae..61627cd29 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java @@ -111,6 +111,14 @@ public class ClassLoaderProxyService classes.put(key, existing); } } +try +{ +Class.forName(existing.getName(), true, existing.getClassLoader()); +} +catch (ClassNotFoundException e) +{ +// no-op, not critical, will be done at first instantiation but shouldn't happen anyway +} } return existing; }