/siddhi-maven-archetype

The project contains components which implement the functionality of siddhi-extensions Maven archetypes

Primary LanguageJavaApache License 2.0Apache-2.0

siddhi-maven-archetype


Branch Build Status
master Build Status

This project contains components which implements functionality of siddhi-extensions Maven archetypes.

How to generate extension projects

To generate specific type of extensions archetype, issue the command from your CLI.

  1. Siddhi Execution

     mvn archetype:generate \
         -DarchetypeGroupId=io.siddhi.extension.archetype \
         -DarchetypeArtifactId=siddhi-archetype-execution \
         -DgroupId=io.siddhi.extension.execution \
         -Dversion=1.0.0-SNAPSHOT
    
    Properties Description Mandatory Default Value
    _nameOfFunction Name of the custom function to be created Y -
    _nameSpaceOfFunction Namespace of the function, used to grouped similar custom functions Y -
    groupIdPostfix Namespace of the function is added as postfix to the groupId as a convention N {_nameSpaceOfFunction}
    artifactId Artifact Id of the project N siddhi-execution-{_nameSpaceOfFunction}
    classNameOfAggregateFunction Class name of the Aggregate Function N ${_nameOfFunction}AggregateFunction
    classNameOfFunction Class name of the Function N ${_nameOfFunction}Function
    classNameOfStreamFunction Class name of the Stream Function N ${_nameOfFunction}StreamFunction
    classNameOfStreamProcessor Class name of the Stream Processor N ${_nameOfFunction}StreamProcessor
    classNameOfWindow Class name of the Window N ${_nameOfFunction}Window
  2. Siddhi IO

    mvn archetype:generate \
        -DarchetypeGroupId=io.siddhi.extension.archetype \
        -DarchetypeArtifactId=siddhi-archetype-io \
        -DgroupId=io.siddhi.extension.io \
        -Dversion=1.0.0-SNAPSHOT 
    
    Properties Description Mandatory Default Value
    _IOType Type of IO for which Siddhi-io extension is written Y -
    groupIdPostfix Type of the IO is added as postfix to the groupId as a convention N {_IOType}
    artifactId Artifact Id of the project N siddhi-io-{_IOType}
    classNameOfSink Class name of the Sink N {_IOType}Sink
    classNameOfSource Class name of the Source N {_IOType}Source
  3. Siddhi Map

     mvn archetype:generate \
         -DarchetypeGroupId=io.siddhi.extension.archetype \
         -DarchetypeArtifactId=siddhi-archetype-map \
         -DgroupId=io.siddhi.extension.map \
         -Dversion=1.0.0-SNAPSHOT 
    
    Properties Description Mandatory Default Value
    _mapType Type of Mapper for which Siddhi-map extension is written Y -
    groupIdPostfix Type of the Map is added as postfix to the groupId as a convention N {_mapType}
    artifactId Artifact Id of the project N siddhi-map-{_mapType}
    classNameOfSinkMapper Class name of the Sink Mapper N {_mapType}SinkMapper
    classNameOfSourceMapper Class name of the Source Mapper N {_mapType}SourceMapper
  4. Siddhi Store

    mvn archetype:generate \
       -DarchetypeGroupId=io.siddhi.extension.archetype \
       -DarchetypeArtifactId=siddhi-archetype-store \
       -DgroupId=io.siddhi.extension.store \
       -Dversion=1.0.0-SNAPSHOT
    
    Properties Description Mandatory Default Value
    _storeType Type of Store for which Siddhi-store extension is written Y -
    groupIdPostfix Type of the Store is added as postfix to the groupId as a convention N {_storeType}
    artifactId Artifact Id of the project N siddhi-store-{_storeType}
    className Class name of the Store N {_storeType}EventTable
  5. Siddhi Script

    mvn archetype:generate \
        -DarchetypeGroupId=io.siddhi.extension.archetype \
        -DarchetypeArtifactId=siddhi-archetype-script \
        -DgroupId=io.siddhi.extension.script \
        -Dversion=1.0.0-SNAPSHOT
    
    Properties Description Mandatory Default Value
    _nameOfScript Name of Custom Script for which Siddhi-script extension is written Y -
    groupIdPostfix Name of the Script is added as postfix to the groupId as a convention N {_nameOfScript}
    artifactId Artifact Id of the project N siddhi-script-{_nameOfScript}
    classNameOfScript Class name of the Script N Eval{_nameOfScript}
  6. Siddhi TestSuite

     mvn archetype:generate \
         -DarchetypeGroupId=io.siddhi.extension.archetype \
         -DarchetypeArtifactId=siddhi-archetype-testsuite \
         -DgroupId=io.siddhi.testsuite \
         -Dversion=1.0.0-SNAPSHOT
    
    Properties Description Mandatory Default Value
    _nameOfTestsuite Name of TestSuite Y -
    groupIdPostfix Name of TestSuite is added as postfix to the groupId as a convention N {_nameOfTestsuite}
    package Package name for tests N io.siddhi.testsuite.{_nameOfTestsuite}
    artifactId Artifact Id of the project N siddhi-testsuite-{_nameOfTestsuite}
    classNameOfAbstractTest Class name of the AbstractTest logic common for both Integration and BlackBox tests N {_nameOfTestsuite}AbstractTestCase
    classNameOfUnitTest Class name of the UnitTest N {_nameOfTestsuite}UnitTestCase
    classNameOfIntegrationTest Class name of the IntegrationTest N {_nameOfTestsuite}IntegrationTest
    classNameOfBlackBoxTest Class name of the BlackBoxTest N {_nameOfTestsuite}BlackBoxTest

How to build from the source

Prerequisites

Steps

  1. Install above prerequisites if they have not been already installed
  2. Get a clone or download source from Github
    git clone https://github.com/wso2-extensions/siddhi-maven-archetype.git
  3. Run the following maven commands from siddhi-maven-archetype directory
    mvn clean install
  4. Run the archetype creation with -DarchetypeVersion={SNAPSHOT version of the project}