Commercialization of Camunda projects

Dear Camunda community,

In the projects I work we use the community edition of Camunda.
I use a full distribution (shared Process Engine) and I built the process applications through an IDE.
Our system is part of a bigger system and there are discussions on commercializing our entire solution.
Since I am not very familiar with these issues, what would you suggest me as an approach to commercialize (if possible) the part of the entire solution I work on (application projects running on a shared Camunda edition)?
The commercialization will also include the knowledge transfer but I mainly ask about the software itself.

Thanks,
Kostas

Hi Kostas,

Do you have a specific question, e.g. regarding licenses of Camunda community artifacts? I’m afraid we can’t help you with the general process of commercialising software.

Cheers,
Thorben

If you are asking about the enterprise version of Camunda itself, best visit https://camunda.com/enterprise/ and contact our sales team there.

1 Like

Hi @BerndRuecker,

No I’m not asking about the enterprise version. I’m trying to investigate how can I commercialize the applications projects I build on the community edition.

@thorben, not really a specific question. As I said, I would like to know what is the approach if someone is interested in paying for the applications projects I build. I’ve read about licensing on https://docs.camunda.org/manual/7.8/introduction/licenses/ but I’m not a business guy to know how to make money out of projects (well, my goal is not to make money through the community edition. I use the community edition but I would like to know what can I do in case someone is interested in paying for what I build).

Thanks

Hi Kostas,

I believe aside from the pointers to the licenses and confirming that Apache 2.0 license is very liberal, this is all we can provide here. I recommend consulting an expert (and/or lawyer) on open sources licenses and their usage to help you with the details. We cannot give any legally binding advice on this forum.

Cheers,
Thorben

2 Likes

Hi,

Is there a license book for version 7.7? Like this one for 7.8 https://app.camunda.com/nexus/content/repositories/camunda-bpm/org/camunda/bpm/license-book/7.8.0/license-book-7.8.0.txt

Also, my pom file is the following:

