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; }
