Requisitos: Java, Ant, MySQL con el usuario jbpm:jbpm y base de datos creada con los schemas en /db/ddl-scripts/mysqlinnodb
y corriendo.
Descargar instalador full de jbpm y descomprimir.
En build.properties
comentar las properties de H2 y descomentar las de MySQL
...
# default is H2
# H2.version=1.3.168
# db.name=h2
# db.driver.jar.name=h2-${H2.version}.jar
# db.driver.download.url=http://repo1.maven.org/maven2/com/h2database/h2/${H2.version}/h2-${H2.version}.jar
#other options are:
#mysql
db.name=mysql
db.driver.module.prefix=com/mysql
db.driver.jar.name=mysql-connector-java-5.1.18.jar
db.driver.download.url=https://repository.jboss.org/nexus/service/local/repositories/central/content/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18.jar
...
Cambiar el nombre del conector MySQL para java en el archivo db\mysql_module.xml
, de acuerdo a la versión definida en build.properties
...
-<resource-root path="mysql-connector-java.jar"/>
+<resource-root path="mysql-connector-java-5.1.18.jar"/>
...
Modificar db\jbpm-persistence-JPA2.xml
...
-<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
+<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
...
Si no se requiere descargar el demo, setear el argumento org.kie.demo=false
en build.xml
. También agregar el dialecto MySQL5InnoDBDialect de Hibernate.
...
<env key="JAVA_OPTS" value="-XX:MaxPermSize=256m -Xms256m -Xmx512m" />
<arg value="-b" />
<arg value="${jboss.bind.address}" />
<arg value="--server-config=standalone-full.xml" />
-<arg value="-Dorg.kie.demo=true" />
+<arg value="-Dorg.kie.demo=false" />
<arg value="-Dorg.kie.example=false" />
<arg value="-Dorg.kie.server.id=default-kieserver" />
+<arg value="-Dorg.kie.server.persistence.dialect=org.hibernate.dialect.MySQL5InnoDBDialect" />
<arg value="-Dorg.kie.server.persistence.ds=java:jboss/datasources/jbpmDS" />
<arg value="-Dorg.kie.server.controller=http://localhost:8080/jbpm-console/rest/controller" />
<arg value="-Dorg.kie.server.location=http://localhost:8080/kie-server/services/rest/server" />
<!--arg value="-Dorg.uberfire.nio.git.daemon.port=${org.uberfire.nio.git.daemon.port}" />
<arg value="-Dorg.uberfire.nio.git.ssh.port=${org.uberfire.nio.git.ssh.port}" />
<arg value="-Djboss.socket.binding.port-offset=${jboss.port.offset}" />
<arg value="-Dorg.uberfire.nio.git.dir=${jboss.home}" />
<arg value="-Dorg.uberfire.metadata.index.dir=${jboss.home}" /-->
...
En el mismo archivo cambiar las (3) ocurrencias de default-kieserver por otro nombre. ej: def-kieserver
Cambiar el datasource y agregar el driver en los archivos standalone standalone-full-wildfly-10.0.0.Final.xml
y standalone-wildfly-10.0.0.Final.xml
.
...
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
-<datasource jta="true" jndi-name="java:jboss/datasources/jbpmDS" pool-name="H2DS" enabled="true" use-java-context="true" use-ccm="true">
- <connection-url>jdbc:h2:tcp://localhost/~/jbpm-db;MVCC=TRUE</connection-url>
- <driver>h2</driver>
- <security>
- <user-name>sa</user-name>
- </security>
-</datasource>
+<datasource jta="true" jndi-name="java:jboss/datasources/jbpmDS" pool-name="MySQLDS" enabled="true" use-java-context="true" use-ccm="true">
+ <connection-url>jdbc:mysql://localhost:3306/jbpm</connection-url>
+ <driver>mysql</driver>
+ <security>
+ <user-name>jbpm</user-name>
+ <password>jbpm</password>
+ </security>
+</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
+ <driver name="mysql" module="com.mysql">
+ <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
+ </driver>
</drivers>
...
También agregar en el mismo archivo la siguiente propiedad para evitar problemas al conectarse a los repositorios git por ssh.
<server xmlns="urn:jboss:domain:4.0">
...
<system-properties>
...
<property name="org.uberfire.nio.git.ssh.algorithm" value="RSA"/>
</system-properties>
....
Ejecutar la instalación, esto generará el servidor con los wars y configuraciones.
ant install.demo.noeclipse
Iniciar el servidor
ant start.demo.noeclipse
Hasta ahí se puede usar como ambiente local de desarrollo y pruebas pero para instalar en un servidor compartido es preferible instalar wildfly como servicio. El directorio wildfly se puede tomar como punto de partida, las propiedades que usa ant que se encuentran en build.xml y build.properties deben pasarse al archivo standalone-full.xml o donde corresponda o se quiera configurar.
Fuente: https://docs.jboss.org/jbpm/release/6.5.0.Final/jbpm-docs/html/ch03.html