This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch 2_1_X in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_1_X by this push: new cde9736 [SYNCOPE-1395] Renaming in preparation of supporting other DBMSes cde9736 is described below commit cde97361f51410758208f8e767e98c1a95dcd6a7 Author: Francesco Chicchiriccò <ilgro...@apache.org> AuthorDate: Sat Nov 24 08:07:11 2018 +0100 [SYNCOPE-1395] Renaming in preparation of supporting other DBMSes --- .../pom.xml | 16 ++- .../core/persistence/api/dao/JPAJSONAnyDAO.java} | 2 +- .../core/persistence/api/entity/JSONAny.java} | 9 +- .../persistence/api/entity/JSONPlainAttr.java} | 8 +- .../persistence/jpa/dao/JPAJSONAnyObjectDAO.java} | 20 +-- .../core/persistence/jpa/dao/JPAJSONConfDAO.java} | 2 +- .../core/persistence/jpa/dao/JPAJSONGroupDAO.java} | 10 +- .../persistence/jpa/dao/JPAJSONPlainAttrDAO.java} | 2 +- .../jpa/dao/JPAJSONPlainAttrValueDAO.java} | 2 +- .../jpa/dao/JPAJSONPlainSchemaDAO.java} | 2 +- .../core/persistence/jpa/dao/JPAJSONUserDAO.java} | 22 +-- .../core/persistence/jpa/dao/PGJPAJSONAnyDAO.java} | 10 +- .../jpa/dao/PGJPAJSONAnySearchDAO.java} | 6 +- .../jpa/entity/JPAJSONEntityFactory.java} | 103 ++++++++------ .../jpa/entity/JPAJSONEntityListener.java} | 10 +- .../jpa/entity/PGJPAJSONEntityFactory.java} | 22 +-- .../jpa/entity/anyobject/JPAJSONAPlainAttr.java} | 28 ++-- .../anyobject/JPAJSONAPlainAttrUniqueValue.java} | 8 +- .../entity/anyobject/JPAJSONAPlainAttrValue.java} | 8 +- .../jpa/entity/anyobject/JPAJSONAnyObject.java} | 28 ++-- .../anyobject/JPAJSONAnyObjectListener.java} | 16 +-- .../jpa/entity/conf/JPAJSONCPlainAttr.java} | 28 ++-- .../entity/conf/JPAJSONCPlainAttrUniqueValue.java} | 8 +- .../jpa/entity/conf/JPAJSONCPlainAttrValue.java} | 8 +- .../persistence/jpa/entity/conf/JPAJSONConf.java} | 22 +-- .../jpa/entity/conf/JPAJSONConfListener.java} | 16 +-- .../jpa/entity/group/JPAJSONGPlainAttr.java} | 28 ++-- .../group/JPAJSONGPlainAttrUniqueValue.java} | 8 +- .../jpa/entity/group/JPAJSONGPlainAttrValue.java} | 8 +- .../jpa/entity/group/JPAJSONGroup.java} | 22 +-- .../jpa/entity/group/JPAJSONGroupListener.java} | 16 +-- .../jpa/entity/user/JPAJSONUPlainAttr.java} | 28 ++-- .../entity/user/JPAJSONUPlainAttrUniqueValue.java} | 8 +- .../jpa/entity/user/JPAJSONUPlainAttrValue.java} | 8 +- .../persistence/jpa/entity/user/JPAJSONUser.java} | 24 ++-- .../jpa/entity/user/JPAJSONUserListener.java} | 16 +-- .../jpa/validation/entity/JPAJSONAnyCheck.java} | 4 +- .../validation/entity/JPAJSONAnyValidator.java} | 6 +- .../main/resources/META-INF/spring-orm-pgjsonb.xml | 64 +++++++-- .../src/main/resources/persistence-enhance.xml | 0 .../resources/pgjsonb}/domains/Master.properties | 0 .../src/main/resources/pgjsonb/indexes.xml | 0 .../main/resources/pgjsonb}/persistence.properties | 18 +-- .../src/main/resources/pgjsonb/views.xml | 0 .../src/test/resources/persistenceTest.xml | 0 .../resources/pgjsonb}/domains/MasterContent.xml | 0 .../src/test/resources/simplelogger.properties | 0 .../src/main/resources/indexes.xml | 63 --------- .../src/main/resources/views.xml | 154 --------------------- core/pom.xml | 2 +- fit/core-reference/pom.xml | 7 +- .../main/resources/pgjsonb/persistence.properties | 27 ---- .../systemadministration/dbms.adoc | 20 +-- 53 files changed, 379 insertions(+), 568 deletions(-) diff --git a/core/persistence-jpa-pgjsonb/pom.xml b/core/persistence-jpa-json/pom.xml similarity index 94% rename from core/persistence-jpa-pgjsonb/pom.xml rename to core/persistence-jpa-json/pom.xml index da125d2..dfd7bb2 100644 --- a/core/persistence-jpa-pgjsonb/pom.xml +++ b/core/persistence-jpa-json/pom.xml @@ -27,10 +27,10 @@ under the License. <version>2.1.3-SNAPSHOT</version> </parent> - <name>Apache Syncope Core Persistence JPA PostgreSQL jsonb</name> - <description>Apache Syncope Core Persistence JPA PostgreSQL jsonb</description> + <name>Apache Syncope Core Persistence JPA JSON</name> + <description>Apache Syncope Core Persistence JPA JSON</description> <groupId>org.apache.syncope.core</groupId> - <artifactId>syncope-core-persistence-jpa-pgjsonb</artifactId> + <artifactId>syncope-core-persistence-jpa-json</artifactId> <packaging>jar</packaging> <properties> @@ -129,7 +129,7 @@ under the License. <profiles> <profile> - <id>ut</id> + <id>postgres</id> <dependencies> <dependency> @@ -227,9 +227,17 @@ under the License. <filtering>true</filtering> </testResource> <testResource> + <directory>src/test/resources/pgjsonb</directory> + <filtering>true</filtering> + </testResource> + <testResource> <directory>src/main/resources</directory> <filtering>true</filtering> </testResource> + <testResource> + <directory>src/main/resources/pgjsonb</directory> + <filtering>true</filtering> + </testResource> </testResources> </build> </profile> diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/api/dao/PGAnyDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/dao/JPAJSONAnyDAO.java similarity index 98% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/api/dao/PGAnyDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/dao/JPAJSONAnyDAO.java index 2fecad7..9794cc8 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/api/dao/PGAnyDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/dao/JPAJSONAnyDAO.java @@ -23,7 +23,7 @@ import org.apache.syncope.core.persistence.api.entity.Any; import org.apache.syncope.core.persistence.api.entity.AnyUtils; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; -public interface PGAnyDAO { +public interface JPAJSONAnyDAO { <A extends Any<?>> List<A> findByDerAttrValue( String table, AnyUtils anyUtils, String schemaKey, String value, boolean ignoreCaseMatch); diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAAny.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/entity/JSONAny.java similarity index 78% copy from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAAny.java copy to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/entity/JSONAny.java index 005e616..1571566 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAAny.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/entity/JSONAny.java @@ -16,18 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.syncope.core.persistence.jpa.entity; +package org.apache.syncope.core.persistence.api.entity; import java.util.List; -import org.apache.syncope.core.persistence.api.entity.Any; -public interface PGJPAAny<A extends Any<?>> { +public interface JSONAny<A extends Any<?>> { String getPlainAttrsJSON(); void setPlainAttrsJSON(String plainAttrs); - boolean add(PGPlainAttr<A> attr); + boolean add(JSONPlainAttr<A> attr); - List<? extends PGPlainAttr<A>> getPlainAttrList(); + List<? extends JSONPlainAttr<A>> getPlainAttrList(); } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGPlainAttr.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/entity/JSONPlainAttr.java similarity index 73% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGPlainAttr.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/entity/JSONPlainAttr.java index a802d3c..78f7503 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGPlainAttr.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/api/entity/JSONPlainAttr.java @@ -16,13 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.syncope.core.persistence.jpa.entity; +package org.apache.syncope.core.persistence.api.entity; -import org.apache.syncope.core.persistence.api.entity.Any; -import org.apache.syncope.core.persistence.api.entity.PlainAttr; -import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; - -public interface PGPlainAttr<A extends Any<?>> extends PlainAttr<A> { +public interface JSONPlainAttr<A extends Any<?>> extends PlainAttr<A> { String getSchemaKey(); diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnyObjectDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONAnyObjectDAO.java similarity index 76% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnyObjectDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONAnyObjectDAO.java index f821f7f..3e07af3 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnyObjectDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONAnyObjectDAO.java @@ -19,19 +19,19 @@ package org.apache.syncope.core.persistence.jpa.dao; import java.util.List; -import org.apache.syncope.core.persistence.api.dao.PGAnyDAO; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject; -import org.apache.syncope.core.persistence.jpa.entity.anyobject.PGJPAAnyObject; +import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.dao.JPAJSONAnyDAO; -public class PGJPAAnyObjectDAO extends JPAAnyObjectDAO { +public class JPAJSONAnyObjectDAO extends JPAAnyObjectDAO { - private PGAnyDAO anyDAO; + private JPAJSONAnyDAO anyDAO; - private PGAnyDAO anyDAO() { + private JPAJSONAnyDAO anyDAO() { if (anyDAO == null) { - anyDAO = ApplicationContextProvider.getApplicationContext().getBean(PGAnyDAO.class); + anyDAO = ApplicationContextProvider.getApplicationContext().getBean(JPAJSONAnyDAO.class); } return anyDAO; } @@ -43,7 +43,7 @@ public class PGJPAAnyObjectDAO extends JPAAnyObjectDAO { final PlainAttrValue attrValue, final boolean ignoreCaseMatch) { - return anyDAO().findByPlainAttrValue(PGJPAAnyObject.TABLE, anyUtils(), schemaKey, attrValue, ignoreCaseMatch); + return anyDAO().findByPlainAttrValue(JPAJSONAnyObject.TABLE, anyUtils(), schemaKey, attrValue, ignoreCaseMatch); } @Override @@ -52,7 +52,7 @@ public class PGJPAAnyObjectDAO extends JPAAnyObjectDAO { final PlainAttrValue attrUniqueValue, final boolean ignoreCaseMatch) { - return anyDAO().findByPlainAttrUniqueValue(PGJPAAnyObject.TABLE, anyUtils(), + return anyDAO().findByPlainAttrUniqueValue(JPAJSONAnyObject.TABLE, anyUtils(), schemaKey, attrUniqueValue, ignoreCaseMatch); } @@ -63,12 +63,12 @@ public class PGJPAAnyObjectDAO extends JPAAnyObjectDAO { final String value, final boolean ignoreCaseMatch) { - return anyDAO().findByDerAttrValue(PGJPAAnyObject.TABLE, anyUtils(), schemaKey, value, ignoreCaseMatch); + return anyDAO().findByDerAttrValue(JPAJSONAnyObject.TABLE, anyUtils(), schemaKey, value, ignoreCaseMatch); } @Override public AnyObject save(final AnyObject anyObject) { - anyDAO().checkBeforeSave(PGJPAAnyObject.TABLE, anyUtils(), anyObject); + anyDAO().checkBeforeSave(JPAJSONAnyObject.TABLE, anyUtils(), anyObject); return super.save(anyObject); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAConfDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONConfDAO.java similarity index 97% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAConfDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONConfDAO.java index 130d730..52ad5da 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAConfDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONConfDAO.java @@ -23,7 +23,7 @@ import org.apache.openjpa.util.ImplHelper; import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr; import org.apache.syncope.core.persistence.api.entity.conf.Conf; -public class PGJPAConfDAO extends JPAConfDAO { +public class JPAJSONConfDAO extends JPAConfDAO { /** * Marks the {@code plainAttrs} field as dirty, to force OpenJPA generating an update statement on the diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAGroupDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONGroupDAO.java similarity index 91% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAGroupDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONGroupDAO.java index e69252a..f6223ec 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAGroupDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONGroupDAO.java @@ -19,19 +19,19 @@ package org.apache.syncope.core.persistence.jpa.dao; import java.util.List; -import org.apache.syncope.core.persistence.api.dao.PGAnyDAO; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; import org.apache.syncope.core.persistence.api.entity.group.Group; import org.apache.syncope.core.persistence.jpa.entity.group.JPAGroup; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.dao.JPAJSONAnyDAO; -public class PGJPAGroupDAO extends JPAGroupDAO { +public class JPAJSONGroupDAO extends JPAGroupDAO { - private PGAnyDAO anyDAO; + private JPAJSONAnyDAO anyDAO; - private PGAnyDAO anyDAO() { + private JPAJSONAnyDAO anyDAO() { if (anyDAO == null) { - anyDAO = ApplicationContextProvider.getApplicationContext().getBean(PGAnyDAO.class); + anyDAO = ApplicationContextProvider.getApplicationContext().getBean(JPAJSONAnyDAO.class); } return anyDAO; } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainAttrDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainAttrDAO.java similarity index 93% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainAttrDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainAttrDAO.java index 5ede5a6..55d13a8 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainAttrDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainAttrDAO.java @@ -22,7 +22,7 @@ import org.apache.syncope.core.persistence.api.dao.PlainAttrDAO; import org.apache.syncope.core.persistence.api.entity.Any; import org.apache.syncope.core.persistence.api.entity.PlainAttr; -public class PGJPAPlainAttrDAO extends AbstractDAO<PlainAttr<?>> implements PlainAttrDAO { +public class JPAJSONPlainAttrDAO extends AbstractDAO<PlainAttr<?>> implements PlainAttrDAO { @Override @SuppressWarnings("unchecked") diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainAttrValueDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainAttrValueDAO.java similarity index 92% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainAttrValueDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainAttrValueDAO.java index c1d9c54..2976148 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainAttrValueDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainAttrValueDAO.java @@ -23,7 +23,7 @@ import org.apache.syncope.core.persistence.api.entity.AnyUtils; import org.apache.syncope.core.persistence.api.entity.PlainAttr; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; -public class PGJPAPlainAttrValueDAO extends AbstractDAO<PlainAttrValue> implements PlainAttrValueDAO { +public class JPAJSONPlainAttrValueDAO extends AbstractDAO<PlainAttrValue> implements PlainAttrValueDAO { @Override public void deleteAll(final PlainAttr<?> attr, final AnyUtils anyUtils) { diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainSchemaDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainSchemaDAO.java similarity index 95% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainSchemaDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainSchemaDAO.java index ba8b97b..63349ba 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAPlainSchemaDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONPlainSchemaDAO.java @@ -23,7 +23,7 @@ import java.util.List; import org.apache.syncope.core.persistence.api.entity.PlainAttr; import org.apache.syncope.core.persistence.api.entity.PlainSchema; -public class PGJPAPlainSchemaDAO extends JPAPlainSchemaDAO { +public class JPAJSONPlainSchemaDAO extends JPAPlainSchemaDAO { @Override public <T extends PlainAttr<?>> List<T> findAttrs(final PlainSchema schema, final Class<T> reference) { diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAUserDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONUserDAO.java similarity index 75% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAUserDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONUserDAO.java index f1c420f..62d804c 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAUserDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAJSONUserDAO.java @@ -21,19 +21,19 @@ package org.apache.syncope.core.persistence.jpa.dao; import java.util.List; import java.util.Set; import org.apache.commons.lang3.tuple.Pair; -import org.apache.syncope.core.persistence.api.dao.PGAnyDAO; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; import org.apache.syncope.core.persistence.api.entity.user.User; -import org.apache.syncope.core.persistence.jpa.entity.user.PGJPAUser; +import org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUser; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.dao.JPAJSONAnyDAO; -public class PGJPAUserDAO extends JPAUserDAO { +public class JPAJSONUserDAO extends JPAUserDAO { - private PGAnyDAO anyDAO; + private JPAJSONAnyDAO anyDAO; - private PGAnyDAO anyDAO() { + private JPAJSONAnyDAO anyDAO() { if (anyDAO == null) { - anyDAO = ApplicationContextProvider.getApplicationContext().getBean(PGAnyDAO.class); + anyDAO = ApplicationContextProvider.getApplicationContext().getBean(JPAJSONAnyDAO.class); } return anyDAO; } @@ -45,7 +45,7 @@ public class PGJPAUserDAO extends JPAUserDAO { final PlainAttrValue attrValue, final boolean ignoreCaseMatch) { - return anyDAO().findByPlainAttrValue(PGJPAUser.TABLE, anyUtils(), schemaKey, attrValue, ignoreCaseMatch); + return anyDAO().findByPlainAttrValue(JPAJSONUser.TABLE, anyUtils(), schemaKey, attrValue, ignoreCaseMatch); } @Override @@ -54,7 +54,7 @@ public class PGJPAUserDAO extends JPAUserDAO { final PlainAttrValue attrUniqueValue, final boolean ignoreCaseMatch) { - return anyDAO().findByPlainAttrUniqueValue(PGJPAUser.TABLE, anyUtils(), + return anyDAO().findByPlainAttrUniqueValue(JPAJSONUser.TABLE, anyUtils(), schemaKey, attrUniqueValue, ignoreCaseMatch); } @@ -65,18 +65,18 @@ public class PGJPAUserDAO extends JPAUserDAO { final String value, final boolean ignoreCaseMatch) { - return anyDAO().findByDerAttrValue(PGJPAUser.TABLE, anyUtils(), schemaKey, value, ignoreCaseMatch); + return anyDAO().findByDerAttrValue(JPAJSONUser.TABLE, anyUtils(), schemaKey, value, ignoreCaseMatch); } @Override public User save(final User user) { - anyDAO().checkBeforeSave(PGJPAUser.TABLE, anyUtils(), user); + anyDAO().checkBeforeSave(JPAJSONUser.TABLE, anyUtils(), user); return super.save(user); } @Override public Pair<Set<String>, Set<String>> saveAndGetDynGroupMembs(final User user) { - anyDAO().checkBeforeSave(PGJPAUser.TABLE, anyUtils(), user); + anyDAO().checkBeforeSave(JPAJSONUser.TABLE, anyUtils(), user); return super.saveAndGetDynGroupMembs(user); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnyDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAJSONAnyDAO.java similarity index 97% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnyDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAJSONAnyDAO.java index 030bba8..94bb72a 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnyDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAJSONAnyDAO.java @@ -35,7 +35,6 @@ import org.apache.commons.jexl3.parser.Token; import org.apache.commons.lang3.StringUtils; import org.apache.syncope.core.persistence.api.dao.DerSchemaDAO; import org.apache.syncope.core.persistence.api.dao.DuplicateException; -import org.apache.syncope.core.persistence.api.dao.PGAnyDAO; import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO; import org.apache.syncope.core.persistence.api.entity.Any; import org.apache.syncope.core.persistence.api.entity.AnyUtils; @@ -45,15 +44,16 @@ import org.apache.syncope.core.persistence.api.entity.PlainAttrUniqueValue; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; import org.apache.syncope.core.persistence.api.entity.PlainSchema; import org.apache.syncope.core.persistence.jpa.entity.AbstractEntity; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; import org.apache.syncope.core.spring.security.AuthContextUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; +import org.apache.syncope.core.persistence.api.dao.JPAJSONAnyDAO; @Repository -public class PGJPAAnyDAO extends AbstractDAO<AbstractEntity> implements PGAnyDAO { +public class PGJPAJSONAnyDAO extends AbstractDAO<AbstractEntity> implements JPAJSONAnyDAO { @Autowired private PlainSchemaDAO plainSchemaDAO; @@ -118,7 +118,7 @@ public class PGJPAAnyDAO extends AbstractDAO<AbstractEntity> implements PGAnyDAO if (attrValue instanceof PlainAttrUniqueValue) { container.setUniqueValue((PlainAttrUniqueValue) attrValue); } else { - ((PGPlainAttr) container).add(attrValue); + ((JSONPlainAttr) container).add(attrValue); } return "plainAttrs @> '" + POJOHelper.serialize(Arrays.asList(container)) + "'::jsonb"; } @@ -333,7 +333,7 @@ public class PGJPAAnyDAO extends AbstractDAO<AbstractEntity> implements PGAnyDAO // check UNIQUE constraints any.getPlainAttrs().stream(). filter(attr -> attr.getUniqueValue() != null). - map(PGPlainAttr.class::cast). + map(JSONPlainAttr.class::cast). forEach(attr -> { String schemaKey = attr.getSchemaKey(); List<A> others = findByPlainAttrValue(table, anyUtils, schemaKey, attr.getUniqueValue(), false); diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnySearchDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAJSONAnySearchDAO.java similarity index 97% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnySearchDAO.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAJSONAnySearchDAO.java index 0fa44f0..f240705 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAAnySearchDAO.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/PGJPAJSONAnySearchDAO.java @@ -29,10 +29,10 @@ import org.apache.syncope.core.persistence.api.entity.PlainAttr; import org.apache.syncope.core.persistence.api.entity.PlainAttrUniqueValue; import org.apache.syncope.core.persistence.api.entity.PlainAttrValue; import org.apache.syncope.core.persistence.api.entity.PlainSchema; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; -public class PGJPAAnySearchDAO extends JPAAnySearchDAO { +public class PGJPAJSONAnySearchDAO extends JPAAnySearchDAO { @Override SearchSupport buildSearchSupport(final AnyTypeKind kind) { @@ -110,7 +110,7 @@ public class PGJPAAnySearchDAO extends JPAAnySearchDAO { if (attrValue instanceof PlainAttrUniqueValue) { container.setUniqueValue((PlainAttrUniqueValue) attrValue); } else { - ((PGPlainAttr) container).add(attrValue); + ((JSONPlainAttr) container).add(attrValue); } query.append("plainAttrs @> '"). diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAEntityFactory.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityFactory.java similarity index 53% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAEntityFactory.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityFactory.java index 0054d3f..bcd046d 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAEntityFactory.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityFactory.java @@ -18,7 +18,7 @@ */ package org.apache.syncope.core.persistence.jpa.entity; -import org.apache.syncope.core.persistence.api.dao.AnySearchDAO; +import org.apache.syncope.core.persistence.api.dao.JPAJSONAnyDAO; import org.apache.syncope.core.persistence.api.entity.Entity; import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttr; import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttrUniqueValue; @@ -36,26 +36,32 @@ import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr; import org.apache.syncope.core.persistence.api.entity.user.UPlainAttrUniqueValue; import org.apache.syncope.core.persistence.api.entity.user.UPlainAttrValue; import org.apache.syncope.core.persistence.api.entity.user.User; -import org.apache.syncope.core.persistence.jpa.dao.PGJPAAnySearchDAO; -import org.apache.syncope.core.persistence.jpa.entity.anyobject.PGAPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.anyobject.PGAPlainAttrUniqueValue; -import org.apache.syncope.core.persistence.jpa.entity.anyobject.PGAPlainAttrValue; -import org.apache.syncope.core.persistence.jpa.entity.anyobject.PGJPAAnyObject; -import org.apache.syncope.core.persistence.jpa.entity.conf.PGCPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.conf.PGCPlainAttrUniqueValue; -import org.apache.syncope.core.persistence.jpa.entity.conf.PGCPlainAttrValue; -import org.apache.syncope.core.persistence.jpa.entity.conf.PGJPAConf; -import org.apache.syncope.core.persistence.jpa.entity.group.PGGPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.group.PGGPlainAttrUniqueValue; -import org.apache.syncope.core.persistence.jpa.entity.group.PGGPlainAttrValue; -import org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup; -import org.apache.syncope.core.persistence.jpa.entity.user.PGJPAUser; -import org.apache.syncope.core.persistence.jpa.entity.user.PGUPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.user.PGUPlainAttrUniqueValue; -import org.apache.syncope.core.persistence.jpa.entity.user.PGUPlainAttrValue; +import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAPlainAttrUniqueValue; +import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAPlainAttrValue; +import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject; +import org.apache.syncope.core.persistence.jpa.entity.conf.JPAJSONCPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.conf.JPAJSONCPlainAttrUniqueValue; +import org.apache.syncope.core.persistence.jpa.entity.conf.JPAJSONCPlainAttrValue; +import org.apache.syncope.core.persistence.jpa.entity.conf.JPAJSONConf; +import org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGPlainAttrUniqueValue; +import org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGPlainAttrValue; +import org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup; +import org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUser; +import org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUPlainAttrUniqueValue; +import org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUPlainAttrValue; import org.apache.syncope.core.spring.security.SecureRandomUtils; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.BeanFactoryAware; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.support.AbstractBeanDefinition; +import org.springframework.beans.factory.support.DefaultListableBeanFactory; -public class PGJPAEntityFactory extends JPAEntityFactory { +public abstract class JPAJSONEntityFactory extends JPAEntityFactory implements InitializingBean, BeanFactoryAware { + + private DefaultListableBeanFactory beanFactory; @Override @SuppressWarnings("unchecked") @@ -63,41 +69,41 @@ public class PGJPAEntityFactory extends JPAEntityFactory { E result; if (reference.equals(User.class)) { - result = (E) new PGJPAUser(); - ((PGJPAUser) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); + result = (E) new JPAJSONUser(); + ((JPAJSONUser) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); } else if (reference.equals(Group.class)) { - result = (E) new PGJPAGroup(); - ((PGJPAGroup) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); + result = (E) new JPAJSONGroup(); + ((JPAJSONGroup) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); } else if (reference.equals(AnyObject.class)) { - result = (E) new PGJPAAnyObject(); - ((PGJPAAnyObject) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); + result = (E) new JPAJSONAnyObject(); + ((JPAJSONAnyObject) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); } else if (reference.equals(Conf.class)) { - result = (E) new PGJPAConf(); - ((PGJPAConf) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); + result = (E) new JPAJSONConf(); + ((JPAJSONConf) result).setKey(SecureRandomUtils.generateRandomUUID().toString()); } else if (reference.equals(APlainAttr.class)) { - result = (E) new PGAPlainAttr(); + result = (E) new JPAJSONAPlainAttr(); } else if (reference.equals(APlainAttrValue.class)) { - result = (E) new PGAPlainAttrValue(); + result = (E) new JPAJSONAPlainAttrValue(); } else if (reference.equals(APlainAttrUniqueValue.class)) { - result = (E) new PGAPlainAttrUniqueValue(); + result = (E) new JPAJSONAPlainAttrUniqueValue(); } else if (reference.equals(CPlainAttr.class)) { - result = (E) new PGCPlainAttr(); + result = (E) new JPAJSONCPlainAttr(); } else if (reference.equals(CPlainAttrValue.class)) { - result = (E) new PGCPlainAttrValue(); + result = (E) new JPAJSONCPlainAttrValue(); } else if (reference.equals(CPlainAttrUniqueValue.class)) { - result = (E) new PGCPlainAttrUniqueValue(); + result = (E) new JPAJSONCPlainAttrUniqueValue(); } else if (reference.equals(GPlainAttr.class)) { - result = (E) new PGGPlainAttr(); + result = (E) new JPAJSONGPlainAttr(); } else if (reference.equals(GPlainAttrValue.class)) { - result = (E) new PGGPlainAttrValue(); + result = (E) new JPAJSONGPlainAttrValue(); } else if (reference.equals(GPlainAttrUniqueValue.class)) { - result = (E) new PGGPlainAttrUniqueValue(); + result = (E) new JPAJSONGPlainAttrUniqueValue(); } else if (reference.equals(UPlainAttr.class)) { - result = (E) new PGUPlainAttr(); + result = (E) new JPAJSONUPlainAttr(); } else if (reference.equals(UPlainAttrValue.class)) { - result = (E) new PGUPlainAttrValue(); + result = (E) new JPAJSONUPlainAttrValue(); } else if (reference.equals(UPlainAttrUniqueValue.class)) { - result = (E) new PGUPlainAttrUniqueValue(); + result = (E) new JPAJSONUPlainAttrUniqueValue(); } else { result = super.newEntity(reference); } @@ -107,26 +113,33 @@ public class PGJPAEntityFactory extends JPAEntityFactory { @Override public Class<? extends User> userClass() { - return PGJPAUser.class; + return JPAJSONUser.class; } @Override public Class<? extends Group> groupClass() { - return PGJPAGroup.class; + return JPAJSONGroup.class; } @Override public Class<? extends AnyObject> anyObjectClass() { - return PGJPAAnyObject.class; + return JPAJSONAnyObject.class; } @Override public Class<? extends Conf> confClass() { - return PGJPAConf.class; + return JPAJSONConf.class; + } + + protected abstract Class<? extends JPAJSONAnyDAO> jpaJSONAnyDAOClass(); + + @Override + public void setBeanFactory(final BeanFactory beanFactory) { + this.beanFactory = (DefaultListableBeanFactory) beanFactory; } @Override - public Class<? extends AnySearchDAO> anySearchDAOClass() { - return PGJPAAnySearchDAO.class; + public void afterPropertiesSet() throws Exception { + beanFactory.createBean(jpaJSONAnyDAOClass(), AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAEntityListener.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java similarity index 81% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAEntityListener.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java index 2c4c4e4..d58043f 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAEntityListener.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java @@ -19,15 +19,17 @@ package org.apache.syncope.core.persistence.jpa.entity; import java.util.List; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; +import org.apache.syncope.core.persistence.api.entity.JSONAny; import org.apache.syncope.core.persistence.api.entity.Any; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; -public abstract class PGJPAEntityListener<A extends Any<?>> { +public abstract class JPAJSONEntityListener<A extends Any<?>> { - protected abstract List<? extends PGPlainAttr<A>> getValues(String plainAttrsJSON); + protected abstract List<? extends JSONPlainAttr<A>> getValues(String plainAttrsJSON); @SuppressWarnings("unchecked") - protected void json2list(final PGJPAAny<A> entity, final boolean clearFirst) { + protected void json2list(final JSONAny<A> entity, final boolean clearFirst) { if (clearFirst) { entity.getPlainAttrList().clear(); } @@ -44,7 +46,7 @@ public abstract class PGJPAEntityListener<A extends Any<?>> { } } - protected void list2json(final PGJPAAny<A> entity) { + protected void list2json(final JSONAny<A> entity) { entity.setPlainAttrsJSON(entity.getPlainAttrList().isEmpty() ? "[{}]" : POJOHelper.serialize(entity.getPlainAttrList())); diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAAny.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAJSONEntityFactory.java similarity index 59% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAAny.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAJSONEntityFactory.java index 005e616..998fc73 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAAny.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/PGJPAJSONEntityFactory.java @@ -18,16 +18,20 @@ */ package org.apache.syncope.core.persistence.jpa.entity; -import java.util.List; -import org.apache.syncope.core.persistence.api.entity.Any; +import org.apache.syncope.core.persistence.api.dao.AnySearchDAO; +import org.apache.syncope.core.persistence.api.dao.JPAJSONAnyDAO; +import org.apache.syncope.core.persistence.jpa.dao.PGJPAJSONAnyDAO; +import org.apache.syncope.core.persistence.jpa.dao.PGJPAJSONAnySearchDAO; -public interface PGJPAAny<A extends Any<?>> { +public class PGJPAJSONEntityFactory extends JPAJSONEntityFactory { - String getPlainAttrsJSON(); + @Override + public Class<? extends AnySearchDAO> anySearchDAOClass() { + return PGJPAJSONAnySearchDAO.class; + } - void setPlainAttrsJSON(String plainAttrs); - - boolean add(PGPlainAttr<A> attr); - - List<? extends PGPlainAttr<A>> getPlainAttrList(); + @Override + protected Class<? extends JPAJSONAnyDAO> jpaJSONAnyDAOClass() { + return PGJPAJSONAnyDAO.class; + } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttr.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttr.java similarity index 85% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttr.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttr.java index 292107e..a2768ee 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttr.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttr.java @@ -38,12 +38,12 @@ import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttrValue; import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject; import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttr; import org.apache.syncope.core.persistence.jpa.entity.JPAPlainSchema; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; @JsonIgnoreProperties("valuesAsStrings") @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlainAttr, PGPlainAttr<AnyObject> { +public class JPAJSONAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlainAttr, JSONPlainAttr<AnyObject> { private static final long serialVersionUID = 806271775349587902L; @@ -51,7 +51,7 @@ public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlain * The owner of this attribute. */ @JsonIgnore - private PGJPAAnyObject owner; + private JPAJSONAnyObject owner; @JsonProperty private String schema; @@ -65,13 +65,13 @@ public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlain /** * Values of this attribute (if schema is not UNIQUE). */ - private final List<PGAPlainAttrValue> values = new ArrayList<>(); + private final List<JPAJSONAPlainAttrValue> values = new ArrayList<>(); /** * Value of this attribute (if schema is UNIQUE). */ @JsonProperty - private PGAPlainAttrUniqueValue uniqueValue; + private JPAJSONAPlainAttrUniqueValue uniqueValue; @Override public AnyObject getOwner() { @@ -80,8 +80,8 @@ public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlain @Override public void setOwner(final AnyObject owner) { - checkType(owner, PGJPAAnyObject.class); - this.owner = (PGJPAAnyObject) owner; + checkType(owner, JPAJSONAnyObject.class); + this.owner = (JPAJSONAnyObject) owner; } @JsonIgnore @@ -133,8 +133,8 @@ public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlain @Override protected boolean addForMultiValue(final PlainAttrValue attrValue) { - checkType(attrValue, PGAPlainAttrValue.class); - return values.add((PGAPlainAttrValue) attrValue); + checkType(attrValue, JPAJSONAPlainAttrValue.class); + return values.add((JPAJSONAPlainAttrValue) attrValue); } @Override @@ -148,20 +148,20 @@ public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlain } @JsonIgnore - public List<PGAPlainAttrValue> getPGValues() { + public List<JPAJSONAPlainAttrValue> getPGValues() { return values; } @Override - public PGAPlainAttrUniqueValue getUniqueValue() { + public JPAJSONAPlainAttrUniqueValue getUniqueValue() { return uniqueValue; } @JsonIgnore @Override public void setUniqueValue(final PlainAttrUniqueValue uniqueValue) { - checkType(uniqueValue, PGAPlainAttrUniqueValue.class); - this.uniqueValue = (PGAPlainAttrUniqueValue) uniqueValue; + checkType(uniqueValue, JPAJSONAPlainAttrUniqueValue.class); + this.uniqueValue = (JPAJSONAPlainAttrUniqueValue) uniqueValue; } @Override @@ -185,7 +185,7 @@ public class PGAPlainAttr extends AbstractPlainAttr<AnyObject> implements APlain if (getClass() != obj.getClass()) { return false; } - final PGAPlainAttr other = (PGAPlainAttr) obj; + final JPAJSONAPlainAttr other = (JPAJSONAPlainAttr) obj; return new EqualsBuilder(). append(schema, other.schema). append(membership, other.membership). diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttrUniqueValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttrUniqueValue.java similarity index 89% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttrUniqueValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttrUniqueValue.java index dd24599..cd8247e 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttrUniqueValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttrUniqueValue.java @@ -29,12 +29,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGAPlainAttrUniqueValue extends AbstractPlainAttrValue implements APlainAttrUniqueValue { +public class JPAJSONAPlainAttrUniqueValue extends AbstractPlainAttrValue implements APlainAttrUniqueValue { private static final long serialVersionUID = -4053996864791245312L; @JsonIgnore - private PGAPlainAttr attr; + private JPAJSONAPlainAttr attr; @Override public APlainAttr getAttr() { @@ -43,8 +43,8 @@ public class PGAPlainAttrUniqueValue extends AbstractPlainAttrValue implements A @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGAPlainAttr.class); - this.attr = (PGAPlainAttr) attr; + checkType(attr, JPAJSONAPlainAttr.class); + this.attr = (JPAJSONAPlainAttr) attr; } @JsonIgnore diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttrValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttrValue.java similarity index 88% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttrValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttrValue.java index b3b76fd..d4815d3 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGAPlainAttrValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAPlainAttrValue.java @@ -28,12 +28,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGAPlainAttrValue extends AbstractPlainAttrValue implements APlainAttrValue { +public class JPAJSONAPlainAttrValue extends AbstractPlainAttrValue implements APlainAttrValue { private static final long serialVersionUID = 1832825176101443555L; @JsonIgnore - private PGAPlainAttr attr; + private JPAJSONAPlainAttr attr; @Override public APlainAttr getAttr() { @@ -42,7 +42,7 @@ public class PGAPlainAttrValue extends AbstractPlainAttrValue implements APlainA @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGAPlainAttr.class); - this.attr = (PGAPlainAttr) attr; + checkType(attr, JPAJSONAPlainAttr.class); + this.attr = (JPAJSONAPlainAttr) attr; } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGJPAAnyObject.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAnyObject.java similarity index 81% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGJPAAnyObject.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAnyObject.java index 568b533..df8bb8a 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGJPAAnyObject.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAnyObject.java @@ -23,34 +23,30 @@ import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; -import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityListeners; -import javax.persistence.Lob; import javax.persistence.Table; import javax.persistence.Transient; import org.apache.syncope.core.persistence.api.entity.Membership; import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership; import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttr; import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAAny; -import org.apache.syncope.core.persistence.jpa.validation.entity.PGJPAAnyCheck; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; +import org.apache.syncope.core.persistence.api.entity.JSONAny; +import org.apache.syncope.core.persistence.jpa.validation.entity.JPAJSONAnyCheck; @Entity @Table(name = JPAAnyObject.TABLE) -@EntityListeners({ PGJPAAnyObjectListener.class }) -@PGJPAAnyCheck -public class PGJPAAnyObject extends JPAAnyObject implements PGJPAAny<AnyObject>, AnyObject { +@EntityListeners({ JPAJSONAnyObjectListener.class }) +@JPAJSONAnyCheck +public class JPAJSONAnyObject extends JPAAnyObject implements JSONAny<AnyObject>, AnyObject { private static final long serialVersionUID = -8543654943709531885L; - @Lob - @Column(columnDefinition = "jsonb") private String plainAttrs; @Transient - private final List<PGAPlainAttr> plainAttrList = new ArrayList<>(); + private final List<JPAJSONAPlainAttr> plainAttrList = new ArrayList<>(); @Override public String getPlainAttrsJSON() { @@ -63,26 +59,26 @@ public class PGJPAAnyObject extends JPAAnyObject implements PGJPAAny<AnyObject>, } @Override - public List<PGAPlainAttr> getPlainAttrList() { + public List<JPAJSONAPlainAttr> getPlainAttrList() { return plainAttrList; } @Override - public boolean add(final PGPlainAttr<AnyObject> attr) { + public boolean add(final JSONPlainAttr<AnyObject> attr) { return add((APlainAttr) attr); } @Override public boolean add(final APlainAttr attr) { - checkType(attr, PGAPlainAttr.class); - return plainAttrList.add((PGAPlainAttr) attr); + checkType(attr, JPAJSONAPlainAttr.class); + return plainAttrList.add((JPAJSONAPlainAttr) attr); } @Override public boolean remove(final APlainAttr attr) { return plainAttrList.removeIf(pgattr -> pgattr.getSchemaKey().equals(attr.getSchema().getKey()) - && Objects.equals(pgattr.getMembershipKey(), ((PGAPlainAttr) attr).getMembershipKey())); + && Objects.equals(pgattr.getMembershipKey(), ((JPAJSONAPlainAttr) attr).getMembershipKey())); } @Override diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGJPAAnyObjectListener.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAnyObjectListener.java similarity index 74% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGJPAAnyObjectListener.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAnyObjectListener.java index 112a676..ad03fc5 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/PGJPAAnyObjectListener.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAJSONAnyObjectListener.java @@ -26,32 +26,32 @@ import javax.persistence.PostUpdate; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityListener; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.JPAJSONEntityListener; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; -public class PGJPAAnyObjectListener extends PGJPAEntityListener<AnyObject> { +public class JPAJSONAnyObjectListener extends JPAJSONEntityListener<AnyObject> { @Override - protected List<? extends PGPlainAttr<AnyObject>> getValues(final String plainAttrsJSON) { - return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<PGAPlainAttr>>() { + protected List<? extends JSONPlainAttr<AnyObject>> getValues(final String plainAttrsJSON) { + return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<JPAJSONAPlainAttr>>() { }); } @PostLoad - public void read(final PGJPAAnyObject anyObject) { + public void read(final JPAJSONAnyObject anyObject) { super.json2list(anyObject, false); } @PrePersist @PreUpdate - public void save(final PGJPAAnyObject anyObject) { + public void save(final JPAJSONAnyObject anyObject) { super.list2json(anyObject); } @PostPersist @PostUpdate - public void readAfterSave(final PGJPAAnyObject anyObject) { + public void readAfterSave(final JPAJSONAnyObject anyObject) { super.json2list(anyObject, true); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttr.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttr.java similarity index 83% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttr.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttr.java index a45d7d5..4979d17 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttr.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttr.java @@ -36,12 +36,12 @@ import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttrValue; import org.apache.syncope.core.persistence.api.entity.conf.Conf; import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttr; import org.apache.syncope.core.persistence.jpa.entity.JPAPlainSchema; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; @JsonIgnoreProperties("valuesAsStrings") @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, PGPlainAttr<Conf> { +public class JPAJSONCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, JSONPlainAttr<Conf> { private static final long serialVersionUID = 806271775349587902L; @@ -49,7 +49,7 @@ public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, * The owner of this attribute. */ @JsonIgnore - private PGJPAConf owner; + private JPAJSONConf owner; @JsonProperty private String schema; @@ -57,13 +57,13 @@ public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, /** * Values of this attribute (if schema is not UNIQUE). */ - private final List<PGCPlainAttrValue> values = new ArrayList<>(); + private final List<JPAJSONCPlainAttrValue> values = new ArrayList<>(); /** * Value of this attribute (if schema is UNIQUE). */ @JsonProperty - private PGCPlainAttrUniqueValue uniqueValue; + private JPAJSONCPlainAttrUniqueValue uniqueValue; @Override public Conf getOwner() { @@ -72,8 +72,8 @@ public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, @Override public void setOwner(final Conf owner) { - checkType(owner, PGJPAConf.class); - this.owner = (PGJPAConf) owner; + checkType(owner, JPAJSONConf.class); + this.owner = (JPAJSONConf) owner; } @JsonIgnore @@ -102,8 +102,8 @@ public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, @Override protected boolean addForMultiValue(final PlainAttrValue attrValue) { - checkType(attrValue, PGCPlainAttrValue.class); - return values.add((PGCPlainAttrValue) attrValue); + checkType(attrValue, JPAJSONCPlainAttrValue.class); + return values.add((JPAJSONCPlainAttrValue) attrValue); } @Override @@ -117,20 +117,20 @@ public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, } @JsonIgnore - public List<PGCPlainAttrValue> getPGValues() { + public List<JPAJSONCPlainAttrValue> getPGValues() { return values; } @Override - public PGCPlainAttrUniqueValue getUniqueValue() { + public JPAJSONCPlainAttrUniqueValue getUniqueValue() { return uniqueValue; } @JsonIgnore @Override public void setUniqueValue(final PlainAttrUniqueValue uniqueValue) { - checkType(uniqueValue, PGCPlainAttrUniqueValue.class); - this.uniqueValue = (PGCPlainAttrUniqueValue) uniqueValue; + checkType(uniqueValue, JPAJSONCPlainAttrUniqueValue.class); + this.uniqueValue = (JPAJSONCPlainAttrUniqueValue) uniqueValue; } @Override @@ -153,7 +153,7 @@ public class PGCPlainAttr extends AbstractPlainAttr<Conf> implements CPlainAttr, if (getClass() != obj.getClass()) { return false; } - final PGCPlainAttr other = (PGCPlainAttr) obj; + final JPAJSONCPlainAttr other = (JPAJSONCPlainAttr) obj; return new EqualsBuilder(). append(schema, other.schema). append(values, other.values). diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttrUniqueValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttrUniqueValue.java similarity index 89% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttrUniqueValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttrUniqueValue.java index 5877f1c..dc7bc50 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttrUniqueValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttrUniqueValue.java @@ -29,12 +29,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGCPlainAttrUniqueValue extends AbstractPlainAttrValue implements CPlainAttrUniqueValue { +public class JPAJSONCPlainAttrUniqueValue extends AbstractPlainAttrValue implements CPlainAttrUniqueValue { private static final long serialVersionUID = -4326417972859745823L; @JsonIgnore - private PGCPlainAttr attr; + private JPAJSONCPlainAttr attr; @Override public CPlainAttr getAttr() { @@ -43,8 +43,8 @@ public class PGCPlainAttrUniqueValue extends AbstractPlainAttrValue implements C @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGCPlainAttr.class); - this.attr = (PGCPlainAttr) attr; + checkType(attr, JPAJSONCPlainAttr.class); + this.attr = (JPAJSONCPlainAttr) attr; } @JsonIgnore diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttrValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttrValue.java similarity index 87% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttrValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttrValue.java index a537f0f..9136621 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGCPlainAttrValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONCPlainAttrValue.java @@ -28,12 +28,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGCPlainAttrValue extends AbstractPlainAttrValue implements CPlainAttrValue { +public class JPAJSONCPlainAttrValue extends AbstractPlainAttrValue implements CPlainAttrValue { private static final long serialVersionUID = 1832825176101443555L; @JsonIgnore - private PGCPlainAttr attr; + private JPAJSONCPlainAttr attr; @Override public CPlainAttr getAttr() { @@ -42,7 +42,7 @@ public class PGCPlainAttrValue extends AbstractPlainAttrValue implements CPlainA @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGCPlainAttr.class); - this.attr = (PGCPlainAttr) attr; + checkType(attr, JPAJSONCPlainAttr.class); + this.attr = (JPAJSONCPlainAttr) attr; } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGJPAConf.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONConf.java similarity index 78% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGJPAConf.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONConf.java index a297d18..ea97ed5 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGJPAConf.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONConf.java @@ -28,15 +28,15 @@ import javax.persistence.Table; import javax.persistence.Transient; import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr; import org.apache.syncope.core.persistence.api.entity.conf.Conf; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAAny; -import org.apache.syncope.core.persistence.jpa.validation.entity.PGJPAAnyCheck; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; +import org.apache.syncope.core.persistence.api.entity.JSONAny; +import org.apache.syncope.core.persistence.jpa.validation.entity.JPAJSONAnyCheck; @Entity @Table(name = JPAConf.TABLE) -@EntityListeners({ PGJPAConfListener.class }) -@PGJPAAnyCheck -public class PGJPAConf extends JPAConf implements PGJPAAny<Conf>, Conf { +@EntityListeners({ JPAJSONConfListener.class }) +@JPAJSONAnyCheck +public class JPAJSONConf extends JPAConf implements JSONAny<Conf>, Conf { private static final long serialVersionUID = -8543654943709531885L; @@ -45,7 +45,7 @@ public class PGJPAConf extends JPAConf implements PGJPAAny<Conf>, Conf { private String plainAttrs; @Transient - private final List<PGCPlainAttr> plainAttrList = new ArrayList<>(); + private final List<JPAJSONCPlainAttr> plainAttrList = new ArrayList<>(); @Override public String getPlainAttrsJSON() { @@ -58,19 +58,19 @@ public class PGJPAConf extends JPAConf implements PGJPAAny<Conf>, Conf { } @Override - public List<PGCPlainAttr> getPlainAttrList() { + public List<JPAJSONCPlainAttr> getPlainAttrList() { return plainAttrList; } @Override - public boolean add(final PGPlainAttr<Conf> attr) { + public boolean add(final JSONPlainAttr<Conf> attr) { return add((CPlainAttr) attr); } @Override public boolean add(final CPlainAttr attr) { - checkType(attr, PGCPlainAttr.class); - return plainAttrList.add((PGCPlainAttr) attr); + checkType(attr, JPAJSONCPlainAttr.class); + return plainAttrList.add((JPAJSONCPlainAttr) attr); } @Override diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGJPAConfListener.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONConfListener.java similarity index 76% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGJPAConfListener.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONConfListener.java index 00ad5db..7923c47 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/PGJPAConfListener.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAJSONConfListener.java @@ -26,32 +26,32 @@ import javax.persistence.PostUpdate; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import org.apache.syncope.core.persistence.api.entity.conf.Conf; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityListener; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.JPAJSONEntityListener; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; -public class PGJPAConfListener extends PGJPAEntityListener<Conf> { +public class JPAJSONConfListener extends JPAJSONEntityListener<Conf> { @Override - protected List<? extends PGPlainAttr<Conf>> getValues(final String plainAttrsJSON) { - return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<PGCPlainAttr>>() { + protected List<? extends JSONPlainAttr<Conf>> getValues(final String plainAttrsJSON) { + return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<JPAJSONCPlainAttr>>() { }); } @PostLoad - public void read(final PGJPAConf conf) { + public void read(final JPAJSONConf conf) { super.json2list(conf, false); } @PrePersist @PreUpdate - public void save(final PGJPAConf conf) { + public void save(final JPAJSONConf conf) { super.list2json(conf); } @PostPersist @PostUpdate - public void readAfterSave(final PGJPAConf conf) { + public void readAfterSave(final JPAJSONConf conf) { super.json2list(conf, true); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttr.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttr.java similarity index 83% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttr.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttr.java index 9e78535..e783295 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttr.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttr.java @@ -36,12 +36,12 @@ import org.apache.syncope.core.persistence.api.entity.group.GPlainAttrValue; import org.apache.syncope.core.persistence.api.entity.group.Group; import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttr; import org.apache.syncope.core.persistence.jpa.entity.JPAPlainSchema; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; @JsonIgnoreProperties("valuesAsStrings") @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr, PGPlainAttr<Group> { +public class JPAJSONGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr, JSONPlainAttr<Group> { private static final long serialVersionUID = 806271775349587902L; @@ -49,7 +49,7 @@ public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr * The owner of this attribute. */ @JsonIgnore - private PGJPAGroup owner; + private JPAJSONGroup owner; @JsonProperty private String schema; @@ -57,13 +57,13 @@ public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr /** * Values of this attribute (if schema is not UNIQUE). */ - private final List<PGGPlainAttrValue> values = new ArrayList<>(); + private final List<JPAJSONGPlainAttrValue> values = new ArrayList<>(); /** * Value of this attribute (if schema is UNIQUE). */ @JsonProperty - private PGGPlainAttrUniqueValue uniqueValue; + private JPAJSONGPlainAttrUniqueValue uniqueValue; @Override public Group getOwner() { @@ -72,8 +72,8 @@ public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr @Override public void setOwner(final Group owner) { - checkType(owner, PGJPAGroup.class); - this.owner = (PGJPAGroup) owner; + checkType(owner, JPAJSONGroup.class); + this.owner = (JPAJSONGroup) owner; } @JsonIgnore @@ -102,8 +102,8 @@ public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr @Override protected boolean addForMultiValue(final PlainAttrValue attrValue) { - checkType(attrValue, PGGPlainAttrValue.class); - return values.add((PGGPlainAttrValue) attrValue); + checkType(attrValue, JPAJSONGPlainAttrValue.class); + return values.add((JPAJSONGPlainAttrValue) attrValue); } @Override @@ -117,20 +117,20 @@ public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr } @JsonIgnore - public List<PGGPlainAttrValue> getPGValues() { + public List<JPAJSONGPlainAttrValue> getPGValues() { return values; } @Override - public PGGPlainAttrUniqueValue getUniqueValue() { + public JPAJSONGPlainAttrUniqueValue getUniqueValue() { return uniqueValue; } @JsonIgnore @Override public void setUniqueValue(final PlainAttrUniqueValue uniqueValue) { - checkType(uniqueValue, PGGPlainAttrUniqueValue.class); - this.uniqueValue = (PGGPlainAttrUniqueValue) uniqueValue; + checkType(uniqueValue, JPAJSONGPlainAttrUniqueValue.class); + this.uniqueValue = (JPAJSONGPlainAttrUniqueValue) uniqueValue; } @Override @@ -153,7 +153,7 @@ public class PGGPlainAttr extends AbstractPlainAttr<Group> implements GPlainAttr if (getClass() != obj.getClass()) { return false; } - final PGGPlainAttr other = (PGGPlainAttr) obj; + final JPAJSONGPlainAttr other = (JPAJSONGPlainAttr) obj; return new EqualsBuilder(). append(schema, other.schema). append(values, other.values). diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttrUniqueValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttrUniqueValue.java similarity index 89% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttrUniqueValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttrUniqueValue.java index c6219a0..539e8fb 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttrUniqueValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttrUniqueValue.java @@ -29,12 +29,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGGPlainAttrUniqueValue extends AbstractPlainAttrValue implements GPlainAttrUniqueValue { +public class JPAJSONGPlainAttrUniqueValue extends AbstractPlainAttrValue implements GPlainAttrUniqueValue { private static final long serialVersionUID = -4326417972859745823L; @JsonIgnore - private PGGPlainAttr attr; + private JPAJSONGPlainAttr attr; @Override public GPlainAttr getAttr() { @@ -43,8 +43,8 @@ public class PGGPlainAttrUniqueValue extends AbstractPlainAttrValue implements G @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGGPlainAttr.class); - this.attr = (PGGPlainAttr) attr; + checkType(attr, JPAJSONGPlainAttr.class); + this.attr = (JPAJSONGPlainAttr) attr; } @JsonIgnore diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttrValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttrValue.java similarity index 87% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttrValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttrValue.java index 398e5b0..e662117 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGGPlainAttrValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGPlainAttrValue.java @@ -28,12 +28,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGGPlainAttrValue extends AbstractPlainAttrValue implements GPlainAttrValue { +public class JPAJSONGPlainAttrValue extends AbstractPlainAttrValue implements GPlainAttrValue { private static final long serialVersionUID = 1832825176101443555L; @JsonIgnore - private PGGPlainAttr attr; + private JPAJSONGPlainAttr attr; @Override public GPlainAttr getAttr() { @@ -42,7 +42,7 @@ public class PGGPlainAttrValue extends AbstractPlainAttrValue implements GPlainA @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGGPlainAttr.class); - this.attr = (PGGPlainAttr) attr; + checkType(attr, JPAJSONGPlainAttr.class); + this.attr = (JPAJSONGPlainAttr) attr; } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGJPAGroup.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGroup.java similarity index 78% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGJPAGroup.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGroup.java index 6f65a43..b84169a 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGJPAGroup.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGroup.java @@ -28,15 +28,15 @@ import javax.persistence.Table; import javax.persistence.Transient; import org.apache.syncope.core.persistence.api.entity.group.GPlainAttr; import org.apache.syncope.core.persistence.api.entity.group.Group; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAAny; -import org.apache.syncope.core.persistence.jpa.validation.entity.PGJPAAnyCheck; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; +import org.apache.syncope.core.persistence.api.entity.JSONAny; +import org.apache.syncope.core.persistence.jpa.validation.entity.JPAJSONAnyCheck; @Entity @Table(name = JPAGroup.TABLE) -@EntityListeners({ PGJPAGroupListener.class }) -@PGJPAAnyCheck -public class PGJPAGroup extends JPAGroup implements PGJPAAny<Group>, Group { +@EntityListeners({ JPAJSONGroupListener.class }) +@JPAJSONAnyCheck +public class JPAJSONGroup extends JPAGroup implements JSONAny<Group>, Group { private static final long serialVersionUID = -8543654943709531885L; @@ -45,7 +45,7 @@ public class PGJPAGroup extends JPAGroup implements PGJPAAny<Group>, Group { private String plainAttrs; @Transient - private final List<PGGPlainAttr> plainAttrList = new ArrayList<>(); + private final List<JPAJSONGPlainAttr> plainAttrList = new ArrayList<>(); @Override public String getPlainAttrsJSON() { @@ -58,19 +58,19 @@ public class PGJPAGroup extends JPAGroup implements PGJPAAny<Group>, Group { } @Override - public List<PGGPlainAttr> getPlainAttrList() { + public List<JPAJSONGPlainAttr> getPlainAttrList() { return plainAttrList; } @Override - public boolean add(final PGPlainAttr<Group> attr) { + public boolean add(final JSONPlainAttr<Group> attr) { return add((GPlainAttr) attr); } @Override public boolean add(final GPlainAttr attr) { - checkType(attr, PGGPlainAttr.class); - return plainAttrList.add((PGGPlainAttr) attr); + checkType(attr, JPAJSONGPlainAttr.class); + return plainAttrList.add((JPAJSONGPlainAttr) attr); } @Override diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGJPAGroupListener.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGroupListener.java similarity index 75% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGJPAGroupListener.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGroupListener.java index f8e190f..a259238 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/PGJPAGroupListener.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAJSONGroupListener.java @@ -26,32 +26,32 @@ import javax.persistence.PostUpdate; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import org.apache.syncope.core.persistence.api.entity.group.Group; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityListener; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.JPAJSONEntityListener; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; -public class PGJPAGroupListener extends PGJPAEntityListener<Group> { +public class JPAJSONGroupListener extends JPAJSONEntityListener<Group> { @Override - protected List<? extends PGPlainAttr<Group>> getValues(final String plainAttrsJSON) { - return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<PGGPlainAttr>>() { + protected List<? extends JSONPlainAttr<Group>> getValues(final String plainAttrsJSON) { + return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<JPAJSONGPlainAttr>>() { }); } @PostLoad - public void read(final PGJPAGroup group) { + public void read(final JPAJSONGroup group) { super.json2list(group, false); } @PrePersist @PreUpdate - public void save(final PGJPAGroup group) { + public void save(final JPAJSONGroup group) { super.list2json(group); } @PostPersist @PostUpdate - public void readAfterSave(final PGJPAGroup group) { + public void readAfterSave(final JPAJSONGroup group) { super.json2list(group, true); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttr.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttr.java similarity index 86% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttr.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttr.java index 09abb26..c8082a1 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttr.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttr.java @@ -38,12 +38,12 @@ import org.apache.syncope.core.persistence.api.entity.user.UPlainAttrValue; import org.apache.syncope.core.persistence.api.entity.user.User; import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttr; import org.apache.syncope.core.persistence.jpa.entity.JPAPlainSchema; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; import org.apache.syncope.core.spring.ApplicationContextProvider; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; @JsonIgnoreProperties("valuesAsStrings") @JsonInclude(JsonInclude.Include.NON_EMPTY) -public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, PGPlainAttr<User> { +public class JPAJSONUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, JSONPlainAttr<User> { private static final long serialVersionUID = 806271775349587902L; @@ -51,7 +51,7 @@ public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, * The owner of this attribute. */ @JsonIgnore - private PGJPAUser owner; + private JPAJSONUser owner; @JsonProperty private String schema; @@ -65,13 +65,13 @@ public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, /** * Values of this attribute (if schema is not UNIQUE). */ - private final List<PGUPlainAttrValue> values = new ArrayList<>(); + private final List<JPAJSONUPlainAttrValue> values = new ArrayList<>(); /** * Value of this attribute (if schema is UNIQUE). */ @JsonProperty - private PGUPlainAttrUniqueValue uniqueValue; + private JPAJSONUPlainAttrUniqueValue uniqueValue; @Override public User getOwner() { @@ -80,8 +80,8 @@ public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, @Override public void setOwner(final User owner) { - checkType(owner, PGJPAUser.class); - this.owner = (PGJPAUser) owner; + checkType(owner, JPAJSONUser.class); + this.owner = (JPAJSONUser) owner; } @JsonIgnore @@ -133,8 +133,8 @@ public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, @Override protected boolean addForMultiValue(final PlainAttrValue attrValue) { - checkType(attrValue, PGUPlainAttrValue.class); - return values.add((PGUPlainAttrValue) attrValue); + checkType(attrValue, JPAJSONUPlainAttrValue.class); + return values.add((JPAJSONUPlainAttrValue) attrValue); } @Override @@ -148,20 +148,20 @@ public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, } @JsonIgnore - public List<PGUPlainAttrValue> getPGValues() { + public List<JPAJSONUPlainAttrValue> getPGValues() { return values; } @Override - public PGUPlainAttrUniqueValue getUniqueValue() { + public JPAJSONUPlainAttrUniqueValue getUniqueValue() { return uniqueValue; } @JsonIgnore @Override public void setUniqueValue(final PlainAttrUniqueValue uniqueValue) { - checkType(uniqueValue, PGUPlainAttrUniqueValue.class); - this.uniqueValue = (PGUPlainAttrUniqueValue) uniqueValue; + checkType(uniqueValue, JPAJSONUPlainAttrUniqueValue.class); + this.uniqueValue = (JPAJSONUPlainAttrUniqueValue) uniqueValue; } @Override @@ -185,7 +185,7 @@ public class PGUPlainAttr extends AbstractPlainAttr<User> implements UPlainAttr, if (getClass() != obj.getClass()) { return false; } - final PGUPlainAttr other = (PGUPlainAttr) obj; + final JPAJSONUPlainAttr other = (JPAJSONUPlainAttr) obj; return new EqualsBuilder(). append(schema, other.schema). append(membership, other.membership). diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttrUniqueValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttrUniqueValue.java similarity index 89% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttrUniqueValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttrUniqueValue.java index 9b6cd3e..ab4a8f4 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttrUniqueValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttrUniqueValue.java @@ -29,12 +29,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGUPlainAttrUniqueValue extends AbstractPlainAttrValue implements UPlainAttrUniqueValue { +public class JPAJSONUPlainAttrUniqueValue extends AbstractPlainAttrValue implements UPlainAttrUniqueValue { private static final long serialVersionUID = -4053996864791245312L; @JsonIgnore - private PGUPlainAttr attr; + private JPAJSONUPlainAttr attr; @Override public UPlainAttr getAttr() { @@ -43,8 +43,8 @@ public class PGUPlainAttrUniqueValue extends AbstractPlainAttrValue implements U @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGUPlainAttr.class); - this.attr = (PGUPlainAttr) attr; + checkType(attr, JPAJSONUPlainAttr.class); + this.attr = (JPAJSONUPlainAttr) attr; } @JsonIgnore diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttrValue.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttrValue.java similarity index 87% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttrValue.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttrValue.java index 6ba15d5..4a4415b 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGUPlainAttrValue.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUPlainAttrValue.java @@ -28,12 +28,12 @@ import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue; @JsonIgnoreProperties({ "valueAsString", "value" }) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PGUPlainAttrValue extends AbstractPlainAttrValue implements UPlainAttrValue { +public class JPAJSONUPlainAttrValue extends AbstractPlainAttrValue implements UPlainAttrValue { private static final long serialVersionUID = 1832825176101443555L; @JsonIgnore - private PGUPlainAttr attr; + private JPAJSONUPlainAttr attr; @Override public UPlainAttr getAttr() { @@ -42,7 +42,7 @@ public class PGUPlainAttrValue extends AbstractPlainAttrValue implements UPlainA @Override public void setAttr(final PlainAttr<?> attr) { - checkType(attr, PGUPlainAttr.class); - this.attr = (PGUPlainAttr) attr; + checkType(attr, JPAJSONUPlainAttr.class); + this.attr = (JPAJSONUPlainAttr) attr; } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGJPAUser.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUser.java similarity index 84% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGJPAUser.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUser.java index 5bc949c..1591b9c 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGJPAUser.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUser.java @@ -33,15 +33,15 @@ import org.apache.syncope.core.persistence.api.entity.Membership; import org.apache.syncope.core.persistence.api.entity.user.UMembership; import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr; import org.apache.syncope.core.persistence.api.entity.user.User; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAAny; -import org.apache.syncope.core.persistence.jpa.validation.entity.PGJPAAnyCheck; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; +import org.apache.syncope.core.persistence.api.entity.JSONAny; +import org.apache.syncope.core.persistence.jpa.validation.entity.JPAJSONAnyCheck; @Entity @Table(name = JPAUser.TABLE) -@EntityListeners({ PGJPAUserListener.class }) -@PGJPAAnyCheck -public class PGJPAUser extends JPAUser implements PGJPAAny<User>, User { +@EntityListeners({ JPAJSONUserListener.class }) +@JPAJSONAnyCheck +public class JPAJSONUser extends JPAUser implements JSONAny<User>, User { private static final long serialVersionUID = -8543654943709531885L; @@ -50,7 +50,7 @@ public class PGJPAUser extends JPAUser implements PGJPAAny<User>, User { private String plainAttrs; @Transient - private final List<PGUPlainAttr> plainAttrList = new ArrayList<>(); + private final List<JPAJSONUPlainAttr> plainAttrList = new ArrayList<>(); @Override public String getPlainAttrsJSON() { @@ -63,26 +63,26 @@ public class PGJPAUser extends JPAUser implements PGJPAAny<User>, User { } @Override - public List<PGUPlainAttr> getPlainAttrList() { + public List<JPAJSONUPlainAttr> getPlainAttrList() { return plainAttrList; } @Override - public boolean add(final PGPlainAttr<User> attr) { + public boolean add(final JSONPlainAttr<User> attr) { return add((UPlainAttr) attr); } @Override public boolean add(final UPlainAttr attr) { - checkType(attr, PGUPlainAttr.class); - return plainAttrList.add((PGUPlainAttr) attr); + checkType(attr, JPAJSONUPlainAttr.class); + return plainAttrList.add((JPAJSONUPlainAttr) attr); } @Override public boolean remove(final UPlainAttr attr) { return plainAttrList.removeIf(pgattr -> pgattr.getSchemaKey().equals(attr.getSchema().getKey()) - && Objects.equals(pgattr.getMembershipKey(), ((PGUPlainAttr) attr).getMembershipKey())); + && Objects.equals(pgattr.getMembershipKey(), ((JPAJSONUPlainAttr) attr).getMembershipKey())); } @Override diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGJPAUserListener.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUserListener.java similarity index 76% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGJPAUserListener.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUserListener.java index 7ab5d32..66f8b08 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/PGJPAUserListener.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAJSONUserListener.java @@ -26,32 +26,32 @@ import javax.persistence.PostUpdate; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import org.apache.syncope.core.persistence.api.entity.user.User; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityListener; -import org.apache.syncope.core.persistence.jpa.entity.PGPlainAttr; +import org.apache.syncope.core.persistence.jpa.entity.JPAJSONEntityListener; import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; +import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr; -public class PGJPAUserListener extends PGJPAEntityListener<User> { +public class JPAJSONUserListener extends JPAJSONEntityListener<User> { @Override - protected List<? extends PGPlainAttr<User>> getValues(final String plainAttrsJSON) { - return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<PGUPlainAttr>>() { + protected List<? extends JSONPlainAttr<User>> getValues(final String plainAttrsJSON) { + return POJOHelper.deserialize(plainAttrsJSON, new TypeReference<List<JPAJSONUPlainAttr>>() { }); } @PostLoad - public void read(final PGJPAUser user) { + public void read(final JPAJSONUser user) { super.json2list(user, false); } @PrePersist @PreUpdate - public void save(final PGJPAUser user) { + public void save(final JPAJSONUser user) { super.list2json(user); } @PostPersist @PostUpdate - public void readAfterSave(final PGJPAUser user) { + public void readAfterSave(final JPAJSONUser user) { super.json2list(user, true); } } diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PGJPAAnyCheck.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAJSONAnyCheck.java similarity index 94% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PGJPAAnyCheck.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAJSONAnyCheck.java index ef6f87d..361894d 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PGJPAAnyCheck.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAJSONAnyCheck.java @@ -29,9 +29,9 @@ import javax.validation.Payload; @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) -@Constraint(validatedBy = PGJPAAnyValidator.class) +@Constraint(validatedBy = JPAJSONAnyValidator.class) @Documented -public @interface PGJPAAnyCheck { +public @interface JPAJSONAnyCheck { String message() default "{org.apache.syncope.core.persistence.validation.any}"; diff --git a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PGJPAAnyValidator.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAJSONAnyValidator.java similarity index 87% rename from core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PGJPAAnyValidator.java rename to core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAJSONAnyValidator.java index 089808c..6a32456 100644 --- a/core/persistence-jpa-pgjsonb/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PGJPAAnyValidator.java +++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/JPAJSONAnyValidator.java @@ -21,12 +21,12 @@ package org.apache.syncope.core.persistence.jpa.validation.entity; import java.util.concurrent.atomic.AtomicReference; import javax.validation.ConstraintValidatorContext; import org.apache.syncope.core.persistence.api.entity.PlainAttr; -import org.apache.syncope.core.persistence.jpa.entity.PGJPAAny; +import org.apache.syncope.core.persistence.api.entity.JSONAny; -public class PGJPAAnyValidator extends AbstractValidator<PGJPAAnyCheck, PGJPAAny<?>> { +public class JPAJSONAnyValidator extends AbstractValidator<JPAJSONAnyCheck, JSONAny<?>> { @Override - public boolean isValid(final PGJPAAny<?> entity, final ConstraintValidatorContext context) { + public boolean isValid(final JSONAny<?> entity, final ConstraintValidatorContext context) { context.disableDefaultConstraintViolation(); PlainAttrValidator attrValidator = new PlainAttrValidator(); diff --git a/core/persistence-jpa-pgjsonb/src/main/resources/META-INF/spring-orm-pgjsonb.xml b/core/persistence-jpa-json/src/main/resources/META-INF/spring-orm-pgjsonb.xml similarity index 70% rename from core/persistence-jpa-pgjsonb/src/main/resources/META-INF/spring-orm-pgjsonb.xml rename to core/persistence-jpa-json/src/main/resources/META-INF/spring-orm-pgjsonb.xml index 0118765..64160d4 100644 --- a/core/persistence-jpa-pgjsonb/src/main/resources/META-INF/spring-orm-pgjsonb.xml +++ b/core/persistence-jpa-json/src/main/resources/META-INF/spring-orm-pgjsonb.xml @@ -33,41 +33,77 @@ under the License. </entity-listeners> </persistence-unit-defaults> </persistence-unit-metadata> - + + <entity class="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject"> + <attributes> + <basic name="plainAttrs"> + <column column-definition="jsonb"/> + <lob/> + </basic> + </attributes> + </entity> + + <entity class="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"> + <attributes> + <basic name="plainAttrs"> + <column column-definition="jsonb"/> + <lob/> + </basic> + </attributes> + </entity> + + <entity class="org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUser"> + <attributes> + <basic name="plainAttrs"> + <column column-definition="jsonb"/> + <lob/> + </basic> + </attributes> + </entity> + + <entity class="org.apache.syncope.core.persistence.jpa.entity.conf.JPAJSONConf"> + <attributes> + <basic name="plainAttrs"> + <column column-definition="jsonb"/> + <lob/> + </basic> + </attributes> + </entity> + <entity class="org.apache.syncope.core.persistence.jpa.entity.group.JPAGroup"> <attributes> - <many-to-one name="userOwner" target-entity="org.apache.syncope.core.persistence.jpa.entity.user.PGJPAUser"/> - <many-to-one name="groupOwner" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup"/> + <many-to-one name="userOwner" target-entity="org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUser"/> + <many-to-one name="groupOwner" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"/> </attributes> </entity> <entity class="org.apache.syncope.core.persistence.jpa.entity.group.JPATypeExtension"> <attributes> - <many-to-one name="group" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup"/> + <many-to-one name="group" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"/> </attributes> </entity> <entity class="org.apache.syncope.core.persistence.jpa.entity.user.JPAUMembership"> <attributes> - <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.user.PGJPAUser"> + <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUser"> <join-column name="user_id"/> </many-to-one> - <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup"> + <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"> <join-column name="group_id"/> </many-to-one> </attributes> </entity> <entity class="org.apache.syncope.core.persistence.jpa.entity.user.JPAUDynGroupMembership"> <attributes> - <one-to-one name="group" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup"/> + <one-to-one name="group" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"/> </attributes> </entity> <entity class="org.apache.syncope.core.persistence.jpa.entity.user.JPAURelationship"> <attributes> - <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.user.PGJPAUser"> + <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.user.JPAJSONUser"> <join-column name="user_id"/> </many-to-one> - <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.PGJPAAnyObject"> + <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject"> <join-column name="anyObject_id"/> </many-to-one> </attributes> @@ -75,25 +111,25 @@ under the License. <entity class="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAMembership"> <attributes> - <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.PGJPAAnyObject"> + <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject"> <join-column name="anyObject_id"/> </many-to-one> - <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup"> + <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"> <join-column name="group_id"/> </many-to-one> </attributes> </entity> <entity class="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAADynGroupMembership"> <attributes> - <one-to-one name="group" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.PGJPAGroup"/> + <one-to-one name="group" target-entity="org.apache.syncope.core.persistence.jpa.entity.group.JPAJSONGroup"/> </attributes> </entity> <entity class="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAARelationship"> <attributes> - <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.PGJPAAnyObject"> + <many-to-one name="leftEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject"> <join-column name="left_anyObject_id"/> </many-to-one> - <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.PGJPAAnyObject"> + <many-to-one name="rightEnd" target-entity="org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAJSONAnyObject"> <join-column name="right_anyObject_id"/> </many-to-one> </attributes> diff --git a/core/persistence-jpa-pgjsonb/src/main/resources/persistence-enhance.xml b/core/persistence-jpa-json/src/main/resources/persistence-enhance.xml similarity index 100% rename from core/persistence-jpa-pgjsonb/src/main/resources/persistence-enhance.xml rename to core/persistence-jpa-json/src/main/resources/persistence-enhance.xml diff --git a/core/persistence-jpa-pgjsonb/src/main/resources/domains/Master.properties b/core/persistence-jpa-json/src/main/resources/pgjsonb/domains/Master.properties similarity index 100% rename from core/persistence-jpa-pgjsonb/src/main/resources/domains/Master.properties rename to core/persistence-jpa-json/src/main/resources/pgjsonb/domains/Master.properties diff --git a/fit/core-reference/src/main/resources/pgjsonb/indexes.xml b/core/persistence-jpa-json/src/main/resources/pgjsonb/indexes.xml similarity index 100% rename from fit/core-reference/src/main/resources/pgjsonb/indexes.xml rename to core/persistence-jpa-json/src/main/resources/pgjsonb/indexes.xml diff --git a/core/persistence-jpa-pgjsonb/src/main/resources/persistence.properties b/core/persistence-jpa-json/src/main/resources/pgjsonb/persistence.properties similarity index 63% rename from core/persistence-jpa-pgjsonb/src/main/resources/persistence.properties rename to core/persistence-jpa-json/src/main/resources/pgjsonb/persistence.properties index a299527..50d568e 100644 --- a/core/persistence-jpa-pgjsonb/src/main/resources/persistence.properties +++ b/core/persistence-jpa-json/src/main/resources/pgjsonb/persistence.properties @@ -15,13 +15,13 @@ # specific language governing permissions and limitations # under the License. content.directory=${conf.directory} -entity.factory=org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityFactory -plainSchema.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainSchemaDAO -plainAttr.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainAttrDAO -plainAttrValue.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainAttrValueDAO -any.search.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAAnySearchDAO -user.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAUserDAO -group.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAGroupDAO -anyObject.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAAnyObjectDAO -conf.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAConfDAO +entity.factory=org.apache.syncope.core.persistence.jpa.entity.PGJPAJSONEntityFactory +plainSchema.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONPlainSchemaDAO +plainAttr.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONPlainAttrDAO +plainAttrValue.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONPlainAttrValueDAO +any.search.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAJSONAnySearchDAO +user.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONUserDAO +group.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONGroupDAO +anyObject.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONAnyObjectDAO +conf.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONConfDAO openjpa.RemoteCommitProvider=sjvm diff --git a/fit/core-reference/src/main/resources/pgjsonb/views.xml b/core/persistence-jpa-json/src/main/resources/pgjsonb/views.xml similarity index 100% rename from fit/core-reference/src/main/resources/pgjsonb/views.xml rename to core/persistence-jpa-json/src/main/resources/pgjsonb/views.xml diff --git a/core/persistence-jpa-pgjsonb/src/test/resources/persistenceTest.xml b/core/persistence-jpa-json/src/test/resources/persistenceTest.xml similarity index 100% rename from core/persistence-jpa-pgjsonb/src/test/resources/persistenceTest.xml rename to core/persistence-jpa-json/src/test/resources/persistenceTest.xml diff --git a/core/persistence-jpa-pgjsonb/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa-json/src/test/resources/pgjsonb/domains/MasterContent.xml similarity index 100% rename from core/persistence-jpa-pgjsonb/src/test/resources/domains/MasterContent.xml rename to core/persistence-jpa-json/src/test/resources/pgjsonb/domains/MasterContent.xml diff --git a/core/persistence-jpa-pgjsonb/src/test/resources/simplelogger.properties b/core/persistence-jpa-json/src/test/resources/simplelogger.properties similarity index 100% rename from core/persistence-jpa-pgjsonb/src/test/resources/simplelogger.properties rename to core/persistence-jpa-json/src/test/resources/simplelogger.properties diff --git a/core/persistence-jpa-pgjsonb/src/main/resources/indexes.xml b/core/persistence-jpa-pgjsonb/src/main/resources/indexes.xml deleted file mode 100644 index 3e5b92b..0000000 --- a/core/persistence-jpa-pgjsonb/src/main/resources/indexes.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- -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. ---> -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> -<properties> - <comment>Additional indexes (in respect to JPA's)</comment> - - <entry key="SyncopeUser_plainAttrs_idx">CREATE INDEX SyncopeUser_plainAttrs_idx ON SyncopeUser USING gin ((plainAttrs) jsonb_path_ops)</entry> - <entry key="SyncopeGroup_plainAttrs_idx">CREATE INDEX SyncopeGroup_plainAttrs_idx ON SyncopeGroup USING gin ((plainAttrs) jsonb_path_ops)</entry> - <entry key="AnyObject_plainAttrs_idx">CREATE INDEX AnyObject_plainAttrs_idx ON AnyObject USING gin ((plainAttrs) jsonb_path_ops)</entry> - <entry key="SyncopeConf_plainAttrs_idx">CREATE INDEX SyncopeConf_plainAttrs_idx ON SyncopeConf USING gin ((plainAttrs) jsonb_path_ops)</entry> - - <entry key="UDynGroupMembers_any_id">CREATE INDEX UDynGroupMembers_any_id ON UDynGroupMembers(any_id)</entry> - <entry key="UDynGroupMembers_group_id">CREATE INDEX UDynGroupMembers_group_id ON UDynGroupMembers(group_id)</entry> - <entry key="ADynGroupMembers_any_id">CREATE INDEX ADynGroupMembers_any_id ON ADynGroupMembers(any_id)</entry> - <entry key="ADynGroupMembers_group_id">CREATE INDEX ADynGroupMembers_group_id ON ADynGroupMembers(group_id)</entry> - - <entry key="DynRoleMembers_any_id">CREATE INDEX DynRoleMembers_any_id ON DynRoleMembers(any_id)</entry> - <entry key="DynRoleMembers_role_id">CREATE INDEX DynRoleMembers_role_id ON DynRoleMembers(role_id)</entry> - - <entry key="DynRealmMembers_any_id">CREATE INDEX DynRealmMembers_any_id ON DynRealmMembers(any_id)</entry> - <entry key="DynRealmMembers_realm_id">CREATE INDEX DynRealmMembers_dynRealm_id ON DynRealmMembers(dynRealm_id)</entry> - - <entry key="CPlainAttrValue_stringvalueIndex">CREATE INDEX CAttrValue_stringvalueIndex ON CPlainAttrValue(stringvalue)</entry> - <entry key="CPlainAttrValue_datevalueIndex">CREATE INDEX CAttrValue_datevalueIndex ON CPlainAttrValue(datevalue)</entry> - <entry key="CPlainAttrValue_longvalueIndex">CREATE INDEX CAttrValue_longvalueIndex ON CPlainAttrValue(longvalue)</entry> - <entry key="CPlainAttrValue_doublevalueIndex">CREATE INDEX CAttrValue_doublevalueIndex ON CPlainAttrValue(doublevalue)</entry> - <entry key="CPlainAttrValue_booleanvalueIndex">CREATE INDEX CAttrValue_booleanvalueIndex ON CPlainAttrValue(booleanvalue)</entry> - - <entry key="UMembership_GroupIndex">CREATE INDEX UMembership_GroupIndex ON UMembership(group_id)</entry> - <entry key="UMembership_UserIndex">CREATE INDEX UMembership_UserIndex ON UMembership(user_id)</entry> - <entry key="AMembership_GroupIndex">CREATE INDEX AMembership_GroupIndex ON AMembership(group_id)</entry> - <entry key="AMembership_AnyObjectIndex">CREATE INDEX AMembership_AnyObjectIndex ON AMembership(anyObject_id)</entry> - - <entry key="URelationship_RightIndex">CREATE INDEX URelationship_RightIndex ON URelationship(anyObject_id)</entry> - <entry key="URelationship_LeftIndex">CREATE INDEX URelationship_LeftIndex ON URelationship(user_id)</entry> - <entry key="ARelationship_RightIndex">CREATE INDEX ARelationship_RightIndex ON ARelationship(right_anyObject_id)</entry> - <entry key="ARelationship_AnyObjectIndex">CREATE INDEX ARelationship_AnyObjectIndex ON ARelationship(left_anyObject_id)</entry> - - <entry key="CPlainAttrValue_attrIndex">CREATE INDEX CPlainAttrValue_attrIndex on CPlainAttrValue(attribute_id)</entry> - <entry key="CPAttrUniqueValue_attrIndex">CREATE INDEX CPAttrUniqueValue_attrIndex on CPlainAttrUniqueValue(attribute_id)</entry> - - <entry key="CPlainAttr_owner_Index">CREATE INDEX CPlainAttr_owner_Index on CPlainAttr(owner_id)</entry> - <entry key="CPlainAttr_schema_Index">CREATE INDEX CPlainAttr_schema_Index on CPlainAttr(schema_id)</entry> - - <entry key="Task_executedIndex">CREATE INDEX Task_executedIndex ON Task(executed)</entry> -</properties> diff --git a/core/persistence-jpa-pgjsonb/src/main/resources/views.xml b/core/persistence-jpa-pgjsonb/src/main/resources/views.xml deleted file mode 100644 index eb450be..0000000 --- a/core/persistence-jpa-pgjsonb/src/main/resources/views.xml +++ /dev/null @@ -1,154 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- -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. ---> -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> -<properties> - - <entry key="UDynGroupMembers"> - CREATE TABLE UDynGroupMembers( - any_id CHAR(36), - group_id CHAR(36), - UNIQUE(any_id, group_id)) - </entry> - <entry key="ADynGroupMembers"> - CREATE TABLE ADynGroupMembers( - anyType_id VARCHAR(255), - any_id CHAR(36), - group_id CHAR(36), - UNIQUE(anyType_id, any_id, group_id)) - </entry> - <entry key="DynRoleMembers"> - CREATE TABLE DynRoleMembers( - any_id CHAR(36), - role_id VARCHAR(255), - UNIQUE(any_id, role_id)) - </entry> - <entry key="DynRealmMembers"> - CREATE TABLE DynRealmMembers( - any_id CHAR(36), - dynRealm_id VARCHAR(255), - UNIQUE(any_id, dynRealm_id)) - </entry> - - <!-- user --> - <entry key="user_search"> - CREATE VIEW user_search AS - - SELECT u.id as any_id, u.*,attrs,attrValues - FROM SyncopeUser u, jsonb_array_elements(COALESCE(u.plainAttrs, '[{}]'::jsonb)) attrs, - jsonb_array_elements(COALESCE(attrs -> 'values', '[{}]'::jsonb)) attrValues - </entry> - <entry key="user_search_urelationship"> - CREATE VIEW user_search_urelationship AS - - SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_id AS type - FROM URelationship m - </entry> - <entry key="user_search_umembership"> - CREATE VIEW user_search_umembership AS - - SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name - FROM UMembership m, SyncopeGroup g - WHERE m.group_id = g.id - </entry> - <entry key="user_search_role"> - CREATE VIEW user_search_role AS - - SELECT ss.user_id AS any_id, ss.role_id AS role_id - FROM SyncopeUser_SyncopeRole ss - </entry> - <entry key="user_search_priv"> - CREATE VIEW user_search_priv AS - - SELECT ss.user_id AS any_id, sp.privilege_id AS privilege_id - FROM SyncopeUser_SyncopeRole ss, SyncopeRole_Privilege sp - WHERE ss.role_id = sp.role_id - </entry> - <entry key="user_search_dynpriv"> - CREATE VIEW user_search_dynpriv AS - - SELECT any_id, privilege_id - FROM DynRoleMembers drm, SyncopeRole_Privilege rp - WHERE drm.role_id = rp.role_id - </entry> - <entry key="user_search_resource"> - CREATE VIEW user_search_resource AS - - SELECT st.user_id AS any_id, st.resource_id AS resource_id - FROM SyncopeUser_ExternalResource st - </entry> - <entry key="user_search_group_res"> - CREATE VIEW user_search_group_res AS - - SELECT m.user_id AS any_id, st.resource_id AS resource_id - FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st - WHERE m.group_id = r.id AND st.group_id = r.id - </entry> - - <!-- anyObject --> - <entry key="anyObject_search"> - CREATE VIEW anyObject_search AS - - SELECT a.id as any_id, a.*,attrs,attrValues - FROM AnyObject a, jsonb_array_elements(COALESCE(a.plainAttrs, '[{}]'::jsonb)) attrs, - jsonb_array_elements(COALESCE(attrs -> 'values', '[{}]'::jsonb)) attrValues - </entry> - <entry key="anyObject_search_arelationship"> - CREATE VIEW anyObject_search_arelationship AS - - SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_id AS type - FROM ARelationship m - </entry> - <entry key="anyObject_search_amembership"> - CREATE VIEW anyObject_search_amembership AS - - SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name - FROM AMembership m, SyncopeGroup g - WHERE m.group_id = g.id - </entry> - <entry key="anyObject_search_resource"> - CREATE VIEW anyObject_search_resource AS - - SELECT st.anyObject_id AS any_id, st.resource_id AS resource_id - FROM AnyObject_ExternalResource st - </entry> - <entry key="anyObject_search_group_res"> - CREATE VIEW anyObject_search_group_res AS - - SELECT m.anyObject_id AS any_id, st.resource_id AS resource_id - FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st - WHERE m.group_id = r.id AND st.group_id = r.id - </entry> - - <!-- group --> - <entry key="group_search"> - CREATE VIEW group_search AS - - SELECT g.id as any_id, g.*,attrs,attrValues - FROM SyncopeGroup g, jsonb_array_elements(COALESCE(g.plainAttrs, '[{}]'::jsonb)) attrs, - jsonb_array_elements(COALESCE(attrs -> 'values', '[{}]'::jsonb)) attrValues - </entry> - <entry key="group_search_resource"> - CREATE VIEW group_search_resource AS - - SELECT st.group_id AS any_id, st.resource_id AS resource_id - FROM SyncopeGroup_ExternalResource st - </entry> - -</properties> diff --git a/core/pom.xml b/core/pom.xml index 57d8941..e780489 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -79,7 +79,7 @@ under the License. <modules> <module>persistence-api</module> <module>persistence-jpa</module> - <module>persistence-jpa-pgjsonb</module> + <module>persistence-jpa-json</module> <module>spring</module> <module>provisioning-api</module> <module>provisioning-java</module> diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml index 754640c..b7ce361 100644 --- a/fit/core-reference/pom.xml +++ b/fit/core-reference/pom.xml @@ -601,7 +601,7 @@ under the License. <dependencies> <dependency> <groupId>org.apache.syncope.core</groupId> - <artifactId>syncope-core-persistence-jpa-pgjsonb</artifactId> + <artifactId>syncope-core-persistence-jpa-json</artifactId> <version>${project.version}</version> </dependency> @@ -724,15 +724,16 @@ under the License. <filtering>true</filtering> </resource> <resource> - <directory>${basedir}/../../core/persistence-jpa-pgjsonb/src/test/resources/domains</directory> + <directory>${basedir}/../../core/persistence-jpa-json/src/test/resources/pgjsonb/domains</directory> <targetPath>${project.build.directory}/classes/domains</targetPath> <filtering>true</filtering> </resource> </resources> <testResources> <testResource> - <directory>src/main/resources/pgjsonb</directory> + <directory>${basedir}/../../core/persistence-jpa-json/src/main/resources/pgjsonb</directory> <includes> + <include>persistence.properties</include> <include>indexes.xml</include> <include>views.xml</include> </includes> diff --git a/fit/core-reference/src/main/resources/pgjsonb/persistence.properties b/fit/core-reference/src/main/resources/pgjsonb/persistence.properties deleted file mode 100644 index a299527..0000000 --- a/fit/core-reference/src/main/resources/pgjsonb/persistence.properties +++ /dev/null @@ -1,27 +0,0 @@ -# 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. -content.directory=${conf.directory} -entity.factory=org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityFactory -plainSchema.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainSchemaDAO -plainAttr.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainAttrDAO -plainAttrValue.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainAttrValueDAO -any.search.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAAnySearchDAO -user.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAUserDAO -group.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAGroupDAO -anyObject.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAAnyObjectDAO -conf.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAConfDAO -openjpa.RemoteCommitProvider=sjvm diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/dbms.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/dbms.adoc index ec8f3c6..099ef0f 100644 --- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/dbms.adoc +++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/dbms.adoc @@ -74,7 +74,7 @@ Add the following dependency to `core/pom.xml`: ---- <dependency> <groupId>org.apache.syncope.core</groupId> - <artifactId>syncope-core-persistence-jpa-pgjsonb</artifactId> + <artifactId>syncope-core-persistence-jpa-json</artifactId> <version>${syncope.version}</version> </dependency> ---- @@ -82,15 +82,15 @@ Add the following dependency to `core/pom.xml`: In `persistence.properties`, replace as follows: .... -entity.factory=org.apache.syncope.core.persistence.jpa.entity.PGJPAEntityFactory -plainSchema.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainSchemaDAO -plainAttr.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainAttrDAO -plainAttrValue.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAPlainAttrValueDAO -any.search.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAAnySearchDAO -user.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAUserDAO -group.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAGroupDAO -anyObject.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAAnyObjectDAO -conf.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAConfDAO +entity.factory=org.apache.syncope.core.persistence.jpa.entity.PGJPAJSONEntityFactory +plainSchema.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONPlainSchemaDAO +plainAttr.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONPlainAttrDAO +plainAttrValue.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONPlainAttrValueDAO +any.search.dao=org.apache.syncope.core.persistence.jpa.dao.PGJPAJSONAnySearchDAO +user.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONUserDAO +group.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONGroupDAO +anyObject.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONAnyObjectDAO +conf.dao=org.apache.syncope.core.persistence.jpa.dao.JPAJSONConfDAO .... In `provisioning.properties`, replace as follows: