Skip to content

Instantly share code, notes, and snippets.

@celsogg
Last active June 23, 2020 23:25
Show Gist options
  • Save celsogg/956f40dbb706e9a223a3b903fe2eb091 to your computer and use it in GitHub Desktop.
Save celsogg/956f40dbb706e9a223a3b903fe2eb091 to your computer and use it in GitHub Desktop.
Instalación JBPM 6.5 con MySQL

Instalación JBPM 6.5 con MySQL

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment