You need to work with multiple artifact types while working with WSO2 DAS. Following is a list of artifacts supported in WSO2 DAS, (Tried both DAS 3.0.0 and 3.0.1)
- Event Streams
- Event Stores
- Even Receivers
- Analytic Scripts
- Execution Plans
- Gadgets
- Layouts
- Dashboards
Rather than deploying these artifacts one by one we can deploy a set of artifacts using a single deployable artifact, Carbon Application (capp)[1]. Here what we do is, create an archive with .car extension and deploy using management console.
But there can be usecases where we need to build above archive programmatically, using a build tool. Here I’m using Maven to fulfil above requirement.
Assume we have all artifacts within das-capp directory,
.
├── das-capp
│ ├── artifacts.xml
│ ├── Dashboard_1.0.0
│ ├── Eventreceiver_1.0.0
│ ├── Eventstore_1.0.0
│ ├── Eventstream_1.0.0
│ ├── GadgetTotalDailyViews_1.0.0
│ ├── GadgetViewsPreviousmonth_1.0.0
│ ├── GagdetPageFilter_1.0.0
│ ├── Layout_1.0.0
│ └── Sparkscripts_1.0.0
└── pom.xml
pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><groupId>org.wso2.das.example</groupId><artifactId>das-capp</artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><name>DAS CAR</name><description>This project contains artifacts to process and display sample capp</description><properties><artifact.types>jaggery/app=zip,service/rule=aar,lib/library/bundle=jar,event/receiver=xml,synapse/message-processors=xml,synapse/endpointTemplate=xml,synapse/message-store=xml,synapse/proxy-service=xml,event/execution-plan=siddhiql,carbon/application=car,registry/resource=zip,lib/dataservice/validator=jar,synapse/endpoint=xml,web/application=war,synapse/inbound-endpoint=xml,synapse/sequence=xml,synapse/configuration=xml,lib/registry/handlers=jar,synapse/task=xml,service/meta=xml,webapp/jaxws=war,synapse/api=xml,synapse/lib=zip,bpel/workflow=zip,lib/registry/filter=jar,service/dataservice=dbs,event/publisher=xml,synapse/local-entry=xml,synapse/priority-executor=xml,synapse/event-source=xml,synapse/template=xml,event/stream=json,lib/carbon/ui=jar,service/axis2=aar,synapse/sequenceTemplate=xml,wso2/gadget=dar,lib/synapse/mediator=jar</artifact.types></properties><build><pluginManagement><plugins><plugin><artifactId>maven-antrun-plugin</artifactId><version>1.7</version></plugin></plugins></pluginManagement><plugins><plugin><artifactId>maven-antrun-plugin</artifactId><executions><execution><phase>process-resources</phase><goals><goal>run</goal></goals><configuration><tasks><zip destfile="target/das-example.car"><zipfileset dir="das-capp" /></zip></tasks></configuration></execution></executions></plugin></plugins></build></project>
You can build above using mvn clean install and find the capp artifact within target/ directory. Then we can upload this deployable artifact to WSO2 DAS using management console.
[1] https://docs.wso2.com/display/DAS301/Packaging+Artifacts+as+a+C-App+Archive