CHOReVOLUTION Studio and Synthesis Processor Development Guide


Table of content

CHOReVOLUTION Studio


Requirements

CHOReVOLUTION Studio Source code

In order to provide the source code needs to modify/extend the CHOReVOLUTION Studio, the source code can be checked out anonymously over HTTPs by doing:

$ git clone https://gitlab.ow2.org/chorevolution/chorevolution-studio.git
$ cd chorevolution-studio

For all Operation Systems

Setting the Environment:

GettStart5.png

Figure  1

  • Start your Eclipse Ide

GettStart6.png

Figure  2

The developer need to install the following software:

  • Click-Left  Help menu item, see figure below:

GettStart7.png

Figure 3

  1. Install M2Eclipse plugin:
     - Click-Left Add, see Figure 4.

GettStart8.png

Figure 4

- Type a name into the Name text box, see Figure below.
- If the software site is located on the web, type the Web Site location (URL) of the site into the Location text box. You may also paste or drag and drop a URL from a web browser into this text box, see Figure below.
- If the software site is in your local file system (including a CD), click Local... to specify the directory location of the site.
- If the software site is in your local file system but is packaged as a jar or zip file, click Archive... to specify the name of the file.

GettStart9.png

Figure  5

- Click-Left Ok. 

GettStart11.png

Figure  6

- Select the plugin and Click Next. You will see the Install Details view. 

GettStart12.png

Figure 7

- Click-left Next and Accepts the license terms.

GettStart13.png

Figure  8

- Click Finish.


Following the same steps the developer must:

