You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2022/11/23 10:49:43 UTC
[syncope] branch master updated: Consolidating labels into SyncopeSchema to save some joins (#394)
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new 587d300474 Consolidating labels into SyncopeSchema to save some joins (#394)
587d300474 is described below
commit 587d3004746f761c18616d3f01f71cdd3186ce23
Author: Francesco Chicchiriccò <il...@users.noreply.github.com>
AuthorDate: Wed Nov 23 11:49:38 2022 +0100
Consolidating labels into SyncopeSchema to save some joins (#394)
---
.../syncope/common/lib/policy/AccessPolicyTO.java | 3 +-
.../common/lib/policy/AttrReleasePolicyTO.java | 3 +-
.../syncope/common/lib/policy/AuthPolicyTO.java | 3 +-
.../syncope/common/lib/to/CASSPClientAppTO.java | 17 ++---
.../apache/syncope/common/lib/to/ClientAppTO.java | 2 +-
.../syncope/common/lib/to/OIDCRPClientAppTO.java | 3 +-
.../syncope/common/lib/to/SAML2SPClientAppTO.java | 3 +-
.../common/lib/policy/PropagationPolicyTO.java | 3 +-
.../common/lib/policy/ProvisioningPolicyTO.java | 3 +-
.../syncope/common/lib/policy/PullPolicyTO.java | 3 +-
.../syncope/common/lib/policy/PushPolicyTO.java | 3 +-
.../syncope/common/lib/policy/AccountPolicyTO.java | 3 +-
.../common/lib/policy/PasswordPolicyTO.java | 3 +-
.../apache/syncope/common/lib/policy/PolicyTO.java | 2 +-
.../apache/syncope/common/lib/request/AnyCR.java | 2 +-
.../syncope/common/lib/request/AnyObjectCR.java | 3 +-
.../syncope/common/lib/request/AnyObjectUR.java | 3 +-
.../apache/syncope/common/lib/request/AnyUR.java | 2 +-
.../apache/syncope/common/lib/request/GroupCR.java | 3 +-
.../apache/syncope/common/lib/request/GroupUR.java | 3 +-
.../apache/syncope/common/lib/request/UserCR.java | 3 +-
.../apache/syncope/common/lib/request/UserUR.java | 3 +-
.../apache/syncope/common/lib/to/AnyObjectTO.java | 3 +-
.../org/apache/syncope/common/lib/to/AnyTO.java | 2 +-
.../apache/syncope/common/lib/to/DerSchemaTO.java | 3 +-
.../org/apache/syncope/common/lib/to/GroupTO.java | 3 +-
.../apache/syncope/common/lib/to/MacroTaskTO.java | 3 +-
.../syncope/common/lib/to/NotificationTaskTO.java | 3 +-
.../syncope/common/lib/to/PlainSchemaTO.java | 3 +-
.../syncope/common/lib/to/PropagationTaskTO.java | 3 +-
.../apache/syncope/common/lib/to/PullTaskTO.java | 3 +-
.../apache/syncope/common/lib/to/PushTaskTO.java | 3 +-
.../apache/syncope/common/lib/to/SchedTaskTO.java | 3 +-
.../org/apache/syncope/common/lib/to/SchemaTO.java | 2 +-
.../org/apache/syncope/common/lib/to/TaskTO.java | 2 +-
.../org/apache/syncope/common/lib/to/UserTO.java | 3 +-
.../apache/syncope/common/lib/to/VirSchemaTO.java | 3 +-
.../org/apache/syncope/core/logic/SchemaLogic.java | 51 ++++++--------
.../core/persistence/api/entity/Schema.java | 8 +--
.../core/persistence/api/entity/SchemaLabel.java | 36 ----------
.../src/test/resources/domains/MasterContent.xml | 9 +--
.../core/persistence/jpa/dao/JPADerSchemaDAO.java | 7 +-
.../persistence/jpa/dao/JPAPlainSchemaDAO.java | 3 +-
.../core/persistence/jpa/dao/JPAVirSchemaDAO.java | 7 +-
.../persistence/jpa/entity/AbstractSchema.java | 66 +++++++++++++-----
.../persistence/jpa/entity/JPAEntityFactory.java | 3 -
.../persistence/jpa/entity/JPASchemaLabel.java | 78 ----------------------
.../persistence/jpa/outer/PlainSchemaTest.java | 9 ---
.../src/test/resources/domains/MasterContent.xml | 9 +--
.../java/data/SchemaDataBinderImpl.java | 49 +++-----------
pom.xml | 2 +-
51 files changed, 169 insertions(+), 286 deletions(-)
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java
index ed672a7137..b988657e71 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java
@@ -45,7 +45,8 @@ public class AccessPolicyTO extends PolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.AccessPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.AccessPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AttrReleasePolicyTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AttrReleasePolicyTO.java
index f684518bad..4d37215fde 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AttrReleasePolicyTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AttrReleasePolicyTO.java
@@ -35,7 +35,8 @@ public class AttrReleasePolicyTO extends PolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.AttrReleasePolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.AttrReleasePolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthPolicyTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthPolicyTO.java
index 575b1263e6..1753816fac 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthPolicyTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthPolicyTO.java
@@ -31,7 +31,8 @@ public class AuthPolicyTO extends PolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.AuthPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.AuthPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/CASSPClientAppTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/CASSPClientAppTO.java
index e8b648023d..60589f4e41 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/CASSPClientAppTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/CASSPClientAppTO.java
@@ -24,7 +24,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
-@Schema(allOf = {ClientAppTO.class})
+@Schema(allOf = { ClientAppTO.class })
public class CASSPClientAppTO extends ClientAppTO {
private static final long serialVersionUID = -5370888503924521351L;
@@ -41,7 +41,8 @@ public class CASSPClientAppTO extends ClientAppTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.client.CASSPTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.client.CASSPTO")
@Override
public String getDiscriminator() {
return getClass().getName();
@@ -60,16 +61,16 @@ public class CASSPClientAppTO extends ClientAppTO {
}
CASSPClientAppTO rhs = (CASSPClientAppTO) obj;
return new EqualsBuilder()
- .appendSuper(super.equals(obj))
- .append(this.serviceId, rhs.serviceId)
- .isEquals();
+ .appendSuper(super.equals(obj))
+ .append(this.serviceId, rhs.serviceId)
+ .isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder()
- .appendSuper(super.hashCode())
- .append(this.serviceId)
- .toHashCode();
+ .appendSuper(super.hashCode())
+ .append(this.serviceId)
+ .toHashCode();
}
}
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/ClientAppTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/ClientAppTO.java
index 4b680cc62a..e1daf364a0 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/ClientAppTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/ClientAppTO.java
@@ -63,7 +63,7 @@ public abstract class ClientAppTO implements NamedEntityTO {
private final List<Attr> properties = new ArrayList<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
index 80d35821f3..a40eae7aac 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/OIDCRPClientAppTO.java
@@ -57,7 +57,8 @@ public class OIDCRPClientAppTO extends ClientAppTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.client.OIDCRPTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.client.OIDCRPTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
index 61a0f39680..7887bbcd21 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/SAML2SPClientAppTO.java
@@ -74,7 +74,8 @@ public class SAML2SPClientAppTO extends ClientAppTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.client.SAML2SPTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.client.SAML2SPTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PropagationPolicyTO.java b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PropagationPolicyTO.java
index 19e27279ad..4a598c628b 100644
--- a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PropagationPolicyTO.java
+++ b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PropagationPolicyTO.java
@@ -40,7 +40,8 @@ public class PropagationPolicyTO extends PolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.PropagationPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.PropagationPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/ProvisioningPolicyTO.java b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/ProvisioningPolicyTO.java
index 5dd01226b2..daf2702656 100644
--- a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/ProvisioningPolicyTO.java
+++ b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/ProvisioningPolicyTO.java
@@ -39,7 +39,8 @@ public abstract class ProvisioningPolicyTO extends PolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.ProvisioningPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.ProvisioningPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
index 1cd2939870..6fec12716c 100644
--- a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
+++ b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
@@ -29,7 +29,8 @@ public class PullPolicyTO extends ProvisioningPolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.PullPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.PullPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicyTO.java b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicyTO.java
index 8b958d4c3e..fc52b71b0b 100644
--- a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicyTO.java
+++ b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicyTO.java
@@ -29,7 +29,8 @@ public class PushPolicyTO extends ProvisioningPolicyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.PushPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.PushPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
index fee5590e5c..e3c1b273d6 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
@@ -40,7 +40,8 @@ public class AccountPolicyTO extends PolicyTO implements ComposablePolicy {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.AccountPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.AccountPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
index a73fe92f94..2dd3a9b799 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
@@ -40,7 +40,8 @@ public class PasswordPolicyTO extends PolicyTO implements ComposablePolicy {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.policy.PasswordPolicyTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.policy.PasswordPolicyTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java
index 4bd405a57b..738904cf86 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java
@@ -50,7 +50,7 @@ public abstract class PolicyTO implements NamedEntityTO {
private final List<String> usedByRealms = new ArrayList<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyCR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyCR.java
index 7b65838076..e577607e2e 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyCR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyCR.java
@@ -151,7 +151,7 @@ public abstract class AnyCR implements BaseBean, RealmMember {
private final Set<String> resources = new HashSet<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectCR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectCR.java
index abc014ef82..701ed11b71 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectCR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectCR.java
@@ -94,7 +94,8 @@ public class AnyObjectCR extends AnyCR implements GroupableRelatableTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.request.AnyObjectCR")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.request.AnyObjectCR")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectUR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectUR.java
index 893852eb4f..6064c85847 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectUR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyObjectUR.java
@@ -89,7 +89,8 @@ public class AnyObjectUR extends AnyUR {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.request.AnyObjectUR")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.request.AnyObjectUR")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyUR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyUR.java
index cf92b34c34..1050b4314e 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyUR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/AnyUR.java
@@ -158,7 +158,7 @@ public abstract class AnyUR implements BaseBean {
private final Set<StringPatchItem> resources = new HashSet<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupCR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupCR.java
index c47edbb300..bcf529504d 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupCR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupCR.java
@@ -100,7 +100,8 @@ public class GroupCR extends AnyCR {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.request.GroupCR")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.request.GroupCR")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupUR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupUR.java
index c6e9f253f9..147c3cb048 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupUR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/GroupUR.java
@@ -109,7 +109,8 @@ public class GroupUR extends AnyUR {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.request.GroupUR")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.request.GroupUR")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserCR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserCR.java
index 666cf748ef..fb141c16c6 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserCR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserCR.java
@@ -163,7 +163,8 @@ public class UserCR extends AnyCR implements GroupableRelatableTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.request.UserCR")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.request.UserCR")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserUR.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserUR.java
index dd57c97e22..6bda4c36a1 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserUR.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/request/UserUR.java
@@ -137,7 +137,8 @@ public class UserUR extends AnyUR {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.request.UserUR")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.request.UserUR")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
index affa16721b..4975086601 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
@@ -44,7 +44,8 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.AnyObjectTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.AnyObjectTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
index 071256faa4..859766ecb3 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
@@ -92,7 +92,7 @@ public abstract class AnyTO implements EntityTO, RealmMember {
private final Set<String> resources = new TreeSet<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
index b467ce24bf..08eb254dc3 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
@@ -33,7 +33,8 @@ public class DerSchemaTO extends SchemaTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.DerSchemaTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.DerSchemaTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
index c0a1005514..71c1106932 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
@@ -59,7 +59,8 @@ public class GroupTO extends AnyTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.GroupTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.GroupTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/MacroTaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/MacroTaskTO.java
index 01bf44eb6f..8f9277851c 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/MacroTaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/MacroTaskTO.java
@@ -43,7 +43,8 @@ public class MacroTaskTO extends SchedTaskTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.MacroTaskTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.MacroTaskTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
index 1036ed565b..bcc36b4ab7 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
@@ -56,7 +56,8 @@ public class NotificationTaskTO extends TaskTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.NotificationTaskTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.NotificationTaskTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
index 5525b5b7c7..4b115ccc5b 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
@@ -58,7 +58,8 @@ public class PlainSchemaTO extends SchemaTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.PlainSchemaTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.PlainSchemaTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
index e831fdb8bc..e90bfc65e5 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
@@ -53,7 +53,8 @@ public class PropagationTaskTO extends TaskTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.PropagationTaskTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.PropagationTaskTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
index 425eb281b5..d393512e06 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
@@ -44,7 +44,8 @@ public class PullTaskTO extends ProvisioningTaskTO implements TemplatableTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.PullTaskTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.PullTaskTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
index 6c41491d70..abf91f65fc 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
@@ -38,7 +38,8 @@ public class PushTaskTO extends ProvisioningTaskTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.PushTaskTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.PushTaskTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
index 054d6531dd..cb3e47a658 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
@@ -50,7 +50,8 @@ public class SchedTaskTO extends TaskTO implements NamedEntityTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.SchedTaskTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.SchedTaskTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchemaTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchemaTO.java
index ed102c7a30..7d32b5d753 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchemaTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/SchemaTO.java
@@ -48,7 +48,7 @@ public abstract class SchemaTO implements EntityTO {
private final Map<Locale, String> labels = new HashMap<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java
index 0f55ada540..baf9b86f3e 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java
@@ -53,7 +53,7 @@ public abstract class TaskTO extends AbstractStartEndBean implements EntityTO {
private final List<ExecTO> executions = new ArrayList<>();
- @Schema(name = "_class", required = true)
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED)
public abstract String getDiscriminator();
public void setDiscriminator(final String discriminator) {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
index 4c547d7440..776fd5e019 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
@@ -80,7 +80,8 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.UserTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.UserTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
index 7150ff34b4..79723119b4 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
@@ -39,7 +39,8 @@ public class VirSchemaTO extends SchemaTO {
@JacksonXmlProperty(localName = "_class", isAttribute = true)
@JsonProperty("_class")
- @Schema(name = "_class", required = true, example = "org.apache.syncope.common.lib.to.VirSchemaTO")
+ @Schema(name = "_class", requiredMode = Schema.RequiredMode.REQUIRED,
+ example = "org.apache.syncope.common.lib.to.VirSchemaTO")
@Override
public String getDiscriminator() {
return getClass().getName();
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
index 0b03aced85..531b7e9ff4 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SchemaLogic.java
@@ -113,19 +113,16 @@ public class SchemaLogic extends AbstractTransactionalLogic<SchemaTO> {
T created;
switch (schemaType) {
case VIRTUAL:
- VirSchema virSchema = virSchemaDAO.save(binder.create((VirSchemaTO) schemaTO));
- created = (T) binder.getVirSchemaTO(virSchema.getKey());
+ created = (T) binder.getVirSchemaTO(binder.create((VirSchemaTO) schemaTO).getKey());
break;
case DERIVED:
- DerSchema derSchema = derSchemaDAO.save(binder.create((DerSchemaTO) schemaTO));
- created = (T) binder.getDerSchemaTO(derSchema.getKey());
+ created = (T) binder.getDerSchemaTO(binder.create((DerSchemaTO) schemaTO).getKey());
break;
case PLAIN:
default:
- PlainSchema plainSchema = plainSchemaDAO.save(binder.create((PlainSchemaTO) schemaTO));
- created = (T) binder.getPlainSchemaTO(plainSchema.getKey());
+ created = (T) binder.getPlainSchemaTO(binder.create((PlainSchemaTO) schemaTO).getKey());
}
return created;
}
@@ -175,18 +172,18 @@ public class SchemaLogic extends AbstractTransactionalLogic<SchemaTO> {
switch (schemaType) {
case VIRTUAL:
result = (classes.isEmpty()
- ? keyword == null
- ? virSchemaDAO.findAll()
- : virSchemaDAO.findByKeyword(keyword)
+ ? Optional.ofNullable(keyword).
+ map(k -> virSchemaDAO.findByKeyword(k)).
+ orElseGet(() -> virSchemaDAO.findAll())
: virSchemaDAO.findByAnyTypeClasses(classes)).stream().
map(schema -> (T) binder.getVirSchemaTO(schema.getKey())).collect(Collectors.toList());
break;
case DERIVED:
result = (classes.isEmpty()
- ? keyword == null
- ? derSchemaDAO.findAll()
- : derSchemaDAO.findByKeyword(keyword)
+ ? Optional.ofNullable(keyword).
+ map(k -> derSchemaDAO.findByKeyword(k)).
+ orElseGet(() -> derSchemaDAO.findAll())
: derSchemaDAO.findByAnyTypeClasses(classes)).stream().
map(schema -> (T) binder.getDerSchemaTO(schema.getKey())).collect(Collectors.toList());
break;
@@ -194,9 +191,9 @@ public class SchemaLogic extends AbstractTransactionalLogic<SchemaTO> {
case PLAIN:
default:
result = (classes.isEmpty()
- ? keyword == null
- ? plainSchemaDAO.findAll()
- : plainSchemaDAO.findByKeyword(keyword)
+ ? Optional.ofNullable(keyword).
+ map(k -> plainSchemaDAO.findByKeyword(k)).
+ orElseGet(() -> plainSchemaDAO.findAll())
: plainSchemaDAO.findByAnyTypeClasses(classes)).stream().
map(schema -> (T) binder.getPlainSchemaTO(schema.getKey())).collect(Collectors.toList());
}
@@ -233,31 +230,25 @@ public class SchemaLogic extends AbstractTransactionalLogic<SchemaTO> {
switch (schemaType) {
case VIRTUAL:
- VirSchema virSchema = virSchemaDAO.find(schemaTO.getKey());
- if (virSchema == null) {
- throw new NotFoundException("Virtual Schema '" + schemaTO.getKey() + '\'');
- }
+ VirSchema virSchema = Optional.ofNullable(virSchemaDAO.find(schemaTO.getKey())).
+ orElseThrow(() -> new NotFoundException("Virtual Schema '" + schemaTO.getKey() + '\''));
- virSchemaDAO.save(binder.update((VirSchemaTO) schemaTO, virSchema));
+ binder.update((VirSchemaTO) schemaTO, virSchema);
break;
case DERIVED:
- DerSchema derSchema = derSchemaDAO.find(schemaTO.getKey());
- if (derSchema == null) {
- throw new NotFoundException("Derived schema '" + schemaTO.getKey() + '\'');
- }
+ DerSchema derSchema = Optional.ofNullable(derSchemaDAO.find(schemaTO.getKey())).
+ orElseThrow(() -> new NotFoundException("Derived Schema '" + schemaTO.getKey() + '\''));
- derSchemaDAO.save(binder.update((DerSchemaTO) schemaTO, derSchema));
+ binder.update((DerSchemaTO) schemaTO, derSchema);
break;
case PLAIN:
default:
- PlainSchema plainSchema = plainSchemaDAO.find(schemaTO.getKey());
- if (plainSchema == null) {
- throw new NotFoundException("Schema '" + schemaTO.getKey() + '\'');
- }
+ PlainSchema plainSchema = Optional.ofNullable(plainSchemaDAO.find(schemaTO.getKey())).
+ orElseThrow(() -> new NotFoundException("Plain Schema '" + schemaTO.getKey() + '\''));
- plainSchemaDAO.save(binder.update((PlainSchemaTO) schemaTO, plainSchema));
+ binder.update((PlainSchemaTO) schemaTO, plainSchema);
}
}
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Schema.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Schema.java
index ec80bae1cf..bb271b1b4a 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Schema.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Schema.java
@@ -18,8 +18,8 @@
*/
package org.apache.syncope.core.persistence.api.entity;
-import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.Optional;
import org.apache.syncope.common.lib.types.AttrSchemaType;
@@ -39,9 +39,7 @@ public interface Schema extends ProvidedKeyEntity {
boolean isUniqueConstraint();
- boolean add(SchemaLabel label);
+ Optional<String> getLabel(Locale locale);
- Optional<? extends SchemaLabel> getLabel(Locale locale);
-
- List<? extends SchemaLabel> getLabels();
+ Map<Locale, String> getLabels();
}
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SchemaLabel.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SchemaLabel.java
deleted file mode 100644
index 1ba2f7c5f4..0000000000
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/SchemaLabel.java
+++ /dev/null
@@ -1,36 +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.
- */
-package org.apache.syncope.core.persistence.api.entity;
-
-import java.util.Locale;
-
-public interface SchemaLabel extends Entity {
-
- Schema getSchema();
-
- void setSchema(Schema schema);
-
- Locale getLocale();
-
- void setLocale(Locale locale);
-
- String getDisplay();
-
- void setDisplay(String display);
-}
diff --git a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
index 942bf5e987..bd3532be8a 100644
--- a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
@@ -132,17 +132,12 @@ under the License.
<PlainSchema id="loginDate" type="Date" anyTypeClass_id="other"
mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"
conversionPattern="yyyy-MM-dd"/>
- <SyncopeSchema id="firstname"/>
+ <SyncopeSchema id="firstname" labels='{"en":"Firstname","it":"Nome","pt_BR":"Nome"}'/>
<PlainSchema id="firstname" type="String" anyTypeClass_id="minimal user"
mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
- <SchemaLabel id="d90f90d0-cf15-407e-bac7-d46a8eb57c05" schema_id="firstname" locale="en" display="Firstname"/>
- <SchemaLabel id="a9465ef0-b8b4-4af4-840d-77031a6b54a0" schema_id="firstname" locale="it" display="Nome"/>
- <SchemaLabel id="ac8b7383-62df-490d-9364-88dbd3d301aa" schema_id="firstname" locale="pt_BR" display="Nome"/>
- <SyncopeSchema id="surname"/>
+ <SyncopeSchema id="surname" labels='{"en":"Surname","it":"Cognome"}'/>
<PlainSchema id="surname" type="String" anyTypeClass_id="minimal user"
mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
- <SchemaLabel id="69712058-162a-4e2a-b07e-c78d82dc286d" schema_id="surname" locale="en" display="Surname"/>
- <SchemaLabel id="77e7bbbb-d30c-47e1-b6d2-e0a9e8c11fe2" schema_id="surname" locale="it" display="Cognome"/>
<SyncopeSchema id="ctype"/>
<PlainSchema id="ctype" type="String" anyTypeClass_id="other"
mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerSchemaDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerSchemaDAO.java
index 555f538b81..9bd1393e95 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerSchemaDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerSchemaDAO.java
@@ -72,8 +72,9 @@ public class JPADerSchemaDAO extends AbstractDAO<DerSchema> implements DerSchema
}
@Override
- public DerSchema save(final DerSchema derSchema) {
- return entityManager().merge(derSchema);
+ public DerSchema save(final DerSchema schema) {
+ ((JPADerSchema) schema).map2json();
+ return entityManager().merge(schema);
}
@Override
@@ -83,8 +84,6 @@ public class JPADerSchemaDAO extends AbstractDAO<DerSchema> implements DerSchema
return;
}
- schema.getLabels().forEach(label -> label.setSchema(null));
-
resourceDAO.deleteMapping(key);
if (schema.getAnyTypeClass() != null) {
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainSchemaDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainSchemaDAO.java
index f84e82f928..6734b99105 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainSchemaDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainSchemaDAO.java
@@ -126,6 +126,7 @@ public class JPAPlainSchemaDAO extends AbstractDAO<PlainSchema> implements Plain
@Override
public PlainSchema save(final PlainSchema schema) {
+ ((JPAPlainSchema) schema).map2json();
return entityManager().merge(schema);
}
@@ -143,8 +144,6 @@ public class JPAPlainSchemaDAO extends AbstractDAO<PlainSchema> implements Plain
return;
}
- schema.getLabels().forEach(label -> label.setSchema(null));
-
deleteAttrs(schema);
resourceDAO.deleteMapping(key);
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java
index 9452c685e5..8c7a124115 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java
@@ -104,8 +104,9 @@ public class JPAVirSchemaDAO extends AbstractDAO<VirSchema> implements VirSchema
}
@Override
- public VirSchema save(final VirSchema virSchema) {
- return entityManager().merge(virSchema);
+ public VirSchema save(final VirSchema schema) {
+ ((JPAVirSchema) schema).map2json();
+ return entityManager().merge(schema);
}
@Override
@@ -115,8 +116,6 @@ public class JPAVirSchemaDAO extends AbstractDAO<VirSchema> implements VirSchema
return;
}
- schema.getLabels().forEach(label -> label.setSchema(null));
-
resourceDAO.deleteMapping(key);
if (schema.getAnyTypeClass() != null) {
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractSchema.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractSchema.java
index 6b66e51fbd..0e76189815 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractSchema.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractSchema.java
@@ -18,21 +18,26 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
-import java.util.ArrayList;
-import java.util.List;
+import com.fasterxml.jackson.core.type.TypeReference;
+import java.util.HashMap;
import java.util.Locale;
+import java.util.Map;
import java.util.Optional;
import javax.persistence.Cacheable;
-import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
-import javax.persistence.OneToMany;
+import javax.persistence.Lob;
+import javax.persistence.PostLoad;
+import javax.persistence.PostPersist;
+import javax.persistence.PostUpdate;
+import javax.persistence.PrePersist;
+import javax.persistence.PreUpdate;
import javax.persistence.Table;
+import javax.persistence.Transient;
import org.apache.syncope.core.persistence.api.entity.Schema;
-import org.apache.syncope.core.persistence.api.entity.SchemaLabel;
import org.apache.syncope.core.persistence.jpa.validation.entity.SchemaKeyCheck;
+import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@@ -41,26 +46,53 @@ import org.apache.syncope.core.persistence.jpa.validation.entity.SchemaKeyCheck;
@SchemaKeyCheck
public abstract class AbstractSchema extends AbstractProvidedKeyEntity implements Schema {
+ private static final long serialVersionUID = -9222344997225831269L;
+
public static final String TABLE = "SyncopeSchema";
- private static final long serialVersionUID = -9222344997225831269L;
+ protected static final TypeReference<HashMap<Locale, String>> LABEL_TYPEREF =
+ new TypeReference<HashMap<Locale, String>>() {
+ };
- @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY, mappedBy = "schema")
- private List<JPASchemaLabel> labels = new ArrayList<>();
+ @Lob
+ private String labels;
+
+ @Transient
+ private Map<Locale, String> labelMap = new HashMap<>();
@Override
- public boolean add(final SchemaLabel label) {
- checkType(label, JPASchemaLabel.class);
- return this.labels.add((JPASchemaLabel) label);
+ public Optional<String> getLabel(final Locale locale) {
+ return Optional.ofNullable(labelMap.get(locale));
}
@Override
- public Optional<? extends SchemaLabel> getLabel(final Locale locale) {
- return labels.stream().filter(label -> label.getLocale().equals(locale)).findFirst();
+ public Map<Locale, String> getLabels() {
+ return labelMap;
}
- @Override
- public List<? extends SchemaLabel> getLabels() {
- return labels;
+ protected void json2map(final boolean clearFirst) {
+ if (clearFirst) {
+ getLabels().clear();
+ }
+ if (labels != null) {
+ getLabels().putAll(POJOHelper.deserialize(labels, LABEL_TYPEREF));
+ }
+ }
+
+ @PostLoad
+ public void postLoad() {
+ json2map(false);
+ }
+
+ @PostPersist
+ @PostUpdate
+ public void postSave() {
+ json2map(true);
+ }
+
+ @PrePersist
+ @PreUpdate
+ public void map2json() {
+ labels = POJOHelper.serialize(getLabels());
}
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
index 4798a2c919..0c35c840c7 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
@@ -51,7 +51,6 @@ import org.apache.syncope.core.persistence.api.entity.ReportExec;
import org.apache.syncope.core.persistence.api.entity.ReportTemplate;
import org.apache.syncope.core.persistence.api.entity.Role;
import org.apache.syncope.core.persistence.api.entity.SRARoute;
-import org.apache.syncope.core.persistence.api.entity.SchemaLabel;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.am.AttrRepo;
import org.apache.syncope.core.persistence.api.entity.am.AuthModule;
@@ -231,8 +230,6 @@ public class JPAEntityFactory implements EntityFactory {
result = (E) new JPAConnInstance();
} else if (reference.equals(ExternalResource.class)) {
result = (E) new JPAExternalResource();
- } else if (reference.equals(SchemaLabel.class)) {
- result = (E) new JPASchemaLabel();
} else if (reference.equals(PlainSchema.class)) {
result = (E) new JPAPlainSchema();
} else if (reference.equals(APlainAttr.class)) {
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASchemaLabel.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASchemaLabel.java
deleted file mode 100644
index 53330b150b..0000000000
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASchemaLabel.java
+++ /dev/null
@@ -1,78 +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.
- */
-package org.apache.syncope.core.persistence.jpa.entity;
-
-import java.util.Locale;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-import javax.persistence.UniqueConstraint;
-import org.apache.syncope.core.persistence.api.entity.Schema;
-import org.apache.syncope.core.persistence.api.entity.SchemaLabel;
-
-@Entity
-@Table(name = JPASchemaLabel.TABLE, uniqueConstraints =
- @UniqueConstraint(columnNames = { "schema_id", "locale" }))
-public class JPASchemaLabel extends AbstractGeneratedKeyEntity implements SchemaLabel {
-
- public static final String TABLE = "SchemaLabel";
-
- private static final long serialVersionUID = -546019894866607764L;
-
- @ManyToOne
- private AbstractSchema schema;
-
- @Column(nullable = false)
- private Locale locale;
-
- @Column(nullable = false)
- private String display;
-
- @Override
- public AbstractSchema getSchema() {
- return schema;
- }
-
- @Override
- public void setSchema(final Schema schema) {
- checkType(schema, AbstractSchema.class);
- this.schema = (AbstractSchema) schema;
- }
-
- @Override
- public Locale getLocale() {
- return locale;
- }
-
- @Override
- public void setLocale(final Locale locale) {
- this.locale = locale;
- }
-
- @Override
- public String getDisplay() {
- return display;
- }
-
- @Override
- public void setDisplay(final String display) {
- this.display = display;
- }
-}
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
index 388e4369cd..b993a85f61 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
@@ -41,10 +41,8 @@ import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
-import org.apache.syncope.core.persistence.api.entity.SchemaLabel;
import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
import org.apache.syncope.core.persistence.jpa.AbstractTest;
-import org.apache.syncope.core.persistence.jpa.entity.JPASchemaLabel;
import org.apache.syncope.core.spring.security.SyncopeAuthenticationDetails;
import org.apache.syncope.core.spring.security.SyncopeGrantedAuthority;
import org.junit.jupiter.api.AfterAll;
@@ -167,9 +165,6 @@ public class PlainSchemaTest extends AbstractTest {
assertFalse(mapItems.isEmpty());
// check for labels
- List<SchemaLabel> labels = entityManager().createQuery(
- "SELECT e FROM " + JPASchemaLabel.class.getSimpleName() + " e", SchemaLabel.class).getResultList();
- assertEquals(5, labels.size());
assertEquals(2, schema.getLabels().size());
// delete user schema surname
@@ -180,10 +175,6 @@ public class PlainSchemaTest extends AbstractTest {
// check for schema deletion
schema = plainSchemaDAO.find("surname");
assertNull(schema);
-
- labels = entityManager().createQuery(
- "SELECT e FROM " + JPASchemaLabel.class.getSimpleName() + " e", SchemaLabel.class).getResultList();
- assertEquals(3, labels.size());
}
@Test
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index eede6391c0..2068736e3c 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -307,17 +307,12 @@ under the License.
<PlainSchema id="loginDate" type="Date" anyTypeClass_id="other"
mandatoryCondition="false" multivalue="1" uniqueConstraint="0" readonly="0"
conversionPattern="yyyy-MM-dd"/>
- <SyncopeSchema id="firstname"/>
+ <SyncopeSchema id="firstname" labels='{"en":"Firstname","it":"Nome","pt_BR":"Nome"}'/>
<PlainSchema id="firstname" type="String" anyTypeClass_id="minimal user"
mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
- <SchemaLabel id="d90f90d0-cf15-407e-bac7-d46a8eb57c05" schema_id="firstname" locale="en" display="Firstname"/>
- <SchemaLabel id="a9465ef0-b8b4-4af4-840d-77031a6b54a0" schema_id="firstname" locale="it" display="Nome"/>
- <SchemaLabel id="ac8b7383-62df-490d-9364-88dbd3d301aa" schema_id="firstname" locale="pt_BR" display="Nome"/>
- <SyncopeSchema id="surname"/>
+ <SyncopeSchema id="surname" labels='{"en":"Surname","it":"Cognome"}'/>
<PlainSchema id="surname" type="String" anyTypeClass_id="minimal user"
mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
- <SchemaLabel id="69712058-162a-4e2a-b07e-c78d82dc286d" schema_id="surname" locale="en" display="Surname"/>
- <SchemaLabel id="77e7bbbb-d30c-47e1-b6d2-e0a9e8c11fe2" schema_id="surname" locale="it" display="Cognome"/>
<SyncopeSchema id="ctype"/>
<PlainSchema id="ctype" type="String" anyTypeClass_id="other"
mandatoryCondition="false" multivalue="0" uniqueConstraint="0" readonly="0"/>
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
index 89ceae71cc..fc7bcd71db 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SchemaDataBinderImpl.java
@@ -18,14 +18,12 @@
*/
package org.apache.syncope.core.provisioning.java.data;
-import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.DerSchemaTO;
import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.to.Provision;
-import org.apache.syncope.common.lib.to.SchemaTO;
import org.apache.syncope.common.lib.to.VirSchemaTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ClientExceptionType;
@@ -46,8 +44,6 @@ import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.apache.syncope.core.persistence.api.entity.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
-import org.apache.syncope.core.persistence.api.entity.Schema;
-import org.apache.syncope.core.persistence.api.entity.SchemaLabel;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.provisioning.api.data.SchemaDataBinder;
import org.apache.syncope.core.provisioning.api.jexl.JexlUtils;
@@ -98,26 +94,6 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
this.anyUtilsFactory = anyUtilsFactory;
}
- protected <S extends Schema, T extends SchemaTO> void labels(final T src, final S dst) {
- src.getLabels().forEach((locale, display) -> {
- SchemaLabel label = dst.getLabel(locale).orElse(null);
- if (label == null) {
- label = entityFactory.newEntity(SchemaLabel.class);
- label.setLocale(locale);
- label.setSchema(dst);
- dst.add(label);
- }
- label.setDisplay(display);
- });
-
- dst.getLabels().removeIf(label -> !src.getLabels().containsKey(label.getLocale()));
- }
-
- protected static <S extends Schema, T extends SchemaTO> void labels(final S src, final T dst) {
- dst.getLabels().putAll(src.getLabels().stream().
- collect(Collectors.toMap(SchemaLabel::getLocale, SchemaLabel::getDisplay)));
- }
-
// --------------- PLAIN -----------------
protected PlainSchema fill(final PlainSchema schema, final PlainSchemaTO schemaTO) {
if (!JexlUtils.isExpressionValid(schemaTO.getMandatoryCondition())) {
@@ -139,8 +115,9 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
schema.setSecretKey(schemaTO.getSecretKey());
schema.setUniqueConstraint(schemaTO.isUniqueConstraint());
- labels(schemaTO, schema);
-
+ schema.getLabels().clear();
+ schema.getLabels().putAll(schemaTO.getLabels());
+
if (schemaTO.getValidator() == null) {
schema.setValidator(null);
} else {
@@ -232,9 +209,7 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
schemaTO.setReadonly(schema.isReadonly());
schemaTO.setSecretKey(schema.getSecretKey());
schemaTO.setUniqueConstraint(schema.isUniqueConstraint());
-
- labels(schema, schemaTO);
-
+ schemaTO.getLabels().putAll(schema.getLabels());
schemaTO.setAnyTypeClass(schema.getAnyTypeClass() == null ? null : schema.getAnyTypeClass().getKey());
if (schema.getValidator() != null) {
schemaTO.setValidator(schema.getValidator().getKey());
@@ -267,7 +242,8 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
schema.setKey(schemaTO.getKey());
schema.setExpression(schemaTO.getExpression());
- labels(schemaTO, schema);
+ schema.getLabels().clear();
+ schema.getLabels().putAll(schemaTO.getLabels());
DerSchema merged = derSchemaDAO.save(schema);
@@ -311,11 +287,8 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
DerSchemaTO schemaTO = new DerSchemaTO();
schemaTO.setKey(schema.getKey());
schemaTO.setExpression(schema.getExpression());
-
- labels(schema, schemaTO);
-
+ schemaTO.getLabels().putAll(schema.getLabels());
schemaTO.setAnyTypeClass(schema.getAnyTypeClass() == null ? null : schema.getAnyTypeClass().getKey());
-
return schemaTO;
}
@@ -325,7 +298,8 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
schema.setExtAttrName(schemaTO.getExtAttrName());
schema.setReadonly(schemaTO.isReadonly());
- labels(schemaTO, schema);
+ schema.getLabels().clear();
+ schema.getLabels().putAll(schemaTO.getLabels());
if (schemaTO.getAnyTypeClass() != null
&& (schema.getAnyTypeClass() == null
@@ -390,13 +364,10 @@ public class SchemaDataBinderImpl implements SchemaDataBinder {
schemaTO.setKey(schema.getKey());
schemaTO.setExtAttrName(schema.getExtAttrName());
schemaTO.setReadonly(schema.isReadonly());
-
- labels(schema, schemaTO);
-
+ schemaTO.getLabels().putAll(schema.getLabels());
schemaTO.setAnyTypeClass(schema.getAnyTypeClass() == null ? null : schema.getAnyTypeClass().getKey());
schemaTO.setResource(schema.getResource().getKey());
schemaTO.setAnyType(schema.getAnyType().getKey());
-
return schemaTO;
}
}
diff --git a/pom.xml b/pom.xml
index a9fc156de4..4387cec393 100644
--- a/pom.xml
+++ b/pom.xml
@@ -432,7 +432,7 @@ under the License.
<slf4j.version>1.7.36</slf4j.version>
- <elasticsearch.version>8.5.1</elasticsearch.version>
+ <elasticsearch.version>8.5.2</elasticsearch.version>
<apacheds.version>2.0.0.AM26</apacheds.version>
<apachedirapi.version>2.0.0</apachedirapi.version>