<?xml version="1.0" encoding="UTF-8"?>
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>myGroupId</groupId>
  <artifactId>myArtifact</artifactId>
  <version>1.0-SNAPSHOT</version>

  <packaging>war</packaging>

  <name>Camunda BPM Process Application</name>
  <description>A Process Application for [Camunda BPM](http://docs.camunda.org). [The project has been generated by the Maven archetype 'camunda-archetype-ejb-war-7.6.1']</description>

  <properties>
    <camunda.version>7.7.0</camunda.version>
    <arquillian.version>1.1.2.Final</arquillian.version>
    <jboss.version>7.2.1.Final</jboss.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <failOnMissingWebXml>false</failOnMissingWebXml>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>${camunda.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.camunda.bpm.dmn</groupId>
        <artifactId>camunda-engine-dmn-bom</artifactId>
        <version>${camunda.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <!-- Needed for ArquillianTest -->
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-bom</artifactId>
        <version>${arquillian.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <!-- process engine, needs to be provided -->
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <!-- decision engine -->
      <groupId>org.camunda.bpm.dmn</groupId>
      <artifactId>camunda-engine-dmn</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <!-- client for Java EE application server integration, included in WAR as an alternative to write your own ProcessApplication class -->
      <groupId>org.camunda.bpm.javaee</groupId>
      <artifactId>camunda-ejb-client</artifactId>
    </dependency>
    <dependency>
      <!-- CDI integration, needs to be included in WAR, otherwise CDI can not work correctly -->
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-cdi</artifactId>
    </dependency>

    <dependency>
      <!-- AssertJ Testing Library -->
      <groupId>org.camunda.bpm.extension</groupId>
      <artifactId>camunda-bpm-assert</artifactId>
      <version>1.2</version>
      <scope>test</scope>
    </dependency>

    <!-- Required to use Spin dataformat support in unit tests -->
    <dependency>
      <groupId>org.camunda.spin</groupId>
      <artifactId>camunda-spin-dataformat-all</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-spin</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Required to use Connectors in unit tests -->
    <dependency>
      <groupId>org.camunda.connect</groupId>
      <artifactId>camunda-connect-connectors-all</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-connect</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Required to use Templates in unit tests -->
    <dependency>
      <groupId>org.camunda.template-engines</groupId>
      <artifactId>camunda-template-engines-freemarker</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.camunda.template-engines</groupId>
      <artifactId>camunda-template-engines-velocity</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <!-- Bootstrap for styling via Webjars project -->
      <groupId>org.webjars</groupId>
      <artifactId>bootstrap</artifactId>
      <version>2.3.2</version>
    </dependency>

    <!-- Java EE 6 APIs
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
    </dependency>
    Note that we cannot use the javax.javaee-api if running Arquillian, see
    https://developer.jboss.org/wiki/WhatsTheCauseOfThisExceptionJavalangClassFormatErrorAbsentCode
    for the reasons why.
    -->
    <dependency>
       <groupId>org.jboss.spec</groupId>
       <artifactId>jboss-javaee-6.0</artifactId>
       <version>1.0.0.Final</version>
       <type>pom</type>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-email</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <!-- Needed for ArquillianTest -->
      <groupId>org.jboss.arquillian.junit</groupId>
      <artifactId>arquillian-junit-container</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Needed for ArquillianTest -->
      <groupId>org.jboss.arquillian.protocol</groupId>
      <artifactId>arquillian-protocol-servlet</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Needed for ArquillianTest -->
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <!-- Needed for InMemoryH2Test -->
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.3.168</version>
      <scope>test</scope>
    </dependency>
    
		<dependency>
		  <!-- Used to generate test coverage reports, see https://github.com/camunda/camunda-consulting/tree/master/snippets/camunda-bpm-process-test-coverage -->
			<groupId>org.camunda.bpm.extension</groupId>
			<artifactId>camunda-bpm-process-test-coverage</artifactId>
			<version>0.2.8</version>
			<scope>test</scope>
		</dependency>    

    <dependency>
      <!-- use logback as logger -->
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.1.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <!-- apache commons logging => slf4j -->
      <artifactId>jcl-over-slf4j</artifactId>
      <version>1.7.7</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <!--  java util logging => slf4j -->
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>1.7.7</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm.extension.mockito</groupId>
      <artifactId>camunda-bpm-mockito</artifactId>
      <scope>test</scope>
      <version>3.0.0</version>
    </dependency>

    <dependency>
      <!-- java ee -->
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.4.8</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.6</version>
    </dependency>

    <!-- Add your own dependencies here, if in compile scope, they are added to the war -->

  </dependencies>

  <repositories>
    <repository>
      <id>camunda-bpm-nexus</id>
      <name>Camunda BPM Maven Repository</name>
      <url>https://app.camunda.com/nexus/content/groups/public</url>
    </repository>
    <repository>
      <id>jboss-public-repository</id>
      <name>JBoss Repository</name>
      <url>http://repository.jboss.org/nexus/content/groups/public</url>
    </repository>
  </repositories>

  <build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
      <plugin>
        <!-- Usage: mvn jboss-as:deploy See also: https://docs.jboss.org/jbossas/7/plugins/maven/latest/examples/deployment-example.html -->
        <groupId>org.jboss.as.plugins</groupId>
        <artifactId>jboss-as-maven-plugin</artifactId>
        <version>7.6.Final</version>
      </plugin>
      <plugin>
        <!-- Usage: mvn wildfly:deploy See also: https://docs.jboss.org/wildfly/plugins/maven/latest/examples/deployment-example.html -->
        <groupId>org.wildfly.plugins</groupId>
        <artifactId>wildfly-maven-plugin</artifactId>
        <version>1.0.2.Final</version>
      </plugin>
      <plugin>
        <!-- Plugin to generate sql scripts from jpa -->
        <groupId>de.juplo</groupId>
        <artifactId>hibernate-maven-plugin</artifactId>
        <version>2.0.0</version>
        <executions>
          <execution>
            <goals>
              <goal>drop</goal>
              <goal>create</goal>
            </goals>
            <configuration>
              <dialect>org.hibernate.dialect.H2Dialect</dialect>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <export>false</export>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <dependencies>
        <dependency>
          <!-- Needed for ArquillianTest -->
          <!-- Requires a running WildFly with Camunda BPM
               change to other artifact for embedded start or different server -->
          <!-- Included here for convenience when running the test in Eclipse -->
          <groupId>org.wildfly.arquillian</groupId>
          <artifactId>wildfly-arquillian-container-remote</artifactId>
          <version>1.0.1.Final</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.17</version>
            <configuration>
              <excludes>
                <!-- Exclusion for Arquillian test cases to avoid dependency on infrastructure
                     for Maven build. Feel free to adjust to your testing requirements. -->
                <exclude>**/Arquillian*.java</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>webservice-generation</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.1.2</version>
            <executions>
              <execution>
                <id>generate-sources</id>
                <phase>generate-sources</phase>
                <configuration>
                  <sourceRoot>${basedir}/target/generated/cxf</sourceRoot>
                  <wsdlOptions>
                    <wsdlOption>
                      <wsdl>${basedir}/src/main/resources/wsdl/globalweather.wsdl</wsdl>
                      <extraargs>
                        <extraarg>-client</extraarg>
                      </extraargs>
                    </wsdlOption>
                  </wsdlOptions>
                </configuration>
                <goals>
                  <goal>wsdl2java</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.8</version>
            <executions>
              <execution>
                <id>add-source</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${basedir}/target/generated/cxf</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--<profile>-->
      <!--<id>arq-jbossas-remote</id>-->
      <!--<dependencies>-->
        <!--<dependency>-->
          <!--&lt;!&ndash; Needed for ArquillianTest &ndash;&gt;-->
          <!--&lt;!&ndash; Requires a running JBoss AS7 with Camunda BPM-->
               <!--change to other artifact for embedded start or different server &ndash;&gt;-->
          <!--<groupId>org.jboss.as</groupId>-->
          <!--<artifactId>jboss-as-arquillian-container-remote</artifactId>-->
          <!--<version>${jboss.version}</version>-->
          <!--<scope>test</scope>-->
        <!--</dependency>-->
      <!--</dependencies>-->
    <!--</profile>-->

    <profile>
      <id>arq-wildfly-remote</id>
      <dependencies>
        <dependency>
          <!-- Needed for ArquillianTest -->
          <!-- Requires a running Wildfly with Camunda BPM -->
          <groupId>org.wildfly.arquillian</groupId>
          <artifactId>wildfly-arquillian-container-remote</artifactId>
          <version>1.0.1.Final</version>
          <scope>test</scope>
          <exclusions>
            <exclusion>
              <groupId>sun.jdk</groupId>
              <artifactId>jconsole</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
</project>    

Do you think I will need any extra licenses?
(I also use a postgres jdbc driver in my applications)

Thanks

Hi Kostas,

We don’t have license book for 7.7.
There are not so many differences between the two versions.
Maybe this page could help you - https://docs.camunda.org/manual/7.7/introduction/third-party-libraries/

Best regards,
Yana