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 2015/10/22 14:27:00 UTC
[06/10] syncope git commit: [SYNCOPE-709] Refactoring completed
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/UVirAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/UVirAttr.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/UVirAttr.java
deleted file mode 100644
index bb3ab70..0000000
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/UVirAttr.java
+++ /dev/null
@@ -1,25 +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.user;
-
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
-
-public interface UVirAttr extends VirAttr<User> {
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
index 884e849..0a51c48 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/user/User.java
@@ -26,7 +26,7 @@ import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.RelationshipType;
import org.apache.syncope.core.persistence.api.entity.Role;
-public interface User extends Any<UPlainAttr, UDerAttr, UVirAttr> {
+public interface User extends Any<UPlainAttr, UDerAttr> {
String getUsername();
@@ -116,18 +116,6 @@ public interface User extends Any<UPlainAttr, UDerAttr, UVirAttr> {
@Override
List<? extends UDerAttr> getDerAttrs();
- @Override
- boolean add(UVirAttr attr);
-
- @Override
- boolean remove(UVirAttr virAttr);
-
- @Override
- UVirAttr getVirAttr(String virSchemaName);
-
- @Override
- List<? extends UVirAttr> getVirAttrs();
-
boolean add(Role role);
boolean remove(Role role);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
index edd430e..125b447 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
@@ -27,7 +27,7 @@ import java.util.Map;
import javax.sql.DataSource;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
-import org.apache.syncope.core.misc.DataFormat;
+import org.apache.syncope.core.misc.FormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DataAccessException;
@@ -125,7 +125,7 @@ class ContentLoaderHandler extends DefaultHandler {
case Types.TIME:
case Types.TIMESTAMP:
try {
- parameters[i] = DataFormat.parseDate(attrs.getValue(i));
+ parameters[i] = FormatUtils.parseDate(attrs.getValue(i));
} catch (ParseException e) {
LOG.error("Unparsable Date '{}'", attrs.getValue(i));
parameters[i] = attrs.getValue(i);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index 17f4bce..9512849 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -50,7 +50,7 @@ import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.core.misc.DataFormat;
+import org.apache.syncope.core.misc.FormatUtils;
import org.apache.syncope.core.misc.spring.ApplicationContextProvider;
import org.apache.syncope.core.persistence.api.content.ContentExporter;
import org.apache.syncope.core.persistence.jpa.entity.JPAReportExec;
@@ -60,7 +60,6 @@ import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttrValue;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAARelationship;
-import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAnyObject;
import org.apache.syncope.core.persistence.jpa.entity.task.JPATaskExec;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUDerAttr;
@@ -69,7 +68,6 @@ import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttrValue;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAURelationship;
-import org.apache.syncope.core.persistence.jpa.entity.user.JPAUVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.security.crypto.codec.Hex;
@@ -87,9 +85,9 @@ public class XMLContentExporter extends AbstractContentDealer implements Content
new HashSet<>(Arrays.asList(new String[] {
"QRTZ_", "LOGGING", JPAReportExec.TABLE, JPATaskExec.TABLE,
JPAUser.TABLE, JPAUPlainAttr.TABLE, JPAUPlainAttrValue.TABLE, JPAUPlainAttrUniqueValue.TABLE,
- JPAUDerAttr.TABLE, JPAUVirAttr.TABLE,
+ JPAUDerAttr.TABLE,
JPAAnyObject.TABLE, JPAAPlainAttr.TABLE, JPAAPlainAttrValue.TABLE, JPAAPlainAttrUniqueValue.TABLE,
- JPAADerAttr.TABLE, JPAAVirAttr.TABLE,
+ JPAADerAttr.TABLE,
JPAARelationship.TABLE, JPAAMembership.TABLE, JPAURelationship.TABLE, JPAUMembership.TABLE
}));
@@ -206,7 +204,7 @@ public class XMLContentExporter extends AbstractContentDealer implements Content
case Types.TIMESTAMP:
final Timestamp timestamp = rs.getTimestamp(columnName);
if (timestamp != null) {
- res = DataFormat.format(new Date(timestamp.getTime()));
+ res = FormatUtils.format(new Date(timestamp.getTime()));
}
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
index 95f5b4e..960251f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnyDAO.java
@@ -47,14 +47,13 @@ import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.DerSchema;
import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttrValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-public abstract class AbstractAnyDAO<A extends Any<?, ?, ?>> extends AbstractDAO<A, Long> implements AnyDAO<A> {
+public abstract class AbstractAnyDAO<A extends Any<?, ?>> extends AbstractDAO<A, Long> implements AnyDAO<A> {
@Autowired
protected PlainSchemaDAO plainSchemaDAO;
@@ -415,13 +414,7 @@ public abstract class AbstractAnyDAO<A extends Any<?, ?, ?>> extends AbstractDAO
@Override
public A save(final A any) {
- A merged = entityManager().merge(any);
- for (VirAttr<?> virAttr : merged.getVirAttrs()) {
- virAttr.getValues().clear();
- virAttr.getValues().addAll(any.getVirAttr(virAttr.getSchema().getKey()).getValues());
- }
-
- return merged;
+ return entityManager().merge(any);
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index 2b422eb..2acd683 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -67,7 +67,7 @@ import org.springframework.stereotype.Repository;
import org.springframework.util.ReflectionUtils;
@Repository
-public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements AnySearchDAO {
+public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?>, Long> implements AnySearchDAO {
private static final String EMPTY_ATTR_QUERY = "SELECT any_id FROM user_search_attr WHERE 1=2";
@@ -150,14 +150,14 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
}
@Override
- public <T extends Any<?, ?, ?>> List<T> search(
+ public <T extends Any<?, ?>> List<T> search(
final Set<String> adminRealms, final SearchCond searchCondition, final AnyTypeKind typeKind) {
return search(adminRealms, searchCondition, Collections.<OrderByClause>emptyList(), typeKind);
}
@Override
- public <T extends Any<?, ?, ?>> List<T> search(
+ public <T extends Any<?, ?>> List<T> search(
final Set<String> adminRealms, final SearchCond searchCondition, final List<OrderByClause> orderBy,
final AnyTypeKind typeKind) {
@@ -165,7 +165,7 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
}
@Override
- public <T extends Any<?, ?, ?>> List<T> search(
+ public <T extends Any<?, ?>> List<T> search(
final Set<String> adminRealms, final SearchCond searchCondition, final int page, final int itemsPerPage,
final List<OrderByClause> orderBy, final AnyTypeKind typeKind) {
@@ -189,7 +189,7 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
}
@Override
- public <T extends Any<?, ?, ?>> boolean matches(
+ public <T extends Any<?, ?>> boolean matches(
final T any, final SearchCond searchCondition, final AnyTypeKind typeKind) {
List<Object> parameters = Collections.synchronizedList(new ArrayList<>());
@@ -347,7 +347,7 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
}
@SuppressWarnings("unchecked")
- private <T extends Any<?, ?, ?>> List<T> doSearch(final Set<String> adminRealms,
+ private <T extends Any<?, ?>> List<T> doSearch(final Set<String> adminRealms,
final SearchCond nodeCond, final int page, final int itemsPerPage, final List<OrderByClause> orderBy,
final AnyTypeKind typeKind) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerAttrDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerAttrDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerAttrDAO.java
index 8dff203..99b9014 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerAttrDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPADerAttrDAO.java
@@ -78,7 +78,7 @@ public class JPADerAttrDAO extends AbstractDAO<DerAttr<?>, Long> implements DerA
@SuppressWarnings("unchecked")
public <T extends DerAttr<?>> void delete(final T derAttr) {
if (derAttr.getOwner() != null) {
- ((Any<?, T, ?>) derAttr.getOwner()).remove(derAttr);
+ ((Any<?, T>) derAttr.getOwner()).remove(derAttr);
}
entityManager().remove(derAttr);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
index 3905d92..0650ee9 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
@@ -32,10 +32,12 @@ import org.apache.syncope.core.persistence.api.dao.PolicyDAO;
import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.dao.TaskDAO;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
+import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.Policy;
+import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
@@ -43,6 +45,7 @@ import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMappingItem;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResource;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMapping;
+import org.apache.syncope.core.persistence.jpa.entity.resource.JPAProvision;
import org.apache.syncope.core.provisioning.api.ConnectorRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -67,6 +70,9 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource, String
private PolicyDAO policyDAO;
@Autowired
+ private VirSchemaDAO virSchemaDAO;
+
+ @Autowired
private ConnectorRegistry connRegistry;
@Override
@@ -74,6 +80,11 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource, String
return entityManager().find(JPAExternalResource.class, name);
}
+ @Override
+ public Provision findProvision(final Long key) {
+ return entityManager().find(JPAProvision.class, key);
+ }
+
private StringBuilder getByPolicyQuery(final PolicyType type) {
StringBuilder query = new StringBuilder("SELECT e FROM ").
append(JPAExternalResource.class.getSimpleName()).
@@ -203,13 +214,6 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource, String
policy.remove(resource);
}
- if (resource.getConnector() != null && resource.getConnector().getResources() != null
- && !resource.getConnector().getResources().isEmpty()) {
-
- resource.getConnector().getResources().remove(resource);
- }
- resource.setConnector(null);
-
for (Provision provision : resource.getProvisions()) {
for (MappingItem item : provision.getMapping().getItems()) {
item.setMapping(null);
@@ -217,7 +221,18 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource, String
provision.getMapping().getItems().clear();
provision.setMapping(null);
provision.setResource(null);
+
+ for (VirSchema schema : virSchemaDAO.findByProvision(provision)) {
+ virSchemaDAO.delete(schema.getKey());
+ }
+ }
+
+ if (resource.getConnector() != null && resource.getConnector().getResources() != null
+ && !resource.getConnector().getResources().isEmpty()) {
+
+ resource.getConnector().getResources().remove(resource);
}
+ resource.setConnector(null);
entityManager().remove(resource);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
index 652c1f7..4c29c90 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
@@ -203,7 +203,7 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
}
private void populateTransitiveResources(
- final Group group, final Any<?, ?, ?> any, final Map<Long, PropagationByResource> result) {
+ final Group group, final Any<?, ?> any, final Map<Long, PropagationByResource> result) {
PropagationByResource propByRes = new PropagationByResource();
for (ExternalResource resource : group.getResources()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrDAO.java
index d21d1f3..cec3d5b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrDAO.java
@@ -68,7 +68,7 @@ public class JPAPlainAttrDAO extends AbstractDAO<PlainAttr<?>, Long> implements
@SuppressWarnings("unchecked")
public <T extends PlainAttr<?>> void delete(final T plainAttr) {
if (plainAttr.getOwner() != null) {
- ((Any<T, ?, ?>) plainAttr.getOwner()).remove(plainAttr);
+ ((Any<T, ?>) plainAttr.getOwner()).remove(plainAttr);
}
entityManager().remove(plainAttr);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrValueDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrValueDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrValueDAO.java
index 312d6fc..60f3786 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrValueDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPlainAttrValueDAO.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.List;
import javax.persistence.TypedQuery;
import org.apache.syncope.core.persistence.api.dao.PlainAttrValueDAO;
+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.anyobject.APlainAttrUniqueValue;
import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttrValue;
@@ -99,7 +100,11 @@ public class JPAPlainAttrValueDAO extends AbstractDAO<PlainAttrValue, Long> impl
@Override
public <T extends PlainAttrValue> void delete(final T attrValue) {
if (attrValue.getAttr() != null) {
- attrValue.getAttr().remove(attrValue);
+ if (attrValue instanceof PlainAttrUniqueValue) {
+ attrValue.getAttr().setUniqueValue(null);
+ } else {
+ attrValue.getAttr().remove(attrValue);
+ }
}
entityManager().remove(attrValue);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirAttrDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirAttrDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirAttrDAO.java
deleted file mode 100644
index 2c8b99f..0000000
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirAttrDAO.java
+++ /dev/null
@@ -1,86 +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.dao;
-
-import java.util.List;
-import javax.persistence.TypedQuery;
-import org.apache.syncope.core.persistence.api.dao.VirAttrDAO;
-import org.apache.syncope.core.persistence.api.entity.Any;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AVirAttr;
-import org.apache.syncope.core.persistence.api.entity.group.GVirAttr;
-import org.apache.syncope.core.persistence.api.entity.user.UVirAttr;
-import org.apache.syncope.core.persistence.jpa.entity.AbstractVirAttr;
-import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAVirAttr;
-import org.apache.syncope.core.persistence.jpa.entity.group.JPAGVirAttr;
-import org.apache.syncope.core.persistence.jpa.entity.user.JPAUVirAttr;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class JPAVirAttrDAO extends AbstractDAO<VirAttr<?>, Long> implements VirAttrDAO {
-
- public <T extends VirAttr<?>> Class<? extends AbstractVirAttr<?>> getJPAEntityReference(
- final Class<T> reference) {
-
- return GVirAttr.class.isAssignableFrom(reference)
- ? JPAGVirAttr.class
- : AVirAttr.class.isAssignableFrom(reference)
- ? JPAAVirAttr.class
- : UVirAttr.class.isAssignableFrom(reference)
- ? JPAUVirAttr.class
- : null;
- }
-
- @Override
- public <T extends VirAttr<?>> T find(final Long key, final Class<T> reference) {
- return reference.cast(entityManager().find(getJPAEntityReference(reference), key));
- }
-
- @Override
- public <T extends VirAttr<?>> List<T> findAll(final Class<T> reference) {
- TypedQuery<T> query = entityManager().createQuery(
- "SELECT e FROM " + getJPAEntityReference(reference).getSimpleName() + " e", reference);
- return query.getResultList();
- }
-
- @Override
- public <T extends VirAttr<?>> T save(final T virAttr) {
- return entityManager().merge(virAttr);
- }
-
- @Override
- public <T extends VirAttr<?>> void delete(final Long key, final Class<T> reference) {
- T virAttr = find(key, reference);
- if (virAttr == null) {
- return;
- }
-
- delete(virAttr);
- }
-
- @Override
- @SuppressWarnings("unchecked")
- public <T extends VirAttr<?>> void delete(final T virAttr) {
- if (virAttr.getOwner() != null) {
- ((Any<?, ?, T>) virAttr.getOwner()).remove(virAttr);
- }
-
- entityManager().remove(virAttr);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAVirSchemaDAO.java
----------------------------------------------------------------------
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 46a06f6..d4bce14 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
@@ -18,17 +18,18 @@
*/
package org.apache.syncope.core.persistence.jpa.dao;
+import java.util.Collections;
import java.util.List;
import javax.persistence.TypedQuery;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.dao.VirAttrDAO;
import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
+import org.apache.syncope.core.persistence.api.entity.Attr;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
+import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.jpa.entity.JPAAnyUtilsFactory;
import org.apache.syncope.core.persistence.jpa.entity.JPAVirSchema;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,9 +39,6 @@ import org.springframework.stereotype.Repository;
public class JPAVirSchemaDAO extends AbstractDAO<VirSchema, String> implements VirSchemaDAO {
@Autowired
- private VirAttrDAO virAttrDAO;
-
- @Autowired
private ExternalResourceDAO resourceDAO;
@Override
@@ -61,6 +59,18 @@ public class JPAVirSchemaDAO extends AbstractDAO<VirSchema, String> implements V
}
@Override
+ public List<VirSchema> findByProvision(final Provision provision) {
+ StringBuilder queryString = new StringBuilder("SELECT e FROM ").
+ append(JPAVirSchema.class.getSimpleName()).
+ append(" e WHERE e.provision=:provision");
+
+ TypedQuery<VirSchema> query = entityManager().createQuery(queryString.toString(), VirSchema.class);
+ query.setParameter("provision", provision);
+
+ return query.getResultList();
+ }
+
+ @Override
public List<VirSchema> findAll() {
TypedQuery<VirSchema> query = entityManager().createQuery(
"SELECT e FROM " + JPAVirSchema.class.getSimpleName() + " e", VirSchema.class);
@@ -68,15 +78,8 @@ public class JPAVirSchemaDAO extends AbstractDAO<VirSchema, String> implements V
}
@Override
- public <T extends VirAttr<?>> List<T> findAttrs(final VirSchema schema, final Class<T> reference) {
- final StringBuilder queryString = new StringBuilder("SELECT e FROM ").
- append(((JPAVirAttrDAO) virAttrDAO).getJPAEntityReference(reference).getSimpleName()).
- append(" e WHERE e.schema=:schema");
-
- TypedQuery<T> query = entityManager().createQuery(queryString.toString(), reference);
- query.setParameter("schema", schema);
-
- return query.getResultList();
+ public <T extends Attr<VirSchema, ?>> List<T> findAttrs(final VirSchema schema, final Class<T> reference) {
+ return Collections.emptyList();
}
@Override
@@ -95,10 +98,6 @@ public class JPAVirSchemaDAO extends AbstractDAO<VirSchema, String> implements V
for (AnyTypeKind anyTypeKind : AnyTypeKind.values()) {
AnyUtils anyUtils = anyUtilsFactory.getInstance(anyTypeKind);
- for (VirAttr<?> attr : findAttrs(schema, anyUtils.virAttrClass())) {
- virAttrDAO.delete(attr.getKey(), anyUtils.virAttrClass());
- }
-
resourceDAO.deleteMapping(key, anyUtils.virIntMappingType());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
index 2e344b0..041c54f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
@@ -39,7 +39,6 @@ import org.apache.syncope.core.persistence.api.entity.DerSchema;
import org.apache.syncope.core.persistence.api.entity.PlainAttr;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.anyobject.AMembership;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
@@ -49,9 +48,9 @@ import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.User;
@MappedSuperclass
-public abstract class AbstractAny<P extends PlainAttr<?>, D extends DerAttr<?>, V extends VirAttr<?>>
+public abstract class AbstractAny<P extends PlainAttr<?>, D extends DerAttr<?>>
extends AbstractAnnotatedEntity<Long>
- implements Any<P, D, V> {
+ implements Any<P, D> {
private static final long serialVersionUID = -2666540708092702810L;
@@ -127,18 +126,6 @@ public abstract class AbstractAny<P extends PlainAttr<?>, D extends DerAttr<?>,
});
}
- @Override
- public V getVirAttr(final String virSchemaName) {
- return CollectionUtils.find(getVirAttrs(), new Predicate<V>() {
-
- @Override
- public boolean evaluate(final V virAttr) {
- return virAttr != null && virAttr.getSchema() != null
- && virSchemaName.equals(virAttr.getSchema().getKey());
- }
- });
- }
-
protected abstract List<JPAExternalResource> internalGetResources();
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAttr.java
index ec37649..694b18f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAttr.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAttr.java
@@ -28,7 +28,7 @@ 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.VirSchema;
-public abstract class AbstractAttr<S extends Schema, O extends Any<?, ?, ?>>
+public abstract class AbstractAttr<S extends Schema, O extends Any<?, ?>>
extends AbstractEntity<Long> implements Attr<S, O> {
private static final long serialVersionUID = -7722134717360731874L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDerAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDerAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDerAttr.java
index 4500a4e..59f390d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDerAttr.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDerAttr.java
@@ -30,7 +30,7 @@ import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.DerSchema;
@MappedSuperclass
-public abstract class AbstractDerAttr<O extends Any<?, ?, ?>>
+public abstract class AbstractDerAttr<O extends Any<?, ?>>
extends AbstractAttr<DerSchema, O> implements DerAttr<O> {
private static final long serialVersionUID = 4740924251090424771L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDynMembership.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDynMembership.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDynMembership.java
index c5404e9..c7110d5 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDynMembership.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractDynMembership.java
@@ -24,7 +24,7 @@ import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.DynMembership;
@MappedSuperclass
-public abstract class AbstractDynMembership<A extends Any<?, ?, ?>>
+public abstract class AbstractDynMembership<A extends Any<?, ?>>
extends AbstractEntity<Long> implements DynMembership<A> {
private static final long serialVersionUID = 921821654690948787L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
index 4bab427..fdd257e 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
@@ -37,7 +37,7 @@ import org.apache.syncope.core.persistence.jpa.validation.entity.PlainAttrCheck;
@MappedSuperclass
@PlainAttrCheck
-public abstract class AbstractPlainAttr<O extends Any<?, ?, ?>>
+public abstract class AbstractPlainAttr<O extends Any<?, ?>>
extends AbstractAttr<PlainSchema, O> implements PlainAttr<O> {
private static final long serialVersionUID = -9115431608821806124L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
index 424e6a2..7032df6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
@@ -32,11 +32,11 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.syncope.common.lib.types.AttrSchemaType;
+import org.apache.syncope.core.misc.FormatUtils;
import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidPlainAttrValueException;
import org.apache.syncope.core.persistence.api.attrvalue.validation.ParsingValidationException;
import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
-import org.apache.syncope.core.misc.DataFormat;
import org.apache.syncope.core.persistence.jpa.validation.entity.PlainAttrValueCheck;
import org.apache.syncope.core.misc.security.Encryptor;
@@ -153,7 +153,7 @@ public abstract class AbstractPlainAttrValue extends AbstractEntity<Long> implem
try {
this.setLongValue(schema.getConversionPattern() == null
? Long.valueOf(value)
- : DataFormat.parseNumber(value, schema.getConversionPattern()).longValue());
+ : FormatUtils.parseNumber(value, schema.getConversionPattern()).longValue());
} catch (Exception pe) {
exception = pe;
}
@@ -163,7 +163,7 @@ public abstract class AbstractPlainAttrValue extends AbstractEntity<Long> implem
try {
this.setDoubleValue(schema.getConversionPattern() == null
? Double.valueOf(value)
- : DataFormat.parseNumber(value, schema.getConversionPattern()).doubleValue());
+ : FormatUtils.parseNumber(value, schema.getConversionPattern()).doubleValue());
} catch (Exception pe) {
exception = pe;
}
@@ -172,8 +172,8 @@ public abstract class AbstractPlainAttrValue extends AbstractEntity<Long> implem
case Date:
try {
this.setDateValue(schema.getConversionPattern() == null
- ? DataFormat.parseDate(value)
- : new Date(DataFormat.parseDate(value, schema.getConversionPattern()).getTime()));
+ ? FormatUtils.parseDate(value)
+ : new Date(FormatUtils.parseDate(value, schema.getConversionPattern()).getTime()));
} catch (Exception pe) {
exception = pe;
}
@@ -246,21 +246,21 @@ public abstract class AbstractPlainAttrValue extends AbstractEntity<Long> implem
result = getAttr() == null || getAttr().getSchema() == null
|| getAttr().getSchema().getConversionPattern() == null
? getLongValue().toString()
- : DataFormat.format(getLongValue(), getAttr().getSchema().getConversionPattern());
+ : FormatUtils.format(getLongValue(), getAttr().getSchema().getConversionPattern());
break;
case Double:
result = getAttr() == null || getAttr().getSchema() == null
|| getAttr().getSchema().getConversionPattern() == null
? getDoubleValue().toString()
- : DataFormat.format(getDoubleValue(), getAttr().getSchema().getConversionPattern());
+ : FormatUtils.format(getDoubleValue(), getAttr().getSchema().getConversionPattern());
break;
case Date:
result = getAttr() == null || getAttr().getSchema() == null
|| getAttr().getSchema().getConversionPattern() == null
- ? DataFormat.format(getDateValue())
- : DataFormat.format(getDateValue(), false, getAttr().getSchema().
+ ? FormatUtils.format(getDateValue())
+ : FormatUtils.format(getDateValue(), false, getAttr().getSchema().
getConversionPattern());
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractVirAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractVirAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractVirAttr.java
deleted file mode 100644
index aebc8da..0000000
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractVirAttr.java
+++ /dev/null
@@ -1,71 +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.ArrayList;
-import java.util.List;
-import javax.persistence.Column;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToOne;
-import javax.persistence.MappedSuperclass;
-import javax.persistence.Transient;
-import org.apache.syncope.core.persistence.api.entity.Any;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
-import org.apache.syncope.core.persistence.api.entity.VirSchema;
-
-@MappedSuperclass
-public abstract class AbstractVirAttr<O extends Any<?, ?, ?>>
- extends AbstractAttr<VirSchema, O> implements VirAttr<O> {
-
- private static final long serialVersionUID = 5023204776925954907L;
-
- @Transient
- protected List<String> values = new ArrayList<>();
-
- @ManyToOne(fetch = FetchType.EAGER)
- @Column(name = "schema_name")
- private JPAVirSchema schema;
-
- @Override
- public List<String> getValues() {
- return values;
- }
-
- @Override
- public boolean add(final String value) {
- return !values.contains(value) && values.add(value);
- }
-
- @Override
- public boolean remove(final String value) {
- return values.remove(value);
- }
-
- @Override
- public VirSchema getSchema() {
- return schema;
- }
-
- @Override
- public void setSchema(final VirSchema schema) {
- checkType(schema, JPAVirSchema.class);
- this.schema = (JPAVirSchema) schema;
- checkSchema(this.schema);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AnnotatedEntityListener.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AnnotatedEntityListener.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AnnotatedEntityListener.java
index 4e8044d..c63a401 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AnnotatedEntityListener.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AnnotatedEntityListener.java
@@ -33,10 +33,10 @@ public class AnnotatedEntityListener {
@PrePersist
@PreUpdate
public void setSysInfo(final AnnotatedEntity<?> entity) {
- final String username = AuthContextUtils.getUsername();
+ String username = AuthContextUtils.getUsername();
LOG.debug("Set system properties for '{}'", entity);
- final Date now = new Date();
+ Date now = new Date();
if (entity.getCreationDate() == null) {
LOG.debug("Set creation date '{}' and creator '{}' for '{}'", now, username, entity);
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtils.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtils.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtils.java
index 645c60c..7de2fbe 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtils.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtils.java
@@ -29,24 +29,20 @@ import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.DerAttr;
import org.apache.syncope.core.persistence.api.entity.PlainAttr;
import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAADerAttr;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttrValue;
-import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAnyObject;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGDerAttr;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttrValue;
-import org.apache.syncope.core.persistence.jpa.entity.group.JPAGVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGroup;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUDerAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttrValue;
-import org.apache.syncope.core.persistence.jpa.entity.user.JPAUVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -64,7 +60,7 @@ public class JPAAnyUtils implements AnyUtils {
}
@Override
- public <T extends Any<?, ?, ?>> Class<T> anyClass() {
+ public <T extends Any<?, ?>> Class<T> anyClass() {
Class result;
switch (anyTypeKind) {
@@ -266,52 +262,6 @@ public class JPAAnyUtils implements AnyUtils {
}
@Override
- public <T extends VirAttr<?>> Class<T> virAttrClass() {
- Class result = null;
-
- switch (anyTypeKind) {
- case USER:
- result = JPAUVirAttr.class;
- break;
-
- case GROUP:
- result = JPAGVirAttr.class;
- break;
-
- case ANY_OBJECT:
- result = JPAAVirAttr.class;
- break;
-
- default:
- }
-
- return result;
- }
-
- @Override
- public <T extends VirAttr<?>> T newVirAttr() {
- T result = null;
-
- switch (anyTypeKind) {
- case USER:
- result = (T) new JPAUVirAttr();
- break;
-
- case GROUP:
- result = (T) new JPAGVirAttr();
- break;
-
- case ANY_OBJECT:
- result = (T) new JPAAVirAttr();
- break;
-
- default:
- }
-
- return result;
- }
-
- @Override
public IntMappingType plainIntMappingType() {
IntMappingType result = null;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtilsFactory.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtilsFactory.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtilsFactory.java
index f68b3f9..38e08b4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtilsFactory.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAAnyUtilsFactory.java
@@ -41,7 +41,7 @@ public class JPAAnyUtilsFactory implements AnyUtilsFactory {
}
@Override
- public AnyUtils getInstance(final Any<?, ?, ?> any) {
+ public AnyUtils getInstance(final Any<?, ?> any) {
AnyTypeKind type = null;
if (any instanceof User) {
type = AnyTypeKind.USER;
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAEntityFactory.java
----------------------------------------------------------------------
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 4c3b816..372e062 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
@@ -64,7 +64,6 @@ import org.apache.syncope.core.persistence.api.entity.group.GDerAttr;
import org.apache.syncope.core.persistence.api.entity.group.GPlainAttr;
import org.apache.syncope.core.persistence.api.entity.group.GPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.api.entity.group.GPlainAttrValue;
-import org.apache.syncope.core.persistence.api.entity.group.GVirAttr;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
@@ -85,7 +84,6 @@ 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.URelationship;
-import org.apache.syncope.core.persistence.api.entity.user.UVirAttr;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAADynGroupMembership;
import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAMembership;
@@ -102,7 +100,6 @@ import org.apache.syncope.core.persistence.jpa.entity.group.JPAGDerAttr;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttrValue;
-import org.apache.syncope.core.persistence.jpa.entity.group.JPAGVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.group.JPAGroup;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMapping;
import org.apache.syncope.core.persistence.jpa.entity.resource.JPAMappingItem;
@@ -122,7 +119,6 @@ import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttrUniqueValue;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttrValue;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAURelationship;
-import org.apache.syncope.core.persistence.jpa.entity.user.JPAUVirAttr;
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
import org.springframework.stereotype.Component;
@@ -202,8 +198,6 @@ public class JPAEntityFactory implements EntityFactory {
result = (T) new JPAUDerAttr();
} else if (reference.equals(VirSchema.class)) {
result = (T) new JPAVirSchema();
- } else if (reference.equals(UVirAttr.class)) {
- result = (T) new JPAUVirAttr();
} else if (reference.equals(Mapping.class)) {
result = (T) new JPAMapping();
} else if (reference.equals(MappingItem.class)) {
@@ -216,8 +210,6 @@ public class JPAEntityFactory implements EntityFactory {
result = (T) new JPAGPlainAttrUniqueValue();
} else if (reference.equals(GDerAttr.class)) {
result = (T) new JPAGDerAttr();
- } else if (reference.equals(GVirAttr.class)) {
- result = (T) new JPAGVirAttr();
} else if (reference.equals(CPlainAttr.class)) {
result = (T) new JPACPlainAttr();
} else if (reference.equals(CPlainAttrValue.class)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAVirSchema.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAVirSchema.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAVirSchema.java
index 6c1dd73..b984bb3 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAVirSchema.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAVirSchema.java
@@ -18,18 +18,28 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
+import java.util.Collections;
+import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Cacheable;
+import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import org.apache.syncope.common.lib.types.AttrSchemaType;
+import org.apache.syncope.common.lib.types.IntMappingType;
+import org.apache.syncope.common.lib.types.MappingPurpose;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
+import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
+import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
+import org.apache.syncope.core.persistence.api.entity.resource.Provision;
+import org.apache.syncope.core.persistence.jpa.entity.resource.JPAProvision;
import org.apache.syncope.core.persistence.jpa.validation.entity.SchemaNameCheck;
@Entity
@@ -53,6 +63,13 @@ public class JPAVirSchema extends AbstractEntity<String> implements VirSchema {
@Max(1)
private Integer readonly;
+ @Column(nullable = false)
+ @ManyToOne
+ private JPAProvision provision;
+
+ @Column(nullable = false)
+ private String extAttrName;
+
public JPAVirSchema() {
super();
@@ -109,4 +126,134 @@ public class JPAVirSchema extends AbstractEntity<String> implements VirSchema {
public void setReadonly(final boolean readonly) {
this.readonly = getBooleanAsInteger(readonly);
}
+
+ @Override
+ public Provision getProvision() {
+ return provision;
+ }
+
+ @Override
+ public void setProvision(final Provision provision) {
+ checkType(provision, JPAProvision.class);
+ this.provision = (JPAProvision) provision;
+ }
+
+ @Override
+ public String getExtAttrName() {
+ return extAttrName;
+ }
+
+ @Override
+ public void setExtAttrName(final String extAttrName) {
+ this.extAttrName = extAttrName;
+ }
+
+ @Override
+ public MappingItem asLinkingMappingItem() {
+ return new MappingItem() {
+
+ private static final long serialVersionUID = 327455459536715529L;
+
+ @Override
+ public Long getKey() {
+ return -1L;
+ }
+
+ @Override
+ public Mapping getMapping() {
+ return getProvision().getMapping();
+ }
+
+ @Override
+ public void setMapping(final Mapping mapping) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public String getExtAttrName() {
+ return JPAVirSchema.this.getExtAttrName();
+ }
+
+ @Override
+ public void setExtAttrName(final String extAttrName) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public String getIntAttrName() {
+ return JPAVirSchema.this.getKey();
+ }
+
+ @Override
+ public void setIntAttrName(final String intAttrName) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public IntMappingType getIntMappingType() {
+ switch (getProvision().getAnyType().getKind()) {
+ case ANY_OBJECT:
+ return IntMappingType.AnyObjectVirtualSchema;
+
+ case GROUP:
+ return IntMappingType.GroupVirtualSchema;
+
+ case USER:
+ default:
+ return IntMappingType.UserVirtualSchema;
+ }
+ }
+
+ @Override
+ public void setIntMappingType(final IntMappingType intMappingType) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public String getMandatoryCondition() {
+ return JPAVirSchema.this.getMandatoryCondition();
+ }
+
+ @Override
+ public void setMandatoryCondition(final String condition) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public MappingPurpose getPurpose() {
+ return JPAVirSchema.this.isReadonly() ? MappingPurpose.SYNCHRONIZATION : MappingPurpose.BOTH;
+ }
+
+ @Override
+ public void setPurpose(final MappingPurpose purpose) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public boolean isConnObjectKey() {
+ return false;
+ }
+
+ @Override
+ public void setConnObjectKey(final boolean connObjectKey) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public boolean isPassword() {
+ return false;
+ }
+
+ @Override
+ public void setPassword(final boolean password) {
+ // RO instance, nothing to do
+ }
+
+ @Override
+ public List<String> getMappingItemTransformerClassNames() {
+ return Collections.emptyList();
+ }
+ };
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrUniqueValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrUniqueValue.java
index 25cc5eb..01be6a8 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrUniqueValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrUniqueValue.java
@@ -60,7 +60,7 @@ public class JPAAPlainAttrUniqueValue extends AbstractPlainAttrValue implements
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPAAPlainAttr.class);
this.attribute = (JPAAPlainAttr) attr;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrValue.java
index 73c962c..0c9e598 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAPlainAttrValue.java
@@ -57,7 +57,7 @@ public class JPAAPlainAttrValue extends AbstractPlainAttrValue implements APlain
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPAAPlainAttr.class);
this.attribute = (JPAAPlainAttr) attr;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAVirAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAVirAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAVirAttr.java
deleted file mode 100644
index 62e2ea5..0000000
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAVirAttr.java
+++ /dev/null
@@ -1,59 +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.anyobject;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AVirAttr;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
-import org.apache.syncope.core.persistence.jpa.entity.AbstractVirAttr;
-
-@Entity
-@Table(name = JPAAVirAttr.TABLE)
-public class JPAAVirAttr extends AbstractVirAttr<AnyObject> implements AVirAttr {
-
- private static final long serialVersionUID = -4935990254545760827L;
-
- public static final String TABLE = "AVirAttr";
-
- @Id
- private Long id;
-
- @ManyToOne
- private JPAAnyObject owner;
-
- @Override
- public Long getKey() {
- return id;
- }
-
- @Override
- public AnyObject getOwner() {
- return owner;
- }
-
- @Override
- public void setOwner(final AnyObject owner) {
- checkType(owner, JPAAnyObject.class);
- this.owner = (JPAAnyObject) owner;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
index 3e9feda..9d69735 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/anyobject/JPAAnyObject.java
@@ -42,7 +42,6 @@ import org.apache.syncope.core.persistence.api.entity.anyobject.ADerAttr;
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.ARelationship;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AVirAttr;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
import org.apache.syncope.core.persistence.jpa.entity.AbstractAny;
import org.apache.syncope.core.persistence.jpa.entity.JPAAnyType;
@@ -52,7 +51,7 @@ import org.apache.syncope.core.persistence.jpa.entity.resource.JPAExternalResour
@Entity
@Table(name = JPAAnyObject.TABLE)
@Cacheable
-public class JPAAnyObject extends AbstractAny<APlainAttr, ADerAttr, AVirAttr> implements AnyObject {
+public class JPAAnyObject extends AbstractAny<APlainAttr, ADerAttr> implements AnyObject {
private static final long serialVersionUID = 9063766472970643492L;
@@ -72,10 +71,6 @@ public class JPAAnyObject extends AbstractAny<APlainAttr, ADerAttr, AVirAttr> im
@Valid
private List<JPAADerAttr> derAttrs = new ArrayList<>();
- @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
- @Valid
- private List<JPAAVirAttr> virAttrs = new ArrayList<>();
-
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(joinColumns =
@JoinColumn(name = "anyObject_id"),
@@ -149,23 +144,6 @@ public class JPAAnyObject extends AbstractAny<APlainAttr, ADerAttr, AVirAttr> im
}
@Override
- public boolean add(final AVirAttr attr) {
- checkType(attr, JPAAVirAttr.class);
- return virAttrs.add((JPAAVirAttr) attr);
- }
-
- @Override
- public boolean remove(final AVirAttr attr) {
- checkType(attr, JPAAVirAttr.class);
- return virAttrs.remove((JPAAVirAttr) attr);
- }
-
- @Override
- public List<? extends AVirAttr> getVirAttrs() {
- return virAttrs;
- }
-
- @Override
protected List<JPAExternalResource> internalGetResources() {
return resources;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrUniqueValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrUniqueValue.java
index 4783911..fea5af4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrUniqueValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrUniqueValue.java
@@ -60,7 +60,7 @@ public class JPACPlainAttrUniqueValue extends AbstractPlainAttrValue implements
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPACPlainAttr.class);
this.attribute = (JPACPlainAttr) attr;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrValue.java
index 2761a84..5b7d2b3 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPACPlainAttrValue.java
@@ -57,7 +57,7 @@ public class JPACPlainAttrValue extends AbstractPlainAttrValue implements CPlain
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPACPlainAttr.class);
this.attribute = (JPACPlainAttr) attr;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
index 2b44253..ac5616a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
@@ -37,7 +37,6 @@ import org.apache.syncope.core.persistence.api.entity.DerAttr;
import org.apache.syncope.core.persistence.api.entity.DerSchema;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.VirAttr;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.persistence.api.entity.conf.Conf;
@@ -120,26 +119,6 @@ public class JPAConf extends AbstractAnnotatedEntity<Long> implements Conf {
}
@Override
- public boolean add(final VirAttr<?> attr) {
- return false;
- }
-
- @Override
- public boolean remove(final VirAttr<?> virAttr) {
- return false;
- }
-
- @Override
- public VirAttr<?> getVirAttr(final String virSchemaName) {
- return null;
- }
-
- @Override
- public List<? extends VirAttr<?>> getVirAttrs() {
- return Collections.emptyList();
- }
-
- @Override
public boolean add(final ExternalResource resource) {
return false;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrUniqueValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrUniqueValue.java
index 3efae7c..a5c1b90 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrUniqueValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrUniqueValue.java
@@ -60,7 +60,7 @@ public class JPAGPlainAttrUniqueValue extends AbstractPlainAttrValue implements
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPAGPlainAttr.class);
this.attribute = (JPAGPlainAttr) attr;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrValue.java
index ed93477..e5d0830 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGPlainAttrValue.java
@@ -57,7 +57,7 @@ public class JPAGPlainAttrValue extends AbstractPlainAttrValue implements GPlain
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPAGPlainAttr.class);
this.attribute = (JPAGPlainAttr) attr;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGVirAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGVirAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGVirAttr.java
deleted file mode 100644
index 47b8886..0000000
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGVirAttr.java
+++ /dev/null
@@ -1,59 +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.group;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-import org.apache.syncope.core.persistence.api.entity.group.GVirAttr;
-import org.apache.syncope.core.persistence.api.entity.group.Group;
-import org.apache.syncope.core.persistence.jpa.entity.AbstractVirAttr;
-
-@Entity
-@Table(name = JPAGVirAttr.TABLE)
-public class JPAGVirAttr extends AbstractVirAttr<Group> implements GVirAttr {
-
- private static final long serialVersionUID = -1747430556914428649L;
-
- public static final String TABLE = "GVirAttr";
-
- @Id
- private Long id;
-
- @ManyToOne
- private JPAGroup owner;
-
- @Override
- public Long getKey() {
- return id;
- }
-
- @Override
- public Group getOwner() {
- return owner;
- }
-
- @Override
- public void setOwner(final Group owner) {
- checkType(owner, JPAGroup.class);
- this.owner = (JPAGroup) owner;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
index 2913dc6..2fb84b5 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/group/JPAGroup.java
@@ -44,7 +44,6 @@ import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.anyobject.ADynGroupMembership;
import org.apache.syncope.core.persistence.api.entity.group.GDerAttr;
import org.apache.syncope.core.persistence.api.entity.group.GPlainAttr;
-import org.apache.syncope.core.persistence.api.entity.group.GVirAttr;
import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.group.TypeExtension;
import org.apache.syncope.core.persistence.api.entity.user.UDynGroupMembership;
@@ -61,7 +60,7 @@ import org.apache.syncope.core.persistence.jpa.entity.user.JPAUser;
@Table(name = JPAGroup.TABLE)
@Cacheable
@GroupCheck
-public class JPAGroup extends AbstractAny<GPlainAttr, GDerAttr, GVirAttr> implements Group {
+public class JPAGroup extends AbstractAny<GPlainAttr, GDerAttr> implements Group {
private static final long serialVersionUID = -5281258853142421875L;
@@ -88,10 +87,6 @@ public class JPAGroup extends AbstractAny<GPlainAttr, GDerAttr, GVirAttr> implem
@Valid
private List<JPAGDerAttr> derAttrs = new ArrayList<>();
- @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
- @Valid
- private List<JPAGVirAttr> virAttrs = new ArrayList<>();
-
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(joinColumns =
@JoinColumn(name = "group_id"),
@@ -205,23 +200,6 @@ public class JPAGroup extends AbstractAny<GPlainAttr, GDerAttr, GVirAttr> implem
}
@Override
- public boolean add(final GVirAttr attr) {
- checkType(attr, JPAGVirAttr.class);
- return virAttrs.add((JPAGVirAttr) attr);
- }
-
- @Override
- public boolean remove(final GVirAttr attr) {
- checkType(attr, JPAGVirAttr.class);
- return virAttrs.remove((JPAGVirAttr) attr);
- }
-
- @Override
- public List<? extends GVirAttr> getVirAttrs() {
- return virAttrs;
- }
-
- @Override
public ADynGroupMembership getADynMembership() {
return aDynMembership;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
index 2066f6f..2d7af3c 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMapping.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
+import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
@@ -48,12 +49,10 @@ public class JPAMapping extends AbstractEntity<Long> implements Mapping {
@Id
private Long id;
+ @Column(nullable = false)
@OneToOne
private JPAProvision provision;
- /**
- * Attribute mappings.
- */
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "mapping")
private List<JPAMappingItem> items = new ArrayList<>();
@@ -79,17 +78,6 @@ public class JPAMapping extends AbstractEntity<Long> implements Mapping {
}
@Override
- public void setConnObjectKeyItem(final MappingItem item) {
- checkType(item, JPAMappingItem.class);
- this.addConnObjectKeyItem((JPAMappingItem) item);
- }
-
- @Override
- public List<? extends MappingItem> getItems() {
- return items;
- }
-
- @Override
public boolean add(final MappingItem item) {
checkType(item, JPAMappingItem.class);
return items.contains((JPAMappingItem) item) || items.add((JPAMappingItem) item);
@@ -102,6 +90,11 @@ public class JPAMapping extends AbstractEntity<Long> implements Mapping {
}
@Override
+ public List<? extends MappingItem> getItems() {
+ return items;
+ }
+
+ @Override
public MappingItem getConnObjectKeyItem() {
return CollectionUtils.find(getItems(), new Predicate<MappingItem>() {
@@ -112,6 +105,12 @@ public class JPAMapping extends AbstractEntity<Long> implements Mapping {
});
}
+ @Override
+ public void setConnObjectKeyItem(final MappingItem item) {
+ checkType(item, JPAMappingItem.class);
+ this.addConnObjectKeyItem((JPAMappingItem) item);
+ }
+
protected boolean addConnObjectKeyItem(final MappingItem connObjectKeyItem) {
if (IntMappingType.UserVirtualSchema == connObjectKeyItem.getIntMappingType()
|| IntMappingType.GroupVirtualSchema == connObjectKeyItem.getIntMappingType()
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAProvision.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAProvision.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAProvision.java
index 8e13879..3906dfd 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAProvision.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAProvision.java
@@ -131,5 +131,4 @@ public class JPAProvision extends AbstractEntity<Long> implements Provision {
checkType(mapping, JPAMapping.class);
this.mapping = (JPAMapping) mapping;
}
-
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
index 2bdd0f3..9882752 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTask.java
@@ -75,6 +75,8 @@ public class JPAPropagationTask extends AbstractTask implements PropagationTask
@Enumerated(EnumType.STRING)
private AnyTypeKind anyTypeKind;
+ private String anyType;
+
private Long anyKey;
public JPAPropagationTask() {
@@ -167,6 +169,16 @@ public class JPAPropagationTask extends AbstractTask implements PropagationTask
}
@Override
+ public String getAnyType() {
+ return anyType;
+ }
+
+ @Override
+ public void setAnyType(final String anyType) {
+ this.anyType = anyType;
+ }
+
+ @Override
public Long getAnyKey() {
return anyKey;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/9cd92305/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUPlainAttrUniqueValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUPlainAttrUniqueValue.java
index 566739d..86dfdfa 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUPlainAttrUniqueValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUPlainAttrUniqueValue.java
@@ -60,7 +60,7 @@ public class JPAUPlainAttrUniqueValue extends AbstractPlainAttrValue implements
}
@Override
- public void setAttr(final PlainAttr attr) {
+ public void setAttr(final PlainAttr<?> attr) {
checkType(attr, JPAUPlainAttr.class);
this.attribute = (JPAUPlainAttr) attr;
}