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 2016/12/01 08:29:24 UTC
[4/6] syncope git commit: [SYNCOPE-978] REST resource provided,
consolidated wssample into syncope-fit-build-tools
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/core-reference/src/test/resources/rest/DeleteScript.groovy
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rest/DeleteScript.groovy b/fit/core-reference/src/test/resources/rest/DeleteScript.groovy
new file mode 100644
index 0000000..7cf805a
--- /dev/null
+++ b/fit/core-reference/src/test/resources/rest/DeleteScript.groovy
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+import org.apache.cxf.jaxrs.client.WebClient
+
+// Parameters:
+// The connector sends the following:
+// client : CXF WebClient
+// action: a string describing the action ("DELETE" here)
+// log: a handler to the Log facility
+// objectClass: a String describing the Object class (__ACCOUNT__ / __GROUP__ / other)
+// options: a handler to the OperationOptions Map
+// uid: String for the unique id that specifies the object to delete
+
+log.info("Entering " + action + " Script");
+
+WebClient webClient = client;
+
+assert uid != null
+
+switch ( objectClass ) {
+case "__ACCOUNT__":
+ webClient.path("/users/" + uid);
+ webClient.delete();
+ break
+
+default:
+ break
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/core-reference/src/test/resources/rest/SchemaScript.groovy
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rest/SchemaScript.groovy b/fit/core-reference/src/test/resources/rest/SchemaScript.groovy
new file mode 100644
index 0000000..ecf7080
--- /dev/null
+++ b/fit/core-reference/src/test/resources/rest/SchemaScript.groovy
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+import org.identityconnectors.common.security.GuardedString
+import org.identityconnectors.framework.common.objects.AttributeInfo
+import org.identityconnectors.framework.common.objects.AttributeInfo.Flags
+import org.identityconnectors.framework.common.objects.AttributeInfoBuilder
+import org.identityconnectors.framework.common.objects.ObjectClassInfo
+import org.identityconnectors.framework.common.objects.ObjectClassInfoBuilder
+
+// Parameters:
+// The connector sends the following:
+// action: a string describing the action ("SCHEMA" here)
+// log: a handler to the Log facility
+// builder: SchemaBuilder instance for the connector
+//
+// The connector will make the final call to builder.build()
+// so the scipt just need to declare the different object types.
+
+log.info("Entering " + action + " Script");
+
+idAIB = new AttributeInfoBuilder("key", String.class);
+idAIB.setRequired(true);
+
+orgAttrsInfo = new HashSet<AttributeInfo>();
+orgAttrsInfo.add(idAIB.build());
+orgAttrsInfo.add(AttributeInfoBuilder.build("username", String.class));
+orgAttrsInfo.add(AttributeInfoBuilder.build("password", GuardedString.class));
+orgAttrsInfo.add(AttributeInfoBuilder.build("firstName", String.class));
+orgAttrsInfo.add(AttributeInfoBuilder.build("surname", String.class));
+orgAttrsInfo.add(AttributeInfoBuilder.build("email", String.class));
+
+ObjectClassInfo oci = new ObjectClassInfoBuilder().setType("__ACCOUNT__").addAllAttributeInfo(orgAttrsInfo).build();
+builder.defineObjectClass(oci);
+
+log.info(action + " script done");
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/core-reference/src/test/resources/rest/SearchScript.groovy
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rest/SearchScript.groovy b/fit/core-reference/src/test/resources/rest/SearchScript.groovy
new file mode 100644
index 0000000..c4fe900
--- /dev/null
+++ b/fit/core-reference/src/test/resources/rest/SearchScript.groovy
@@ -0,0 +1,100 @@
+/*
+ * 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.
+ */
+import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.databind.node.ArrayNode
+import com.fasterxml.jackson.databind.node.ObjectNode
+import javax.ws.rs.core.Response
+import org.apache.cxf.jaxrs.client.WebClient
+import org.identityconnectors.common.security.GuardedString
+
+// Parameters:
+// The connector sends the following:
+// client : CXF WebClient
+// objectClass: a String describing the Object class (__ACCOUNT__ / __GROUP__ / other)
+// action: a string describing the action ("SEARCH" here)
+// log: a handler to the Log facility
+// options: a handler to the OperationOptions Map
+// query: a handler to the Query Map
+//
+// The Query map describes the filter used (via FIQL's ConditionType):
+//
+// query = [ operation: "EQUALS", left: attribute, right: "value" ]
+// query = [ operation: "GREATER_THAN", left: attribute, right: "value" ]
+// query = [ operation: "GREATER_OR_EQUALS", left: attribute, right: "value" ]
+// query = [ operation: "LESS_THAN", left: attribute, right: "value" ]
+// query = [ operation: "LESS_OR_EQUALS", left: attribute, right: "value" ]
+// query = null : then we assume we fetch everything
+//
+// AND and OR filter just embed a left/right couple of queries.
+// query = [ operation: "AND", left: query1, right: query2 ]
+// query = [ operation: "OR", left: query1, right: query2 ]
+//
+// Returns: A list of Maps. Each map describing one row.
+// !!!! Each Map must contain a '__UID__' and '__NAME__' attribute.
+// This is required to build a ConnectorObject.
+
+def buildConnectorObject(node) {
+ return [
+ __UID__:node.get("key").textValue(),
+ __NAME__:node.get("key").textValue(),
+ username:node.get("username").textValue(),
+ password:node.has("password") && node.get("password").textValue() != null
+ ? new GuardedString(node.get("password").textValue().toCharArray())
+ : null,
+ firstName:node.get("firstName").textValue(),
+ surname:node.get("surname").textValue(),
+ email:node.get("email").textValue()
+ ];
+}
+
+log.info("Entering " + action + " Script");
+
+WebClient webClient = client;
+ObjectMapper mapper = new ObjectMapper();
+
+def result = []
+
+switch (objectClass) {
+case "__ACCOUNT__":
+ if (query == null || (!query.get("left").equals("__UID__") && !query.get("conditionType").equals("EQUALS"))) {
+ webClient.path("/users");
+ Response response = webClient.get();
+ ArrayNode node = mapper.readTree(response.getEntity());
+
+ for (i = 0; i < node.size(); i++) {
+ result.add(buildConnectorObject(node.get(i)));
+ }
+ } else {
+ webClient.path("/users/" + query.get("right"));
+ Response response = webClient.get();
+ if (response.getStatus() == 200) {
+ ObjectNode node = mapper.readTree(response.getEntity());
+ result.add(buildConnectorObject(node));
+ } else {
+ log.warn("Could not read object {0}", query.get("right"));
+ }
+ }
+
+ break
+
+default:
+ result;
+}
+
+return result;
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/core-reference/src/test/resources/rest/SyncScript.groovy
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rest/SyncScript.groovy b/fit/core-reference/src/test/resources/rest/SyncScript.groovy
new file mode 100644
index 0000000..a15636c
--- /dev/null
+++ b/fit/core-reference/src/test/resources/rest/SyncScript.groovy
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ */
+import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.databind.node.ArrayNode
+import java.util.Date;
+import javax.ws.rs.core.Response
+import org.apache.cxf.jaxrs.client.WebClient
+import org.identityconnectors.common.security.GuardedString
+
+// Parameters:
+// The connector sends the following:
+// client : CXF WebClient
+// objectClass: a String describing the Object class (__ACCOUNT__ / __GROUP__ / other)
+// action: a string describing the action ("SYNC" or "GET_LATEST_SYNC_TOKEN" here)
+// log: a handler to the Log facility
+// options: a handler to the OperationOptions Map (null if action = "GET_LATEST_SYNC_TOKEN")
+// token: a handler to an Object representing the sync token (null if action = "GET_LATEST_SYNC_TOKEN")
+//
+//
+// Returns:
+// if action = "GET_LATEST_SYNC_TOKEN", it must return an object representing the last known
+// sync token for the corresponding ObjectClass
+//
+// if action = "SYNC":
+// A list of Maps . Each map describing one update:
+// Map should look like the following:
+//
+// [
+// "token": <Object> token object (could be Integer, Date, String) , [!! could be null]
+// "operation":<String> ("CREATE_OR_UPDATE"|"DELETE") will always default to CREATE_OR_DELETE ,
+// "uid":<String> uid (uid of the entry) ,
+// "previousUid":<String> prevuid (This is for rename ops) ,
+// "password":<String> password (optional... allows to pass clear text password if needed),
+// "attributes":Map<String,List> of attributes name/values
+// ]
+
+def buildConnectorObject(node) {
+ return [
+ __UID__:node.get("key").textValue(),
+ __NAME__:node.get("key").textValue(),
+ username:node.get("username").textValue(),
+ password:new GuardedString(node.get("password").textValue().toCharArray()),
+ firstName:node.get("firstName").textValue(),
+ surname:node.get("surname").textValue(),
+ email:node.get("email").textValue()
+ ];
+}
+
+log.info("Entering " + action + " Script");
+
+WebClient webClient = client;
+ObjectMapper mapper = new ObjectMapper();
+
+if (action.equalsIgnoreCase("GET_LATEST_SYNC_TOKEN")) {
+ switch (objectClass) {
+ case "__ACCOUNT__":
+ latestToken = new Date().getTime();
+ break;
+
+ default:
+ latestToken = null;
+ }
+
+ return latestToken;
+} else if (action.equalsIgnoreCase("SYNC")) {
+ def result = [];
+
+ switch (objectClass) {
+ case "__ACCOUNT__":
+ webClient.path("/users");
+ Response response = webClient.get();
+ ArrayNode node = mapper.readTree(response.getEntity());
+
+ for (i = 0; i < node.size(); i++) {
+ result.add([
+ operation:"CREATE_OR_UPDATE",
+ uid:node.get(i).get("key").textValue(),
+ token:new Date().getTime(),
+ attributes:buildConnectorObject(node.get(i))
+ ]);
+ }
+ break;
+ }
+
+ log.ok("Sync script: found " + result.size() + " events to sync");
+ return result;
+} else {
+ log.error("Sync script: action '" + action + "' is not implemented in this script");
+ return null;
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/core-reference/src/test/resources/rest/TestScript.groovy
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rest/TestScript.groovy b/fit/core-reference/src/test/resources/rest/TestScript.groovy
new file mode 100644
index 0000000..c27ddee
--- /dev/null
+++ b/fit/core-reference/src/test/resources/rest/TestScript.groovy
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+import com.fasterxml.jackson.databind.ObjectMapper
+import org.apache.cxf.jaxrs.client.WebClient
+
+// Parameters:
+// The connector sends the following:
+// client : CXF WebClient
+// action: a string describing the action ("TEST" here)
+// log: a handler to the Log facility
+
+log.info("Entering " + action + " Script");
+
+WebClient webClient = client;
+ObjectMapper mapper = new ObjectMapper();
+
+ webClient.path("/users", false);
+ webClient.get();
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/core-reference/src/test/resources/rest/UpdateScript.groovy
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rest/UpdateScript.groovy b/fit/core-reference/src/test/resources/rest/UpdateScript.groovy
new file mode 100644
index 0000000..37371a7
--- /dev/null
+++ b/fit/core-reference/src/test/resources/rest/UpdateScript.groovy
@@ -0,0 +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.
+ */
+import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.databind.node.ObjectNode
+import org.apache.cxf.jaxrs.client.WebClient
+
+// Parameters:
+// The connector sends us the following:
+// client : CXF WebClient
+//
+// action: String correponding to the action (UPDATE/ADD_ATTRIBUTE_VALUES/REMOVE_ATTRIBUTE_VALUES)
+// - UPDATE : For each input attribute, replace all of the current values of that attribute
+// in the target object with the values of that attribute.
+// - ADD_ATTRIBUTE_VALUES: For each attribute that the input set contains, add to the current values
+// of that attribute in the target object all of the values of that attribute in the input set.
+// - REMOVE_ATTRIBUTE_VALUES: For each attribute that the input set contains, remove from the current values
+// of that attribute in the target object any value that matches one of the values of the attribute from the input set.
+
+// log: a handler to the Log facility
+//
+// objectClass: a String describing the Object class (__ACCOUNT__ / __GROUP__ / other)
+//
+// uid: a String representing the entry uid
+//
+// attributes: an Attribute Map, containg the <String> attribute name as a key
+// and the <List> attribute value(s) as value.
+//
+// password: password string, clear text (only for UPDATE)
+//
+// options: a handler to the OperationOptions Map
+
+log.info("Entering " + action + " Script");
+
+WebClient webClient = client;
+ObjectMapper mapper = new ObjectMapper();
+
+assert uid != null
+
+switch (action) {
+case "UPDATE":
+ switch (objectClass) {
+ case "__ACCOUNT__":
+ ObjectNode node = mapper.createObjectNode();
+ node.set("key", node.textNode(uid));
+ if (attributes.containsKey("__NAME__")) {
+ node.set("username", node.textNode(attributes.get("__NAME__").get(0)));
+ }
+ if (attributes.containsKey("username")) {
+ node.set("username", node.textNode(attributes.get("username").get(0)));
+ }
+ if (password != null) {
+ node.set("password", node.textNode(password));
+ }
+ if (attributes.containsKey("firstName")) {
+ node.set("firstName", node.textNode(attributes.get("firstName").get(0)));
+ }
+ if (attributes.containsKey("surname")) {
+ node.set("surname", node.textNode(attributes.get("surname").get(0)));
+ }
+ if (attributes.containsKey("email")) {
+ node.set("email", node.textNode(attributes.get("email").get(0)));
+ }
+
+ String payload = mapper.writeValueAsString(node);
+
+ webClient.path("/users/" + uid);
+ webClient.put(payload);
+
+ default:
+ break
+ }
+
+ return uid;
+ break
+
+case "ADD_ATTRIBUTE_VALUES":
+ break
+
+
+default:
+ break
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/fit/enduser-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/pom.xml b/fit/enduser-reference/pom.xml
index 03d6eb3..9694885 100644
--- a/fit/enduser-reference/pom.xml
+++ b/fit/enduser-reference/pom.xml
@@ -103,12 +103,6 @@ under the License.
<scope>test</scope>
</dependency>
<dependency>
- <groupId>net.tirasa.connid.bundles.soap</groupId>
- <artifactId>wssample</artifactId>
- <type>war</type>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
@@ -304,14 +298,6 @@ under the License.
</configuration>
<deployables>
<deployable>
- <groupId>net.tirasa.connid.bundles.soap</groupId>
- <artifactId>wssample</artifactId>
- <type>war</type>
- <properties>
- <context>wssample</context>
- </properties>
- </deployable>
- <deployable>
<groupId>org.apache.syncope.fit</groupId>
<artifactId>syncope-fit-build-tools</artifactId>
<type>war</type>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5c301ca..9c4a7fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -351,6 +351,7 @@ under the License.
<connid.version>1.4.2.0</connid.version>
<connid.soap.version>1.4.2-SNAPSHOT</connid.soap.version>
+ <connid.rest.version>1.0.1</connid.rest.version>
<connid.database.version>2.2.4</connid.database.version>
<connid.csvdir.version>0.8.5</connid.csvdir.version>
<connid.ldap.version>1.5.1</connid.ldap.version>
@@ -1343,13 +1344,6 @@ under the License.
<scope>test</scope>
</dependency>
<dependency>
- <groupId>net.tirasa.connid.bundles.soap</groupId>
- <artifactId>wssample</artifactId>
- <version>${connid.soap.version}</version>
- <type>war</type>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>1.5.2</version>
@@ -1455,6 +1449,11 @@ under the License.
</artifactItem>
<artifactItem>
<groupId>net.tirasa.connid.bundles</groupId>
+ <artifactId>net.tirasa.connid.bundles.rest</artifactId>
+ <version>${connid.rest.version}</version>
+ </artifactItem>
+ <artifactItem>
+ <groupId>net.tirasa.connid.bundles</groupId>
<artifactId>net.tirasa.connid.bundles.csvdir</artifactId>
<version>${connid.csvdir.version}</version>
</artifactItem>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/src/main/asciidoc/getting-started/obtain.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/getting-started/obtain.adoc b/src/main/asciidoc/getting-started/obtain.adoc
index a1c6559..08471de 100644
--- a/src/main/asciidoc/getting-started/obtain.adoc
+++ b/src/main/asciidoc/getting-started/obtain.adoc
@@ -450,9 +450,10 @@ You can configure any LDAP client (such as http://jxplorer.org/[JXplorer^], for
bind password: `secret`
| External resource: SOAP
-| An example SOAP server is available at http://localhost:9080/wssample/services +
- +
- You can check its internal data by visiting http://localhost:9080/wssample/exploredb.jsp
+| An example SOAP service is available at http://localhost:9080/syncope-fit-build-tools/cxf/soap
+
+| External resource: REST
+| An example REST service is available at http://localhost:9080/syncope-fit-build-tools/cxf/rest
| External resource: database
| http://www.h2database.com/[H2^] TCP database is available. +
http://git-wip-us.apache.org/repos/asf/syncope/blob/5af8e4a4/standalone/pom.xml
----------------------------------------------------------------------
diff --git a/standalone/pom.xml b/standalone/pom.xml
index eee4b8b..4a0adfd 100644
--- a/standalone/pom.xml
+++ b/standalone/pom.xml
@@ -46,12 +46,6 @@ under the License.
<dependencies>
<dependency>
- <groupId>net.tirasa.connid.bundles.soap</groupId>
- <artifactId>wssample</artifactId>
- <type>war</type>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.syncope.fit</groupId>
<artifactId>syncope-fit-build-tools</artifactId>
<version>${project.version}</version>
@@ -168,18 +162,15 @@ under the License.
<mkdir dir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}" />
<copy file="../fit/core-reference/src/test/resources/test.csv" todir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}" />
- <!-- ConnId's SOAP wssample (provides endpoint for SOAP resources) -->
- <copy file="${settings.localRepository}/net/tirasa/connid/bundles/soap/wssample/${connid.soap.version}/wssample-${connid.soap.version}.war" tofile="${work.dir}/apache-tomcat-${tomcat.version}/webapps/wssample.war" />
-
- <!-- Syncope build tools (provide H2 and Apache DS resources + ConnId connector server) -->
- <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-build-tools">
+ <!-- Syncope build tools (provide H2, Apache DS and REST / SOAP resources + ConnId connector server) -->
+ <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools">
<fileset dir="../fit/build-tools/target/syncope-fit-build-tools-${project.version}" includes="**/*" />
</copy>
- <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-build-tools/WEB-INF/lib">
+ <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools/WEB-INF/lib">
<fileset dir="../fit/core-reference/target/bundles/" includes="**/*" />
</copy>
- <zip destfile="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-build-tools.war" basedir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-build-tools" />
- <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-build-tools" />
+ <zip destfile="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools.war" basedir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools" />
+ <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools" />
<!-- Tomcat shared libraries: H2, groovy, StAX2 API, Woodstox -->
<copy file="${settings.localRepository}/com/h2database/h2/${h2.version}/h2-${h2.version}.jar" todir="${work.dir}/apache-tomcat-${tomcat.version}/lib" />
@@ -265,6 +256,11 @@ under the License.
<targetPath>core/scriptedsql</targetPath>
<filtering>true</filtering>
</resource>
+ <resource>
+ <directory>../fit/core-reference/src/test/resources/rest</directory>
+ <targetPath>core/rest</targetPath>
+ <filtering>true</filtering>
+ </resource>
<resource>
<directory>../fit/console-reference/src/main/resources</directory>