Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/report/StaticReportletConf.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/report/StaticReportletConf.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/report/StaticReportletConf.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/report/StaticReportletConf.java Tue Aug 5 11:20:00 2014 @@ -1,109 +1,109 @@ -/* - * 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.report; - -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.ArrayList; -import java.util.Date; -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.XmlType; - -import org.apache.syncope.common.types.TraceLevel; - -@XmlRootElement(name = "staticReportletConf") -@XmlType -public class StaticReportletConf extends AbstractReportletConf { - - private static final long serialVersionUID = -4814950086361753689L; - - private String stringField; - - private Long longField; - - private Double doubleField; - - private Date dateField; - - private TraceLevel traceLevel; - - private final List<String> listField = new ArrayList<String>(); - - public StaticReportletConf() { - super(); - } - - public StaticReportletConf(final String name) { - super(name); - } - - public Date getDateField() { - return dateField == null - ? null - : new Date(dateField.getTime()); - } - - public void setDateField(Date dateField) { - this.dateField = dateField == null - ? null - : new Date(dateField.getTime()); - } - - public Double getDoubleField() { - return doubleField; - } - - public void setDoubleField(Double doubleField) { - this.doubleField = doubleField; - } - - @XmlElementWrapper(name = "listField") - @XmlElement(name = "field") - @JsonProperty("listField") - public List<String> getListField() { - return listField; - } - - public Long getLongField() { - return longField; - } - - public void setLongField(Long longField) { - this.longField = longField; - } - - public String getStringField() { - return stringField; - } - - public void setStringField(String stringField) { - this.stringField = stringField; - } - - public TraceLevel getTraceLevel() { - return traceLevel; - } - - public void setTraceLevel(TraceLevel traceLevel) { - this.traceLevel = traceLevel; - } -} +/* + * 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.report; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.ArrayList; +import java.util.Date; +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.XmlType; + +import org.apache.syncope.common.types.TraceLevel; + +@XmlRootElement(name = "staticReportletConf") +@XmlType +public class StaticReportletConf extends AbstractReportletConf { + + private static final long serialVersionUID = -4814950086361753689L; + + private String stringField; + + private Long longField; + + private Double doubleField; + + private Date dateField; + + private TraceLevel traceLevel; + + private final List<String> listField = new ArrayList<String>(); + + public StaticReportletConf() { + super(); + } + + public StaticReportletConf(final String name) { + super(name); + } + + public Date getDateField() { + return dateField == null + ? null + : new Date(dateField.getTime()); + } + + public void setDateField(Date dateField) { + this.dateField = dateField == null + ? null + : new Date(dateField.getTime()); + } + + public Double getDoubleField() { + return doubleField; + } + + public void setDoubleField(Double doubleField) { + this.doubleField = doubleField; + } + + @XmlElementWrapper(name = "listField") + @XmlElement(name = "field") + @JsonProperty("listField") + public List<String> getListField() { + return listField; + } + + public Long getLongField() { + return longField; + } + + public void setLongField(Long longField) { + this.longField = longField; + } + + public String getStringField() { + return stringField; + } + + public void setStringField(String stringField) { + this.stringField = stringField; + } + + public TraceLevel getTraceLevel() { + return traceLevel; + } + + public void setTraceLevel(TraceLevel traceLevel) { + this.traceLevel = traceLevel; + } +}
Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/report/UserReportletConf.java Tue Aug 5 11:20:00 2014 @@ -1,115 +1,115 @@ -/* - * 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.report; - -import com.fasterxml.jackson.annotation.JsonProperty; -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.XmlEnum; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.apache.syncope.common.annotation.FormAttributeField; -import org.apache.syncope.common.types.IntMappingType; - -@XmlRootElement(name = "userReportletConf") -@XmlType -public class UserReportletConf extends AbstractReportletConf { - - @XmlEnum - @XmlType(name = "userReportletConfFeature") - public enum Feature { - - id, - username, - workflowId, - status, - creationDate, - lastLoginDate, - changePwdDate, - passwordHistorySize, - failedLoginCount, - memberships, - resources - - } - - private static final long serialVersionUID = 6602717600064602764L; - - @FormAttributeField(userSearch = true) - private String matchingCond; - - @FormAttributeField(schema = IntMappingType.UserSchema) - private final List<String> attrs = new ArrayList<String>(); - - @FormAttributeField(schema = IntMappingType.UserDerivedSchema) - private final List<String> derAttrs = new ArrayList<String>(); - - @FormAttributeField(schema = IntMappingType.UserVirtualSchema) - private final List<String> virAttrs = new ArrayList<String>(); - - private final List<Feature> features = new ArrayList<Feature>(); - - public UserReportletConf() { - super(); - } - - public UserReportletConf(final String name) { - super(name); - } - - @XmlElementWrapper(name = "attributes") - @XmlElement(name = "attribute") - @JsonProperty("attributes") - public List<String> getAttrs() { - return attrs; - } - - @XmlElementWrapper(name = "derivedAttributes") - @XmlElement(name = "attribute") - @JsonProperty("derivedAttributes") - public List<String> getDerAttrs() { - return derAttrs; - } - - @XmlElementWrapper(name = "virtualAttributes") - @XmlElement(name = "attribute") - @JsonProperty("virtualAttributes") - public List<String> getVirAttrs() { - return virAttrs; - } - - @XmlElementWrapper(name = "features") - @XmlElement(name = "feature") - @JsonProperty("features") - public List<Feature> getFeatures() { - return features; - } - - public String getMatchingCond() { - return matchingCond; - } - - public void setMatchingCond(final String matchingCond) { - this.matchingCond = matchingCond; - } -} +/* + * 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.report; + +import com.fasterxml.jackson.annotation.JsonProperty; +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.XmlEnum; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.apache.syncope.common.annotation.FormAttributeField; +import org.apache.syncope.common.types.IntMappingType; + +@XmlRootElement(name = "userReportletConf") +@XmlType +public class UserReportletConf extends AbstractReportletConf { + + @XmlEnum + @XmlType(name = "userReportletConfFeature") + public enum Feature { + + id, + username, + workflowId, + status, + creationDate, + lastLoginDate, + changePwdDate, + passwordHistorySize, + failedLoginCount, + memberships, + resources + + } + + private static final long serialVersionUID = 6602717600064602764L; + + @FormAttributeField(userSearch = true) + private String matchingCond; + + @FormAttributeField(schema = IntMappingType.UserSchema) + private final List<String> attrs = new ArrayList<String>(); + + @FormAttributeField(schema = IntMappingType.UserDerivedSchema) + private final List<String> derAttrs = new ArrayList<String>(); + + @FormAttributeField(schema = IntMappingType.UserVirtualSchema) + private final List<String> virAttrs = new ArrayList<String>(); + + private final List<Feature> features = new ArrayList<Feature>(); + + public UserReportletConf() { + super(); + } + + public UserReportletConf(final String name) { + super(name); + } + + @XmlElementWrapper(name = "attributes") + @XmlElement(name = "attribute") + @JsonProperty("attributes") + public List<String> getAttrs() { + return attrs; + } + + @XmlElementWrapper(name = "derivedAttributes") + @XmlElement(name = "attribute") + @JsonProperty("derivedAttributes") + public List<String> getDerAttrs() { + return derAttrs; + } + + @XmlElementWrapper(name = "virtualAttributes") + @XmlElement(name = "attribute") + @JsonProperty("virtualAttributes") + public List<String> getVirAttrs() { + return virAttrs; + } + + @XmlElementWrapper(name = "features") + @XmlElement(name = "feature") + @JsonProperty("features") + public List<Feature> getFeatures() { + return features; + } + + public String getMatchingCond() { + return matchingCond; + } + + public void setMatchingCond(final String matchingCond) { + this.matchingCond = matchingCond; + } +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConfigurationService.java Tue Aug 5 11:20:00 2014 @@ -1,112 +1,112 @@ -/* - * 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.services; - -import java.util.List; -import javax.validation.constraints.NotNull; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.apache.syncope.common.to.AttributeTO; -import org.apache.syncope.common.to.ConfTO; -import org.apache.syncope.common.wrap.MailTemplate; -import org.apache.syncope.common.wrap.Validator; - -/** - * REST operations for configuration. - */ -@Path("configurations") -public interface ConfigurationService extends JAXRSService { - - /** - * Exports internal storage content as downloadable XML file. - * - * @return internal storage content as downloadable XML file - */ - @GET - @Path("stream") - Response export(); - - /** - * Returns a list of known mail-template names. - * - * @return a list of known mail-template names - */ - @GET - @Path("mailTemplates") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<MailTemplate> getMailTemplates(); - - /** - * Returns a list of known validator names. - * - * @return a list of known validator names - */ - @GET - @Path("validators") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<Validator> getValidators(); - - /** - * Returns all configuration parameters. - * - * @return all configuration parameters - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - ConfTO list(); - - /** - * Returns configuration parameter with matching key. - * - * @param key identifier of configuration to be read - * @return configuration parameter with matching key - */ - @GET - @Path("{key}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - AttributeTO read(@NotNull @PathParam("key") String key); - - /** - * Creates / updates the configuration parameter with the given key. - * - * @param key parameter key - * @param value parameter value - */ - @PUT - @Path("{key}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - void set(@NotNull @PathParam("key") String key, @NotNull AttributeTO value); - - /** - * Deletes the configuration parameter with matching key. - * - * @param key configuration parameter key - */ - @DELETE - @Path("{key}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - void delete(@NotNull @PathParam("key") String key); -} +/* + * 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.services; + +import java.util.List; +import javax.validation.constraints.NotNull; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.apache.syncope.common.to.AttributeTO; +import org.apache.syncope.common.to.ConfTO; +import org.apache.syncope.common.wrap.MailTemplate; +import org.apache.syncope.common.wrap.Validator; + +/** + * REST operations for configuration. + */ +@Path("configurations") +public interface ConfigurationService extends JAXRSService { + + /** + * Exports internal storage content as downloadable XML file. + * + * @return internal storage content as downloadable XML file + */ + @GET + @Path("stream") + Response export(); + + /** + * Returns a list of known mail-template names. + * + * @return a list of known mail-template names + */ + @GET + @Path("mailTemplates") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<MailTemplate> getMailTemplates(); + + /** + * Returns a list of known validator names. + * + * @return a list of known validator names + */ + @GET + @Path("validators") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<Validator> getValidators(); + + /** + * Returns all configuration parameters. + * + * @return all configuration parameters + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + ConfTO list(); + + /** + * Returns configuration parameter with matching key. + * + * @param key identifier of configuration to be read + * @return configuration parameter with matching key + */ + @GET + @Path("{key}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + AttributeTO read(@NotNull @PathParam("key") String key); + + /** + * Creates / updates the configuration parameter with the given key. + * + * @param key parameter key + * @param value parameter value + */ + @PUT + @Path("{key}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + void set(@NotNull @PathParam("key") String key, @NotNull AttributeTO value); + + /** + * Deletes the configuration parameter with matching key. + * + * @param key configuration parameter key + */ + @DELETE + @Path("{key}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + void delete(@NotNull @PathParam("key") String key); +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ConnectorService.java Tue Aug 5 11:20:00 2014 @@ -1,202 +1,202 @@ -/* - * 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.services; - -import java.util.List; -import javax.validation.constraints.NotNull; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.apache.cxf.jaxrs.model.wadl.Description; -import org.apache.cxf.jaxrs.model.wadl.Descriptions; -import org.apache.cxf.jaxrs.model.wadl.DocTarget; - -import org.apache.syncope.common.reqres.BulkAction; -import org.apache.syncope.common.reqres.BulkActionResult; -import org.apache.syncope.common.to.ConnBundleTO; -import org.apache.syncope.common.to.ConnIdObjectClassTO; -import org.apache.syncope.common.to.ConnInstanceTO; -import org.apache.syncope.common.to.SchemaTO; -import org.apache.syncope.common.types.ConnConfProperty; - -/** - * REST operations for connector bundles and instances. - */ -@Path("connectors") -public interface ConnectorService extends JAXRSService { - - /** - * Returns available connector bundles with property keys in selected language. - * - * @param lang language to select property keys; default language is English - * @return available connector bundles with property keys in selected language - */ - @GET - @Path("bundles") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<ConnBundleTO> getBundles(@QueryParam("lang") String lang); - - /** - * Returns configuration for given connector instance. - * - * @param connInstanceId connector instance id to read configuration from - * @return configuration for given connector instance - */ - @GET - @Path("{connInstanceId}/configuration") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<ConnConfProperty> getConfigurationProperties(@NotNull @PathParam("connInstanceId") Long connInstanceId); - - /** - * Returns schema names for connector bundle matching the given connector instance id. - * - * @param connInstanceId connector instance id to be used for schema lookup - * @param connInstanceTO connector instance object to provide special configuration properties - * @param includeSpecial if set to true, special schema names (like '__PASSWORD__') will be included; - * default is false - * @return schema names for connector bundle matching the given connector instance id - */ - @POST - @Path("{connInstanceId}/schemaNames") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<SchemaTO> getSchemaNames(@NotNull @PathParam("connInstanceId") Long connInstanceId, - @NotNull ConnInstanceTO connInstanceTO, - @QueryParam("includeSpecial") @DefaultValue("false") boolean includeSpecial); - - /** - * Returns supported object classes for connector bundle matching the given connector instance id. - * - * @param connInstanceId connector instance id to be used for schema lookup - * @param connInstanceTO connector instance object to provide special configuration properties - * @return supported object classes for connector bundle matching the given connector instance id - */ - @POST - @Path("{connInstanceId}/supportedObjectClasses") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<ConnIdObjectClassTO> getSupportedObjectClasses( - @NotNull @PathParam("connInstanceId") Long connInstanceId, - @NotNull ConnInstanceTO connInstanceTO); - - /** - * Returns connector instance with matching id. - * - * @param connInstanceId connector instance id to be read - * @return connector instance with matching id - */ - @GET - @Path("{connInstanceId}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - ConnInstanceTO read(@NotNull @PathParam("connInstanceId") Long connInstanceId); - - /** - * Returns connector instance for matching resource. - * - * @param resourceName resource name to be used for connector lookup - * @return connector instance for matching resource - */ - @GET - @Path("byResource/{resourceName}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - ConnInstanceTO readByResource(@NotNull @PathParam("resourceName") String resourceName); - - /** - * Returns a list of all connector instances with property keys in the matching language. - * - * @param lang language to select property keys, null for default (English). - * An ISO 639 alpha-2 or alpha-3 language code, or a language subtag up to 8 characters in length. - * @return list of all connector instances with property keys in the matching language - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<ConnInstanceTO> list(@QueryParam("lang") String lang); - - /** - * Creates a new connector instance. - * - * @param connInstanceTO connector instance to be created - * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created connector instance - */ - @Descriptions({ - @Description(target = DocTarget.RESPONSE, - value = "Featuring <tt>Location</tt> header of created connector instance") - }) - @POST - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - Response create(@NotNull ConnInstanceTO connInstanceTO); - - /** - * Updates the connector instance matching the provided id. - * - * @param connInstanceId connector instance id to be updated - * @param connInstaceTO connector instance to be stored - */ - @PUT - @Path("{connInstanceId}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - void update(@NotNull @PathParam("connInstanceId") Long connInstanceId, @NotNull ConnInstanceTO connInstaceTO); - - /** - * Deletes the connector instance matching the provided id. - * - * @param connInstanceId connector instance id to be deleted - */ - @DELETE - @Path("{connInstanceId}") - void delete(@NotNull @PathParam("connInstanceId") Long connInstanceId); - - /** - * @param connInstaceTO connector instance to be used for connection check - * @return true if connection could be established - */ - @POST - @Path("check") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - boolean check(@NotNull ConnInstanceTO connInstaceTO); - - /** - * Reload all connector bundles and instances. - */ - @POST - @Path("reload") - void reload(); - - /** - * Executes the provided bulk action. - * - * @param bulkAction list of connector instance ids against which the bulk action will be performed. - * @return Bulk action result - */ - @POST - @Path("bulk") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - BulkActionResult bulk(@NotNull BulkAction bulkAction); -} +/* + * 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.services; + +import java.util.List; +import javax.validation.constraints.NotNull; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.DefaultValue; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.Descriptions; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; + +import org.apache.syncope.common.reqres.BulkAction; +import org.apache.syncope.common.reqres.BulkActionResult; +import org.apache.syncope.common.to.ConnBundleTO; +import org.apache.syncope.common.to.ConnIdObjectClassTO; +import org.apache.syncope.common.to.ConnInstanceTO; +import org.apache.syncope.common.to.SchemaTO; +import org.apache.syncope.common.types.ConnConfProperty; + +/** + * REST operations for connector bundles and instances. + */ +@Path("connectors") +public interface ConnectorService extends JAXRSService { + + /** + * Returns available connector bundles with property keys in selected language. + * + * @param lang language to select property keys; default language is English + * @return available connector bundles with property keys in selected language + */ + @GET + @Path("bundles") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<ConnBundleTO> getBundles(@QueryParam("lang") String lang); + + /** + * Returns configuration for given connector instance. + * + * @param connInstanceId connector instance id to read configuration from + * @return configuration for given connector instance + */ + @GET + @Path("{connInstanceId}/configuration") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<ConnConfProperty> getConfigurationProperties(@NotNull @PathParam("connInstanceId") Long connInstanceId); + + /** + * Returns schema names for connector bundle matching the given connector instance id. + * + * @param connInstanceId connector instance id to be used for schema lookup + * @param connInstanceTO connector instance object to provide special configuration properties + * @param includeSpecial if set to true, special schema names (like '__PASSWORD__') will be included; + * default is false + * @return schema names for connector bundle matching the given connector instance id + */ + @POST + @Path("{connInstanceId}/schemaNames") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<SchemaTO> getSchemaNames(@NotNull @PathParam("connInstanceId") Long connInstanceId, + @NotNull ConnInstanceTO connInstanceTO, + @QueryParam("includeSpecial") @DefaultValue("false") boolean includeSpecial); + + /** + * Returns supported object classes for connector bundle matching the given connector instance id. + * + * @param connInstanceId connector instance id to be used for schema lookup + * @param connInstanceTO connector instance object to provide special configuration properties + * @return supported object classes for connector bundle matching the given connector instance id + */ + @POST + @Path("{connInstanceId}/supportedObjectClasses") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<ConnIdObjectClassTO> getSupportedObjectClasses( + @NotNull @PathParam("connInstanceId") Long connInstanceId, + @NotNull ConnInstanceTO connInstanceTO); + + /** + * Returns connector instance with matching id. + * + * @param connInstanceId connector instance id to be read + * @return connector instance with matching id + */ + @GET + @Path("{connInstanceId}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + ConnInstanceTO read(@NotNull @PathParam("connInstanceId") Long connInstanceId); + + /** + * Returns connector instance for matching resource. + * + * @param resourceName resource name to be used for connector lookup + * @return connector instance for matching resource + */ + @GET + @Path("byResource/{resourceName}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + ConnInstanceTO readByResource(@NotNull @PathParam("resourceName") String resourceName); + + /** + * Returns a list of all connector instances with property keys in the matching language. + * + * @param lang language to select property keys, null for default (English). + * An ISO 639 alpha-2 or alpha-3 language code, or a language subtag up to 8 characters in length. + * @return list of all connector instances with property keys in the matching language + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<ConnInstanceTO> list(@QueryParam("lang") String lang); + + /** + * Creates a new connector instance. + * + * @param connInstanceTO connector instance to be created + * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created connector instance + */ + @Descriptions({ + @Description(target = DocTarget.RESPONSE, + value = "Featuring <tt>Location</tt> header of created connector instance") + }) + @POST + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + Response create(@NotNull ConnInstanceTO connInstanceTO); + + /** + * Updates the connector instance matching the provided id. + * + * @param connInstanceId connector instance id to be updated + * @param connInstaceTO connector instance to be stored + */ + @PUT + @Path("{connInstanceId}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + void update(@NotNull @PathParam("connInstanceId") Long connInstanceId, @NotNull ConnInstanceTO connInstaceTO); + + /** + * Deletes the connector instance matching the provided id. + * + * @param connInstanceId connector instance id to be deleted + */ + @DELETE + @Path("{connInstanceId}") + void delete(@NotNull @PathParam("connInstanceId") Long connInstanceId); + + /** + * @param connInstaceTO connector instance to be used for connection check + * @return true if connection could be established + */ + @POST + @Path("check") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + boolean check(@NotNull ConnInstanceTO connInstaceTO); + + /** + * Reload all connector bundles and instances. + */ + @POST + @Path("reload") + void reload(); + + /** + * Executes the provided bulk action. + * + * @param bulkAction list of connector instance ids against which the bulk action will be performed. + * @return Bulk action result + */ + @POST + @Path("bulk") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + BulkActionResult bulk(@NotNull BulkAction bulkAction); +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/EntitlementService.java Tue Aug 5 11:20:00 2014 @@ -1,54 +1,54 @@ -/* - * 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.services; - -import java.util.List; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.apache.syncope.common.wrap.EntitlementTO; - -/** - * REST operations for entitlements. - */ -@Path("entitlements") -public interface EntitlementService extends JAXRSService { - - /** - * Returns a list of all known entitlements. - * - * @return list of all known entitlements - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<EntitlementTO> getAllEntitlements(); - - /** - * Returns a list of entitlements assigned to user making the current request. - * - * @return list of entitlements assigned to user making the current request - */ - @GET - @Path("own") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<EntitlementTO> getOwnEntitlements(); -} +/* + * 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.services; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.apache.syncope.common.wrap.EntitlementTO; + +/** + * REST operations for entitlements. + */ +@Path("entitlements") +public interface EntitlementService extends JAXRSService { + + /** + * Returns a list of all known entitlements. + * + * @return list of all known entitlements + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<EntitlementTO> getAllEntitlements(); + + /** + * Returns a list of entitlements assigned to user making the current request. + * + * @return list of entitlements assigned to user making the current request + */ + @GET + @Path("own") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<EntitlementTO> getOwnEntitlements(); +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java Tue Aug 5 11:20:00 2014 @@ -1,99 +1,99 @@ -/* - * 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.services; - -import java.util.List; -import javax.validation.constraints.NotNull; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.apache.syncope.common.to.EventCategoryTO; -import org.apache.syncope.common.to.LoggerTO; -import org.apache.syncope.common.types.LoggerType; - -/** - * REST operations for logging and auditing. - */ -@Path("logger") -public interface LoggerService extends JAXRSService { - - /** - * Returns a list of all managed events in audit. - * - * @return list of all managed events in audit - */ - @GET - @Path("events") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<EventCategoryTO> events(); - - /** - * Returns logger with matching type and name. - * - * @param type LoggerType to be selected. - * @param name Logger name to be read - * @return logger with matching type and name - */ - @GET - @Path("{type}/{name}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - LoggerTO read(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") final String name); - - /** - * Returns a list of loggers with matching type. - * - * @param type LoggerType to be selected - * @return list of loggers with matching type - */ - @GET - @Path("{type}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<LoggerTO> list(@NotNull @PathParam("type") LoggerType type); - - /** - * Creates or updates (if existing) the logger with matching name. - * - * @param type LoggerType to be selected - * @param name Logger name to be updated - * @param logger Logger to be created or updated - */ - @PUT - @Path("{type}/{name}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - void update(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") String name, - @NotNull LoggerTO logger); - - /** - * Deletes the logger with matching name. - * - * @param type LoggerType to be selected - * @param name Logger name to be deleted - */ - @DELETE - @Path("{type}/{name}") - void delete(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") String name); - -} +/* + * 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.services; + +import java.util.List; +import javax.validation.constraints.NotNull; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.apache.syncope.common.to.EventCategoryTO; +import org.apache.syncope.common.to.LoggerTO; +import org.apache.syncope.common.types.LoggerType; + +/** + * REST operations for logging and auditing. + */ +@Path("logger") +public interface LoggerService extends JAXRSService { + + /** + * Returns a list of all managed events in audit. + * + * @return list of all managed events in audit + */ + @GET + @Path("events") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<EventCategoryTO> events(); + + /** + * Returns logger with matching type and name. + * + * @param type LoggerType to be selected. + * @param name Logger name to be read + * @return logger with matching type and name + */ + @GET + @Path("{type}/{name}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + LoggerTO read(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") final String name); + + /** + * Returns a list of loggers with matching type. + * + * @param type LoggerType to be selected + * @return list of loggers with matching type + */ + @GET + @Path("{type}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<LoggerTO> list(@NotNull @PathParam("type") LoggerType type); + + /** + * Creates or updates (if existing) the logger with matching name. + * + * @param type LoggerType to be selected + * @param name Logger name to be updated + * @param logger Logger to be created or updated + */ + @PUT + @Path("{type}/{name}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + void update(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") String name, + @NotNull LoggerTO logger); + + /** + * Deletes the logger with matching name. + * + * @param type LoggerType to be selected + * @param name Logger name to be deleted + */ + @DELETE + @Path("{type}/{name}") + void delete(@NotNull @PathParam("type") LoggerType type, @NotNull @PathParam("name") String name); + +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/NotificationService.java Tue Aug 5 11:20:00 2014 @@ -1,98 +1,98 @@ -/* - * 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.services; - -import java.util.List; -import javax.validation.constraints.NotNull; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.apache.cxf.jaxrs.model.wadl.Description; -import org.apache.cxf.jaxrs.model.wadl.Descriptions; -import org.apache.cxf.jaxrs.model.wadl.DocTarget; - -import org.apache.syncope.common.to.NotificationTO; - -/** - * REST operations for notifications. - */ -@Path("notifications") -public interface NotificationService extends JAXRSService { - - /** - * Returns notification with matching id. - * - * @param notificationId id of notification to be read - * @return notification with matching id - */ - @GET - @Path("{notificationId}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - NotificationTO read(@NotNull @PathParam("notificationId") Long notificationId); - - /** - * Returns a list of all notifications. - * - * @return list of all notifications. - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<NotificationTO> list(); - - /** - * Creates a new notification. - * - * @param notificationTO Creates a new notification. - * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created notification - */ - @Descriptions({ - @Description(target = DocTarget.RESPONSE, - value = "Featuring <tt>Location</tt> header of created notification") - }) - @POST - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - Response create(@NotNull NotificationTO notificationTO); - - /** - * Updates the notification matching the given id. - * - * @param notificationId id of notification to be updated - * @param notificationTO notification to be stored - */ - @PUT - @Path("{notificationId}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - void update(@NotNull @PathParam("notificationId") Long notificationId, @NotNull NotificationTO notificationTO); - - /** - * Deletes the notification matching the given id. - * - * @param notificationId id for notification to be deleted - */ - @DELETE - @Path("{notificationId}") - void delete(@NotNull @PathParam("notificationId") Long notificationId); -} +/* + * 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.services; + +import java.util.List; +import javax.validation.constraints.NotNull; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.Descriptions; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; + +import org.apache.syncope.common.to.NotificationTO; + +/** + * REST operations for notifications. + */ +@Path("notifications") +public interface NotificationService extends JAXRSService { + + /** + * Returns notification with matching id. + * + * @param notificationId id of notification to be read + * @return notification with matching id + */ + @GET + @Path("{notificationId}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + NotificationTO read(@NotNull @PathParam("notificationId") Long notificationId); + + /** + * Returns a list of all notifications. + * + * @return list of all notifications. + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<NotificationTO> list(); + + /** + * Creates a new notification. + * + * @param notificationTO Creates a new notification. + * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created notification + */ + @Descriptions({ + @Description(target = DocTarget.RESPONSE, + value = "Featuring <tt>Location</tt> header of created notification") + }) + @POST + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + Response create(@NotNull NotificationTO notificationTO); + + /** + * Updates the notification matching the given id. + * + * @param notificationId id of notification to be updated + * @param notificationTO notification to be stored + */ + @PUT + @Path("{notificationId}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + void update(@NotNull @PathParam("notificationId") Long notificationId, @NotNull NotificationTO notificationTO); + + /** + * Deletes the notification matching the given id. + * + * @param notificationId id for notification to be deleted + */ + @DELETE + @Path("{notificationId}") + void delete(@NotNull @PathParam("notificationId") Long notificationId); +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/PolicyService.java Tue Aug 5 11:20:00 2014 @@ -1,128 +1,128 @@ -/* - * 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.services; - -import java.util.List; -import javax.validation.constraints.NotNull; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.MatrixParam; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.apache.cxf.jaxrs.model.wadl.Description; -import org.apache.cxf.jaxrs.model.wadl.Descriptions; -import org.apache.cxf.jaxrs.model.wadl.DocTarget; -import org.apache.syncope.common.wrap.CorrelationRuleClass; -import org.apache.syncope.common.to.AbstractPolicyTO; -import org.apache.syncope.common.types.PolicyType; - -/** - * REST operations for policies. - */ -@Path("policies") -public interface PolicyService extends JAXRSService { - - /** - * Returns a list of classes to be used as correlation rules. - * - * @return list of classes to be used as correlation rules - */ - @GET - @Path("syncCorrelationRuleClasses") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<CorrelationRuleClass> getSyncCorrelationRuleClasses(); - - /** - * Returns the policy matching the given id. - * - * @param policyId id of requested policy - * @param <T> response type (extending PolicyTO) - * @return policy with matching id - */ - @GET - @Path("{policyId}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - <T extends AbstractPolicyTO> T read(@NotNull @PathParam("policyId") Long policyId); - - /** - * Returns the global policy for the given type. - * - * @param type PolicyType to read global policy from - * @param <T> response type (extending PolicyTO) - * @return global policy for matching type - */ - @GET - @Path("global") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - <T extends AbstractPolicyTO> T readGlobal(@NotNull @MatrixParam("type") PolicyType type); - - /** - * Returns a list of policies of the matching type. - * - * @param type Type selector for requested policies - * @param <T> response type (extending PolicyTO) - * @return list of policies with matching type - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - <T extends AbstractPolicyTO> List<T> list(@NotNull @MatrixParam("type") PolicyType type); - - /** - * Create a new policy. - * - * @param policyTO Policy to be created (needs to match type) - * @param <T> response type (extending PolicyTO) - * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created policy - */ - @Descriptions({ - @Description(target = DocTarget.RESPONSE, value = "Featuring <tt>Location</tt> header of created policy") - }) - @POST - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - <T extends AbstractPolicyTO> Response create(@NotNull T policyTO); - - /** - * Updates policy matching the given id. - * - * @param policyId id of policy to be updated - * @param policyTO Policy to replace existing policy - * @param <T> response type (extending PolicyTO) - */ - @PUT - @Path("{policyId}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - <T extends AbstractPolicyTO> void update(@NotNull @PathParam("policyId") Long policyId, @NotNull T policyTO); - - /** - * Delete policy matching the given id. - * - * @param policyId id of policy to be deleted - * @param <T> response type (extending PolicyTO) - */ - @DELETE - @Path("{policyId}") - <T extends AbstractPolicyTO> void delete(@NotNull @PathParam("policyId") Long policyId); - -} +/* + * 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.services; + +import java.util.List; +import javax.validation.constraints.NotNull; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.MatrixParam; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.Descriptions; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; +import org.apache.syncope.common.wrap.CorrelationRuleClass; +import org.apache.syncope.common.to.AbstractPolicyTO; +import org.apache.syncope.common.types.PolicyType; + +/** + * REST operations for policies. + */ +@Path("policies") +public interface PolicyService extends JAXRSService { + + /** + * Returns a list of classes to be used as correlation rules. + * + * @return list of classes to be used as correlation rules + */ + @GET + @Path("syncCorrelationRuleClasses") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<CorrelationRuleClass> getSyncCorrelationRuleClasses(); + + /** + * Returns the policy matching the given id. + * + * @param policyId id of requested policy + * @param <T> response type (extending PolicyTO) + * @return policy with matching id + */ + @GET + @Path("{policyId}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + <T extends AbstractPolicyTO> T read(@NotNull @PathParam("policyId") Long policyId); + + /** + * Returns the global policy for the given type. + * + * @param type PolicyType to read global policy from + * @param <T> response type (extending PolicyTO) + * @return global policy for matching type + */ + @GET + @Path("global") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + <T extends AbstractPolicyTO> T readGlobal(@NotNull @MatrixParam("type") PolicyType type); + + /** + * Returns a list of policies of the matching type. + * + * @param type Type selector for requested policies + * @param <T> response type (extending PolicyTO) + * @return list of policies with matching type + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + <T extends AbstractPolicyTO> List<T> list(@NotNull @MatrixParam("type") PolicyType type); + + /** + * Create a new policy. + * + * @param policyTO Policy to be created (needs to match type) + * @param <T> response type (extending PolicyTO) + * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created policy + */ + @Descriptions({ + @Description(target = DocTarget.RESPONSE, value = "Featuring <tt>Location</tt> header of created policy") + }) + @POST + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + <T extends AbstractPolicyTO> Response create(@NotNull T policyTO); + + /** + * Updates policy matching the given id. + * + * @param policyId id of policy to be updated + * @param policyTO Policy to replace existing policy + * @param <T> response type (extending PolicyTO) + */ + @PUT + @Path("{policyId}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + <T extends AbstractPolicyTO> void update(@NotNull @PathParam("policyId") Long policyId, @NotNull T policyTO); + + /** + * Delete policy matching the given id. + * + * @param policyId id of policy to be deleted + * @param <T> response type (extending PolicyTO) + */ + @DELETE + @Path("{policyId}") + <T extends AbstractPolicyTO> void delete(@NotNull @PathParam("policyId") Long policyId); + +} Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java?rev=1615910&r1=1615909&r2=1615910&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ReportService.java Tue Aug 5 11:20:00 2014 @@ -1,195 +1,195 @@ -/* - * 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.services; - -import java.util.List; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.apache.cxf.jaxrs.model.wadl.Description; -import org.apache.cxf.jaxrs.model.wadl.Descriptions; -import org.apache.cxf.jaxrs.model.wadl.DocTarget; -import org.apache.syncope.common.reqres.PagedResult; -import org.apache.syncope.common.to.ReportExecTO; -import org.apache.syncope.common.to.ReportTO; -import org.apache.syncope.common.types.ReportExecExportFormat; -import org.apache.syncope.common.wrap.ReportletConfClass; - -/** - * REST operations for reports. - */ -@Path("reports") -public interface ReportService extends JAXRSService { - - /** - * Returns a list of available classes for reportlet configuration. - * - * @return list of available classes for reportlet configuration - */ - @GET - @Path("reportletConfClasses") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - List<ReportletConfClass> getReportletConfClasses(); - - /** - * Returns report with matching id. - * - * @param reportId id of report to be read - * @return report with matching id - */ - @GET - @Path("{reportId}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - ReportTO read(@NotNull @PathParam("reportId") Long reportId); - - /** - * Returns report execution with matching id. - * - * @param executionId report execution id to be selected - * @return report execution with matching id - */ - @GET - @Path("executions/{executionId}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - ReportExecTO readExecution(@NotNull @PathParam("executionId") Long executionId); - - /** - * Returns a paged list of all existing reports. - * - * @return paged list of all existing reports - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - PagedResult<ReportTO> list(); - - /** - * Returns a paged list of all existing reports. - * - * @param orderBy list of ordering clauses, separated by comma - * @return paged list of all existing reports - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - PagedResult<ReportTO> list(@QueryParam(PARAM_ORDERBY) String orderBy); - - /** - * Returns a paged list of all existing reports matching page/size conditions. - * - * @param page selected page in relation to size - * @param size number of entries per page - * @return paged list of existing reports matching page/size conditions - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - PagedResult<ReportTO> list( - @NotNull @Min(1) @QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) Integer page, - @NotNull @Min(1) @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) Integer size); - - /** - * Returns a paged list of all existing reports matching page/size conditions. - * - * @param page selected page in relation to size - * @param size number of entries per page - * @param orderBy list of ordering clauses, separated by comma - * @return paged list of existing reports matching page/size conditions - */ - @GET - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - PagedResult<ReportTO> list( - @NotNull @Min(1) @QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) Integer page, - @NotNull @Min(1) @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) Integer size, - @QueryParam(PARAM_ORDERBY) String orderBy); - - /** - * Creates a new report. - * - * @param reportTO report to be created - * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created report - */ - @Descriptions({ - @Description(target = DocTarget.RESPONSE, value = "Featuring <tt>Location</tt> header of created report") - }) - @POST - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - Response create(@NotNull ReportTO reportTO); - - /** - * Updates report with matching id. - * - * @param reportId id for report to be updated - * @param reportTO report to be stored - */ - @PUT - @Path("{reportId}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - void update(@NotNull @PathParam("reportId") Long reportId, ReportTO reportTO); - - /** - * Deletes report with matching id. - * - * @param reportId Deletes report with matching id - */ - @DELETE - @Path("{reportId}") - void delete(@NotNull @PathParam("reportId") Long reportId); - - /** - * Deletes report execution with matching id. - * - * @param executionId id of execution report to be deleted - */ - @DELETE - @Path("executions/{executionId}") - void deleteExecution(@NotNull @PathParam("executionId") Long executionId); - - /** - * Executes the report with matching id. - * - * @param reportId id of report to be executed - * @return report execution result - */ - @POST - @Path("{reportId}/execute") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - ReportExecTO execute(@NotNull @PathParam("reportId") Long reportId); - - /** - * Exports the report execution with matching id in the requested format. - * - * @param executionId id of execution report to be selected - * @param fmt file-format selection - * @return a stream for content download - */ - @GET - @Path("executions/{executionId}/stream") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - Response exportExecutionResult(@NotNull @PathParam("executionId") Long executionId, - @QueryParam("format") ReportExecExportFormat fmt); -} +/* + * 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.services; + +import java.util.List; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.DefaultValue; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.Descriptions; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; +import org.apache.syncope.common.reqres.PagedResult; +import org.apache.syncope.common.to.ReportExecTO; +import org.apache.syncope.common.to.ReportTO; +import org.apache.syncope.common.types.ReportExecExportFormat; +import org.apache.syncope.common.wrap.ReportletConfClass; + +/** + * REST operations for reports. + */ +@Path("reports") +public interface ReportService extends JAXRSService { + + /** + * Returns a list of available classes for reportlet configuration. + * + * @return list of available classes for reportlet configuration + */ + @GET + @Path("reportletConfClasses") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + List<ReportletConfClass> getReportletConfClasses(); + + /** + * Returns report with matching id. + * + * @param reportId id of report to be read + * @return report with matching id + */ + @GET + @Path("{reportId}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + ReportTO read(@NotNull @PathParam("reportId") Long reportId); + + /** + * Returns report execution with matching id. + * + * @param executionId report execution id to be selected + * @return report execution with matching id + */ + @GET + @Path("executions/{executionId}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + ReportExecTO readExecution(@NotNull @PathParam("executionId") Long executionId); + + /** + * Returns a paged list of all existing reports. + * + * @return paged list of all existing reports + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + PagedResult<ReportTO> list(); + + /** + * Returns a paged list of all existing reports. + * + * @param orderBy list of ordering clauses, separated by comma + * @return paged list of all existing reports + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + PagedResult<ReportTO> list(@QueryParam(PARAM_ORDERBY) String orderBy); + + /** + * Returns a paged list of all existing reports matching page/size conditions. + * + * @param page selected page in relation to size + * @param size number of entries per page + * @return paged list of existing reports matching page/size conditions + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + PagedResult<ReportTO> list( + @NotNull @Min(1) @QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) Integer page, + @NotNull @Min(1) @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) Integer size); + + /** + * Returns a paged list of all existing reports matching page/size conditions. + * + * @param page selected page in relation to size + * @param size number of entries per page + * @param orderBy list of ordering clauses, separated by comma + * @return paged list of existing reports matching page/size conditions + */ + @GET + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + PagedResult<ReportTO> list( + @NotNull @Min(1) @QueryParam(PARAM_PAGE) @DefaultValue(DEFAULT_PARAM_PAGE) Integer page, + @NotNull @Min(1) @QueryParam(PARAM_SIZE) @DefaultValue(DEFAULT_PARAM_SIZE) Integer size, + @QueryParam(PARAM_ORDERBY) String orderBy); + + /** + * Creates a new report. + * + * @param reportTO report to be created + * @return <tt>Response</tt> object featuring <tt>Location</tt> header of created report + */ + @Descriptions({ + @Description(target = DocTarget.RESPONSE, value = "Featuring <tt>Location</tt> header of created report") + }) + @POST + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + Response create(@NotNull ReportTO reportTO); + + /** + * Updates report with matching id. + * + * @param reportId id for report to be updated + * @param reportTO report to be stored + */ + @PUT + @Path("{reportId}") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + void update(@NotNull @PathParam("reportId") Long reportId, ReportTO reportTO); + + /** + * Deletes report with matching id. + * + * @param reportId Deletes report with matching id + */ + @DELETE + @Path("{reportId}") + void delete(@NotNull @PathParam("reportId") Long reportId); + + /** + * Deletes report execution with matching id. + * + * @param executionId id of execution report to be deleted + */ + @DELETE + @Path("executions/{executionId}") + void deleteExecution(@NotNull @PathParam("executionId") Long executionId); + + /** + * Executes the report with matching id. + * + * @param reportId id of report to be executed + * @return report execution result + */ + @POST + @Path("{reportId}/execute") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + ReportExecTO execute(@NotNull @PathParam("reportId") Long reportId); + + /** + * Exports the report execution with matching id in the requested format. + * + * @param executionId id of execution report to be selected + * @param fmt file-format selection + * @return a stream for content download + */ + @GET + @Path("executions/{executionId}/stream") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + Response exportExecutionResult(@NotNull @PathParam("executionId") Long executionId, + @QueryParam("format") ReportExecExportFormat fmt); +}
