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 2018/02/13 13:29:06 UTC
[04/10] syncope git commit: [SYNCOPE-1274] Using Swagger annotations
for TO hierarchies
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
index 0bc7605..1b6cc57 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
@@ -37,11 +37,11 @@ import org.apache.syncope.common.lib.to.ReportTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.to.AttrTO;
import org.apache.syncope.common.lib.to.SecurityQuestionTO;
-import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
+import org.apache.syncope.common.lib.policy.PolicyTO;
import org.apache.syncope.common.lib.to.AccessTokenTO;
import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.to.JobTO;
-import org.apache.syncope.common.lib.to.SchedTaskTO;
+import org.apache.syncope.common.lib.to.ProvisioningTaskTO;
import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
import org.apache.syncope.common.lib.to.WorkflowFormTO;
import org.apache.wicket.PageReference;
@@ -93,8 +93,8 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<
header = ((ReportTO) modelObject).getName();
} else if (modelObject instanceof AttrTO) {
header = ((AttrTO) modelObject).getSchema();
- } else if (modelObject instanceof AbstractPolicyTO) {
- header = ((AbstractPolicyTO) modelObject).getDescription();
+ } else if (modelObject instanceof PolicyTO) {
+ header = ((PolicyTO) modelObject).getDescription();
} else if (modelObject instanceof SecurityQuestionTO) {
header = ((SecurityQuestionTO) modelObject).getContent();
} else if (modelObject instanceof AccessTokenTO) {
@@ -103,8 +103,8 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<
header = ((ExecTO) modelObject).getKey();
} else if (modelObject instanceof WorkflowDefinitionTO) {
header = ((WorkflowDefinitionTO) modelObject).getName();
- } else if (modelObject instanceof SchedTaskTO) {
- header = ((SchedTaskTO) modelObject).getName();
+ } else if (modelObject instanceof ProvisioningTaskTO) {
+ header = ((ProvisioningTaskTO) modelObject).getName();
} else if (modelObject instanceof WorkflowFormTO) {
header = ((WorkflowFormTO) modelObject).getKey();
} else if (modelObject instanceof EntityTO) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
index c7839ca..1cf3db2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
@@ -52,7 +52,7 @@ import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.to.JobTO;
import org.apache.syncope.common.lib.to.ReportTO;
-import org.apache.syncope.common.lib.to.SchedTaskTO;
+import org.apache.syncope.common.lib.to.ProvisioningTaskTO;
import org.apache.syncope.common.lib.types.JobType;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.PageReference;
@@ -404,10 +404,10 @@ public class JobWidget extends BaseWidget {
break;
case TASK:
- SchedTaskTO schedTaskTO = new TaskRestClient().
- readSchedTask(SchedTaskTO.class, jobTO.getRefKey());
+ ProvisioningTaskTO schedTaskTO = new TaskRestClient().
+ readSchedTask(ProvisioningTaskTO.class, jobTO.getRefKey());
- SchedTaskWizardBuilder<SchedTaskTO> swb
+ SchedTaskWizardBuilder<ProvisioningTaskTO> swb
= new SchedTaskWizardBuilder<>(schedTaskTO, pageRef);
swb.setEventSink(AvailableJobsPanel.this);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
index 00cc339..eca2f3a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrs.java
@@ -32,7 +32,7 @@ import org.apache.syncope.client.console.rest.AnyTypeClassRestClient;
import org.apache.syncope.client.console.rest.GroupRestClient;
import org.apache.syncope.client.console.rest.SchemaRestClient;
import org.apache.syncope.common.lib.EntityTOUtils;
-import org.apache.syncope.common.lib.to.AbstractSchemaTO;
+import org.apache.syncope.common.lib.to.SchemaTO;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.AttrTO;
@@ -50,7 +50,7 @@ import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.util.ListModel;
-public abstract class AbstractAttrs<S extends AbstractSchemaTO> extends WizardStep implements ICondition {
+public abstract class AbstractAttrs<S extends SchemaTO> extends WizardStep implements ICondition {
private static final long serialVersionUID = -5387344116983102292L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
index f3ff8f5..0ebcec8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
@@ -24,7 +24,7 @@ import java.util.Map;
import org.apache.syncope.client.console.rest.PolicyRestClient;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.PolicyRenderer;
-import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
+import org.apache.syncope.common.lib.policy.PolicyTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.wicket.extensions.wizard.WizardStep;
@@ -48,7 +48,7 @@ public class ResourceSecurityPanel extends WizardStep {
@Override
protected Map<String, String> load() {
Map<String, String> res = new HashMap<>();
- for (AbstractPolicyTO policyTO : policyRestClient.getPolicies(PolicyType.PASSWORD)) {
+ for (PolicyTO policyTO : policyRestClient.getPolicies(PolicyType.PASSWORD)) {
res.put(policyTO.getKey(), policyTO.getDescription());
}
return res;
@@ -62,7 +62,7 @@ public class ResourceSecurityPanel extends WizardStep {
@Override
protected Map<String, String> load() {
Map<String, String> res = new HashMap<>();
- for (AbstractPolicyTO policyTO : policyRestClient.getPolicies(PolicyType.ACCOUNT)) {
+ for (PolicyTO policyTO : policyRestClient.getPolicies(PolicyType.ACCOUNT)) {
res.put(policyTO.getKey(), policyTO.getDescription());
}
return res;
@@ -76,7 +76,7 @@ public class ResourceSecurityPanel extends WizardStep {
@Override
protected Map<String, String> load() {
Map<String, String> res = new HashMap<>();
- for (AbstractPolicyTO policyTO : policyRestClient.getPolicies(PolicyType.PULL)) {
+ for (PolicyTO policyTO : policyRestClient.getPolicies(PolicyType.PULL)) {
res.put(policyTO.getKey(), policyTO.getDescription());
}
return res;
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/enduser/src/main/java/org/apache/syncope/client/enduser/model/SchemaResponse.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/model/SchemaResponse.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/model/SchemaResponse.java
index 38efba2..e59374e 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/model/SchemaResponse.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/model/SchemaResponse.java
@@ -21,56 +21,56 @@ package org.apache.syncope.client.enduser.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.apache.syncope.common.lib.to.AbstractSchemaTO;
+import org.apache.syncope.common.lib.to.SchemaTO;
public class SchemaResponse implements Serializable {
private static final long serialVersionUID = -8896862106241712829L;
- private List<AbstractSchemaTO> plainSchemas = new ArrayList<>();
+ private List<SchemaTO> plainSchemas = new ArrayList<>();
- private List<AbstractSchemaTO> derSchemas = new ArrayList<>();
+ private List<SchemaTO> derSchemas = new ArrayList<>();
- private List<AbstractSchemaTO> virSchemas = new ArrayList<>();
+ private List<SchemaTO> virSchemas = new ArrayList<>();
public SchemaResponse() {
}
- public List<AbstractSchemaTO> getPlainSchemas() {
+ public List<SchemaTO> getPlainSchemas() {
return plainSchemas;
}
- public void setPlainSchemas(final List<AbstractSchemaTO> plainSchemas) {
+ public void setPlainSchemas(final List<SchemaTO> plainSchemas) {
this.plainSchemas = plainSchemas;
}
- public List<AbstractSchemaTO> getDerSchemas() {
+ public List<SchemaTO> getDerSchemas() {
return derSchemas;
}
- public void setDerSchemas(final List<AbstractSchemaTO> derSchemas) {
+ public void setDerSchemas(final List<SchemaTO> derSchemas) {
this.derSchemas = derSchemas;
}
- public List<AbstractSchemaTO> getVirSchemas() {
+ public List<SchemaTO> getVirSchemas() {
return virSchemas;
}
- public void setVirSchemas(final List<AbstractSchemaTO> virSchemas) {
+ public void setVirSchemas(final List<SchemaTO> virSchemas) {
this.virSchemas = virSchemas;
}
- public SchemaResponse plainSchemas(final List<AbstractSchemaTO> value) {
+ public SchemaResponse plainSchemas(final List<SchemaTO> value) {
this.plainSchemas = value;
return this;
}
- public SchemaResponse derSchemas(final List<AbstractSchemaTO> value) {
+ public SchemaResponse derSchemas(final List<SchemaTO> value) {
this.derSchemas = value;
return this;
}
- public SchemaResponse virSchemas(final List<AbstractSchemaTO> value) {
+ public SchemaResponse virSchemas(final List<SchemaTO> value) {
this.virSchemas = value;
return this;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
index 36f11f4..f952ed5 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/SchemaResource.java
@@ -38,7 +38,7 @@ import org.apache.syncope.client.enduser.annotations.Resource;
import org.apache.syncope.client.enduser.model.CustomAttribute;
import org.apache.syncope.client.enduser.model.CustomAttributesInfo;
import org.apache.syncope.client.enduser.model.SchemaResponse;
-import org.apache.syncope.common.lib.to.AbstractSchemaTO;
+import org.apache.syncope.common.lib.to.SchemaTO;
import org.apache.syncope.common.lib.to.TypeExtensionTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.SchemaType;
@@ -93,8 +93,8 @@ public class SchemaResource extends BaseResource {
Map<String, CustomAttributesInfo> customForm = SyncopeEnduserApplication.get().getCustomForm();
SchemaService schemaService = SyncopeEnduserSession.get().getService(SchemaService.class);
- final List<AbstractSchemaTO> plainSchemas = classes.isEmpty()
- ? Collections.<AbstractSchemaTO>emptyList()
+ final List<SchemaTO> plainSchemas = classes.isEmpty()
+ ? Collections.<SchemaTO>emptyList()
: customForm == null || customForm.isEmpty() || customForm.get(SchemaType.PLAIN.name()) == null
? schemaService.list(
new SchemaQuery.Builder().type(SchemaType.PLAIN).anyTypeClasses(classes).build())
@@ -102,9 +102,9 @@ public class SchemaResource extends BaseResource {
? customizeSchemas(schemaService.list(new SchemaQuery.Builder().type(SchemaType.PLAIN).
anyTypeClasses(classes).build()), group, customForm.get(SchemaType.PLAIN.name()).
getAttributes())
- : Collections.<AbstractSchemaTO>emptyList();
- final List<AbstractSchemaTO> derSchemas = classes.isEmpty()
- ? Collections.<AbstractSchemaTO>emptyList()
+ : Collections.<SchemaTO>emptyList();
+ final List<SchemaTO> derSchemas = classes.isEmpty()
+ ? Collections.<SchemaTO>emptyList()
: customForm == null || customForm.isEmpty() || customForm.get(SchemaType.DERIVED.name()) == null
? schemaService.list(
new SchemaQuery.Builder().type(SchemaType.DERIVED).anyTypeClasses(classes).build())
@@ -112,9 +112,9 @@ public class SchemaResource extends BaseResource {
? customizeSchemas(schemaService.list(new SchemaQuery.Builder().type(SchemaType.DERIVED).
anyTypeClasses(classes).build()), group, customForm.get(SchemaType.DERIVED.name()).
getAttributes())
- : Collections.<AbstractSchemaTO>emptyList();
- final List<AbstractSchemaTO> virSchemas = classes.isEmpty()
- ? Collections.<AbstractSchemaTO>emptyList()
+ : Collections.<SchemaTO>emptyList();
+ final List<SchemaTO> virSchemas = classes.isEmpty()
+ ? Collections.<SchemaTO>emptyList()
: customForm == null || customForm.isEmpty() || customForm.get(SchemaType.VIRTUAL.name()) == null
? schemaService.list(
new SchemaQuery.Builder().type(SchemaType.VIRTUAL).anyTypeClasses(classes).build())
@@ -122,16 +122,16 @@ public class SchemaResource extends BaseResource {
? customizeSchemas(schemaService.list(new SchemaQuery.Builder().type(SchemaType.VIRTUAL).
anyTypeClasses(classes).build()), group, customForm.get(SchemaType.VIRTUAL.name()).
getAttributes())
- : Collections.<AbstractSchemaTO>emptyList();
+ : Collections.<SchemaTO>emptyList();
if (group != null) {
- for (AbstractSchemaTO schema : plainSchemas) {
+ for (SchemaTO schema : plainSchemas) {
schema.setKey(compositeSchemaKey(group, schema.getKey()));
}
- for (AbstractSchemaTO schema : derSchemas) {
+ for (SchemaTO schema : derSchemas) {
schema.setKey(compositeSchemaKey(group, schema.getKey()));
}
- for (AbstractSchemaTO schema : virSchemas) {
+ for (SchemaTO schema : virSchemas) {
schema.setKey(compositeSchemaKey(group, schema.getKey()));
}
}
@@ -160,7 +160,7 @@ public class SchemaResource extends BaseResource {
return response;
}
- private List<AbstractSchemaTO> customizeSchemas(final List<AbstractSchemaTO> schemaTOs, final String groupParam,
+ private List<SchemaTO> customizeSchemas(final List<SchemaTO> schemaTOs, final String groupParam,
final Map<String, CustomAttribute> customForm) {
if (customForm.isEmpty()) {
@@ -168,20 +168,20 @@ public class SchemaResource extends BaseResource {
}
final boolean isGroupBlank = StringUtils.isBlank(groupParam);
- CollectionUtils.filter(schemaTOs, new Predicate<AbstractSchemaTO>() {
+ CollectionUtils.filter(schemaTOs, new Predicate<SchemaTO>() {
@Override
- public boolean evaluate(final AbstractSchemaTO object) {
+ public boolean evaluate(final SchemaTO object) {
return customForm.containsKey(isGroupBlank
? object.getKey()
: compositeSchemaKey(groupParam, object.getKey()));
}
});
- Collections.sort(schemaTOs, new Comparator<AbstractSchemaTO>() {
+ Collections.sort(schemaTOs, new Comparator<SchemaTO>() {
@Override
- public int compare(final AbstractSchemaTO schemaTO1, final AbstractSchemaTO schemaTO2) {
+ public int compare(final SchemaTO schemaTO1, final SchemaTO schemaTO2) {
List<String> order = new ArrayList<>(customForm.keySet());
return order.indexOf(isGroupBlank
? schemaTO1.getKey()
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
index 2cf1021..58f9e99 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
@@ -34,7 +34,7 @@ import org.apache.cxf.feature.LoggingFeature;
import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
import org.apache.cxf.staxutils.DocumentDepthProperties;
-import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
+import org.apache.syncope.common.lib.policy.PolicyTO;
import org.apache.syncope.common.rest.api.DateParamConverterProvider;
import org.apache.syncope.common.rest.api.RESTHeaders;
@@ -102,7 +102,7 @@ public class SyncopeClientFactoryBean {
defaultJAXBProvider.setMarshallerProperties(marshallerProperties);
Map<String, String> collectionWrapperMap = new HashMap<>();
- collectionWrapperMap.put(AbstractPolicyTO.class.getName(), "policies");
+ collectionWrapperMap.put(PolicyTO.class.getName(), "policies");
defaultJAXBProvider.setCollectionWrapperMap(collectionWrapperMap);
return defaultJAXBProvider;
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/pom.xml
----------------------------------------------------------------------
diff --git a/common/lib/pom.xml b/common/lib/pom.xml
index 41d0587..d1dd0d5 100644
--- a/common/lib/pom.xml
+++ b/common/lib/pom.xml
@@ -57,6 +57,11 @@ under the License.
</dependency>
<dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java b/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
index 432b766..4562f70 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
@@ -25,7 +25,7 @@ import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.syncope.common.lib.to.AbstractTaskTO;
+import org.apache.syncope.common.lib.to.TaskTO;
import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.to.ReportTO;
import org.apache.syncope.common.lib.to.GroupTO;
@@ -33,7 +33,7 @@ import org.apache.syncope.common.lib.to.UserTO;
@XmlType
// Reporting here only classes used via PagedResult
-@XmlSeeAlso({ AbstractTaskTO.class, ReportTO.class, GroupTO.class, UserTO.class, AnyObjectTO.class })
+@XmlSeeAlso({ TaskTO.class, ReportTO.class, GroupTO.class, UserTO.class, AnyObjectTO.class })
public abstract class AbstractBaseBean implements Serializable {
private static final long serialVersionUID = 3119542005279892164L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
index ee86a88..6f72065 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
@@ -18,6 +18,8 @@
*/
package org.apache.syncope.common.lib.patch;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
@@ -39,6 +41,8 @@ public abstract class AbstractPatchItem<T> extends AbstractPatch {
private T value;
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public T getValue() {
return value;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
index 75298a9..19794a1 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
@@ -19,6 +19,8 @@
package org.apache.syncope.common.lib.patch;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
@@ -28,6 +30,7 @@ import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "anyObjectPatch")
@XmlType
+@ApiModel(parent = AnyPatch.class)
public class AnyObjectPatch extends AnyPatch {
private static final long serialVersionUID = -1644118942622556097L;
@@ -38,6 +41,13 @@ public class AnyObjectPatch extends AnyPatch {
private final Set<MembershipPatch> memberships = new HashSet<>();
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.patch.AnyObjectPatch")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public StringReplacePatchItem getName() {
return name;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
index 0dadbf8..0ab8551 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
@@ -20,20 +20,34 @@ package org.apache.syncope.common.lib.patch;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.PathParam;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.AbstractBaseBean;
import org.apache.syncope.common.lib.to.AttrTO;
@XmlType
+@XmlSeeAlso({ UserPatch.class, GroupPatch.class, AnyObjectPatch.class })
+@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "@class")
+@JsonPropertyOrder(value = { "@class", "key" })
+@ApiModel(subTypes = { UserPatch.class, GroupPatch.class, AnyObjectPatch.class }, discriminator = "@class")
public abstract class AnyPatch extends AbstractBaseBean implements AttributablePatch {
private static final long serialVersionUID = -7445489774552440544L;
+ @XmlTransient
+ @JsonProperty("@class")
+ private String discriminator;
+
private String key;
private StringReplacePatchItem realm;
@@ -46,6 +60,15 @@ public abstract class AnyPatch extends AbstractBaseBean implements AttributableP
private final Set<StringPatchItem> resources = new HashSet<>();
+ @ApiModelProperty(name = "@class", required = true, readOnly = false)
+ public abstract String getDiscriminator();
+
+ public void setDiscriminator(final String discriminator) {
+ // do nothing
+ }
+
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getKey() {
return key;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
index 027ba41..575012c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
@@ -20,6 +20,8 @@ package org.apache.syncope.common.lib.patch;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -36,6 +38,7 @@ import org.apache.syncope.common.lib.to.TypeExtensionTO;
@XmlRootElement(name = "groupPatch")
@XmlType
+@ApiModel(parent = AnyPatch.class)
public class GroupPatch extends AnyPatch {
private static final long serialVersionUID = -460284378124440077L;
@@ -53,6 +56,13 @@ public class GroupPatch extends AnyPatch {
private final List<TypeExtensionTO> typeExtensions = new ArrayList<>();
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.patch.GroupPatch")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public StringReplacePatchItem getName() {
return name;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
index 5dc50f1..7fbb3a3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
@@ -19,6 +19,8 @@
package org.apache.syncope.common.lib.patch;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
@@ -28,6 +30,7 @@ import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "userPatch")
@XmlType
+@ApiModel(parent = AnyPatch.class)
public class UserPatch extends AnyPatch {
private static final long serialVersionUID = 2872795537911821448L;
@@ -48,6 +51,13 @@ public class UserPatch extends AnyPatch {
private final Set<StringPatchItem> roles = new HashSet<>();
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.patch.UserPatch")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public StringReplacePatchItem getUsername() {
return username;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
deleted file mode 100644
index bc41628..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
+++ /dev/null
@@ -1,83 +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.common.lib.policy;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.to.EntityTO;
-
-@XmlRootElement(name = "abstractPolicy")
-@XmlType
-@XmlSeeAlso({ AccountPolicyTO.class, PasswordPolicyTO.class, PullPolicyTO.class })
-@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
-public abstract class AbstractPolicyTO extends AbstractBaseBean implements EntityTO {
-
- private static final long serialVersionUID = -2903888572649721035L;
-
- private String key;
-
- private String description;
-
- private final List<String> usedByResources = new ArrayList<>();
-
- private final List<String> usedByRealms = new ArrayList<>();
-
- @Override
- public String getKey() {
- return key;
- }
-
- @PathParam("key")
- @Override
- public void setKey(final String key) {
- this.key = key;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(final String description) {
- this.description = description;
- }
-
- @XmlElementWrapper(name = "usedByResources")
- @XmlElement(name = "resource")
- @JsonProperty("usedByResources")
- public List<String> getUsedByResources() {
- return usedByResources;
- }
-
- @XmlElementWrapper(name = "usedByRealms")
- @XmlElement(name = "group")
- @JsonProperty("usedByRealms")
- public List<String> getUsedByRealms() {
- return usedByRealms;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
index caf2506..a9f3c52 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
@@ -19,16 +19,20 @@
package org.apache.syncope.common.lib.policy;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "accountPolicy")
@XmlType
-public class AccountPolicyTO extends AbstractPolicyTO implements ComposablePolicy<AbstractAccountRuleConf> {
+@ApiModel(parent = PolicyTO.class)
+public class AccountPolicyTO extends PolicyTO implements ComposablePolicy<AbstractAccountRuleConf> {
private static final long serialVersionUID = -1557150042828800134L;
@@ -40,6 +44,15 @@ public class AccountPolicyTO extends AbstractPolicyTO implements ComposablePolic
private final List<String> passthroughResources = new ArrayList<>();
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(
+ name = "@class", required = true, example = "org.apache.syncope.common.lib.policy.AccountPolicyTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public boolean isPropagateSuspension() {
return propagateSuspension;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
index b9d6d3e..db4d55c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
@@ -19,16 +19,20 @@
package org.apache.syncope.common.lib.policy;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "passwordPolicy")
@XmlType
-public class PasswordPolicyTO extends AbstractPolicyTO implements ComposablePolicy<AbstractPasswordRuleConf> {
+@ApiModel(parent = PolicyTO.class)
+public class PasswordPolicyTO extends PolicyTO implements ComposablePolicy<AbstractPasswordRuleConf> {
private static final long serialVersionUID = -5606086441294799690L;
@@ -38,6 +42,15 @@ public class PasswordPolicyTO extends AbstractPolicyTO implements ComposablePoli
private final List<AbstractPasswordRuleConf> ruleConfs = new ArrayList<>();
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(
+ name = "@class", required = true, example = "org.apache.syncope.common.lib.policy.PasswordPolicyTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public boolean isAllowNullPassword() {
return allowNullPassword;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java
new file mode 100644
index 0000000..cff315e
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PolicyTO.java
@@ -0,0 +1,105 @@
+/*
+ * 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.common.lib.policy;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import javax.ws.rs.PathParam;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+import org.apache.syncope.common.lib.AbstractBaseBean;
+import org.apache.syncope.common.lib.to.EntityTO;
+
+@XmlRootElement(name = "policy")
+@XmlType
+@XmlSeeAlso({ AccountPolicyTO.class, PasswordPolicyTO.class, PullPolicyTO.class })
+@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "@class")
+@JsonPropertyOrder(value = { "@class", "key", "description" })
+@ApiModel(subTypes = { AccountPolicyTO.class, PasswordPolicyTO.class, PullPolicyTO.class }, discriminator = "@class")
+public abstract class PolicyTO extends AbstractBaseBean implements EntityTO {
+
+ private static final long serialVersionUID = -2903888572649721035L;
+
+ @XmlTransient
+ @JsonProperty("@class")
+ private String discriminator;
+
+ private String key;
+
+ private String description;
+
+ private final List<String> usedByResources = new ArrayList<>();
+
+ private final List<String> usedByRealms = new ArrayList<>();
+
+ @ApiModelProperty(name = "@class", required = true, readOnly = false)
+ public abstract String getDiscriminator();
+
+ public void setDiscriminator(final String discriminator) {
+ // do nothing
+ }
+
+ @ApiModelProperty(readOnly = true)
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @PathParam("key")
+ @Override
+ public void setKey(final String key) {
+ this.key = key;
+ }
+
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(final String description) {
+ this.description = description;
+ }
+
+ @ApiModelProperty(readOnly = true)
+ @XmlElementWrapper(name = "usedByResources")
+ @XmlElement(name = "resource")
+ @JsonProperty("usedByResources")
+ public List<String> getUsedByResources() {
+ return usedByResources;
+ }
+
+ @ApiModelProperty(readOnly = true)
+ @XmlElementWrapper(name = "usedByRealms")
+ @XmlElement(name = "group")
+ @JsonProperty("usedByRealms")
+ public List<String> getUsedByRealms() {
+ return usedByRealms;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
index 2618e43..46bc52a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
@@ -18,17 +18,34 @@
*/
package org.apache.syncope.common.lib.policy;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "pullPolicy")
@XmlType
-public class PullPolicyTO extends AbstractPolicyTO {
+@ApiModel(parent = PolicyTO.class)
+public class PullPolicyTO extends PolicyTO {
private static final long serialVersionUID = 993024634238024242L;
private PullPolicySpec specification;
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(
+ name = "@class", required = true, example = "org.apache.syncope.common.lib.policy.PullPolicyTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public PullPolicySpec getSpecification() {
return specification;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
index 1459211..75e454e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
@@ -20,6 +20,7 @@ package org.apache.syncope.common.lib.to;
import org.apache.syncope.common.lib.AbstractBaseBean;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.lang3.StringUtils;
@@ -64,6 +65,7 @@ public class AbstractAnnotatedBean extends AbstractBaseBean {
*/
private Date lastChangeDate;
+ @ApiModelProperty(readOnly = true)
public String getCreator() {
return creator;
}
@@ -72,6 +74,7 @@ public class AbstractAnnotatedBean extends AbstractBaseBean {
this.creator = creator;
}
+ @ApiModelProperty(readOnly = true)
public Date getCreationDate() {
if (creationDate != null) {
return new Date(creationDate.getTime());
@@ -87,6 +90,7 @@ public class AbstractAnnotatedBean extends AbstractBaseBean {
}
}
+ @ApiModelProperty(readOnly = true)
public String getLastModifier() {
return lastModifier;
}
@@ -95,6 +99,7 @@ public class AbstractAnnotatedBean extends AbstractBaseBean {
this.lastModifier = lastModifier;
}
+ @ApiModelProperty(readOnly = true)
public Date getLastChangeDate() {
if (lastChangeDate != null) {
return new Date(lastChangeDate.getTime());
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
deleted file mode 100644
index cd7a5ae..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
+++ /dev/null
@@ -1,117 +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.common.lib.to;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.HashSet;
-import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.types.MatchingRule;
-import org.apache.syncope.common.lib.types.UnmatchingRule;
-
-@XmlRootElement(name = "abstractProvisioningTask")
-@XmlType
-@XmlSeeAlso({ PushTaskTO.class, PullTaskTO.class })
-public class AbstractProvisioningTaskTO extends SchedTaskTO {
-
- private static final long serialVersionUID = -2143537546915809016L;
-
- private String resource;
-
- private boolean performCreate;
-
- private boolean performUpdate;
-
- private boolean performDelete;
-
- private boolean syncStatus;
-
- private UnmatchingRule unmatchingRule;
-
- private MatchingRule matchingRule;
-
- private final Set<String> actionsClassNames = new HashSet<>();
-
- public String getResource() {
- return resource;
- }
-
- public void setResource(final String resource) {
- this.resource = resource;
- }
-
- public boolean isPerformCreate() {
- return performCreate;
- }
-
- public void setPerformCreate(final boolean performCreate) {
- this.performCreate = performCreate;
- }
-
- public boolean isPerformUpdate() {
- return performUpdate;
- }
-
- public void setPerformUpdate(final boolean performUpdate) {
- this.performUpdate = performUpdate;
- }
-
- public boolean isPerformDelete() {
- return performDelete;
- }
-
- public void setPerformDelete(final boolean performDelete) {
- this.performDelete = performDelete;
- }
-
- public boolean isSyncStatus() {
- return syncStatus;
- }
-
- public void setSyncStatus(final boolean syncStatus) {
- this.syncStatus = syncStatus;
- }
-
- @XmlElementWrapper(name = "actionsClassNames")
- @XmlElement(name = "actionsClassName")
- @JsonProperty("actionsClassNames")
- public Set<String> getActionsClassNames() {
- return actionsClassNames;
- }
-
- public UnmatchingRule getUnmatchingRule() {
- return unmatchingRule;
- }
-
- public void setUnmatchingRule(final UnmatchingRule unmatchigRule) {
- this.unmatchingRule = unmatchigRule;
- }
-
- public MatchingRule getMatchingRule() {
- return matchingRule;
- }
-
- public void setMatchingRule(final MatchingRule matchigRule) {
- this.matchingRule = matchigRule;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java
deleted file mode 100644
index 2917c98..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.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.common.lib.to;
-
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.lib.AbstractBaseBean;
-
-@XmlRootElement(name = "abstractSchema")
-@XmlType
-@XmlSeeAlso({ PlainSchemaTO.class, DerSchemaTO.class, VirSchemaTO.class })
-@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
-public abstract class AbstractSchemaTO extends AbstractBaseBean implements EntityTO {
-
- private static final long serialVersionUID = 4088388951694301759L;
-
- private String key;
-
- private String anyTypeClass;
-
- @Override
- public String getKey() {
- return key;
- }
-
- @PathParam("key")
- @Override
- public void setKey(final String key) {
- this.key = key;
- }
-
- public String getAnyTypeClass() {
- return anyTypeClass;
- }
-
- public void setAnyTypeClass(final String anyTypeClass) {
- this.anyTypeClass = anyTypeClass;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
index 88962c5..f0a6f1e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.common.lib.to;
+import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.AbstractBaseBean;
@@ -31,6 +32,7 @@ public class AbstractStartEndBean extends AbstractBaseBean {
private Date end;
+ @ApiModelProperty(readOnly = true)
public Date getStart() {
return start == null
? null
@@ -43,6 +45,7 @@ public class AbstractStartEndBean extends AbstractBaseBean {
: new Date(start.getTime());
}
+ @ApiModelProperty(readOnly = true)
public Date getEnd() {
return end == null
? null
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
deleted file mode 100644
index 65603f7..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
+++ /dev/null
@@ -1,72 +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.common.lib.to;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "abstractTask")
-@XmlType
-@XmlSeeAlso({ PropagationTaskTO.class, SchedTaskTO.class, NotificationTaskTO.class })
-@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
-public abstract class AbstractTaskTO extends AbstractStartEndBean implements EntityTO {
-
- private static final long serialVersionUID = 386450127003321197L;
-
- private String key;
-
- private String latestExecStatus;
-
- private final List<ExecTO> executions = new ArrayList<>();
-
- @Override
- public String getKey() {
- return key;
- }
-
- @PathParam("key")
- @Override
- public void setKey(final String key) {
- this.key = key;
- }
-
- public String getLatestExecStatus() {
- return latestExecStatus;
- }
-
- public void setLatestExecStatus(final String latestExecStatus) {
- this.latestExecStatus = latestExecStatus;
- }
-
- @XmlElementWrapper(name = "executions")
- @XmlElement(name = "execution")
- @JsonProperty("executions")
- public List<ExecTO> getExecutions() {
- return executions;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
index 9581cd9..19955fd 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
@@ -20,17 +20,21 @@ package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.Predicate;
@XmlRootElement(name = "anyObject")
@XmlType
+@ApiModel(parent = AnyTO.class)
public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
private static final long serialVersionUID = 8841697496476959639L;
@@ -43,6 +47,14 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
private final List<MembershipTO> dynMemberships = new ArrayList<>();
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.AnyObjectTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public String getName() {
return name;
}
@@ -91,6 +103,7 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
return memberships;
}
+ @ApiModelProperty(readOnly = true)
@XmlElementWrapper(name = "dynMemberships")
@XmlElement(name = "dynMembership")
@JsonProperty("dynMemberships")
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
index 7796b62..156cc93 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
@@ -20,7 +20,10 @@ package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -28,17 +31,24 @@ import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.Predicate;
@XmlType
@XmlSeeAlso({ UserTO.class, GroupTO.class, AnyObjectTO.class })
-@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
+@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "@class")
+@JsonPropertyOrder(value = { "@class", "key", "type", "realm", "username", "name" })
+@ApiModel(subTypes = { UserTO.class, GroupTO.class, AnyObjectTO.class }, discriminator = "@class")
public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, AttributableTO {
private static final long serialVersionUID = -754311920679872084L;
+ @XmlTransient
+ @JsonProperty("@class")
+ private String discriminator;
+
private String key;
private String type;
@@ -59,6 +69,14 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
private final Set<String> resources = new HashSet<>();
+ @ApiModelProperty(name = "@class", required = true, readOnly = false)
+ public abstract String getDiscriminator();
+
+ public void setDiscriminator(final String discriminator) {
+ // do nothing
+ }
+
+ @ApiModelProperty(readOnly = true)
@Override
public String getKey() {
return key;
@@ -69,6 +87,7 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
this.key = key;
}
+ @ApiModelProperty(readOnly = true)
public String getType() {
return type;
}
@@ -85,6 +104,7 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
this.realm = realm;
}
+ @ApiModelProperty(readOnly = true)
@XmlElementWrapper(name = "dynRealms")
@XmlElement(name = "dynRealmF")
@JsonProperty("dynRealms")
@@ -92,6 +112,7 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
return dynRealms;
}
+ @ApiModelProperty(readOnly = true)
public String getStatus() {
return status;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
index bd63527..7d41199 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
@@ -20,6 +20,8 @@ package org.apache.syncope.common.lib.to;
import org.apache.syncope.common.lib.AbstractBaseBean;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -32,6 +34,7 @@ import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "attribute")
@XmlType
+@ApiModel
public class AttrTO extends AbstractBaseBean {
private static final long serialVersionUID = 4941691338796323623L;
@@ -45,7 +48,7 @@ public class AttrTO extends AbstractBaseBean {
return this;
}
- public Builder schemaInfo(final AbstractSchemaTO schemaInfo) {
+ public Builder schemaInfo(final SchemaTO schemaInfo) {
instance.schemaInfo = schemaInfo;
return this;
}
@@ -73,7 +76,7 @@ public class AttrTO extends AbstractBaseBean {
/**
* (Optional) schema information for this attribute.
*/
- private AbstractSchemaTO schemaInfo;
+ private SchemaTO schemaInfo;
/**
* Name of the schema that this attribute is referring to.
@@ -88,17 +91,20 @@ public class AttrTO extends AbstractBaseBean {
/**
* @return schema information for this attribute; may be {@code NULL}
*/
- public AbstractSchemaTO getSchemaInfo() {
+ @ApiModelProperty(readOnly = true)
+ public SchemaTO getSchemaInfo() {
return schemaInfo;
}
- public void setSchemaInfo(final AbstractSchemaTO schemaInfo) {
+ public void setSchemaInfo(final SchemaTO schemaInfo) {
this.schemaInfo = schemaInfo;
}
/**
* @return the name of the schema that this attribute is referring to
*/
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getSchema() {
return schema;
}
@@ -115,9 +121,9 @@ public class AttrTO extends AbstractBaseBean {
/**
* @return attribute values as strings
*/
- @XmlElementWrapper(name = "values")
- @XmlElement(name = "value")
- @JsonProperty("values")
+ @XmlElementWrapper(name = "values", required = true)
+ @XmlElement(name = "value", required = true)
+ @JsonProperty(value = "values", required = true)
public List<String> getValues() {
return values;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
index dc84864..0114ba9 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
@@ -18,17 +18,30 @@
*/
package org.apache.syncope.common.lib.to;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
-@XmlRootElement(name = "derivedSchema")
+@XmlRootElement(name = "derSchema")
@XmlType
-public class DerSchemaTO extends AbstractSchemaTO {
+@ApiModel(parent = SchemaTO.class)
+public class DerSchemaTO extends SchemaTO {
private static final long serialVersionUID = -6747399803792103108L;
private String expression;
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.DerSchemaTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public String getExpression() {
return expression;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
index 82c4fe3..a651e47 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
@@ -20,6 +20,8 @@ package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -27,6 +29,7 @@ import java.util.Map;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.commons.collections4.IterableUtils;
@@ -36,6 +39,7 @@ import org.apache.syncope.common.lib.types.AnyTypeKind;
@XmlRootElement(name = "group")
@XmlType
+@ApiModel(parent = AnyTO.class)
public class GroupTO extends AnyTO {
private static final long serialVersionUID = -7785920258290147542L;
@@ -61,6 +65,14 @@ public class GroupTO extends AnyTO {
private final List<TypeExtensionTO> typeExtensions = new ArrayList<>();
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.GroupTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
@Override
public String getType() {
return AnyTypeKind.GROUP.name();
@@ -103,6 +115,7 @@ public class GroupTO extends AnyTO {
this.udynMembershipCond = uDynMembershipCond;
}
+ @ApiModelProperty(readOnly = true)
public int getStaticUserMembershipCount() {
return staticUserMembershipCount;
}
@@ -111,6 +124,7 @@ public class GroupTO extends AnyTO {
this.staticUserMembershipCount = staticUserMembershipCount;
}
+ @ApiModelProperty(readOnly = true)
public int getDynamicUserMembershipCount() {
return dynamicUserMembershipCount;
}
@@ -119,6 +133,7 @@ public class GroupTO extends AnyTO {
this.dynamicUserMembershipCount = dynamicUserMembershipCount;
}
+ @ApiModelProperty(readOnly = true)
public int getStaticAnyObjectMembershipCount() {
return staticAnyObjectMembershipCount;
}
@@ -127,6 +142,7 @@ public class GroupTO extends AnyTO {
this.staticAnyObjectMembershipCount = staticAnyObjectMembershipCount;
}
+ @ApiModelProperty(readOnly = true)
public int getDynamicAnyObjectMembershipCount() {
return dynamicAnyObjectMembershipCount;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
index 44155e4..5100406 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
@@ -19,18 +19,22 @@
package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.TraceLevel;
@XmlRootElement(name = "notificationTask")
@XmlType
-public class NotificationTaskTO extends AbstractTaskTO {
+@ApiModel(parent = TaskTO.class)
+public class NotificationTaskTO extends TaskTO {
private static final long serialVersionUID = 371671242591093846L;
@@ -54,6 +58,15 @@ public class NotificationTaskTO extends AbstractTaskTO {
private TraceLevel traceLevel;
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.NotificationTaskTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
+ @ApiModelProperty(readOnly = true)
public String getNotification() {
return notification;
}
@@ -62,6 +75,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.notification = notification;
}
+ @ApiModelProperty(readOnly = true)
public AnyTypeKind getAnyTypeKind() {
return anyTypeKind;
}
@@ -70,6 +84,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.anyTypeKind = anyTypeKind;
}
+ @ApiModelProperty(readOnly = true)
public String getEntityKey() {
return entityKey;
}
@@ -78,6 +93,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.entityKey = entityKey;
}
+ @ApiModelProperty(readOnly = true)
@XmlElementWrapper(name = "recipients")
@XmlElement(name = "recipient")
@JsonProperty("recipients")
@@ -85,6 +101,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
return recipients;
}
+ @ApiModelProperty(readOnly = true)
public String getSender() {
return sender;
}
@@ -93,6 +110,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.sender = sender;
}
+ @ApiModelProperty(readOnly = true)
public String getSubject() {
return subject;
}
@@ -101,6 +119,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.subject = subject;
}
+ @ApiModelProperty(readOnly = true)
public String getTextBody() {
return textBody;
}
@@ -109,6 +128,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.textBody = textBody;
}
+ @ApiModelProperty(readOnly = true)
public String getHtmlBody() {
return htmlBody;
}
@@ -117,6 +137,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.htmlBody = htmlBody;
}
+ @ApiModelProperty(readOnly = true)
public boolean isExecuted() {
return executed;
}
@@ -125,6 +146,7 @@ public class NotificationTaskTO extends AbstractTaskTO {
this.executed = executed;
}
+ @ApiModelProperty(readOnly = true)
public TraceLevel getTraceLevel() {
return traceLevel;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
index 4568e36..8803013 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
@@ -18,16 +18,21 @@
*/
package org.apache.syncope.common.lib.to;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.types.AttrSchemaType;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
-@XmlRootElement(name = "schema")
+@XmlRootElement(name = "plainSchema")
@XmlType
-public class PlainSchemaTO extends AbstractSchemaTO {
+@ApiModel(parent = SchemaTO.class)
+public class PlainSchemaTO extends SchemaTO {
private static final long serialVersionUID = -8133983392476990308L;
@@ -55,6 +60,14 @@ public class PlainSchemaTO extends AbstractSchemaTO {
private String mimeType;
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.PlainSchemaTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public String getConversionPattern() {
return conversionPattern;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
index 3ef94de..49aaec8 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
@@ -18,14 +18,20 @@
*/
package org.apache.syncope.common.lib.to;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.syncope.common.lib.types.AnyTypeKind;
import org.apache.syncope.common.lib.types.ResourceOperation;
@XmlRootElement(name = "propagationTask")
@XmlType
-public class PropagationTaskTO extends AbstractTaskTO {
+@ApiModel(parent = TaskTO.class)
+public class PropagationTaskTO extends TaskTO {
private static final long serialVersionUID = 386450127003321197L;
@@ -47,6 +53,16 @@ public class PropagationTaskTO extends AbstractTaskTO {
private String entityKey;
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.PropagationTaskTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getConnObjectKey() {
return connObjectKey;
}
@@ -63,6 +79,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.oldConnObjectKey = oldConnObjectKey;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getResource() {
return resource;
}
@@ -71,6 +89,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.resource = resource;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public ResourceOperation getOperation() {
return operation;
}
@@ -79,6 +99,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.operation = operation;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getAttributes() {
return attributes;
}
@@ -87,6 +109,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.attributes = attributes;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getObjectClassName() {
return objectClassName;
}
@@ -95,6 +119,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.objectClassName = objectClassName;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public AnyTypeKind getAnyTypeKind() {
return anyTypeKind;
}
@@ -103,6 +129,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.anyTypeKind = anyTypeKind;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getAnyType() {
return anyType;
}
@@ -111,6 +139,8 @@ public class PropagationTaskTO extends AbstractTaskTO {
this.anyType = anyType;
}
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
public String getEntityKey() {
return entityKey;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningTaskTO.java
new file mode 100644
index 0000000..bd45068
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningTaskTO.java
@@ -0,0 +1,122 @@
+/*
+ * 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.common.lib.to;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import java.util.HashSet;
+import java.util.Set;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import org.apache.syncope.common.lib.types.MatchingRule;
+import org.apache.syncope.common.lib.types.UnmatchingRule;
+
+@XmlRootElement(name = "provisioningTask")
+@XmlType
+@XmlSeeAlso({ PushTaskTO.class, PullTaskTO.class })
+@ApiModel(parent = SchedTaskTO.class, subTypes = { PushTaskTO.class, PullTaskTO.class }, discriminator = "@class")
+public abstract class ProvisioningTaskTO extends SchedTaskTO {
+
+ private static final long serialVersionUID = -5722284116974636425L;
+
+ private String resource;
+
+ private boolean performCreate;
+
+ private boolean performUpdate;
+
+ private boolean performDelete;
+
+ private boolean syncStatus;
+
+ private UnmatchingRule unmatchingRule;
+
+ private MatchingRule matchingRule;
+
+ private final Set<String> actionsClassNames = new HashSet<>();
+
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
+ public String getResource() {
+ return resource;
+ }
+
+ public void setResource(final String resource) {
+ this.resource = resource;
+ }
+
+ public boolean isPerformCreate() {
+ return performCreate;
+ }
+
+ public void setPerformCreate(final boolean performCreate) {
+ this.performCreate = performCreate;
+ }
+
+ public boolean isPerformUpdate() {
+ return performUpdate;
+ }
+
+ public void setPerformUpdate(final boolean performUpdate) {
+ this.performUpdate = performUpdate;
+ }
+
+ public boolean isPerformDelete() {
+ return performDelete;
+ }
+
+ public void setPerformDelete(final boolean performDelete) {
+ this.performDelete = performDelete;
+ }
+
+ public boolean isSyncStatus() {
+ return syncStatus;
+ }
+
+ public void setSyncStatus(final boolean syncStatus) {
+ this.syncStatus = syncStatus;
+ }
+
+ @XmlElementWrapper(name = "actionsClassNames")
+ @XmlElement(name = "actionsClassName")
+ @JsonProperty("actionsClassNames")
+ public Set<String> getActionsClassNames() {
+ return actionsClassNames;
+ }
+
+ public UnmatchingRule getUnmatchingRule() {
+ return unmatchingRule;
+ }
+
+ public void setUnmatchingRule(final UnmatchingRule unmatchigRule) {
+ this.unmatchingRule = unmatchigRule;
+ }
+
+ public MatchingRule getMatchingRule() {
+ return matchingRule;
+ }
+
+ public void setMatchingRule(final MatchingRule matchigRule) {
+ this.matchingRule = matchigRule;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
index c65d592..8a1ad64 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
@@ -19,11 +19,15 @@
package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
@@ -32,16 +36,29 @@ import org.apache.syncope.common.lib.types.PullMode;
@XmlRootElement(name = "pullTask")
@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
-public class PullTaskTO extends AbstractProvisioningTaskTO implements TemplatableTO {
+@ApiModel(parent = ProvisioningTaskTO.class)
+public class PullTaskTO extends ProvisioningTaskTO implements TemplatableTO {
private static final long serialVersionUID = -2143537546915809017L;
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
private PullMode pullMode;
private String reconciliationFilterBuilderClassName;
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
private String destinationRealm;
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.PullTaskTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
@XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
private final Map<String, AnyTO> templates = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/8038b056/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
index 7dfc623..2e3c36d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
@@ -19,11 +19,15 @@
package org.apache.syncope.common.lib.to;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
@@ -31,15 +35,26 @@ import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
@XmlRootElement(name = "pushTask")
@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
-public class PushTaskTO extends AbstractProvisioningTaskTO {
+@ApiModel(parent = ProvisioningTaskTO.class)
+public class PushTaskTO extends ProvisioningTaskTO {
private static final long serialVersionUID = -2143537546915809018L;
+ @JsonProperty(required = true)
+ @XmlElement(required = true)
private String sourceRealm;
@XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
private final Map<String, String> filters = new HashMap<>();
+ @XmlTransient
+ @JsonProperty("@class")
+ @ApiModelProperty(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.PushTaskTO")
+ @Override
+ public String getDiscriminator() {
+ return getClass().getName();
+ }
+
public String getSourceRealm() {
return sourceRealm;
}