2. Install Eclipse Java Web Developer Tools plugin ( Web Site Location:  http://download.eclipse.org/releases/neon (contained in the category: "Web, XML, Java EE and OSGi Enterprise Development"))
3. Install M2Eclipse connector Tycho plugin ( Web Site Location: http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-tycho/0.9.0/N/LATEST/ )
4. Install Sirius plugin ( Web Site Location: http://download.eclipse.org/sirius/updates/releases/4.1.1/neon/ )
5. Install BPMN2 modeler plugin ( Web Site Location: http://download.eclipse.org/bpmn2-modeler/updates/neon/1.3.2 )
6. install CHOReVOLUTION Modeling Notations plugin ( Web Site Location: http://nexus.disim.univaq.it/content/sites/chorevolution-modeling-notations/ )


Back to top

Building

In order to generate the CHOReVOLUTION Studio bundle:

  1. From within the check-out directory, go in chorevolution-studio/extra/eu.chorevolution.studio.eclipse.core.configurator folder:
    $ mvn clean
  2. From within the chorevolution-studio/ folder:
    $ mvn clean verify -Pbuild-ide 
  3. Get your bundle located in:
    $ chorevolution-studio/releng/eu.chorevolution.studio.eclipse.product/target/products

Back to top

Synthesis Processor


Requirements

Synthesis processor Source code

In order to provide the source code needs to modify/extend the Synthesis Processor, the source code can be checked out anonymously over HTTPs by doing:

$ git clone https://gitlab.ow2.org/chorevolution/synthesis-processor.git

$ cd synthesis-processor


Back to top

Building

In order to use the Synthesis Processor Rest API:

  1. From within the check-out directory, go in synthesisprocessor-rest folder:
  2. $ mvn clean verify
  3. $ cd target
  4. $ unzip synthesisprocessor-rest-1.0.0-SNAPSHOT.zip
  5. $ cd synthesisprocessor-rest-1.0.0-SNAPSHOT

Start Apache Tomcat:

  • GNU / Linux, Mac OS X
  1. $ chmod 755 ./bin/*.sh
  2. $ ./bin/startup.sh
  • Windows
  1. > bin/startup.bat

Test Synthesis Processor

The default port for Synthesis Processor Tomcat is 9091. After starting Tomcat on your local machine, you can validate if Tomcat is running the URL:

http://localhost:9091/synthesisprocessor

GettStart14.png

Figure  71 


Back to top

Synthesis Processor REST API


Version: 1.0.0
BasePath:/synthesisprocessor
Apache 2.0 License
http://www.apache.org/licenses/LICENSE-2.0.html

Access

Methods

[ Jump to Models ]

Table of Contents

BindingComponentGenerator

ChoreographyArchitectureGenerator

ChoreographyDeploymentDescriptorGenerator

ChoreographyProjectionGenerator

ChoreographyValidator

CoordinationDelegateGenerator

Default

SecurityFilterGenerator

BindingComponentGenerator

Up
post /bindingComponentGenerator/generateBindingComponent
Generates a Binding Component artifact (generateBindingComponent)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "wsdlContent" : [ "" ],
  "bindingComponentContent" : [ "" ],
  "location" : "aeiou"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation BindingComponentGeneratorResponse

ChoreographyArchitectureGenerator

Up
post /choreographyarchitecturegenerator/generateChoreographyArchitecture
Generates a Choreography Architecture (generateChoreographyArchitecture)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "choreographyArchitectureContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation ChoreographyArchitectureGeneratorResponse

ChoreographyDeploymentDescriptorGenerator

Up
post /choreographydeploymentdescriptorgenerator/generateChoreographyDeploymentDescriptor
Generates a Choreography Deployment Descriptor (generateChoreographyDeploymentDescriptor)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "choreographyDeploymentDescriptorContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation ChoreographyDeploymentDescriptorGeneratorResponse

ChoreographyProjectionGenerator

Up
post /choreographyprojectiongenerator/generateChoreographyProjection
Generates a BPMN2 Choreography Diagram representing a choreography projection (generateChoreographyProjection)
A choreography projection consists only the interactions in which a specific BPMN2 Participant is involved

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "bpmn2Content" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation ChoreographyProjectionGeneratorResponse

ChoreographyValidator

Up
post /choreographyvalidator/validateChoreography
Validates a BPMN2 Choreography Diagram (validateChoreography)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/xml

  true
  string

Example data

Content-Type: application/json
{
  "choreographyValidated" : true,
  "errors" : [ "aeiou" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation ChoreographyValidatorResponse

CoordinationDelegateGenerator

Up
post /coordinationdelegategenerator/generateCoordinationDelegateClient
Generates a client Coordination Delegate artifact (generateCoordinationDelegateClient)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "consumerWsdlContent" : [ "" ],
  "wsdlContent" : [ "" ],
  "name" : "aeiou",
  "location" : "aeiou",
  "consumerContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation CoordinationDelegateGeneratorResponse

Up
post /coordinationdelegategenerator/generateCoordinationDelegateConsumer
Generates a consumer Coordination Delegate artifact (generateCoordinationDelegateConsumer)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "consumerWsdlContent" : [ "" ],
  "wsdlContent" : [ "" ],
  "name" : "aeiou",
  "location" : "aeiou",
  "consumerContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation CoordinationDelegateGeneratorResponse

Up
post /coordinationdelegategenerator/generateCoordinationDelegateProsumer
Generates a prosumers Coordination Delegate artifact (generateCoordinationDelegateProsumer)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "consumerWsdlContent" : [ "" ],
  "wsdlContent" : [ "" ],
  "name" : "aeiou",
  "location" : "aeiou",
  "consumerContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation CoordinationDelegateGeneratorResponse

Up
post /coordinationdelegategenerator/generateWSDLCoordinationDelegateClient
Generates a client Coordination Delegate WSDL (generateWSDLCoordinationDelegateClient)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "consumerWsdlContent" : [ "" ],
  "wsdlContent" : [ "" ],
  "name" : "aeiou",
  "location" : "aeiou",
  "consumerContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation CoordinationDelegateGeneratorResponse

Up
post /coordinationdelegategenerator/generateWSDLCoordinationDelegateProsumer
Generates a prosumer Coordination Delegate WSDL (generateWSDLCoordinationDelegateProsumer)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/json
{
  "consumerWsdlContent" : [ "" ],
  "wsdlContent" : [ "" ],
  "name" : "aeiou",
  "location" : "aeiou",
  "consumerContent" : [ "" ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation CoordinationDelegateGeneratorResponse

Default

Up
get /{choreographyName}/{artifactType}/{artifactName}
Retrives a specific generated artifact (downloadArtifact)

Path parameters

choreographyName (required)
Path Parameter
artifactType (required)
Path Parameter
artifactName (required)
Path Parameter

Return type

array[byte[]]

Example data

Content-Type: application/json
[ "" ]

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

successful operation

SecurityFilterGenerator

Up
post /securityfiltergenerator/generateSecurityFilterClient
Generates a client Security Filter artifact (generateSecurityFilterClient)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/xml

  string
  string

Example data

Content-Type: application/json
{
  "name" : "aeiou",
  "location" : "aeiou"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation SecurityFilterGeneratorResponse

Up
post /securityfiltergenerator/generateSecurityFilterProvider
Generates a provider Security Filter artifact (generateSecurityFilterProvider)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/xml
  • application/json

Request body

body (optional)
Body Parameter

Return type

Example data

Content-Type: application/xml

  string
  string

Example data

Content-Type: application/json
{
  "name" : "aeiou",
  "location" : "aeiou"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/xml
  • application/json

Responses

200

successful operation SecurityFilterGeneratorResponse

Models

[ Jump to Methods ]

Table of Contents

  1. BindingComponentGeneratorRequest
  2. BindingComponentGeneratorResponse
  3. ChoreographyArchitectureComponentData
  4. ChoreographyArchitectureComponentDependencyData
  5. ChoreographyArchitectureGeneratorRequest
  6. ChoreographyArchitectureGeneratorResponse
  7. ChoreographyDeploymentDescriptorGeneratorRequest
  8. ChoreographyDeploymentDescriptorGeneratorResponse
  9. ChoreographyProjectionGeneratorRequest
  10. ChoreographyProjectionGeneratorResponse
  11. ChoreographyValidatorRequest
  12. ChoreographyValidatorResponse
  13. CoordinationDelegateGeneratorRequest
  14. CoordinationDelegateGeneratorResponse
  15. SecurityFilterGeneratorRequest
  16. SecurityFilterGeneratorResponse

BindingComponentGeneratorRequest - Up

choreographyName (optional)
bindingComponentName (optional)
interfaceDescriptionContent (optional)
interfaceDescriptionType (optional)
Enum:
WSDL
WADL
GIDL
bindingComponentProtocolType (optional)
Enum:
SOAP
REST
MQTT
WEB_SOCKETS
SEMI_SPACE
JMS
PUB_NUB
COAP
ZERO_MQ
DPWS

BindingComponentGeneratorResponse - Up

bindingComponentContent (optional)
wsdlContent (optional)
location (optional)

ChoreographyArchitectureComponentData - Up

participantName (optional)
name (optional)
location (optional)
consumerComponentData (optional)
securityComponentData (optional)
bindingComponentData (optional)

ChoreographyArchitectureGeneratorResponse - Up

choreographyArchitectureContent (optional)

ChoreographyDeploymentDescriptorGeneratorRequest - Up

choreographyArchitectureContent (optional)

ChoreographyDeploymentDescriptorGeneratorResponse - Up

choreographyDeploymentDescriptorContent (optional)

ChoreographyProjectionGeneratorRequest - Up

bpmn2Content (optional)
participant (optional)

ChoreographyValidatorRequest - Up

choreographyName (optional)
bpmn2Content (optional)
typesContent (optional)

ChoreographyValidatorResponse - Up

choreographyValidated (optional)
errors (optional)

CoordinationDelegateGeneratorRequest - Up

choreographyName (optional)
name (optional)
participants (optional)
wsdlParticipants (optional)
projectedParticipant (optional)
projectedBpmn2Content (optional)
projectedTypesContent (optional)
correlations (optional)
consumerWsdlContent (optional)

CoordinationDelegateGeneratorResponse - Up

name (optional)
location (optional)
wsdlContent (optional)
consumerWsdlContent (optional)
consumerContent (optional)

SecurityFilterGeneratorRequest - Up

choreographyName (optional)
name (optional)
serviceInventoryDomain (optional)
securityRoles (optional)
securityDescriptionContent (optional)
connectionAccountType (optional)
Enum:
USERNAME_PASSWORD
X509
usernameConnectionAccount (optional)
passwordConnectionAccount (optional)

SecurityFilterGeneratorResponse - Up

name (optional)
location (optional)

Back to top