Tutorial de Instalação do jBPM 6.2 + PostgreSQL + JBoss 7.1 Final + Eclipse

Fala galera! O objetivo deste tutorial é guiá-los na instalação do jBPM 6.2.0.Final utilizando como base de dados o PostgreSQL. Não abordarei a instalação do PostgreSQL e do Ant pois não é o foco do tutorial.

AMBIENTE

Para este tutorial, estou utilizando o sistema operacional Ubuntu 14.04 mas nada impede que você utilize Windows ou qualquer outra distro Linux ok?

INGREDIENTES

  • Instalador do jBPM-6.2.0.Final
  • PostgreSQL
  • Ant
  • Uma boa conexão
  • Paciência

INSTALAÇÃO

Baixe o instalador: http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.2.0.Final/jbpm-6.2.0.Final-installer-full.zip/download

Descompacte o arquivo no diretório “/opt” (ou em outro diretório de sua preferência)

Abra o arquivo build.properties que está na raiz do diretório “/opt/jbpm-installer”. O trabalho aqui é comentar/descomentar linhas, exceto a configuração do PostgreSQL que vamos adicionar.

As 3 primeiras linhas do arquivo indicam o diretório home da instalação, a snapshot e a release. Não é necessário fazer nenhuma alteração aqui.

install.home=./
snapshot.version=6.2.0-SNAPSHOT
release.version=6.2.0.Final

O próximo bloco diz respeito a versão do jBPM que iremos utilizar, como vamos trabalhar com a release, descomente as linhas abaixo e comente as demais:

jBPM.version=${release.version}
jBPM.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/drools/droolsjbpm-bpms-distribution/${jBPM.version}/droolsjbpm-bpms-distribution-${jBPM.version}-bin.zip

A próxima configuração é a respeito do WAR do jBPM Console que iremos instalar, em nosso caso, para JBoss AS 7:

jBPM.console.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/kie/kie-wb-distribution-wars/${jBPM.version}/kie-wb-distribution-wars-${jBPM.version}-jboss-as7.war

Eclipse + plugin jBPM e Drools:

droolsjbpm.eclipse.version=${release.version}
droolsjbpm.eclipse.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/drools/org.drools.updatesite/${droolsjbpm.eclipse.version}/org.drools.updatesite-${droolsjbpm.eclipse.version}.zip

e

eclipse.home=./eclipse
eclipse.clean.workspace=true

JBoss AS 7.1.1.Final:

jboss.server.version=as-7.1.1.Final
jboss.home=./jboss-${jboss.server.version}
jboss.download.url=http://download.jboss.org/jbossas/7.1/jboss-${jboss.server.version}/jboss-${jboss.server.version}.zip
jboss.server.conf.dir=${jboss.home}/standalone/configuration
jboss.server.deploy.dir=${jboss.home}/standalone/deployments
jboss.server.data.dir=${jboss.home}/standalone/data
jboss.clean.repository=true
jboss.war.type=${jboss.server.version}

O próximo é Dashboard. Dashboard é uma ferramenta utilizada para medir indicadores dos processos.

dashboard.version=${release.version}
dashboard.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/jbpm/dashboard/jbpm-dashboard-distributions/${dashboard.version}/jbpm-dashboard-distributions-${dashboard.version}-jboss-as7.war

E finalmente, o banco de dados. Por padrão, o jBPM usa o H2 como backend. Nós iremos utilizar o PostgreSQL 9.3 e a partir dessa configuração, fica fácil utilizar qualquer outro banco de dados.

Quem já tiver alguma experiência com módulos do JBoss, não terá nenhuma dificuldade aqui.
As duas linhas abaixo são respectivamente: O caminho de origem para o driver (jar) e a pasta do módulo no JBoss.

db.driver.jar=${install.home}/db/driver/${db.driver.jar.name}
db.driver.module.dir=${jboss.home}/modules/${db.driver.module.prefix}/main/

Faça o download do driver postgresql-9.3-1103.jdbc4.jar e salve-o na pasta “/opt/jbpm-installer/db/driver”.
No build.properties, comente as linhas referente ao H2 e acrescente as linhas abaixo:

#postgresql
db.name=postgresql
db.driver.module.prefix=org/postgresql
db.driver.jar.name=postgresql-9.3-1103.jdbc4.jar
db.driver.download.url=https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/postgresql/postgresql/9.1-902.jdbc4/postgresql-9.1-902.jdbc4.jar

Pronto. Depois de realizar essas alterações, seu arquivo build.properties deve se parecer com esse:

# NOTES for doing a release
# - replace all *.url variables with the variables marked as <RELEASE>
# - make sure all *.version variables = ${release.version}
# - set ${release.version} to the current release version.

install.home=./
snapshot.version=6.2.0-SNAPSHOT
release.version=6.2.0.Final

# the version of jBPM you want to use
# and the associated URL you want to get the dependencies from
# for example:
#<RELEASE>
#   jBPM.version=${release.version}
#   jBPM.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/jbpm/jbpm-distribution/${jBPM.version}/jbpm-distribution-${jBPM.version}-bin.zip
# or:
#<SNAPSHOT>
#   jBPM.version=${snapshot.version}
#   jBPM.url=https://hudson.jboss.org/hudson/job/jBPM/lastSuccessfulBuild/artifact/jbpm-distribution/target/jbpm-${jBPM.version}-bin.zip
jBPM.version=${release.version}
jBPM.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/drools/droolsjbpm-bpms-distribution/${jBPM.version}/droolsjbpm-bpms-distribution-${jBPM.version}-bin.zip

# the version of jBPM Console you want to use
# and the associated URL you want to get it from
# for example:
#<RELEASE>
# for AS7:
jBPM.console.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/kie/kie-wb-distribution-wars/${jBPM.version}/kie-wb-distribution-wars-${jBPM.version}-jboss-as7.war
# for EAP 6.4:
#   jBPM.console.url=http://repository.jboss.org/nexus/content/groups/public-jboss/org/kie/kie-wb-distribution-wars/${jBPM.version}/kie-wb-distribution-wars-${jBPM.version}-eap6_4.war
# for WildFly8:
#   jBPM.console.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/kie/kie-wb-distribution-wars/${jBPM.version}/kie-wb-distribution-wars-${jBPM.version}-wildfly8.war
# or:
#<SNAPSHOT>
#   jBPM.console.url=https://hudson.jboss.org/hudson/job/kie-wb-distributions/lastSuccessfulBuild/artifact/kie-wb/kie-wb-distribution-wars/target/kie-wb-${jBPM.version}-wildfly8.war

# the version of jBPM and Drools Eclipse plugin you want to use
# and the associated URL you want to get the dependencies from
# for example:
#<RELEASE>
#   droolsjbpm.eclipse.version=${release.version}
#   droolsjbpm.eclipse.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/drools/org.drools.updatesite/${droolsjbpm.eclipse.version}/org.drools.updatesite-${droolsjbpm.eclipse.version}.zip
# or:
#<SNAPSHOT>
#   droolsjbpm.eclipse.version=${snapshot.version}
#   droolsjbpm.eclipse.url=https://hudson.jboss.org/hudson/job/droolsjbpm-tools/lastSuccessfulBuild/artifact/drools-eclipse/org.drools.updatesite/target/org.drools.updatesite-${droolsjbpm.eclipse.version}.zip
droolsjbpm.eclipse.version=${release.version}
droolsjbpm.eclipse.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/drools/org.drools.updatesite/${droolsjbpm.eclipse.version}/org.drools.updatesite-${droolsjbpm.eclipse.version}.zip

# the home of your eclipse installation
# will be used to deploy the Eclipse plugin to
eclipse.home=./eclipse
eclipse.clean.workspace=true

# the home of your JBoss AS installation
# for example, for AS7:
jboss.server.version=as-7.1.1.Final
jboss.home=./jboss-${jboss.server.version}
jboss.download.url=http://download.jboss.org/jbossas/7.1/jboss-${jboss.server.version}/jboss-${jboss.server.version}.zip
jboss.server.conf.dir=${jboss.home}/standalone/configuration
jboss.server.deploy.dir=${jboss.home}/standalone/deployments
jboss.server.data.dir=${jboss.home}/standalone/data
jboss.clean.repository=true
#   IMPORTANT: make sure to also set the H2.version property (below) to 1.3.161
# or for EAP 6.4
#   jboss.server.version=eap-6.4.0
#   jboss.home=./jboss-eap-6.4
#   jboss.download.url=### you need to manually download the eap 6.4.0 zip and put it in the lib folder ###
#   jboss.server.conf.dir=${jboss.home}/standalone/configuration
#   jboss.server.deploy.dir=${jboss.home}/standalone/deployments
#   jboss.server.data.dir=${jboss.home}/standalone/data
#   jboss.clean.repository=true
# or for Wildfly8
#   jboss.server.wildfly.version=8.1.0.Final
#   jboss.server.version=wildfly-${jboss.server.wildfly.version}
#   jboss.home=./${jboss.server.version}
#   jboss.download.url=http://download.jboss.org/wildfly/${jboss.server.wildfly.version}/${jboss.server.version}.zip
#   jboss.server.conf.dir=${jboss.home}/standalone/configuration
#   jboss.server.deploy.dir=${jboss.home}/standalone/deployments
#   jboss.server.data.dir=${jboss.home}/standalone/data
#   jboss.clean.repository=true
jboss.war.type=${jboss.server.version}

# jboss.port.offset=0
# org.uberfire.nio.git.daemon.port=9418
# org.uberfire.nio.git.ssh.port=8001

# the version of Dashboard Builder you want to use
# and the associated URL you want to get it from
# for example:
#<RELEASE>
# for AS7:
dashboard.version=${release.version}
dashboard.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/jbpm/dashboard/jbpm-dashboard-distributions/${dashboard.version}/jbpm-dashboard-distributions-${dashboard.version}-jboss-as7.war
# for EAP 6.4:
#   dashboard.version=${release.version}
#   dashboard.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/jbpm/dashboard/jbpm-dashboard-distributions/${dashboard.version}/jbpm-dashboard-distributions-${dashboard.version}-eap6_4.war
# for Wildfly8:
#   dashboard.version=${release.version}
#   dashboard.url=https://repository.jboss.org/nexus/content/groups/public-jboss/org/jbpm/dashboard/jbpm-dashboard-distributions/${dashboard.version}/jbpm-dashboard-distributions-${dashboard.version}-wildfly8.war
# or:
#<SNAPSHOT>
#   dashboard.version=${snapshot.version}
#   dashboard.url=https://hudson.jboss.org/hudson/job/jbpm-dashboard/lastSuccessfulBuild/artifact/jbpm-dashboard-distributions/target/jbpm-dashbuilder-${dashboard.version}-wildfly8.war

# data base related properties
db.driver.jar=${install.home}/db/driver/${db.driver.jar.name}
db.driver.module.dir=${jboss.home}/modules/${db.driver.module.prefix}/main/
# 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
#postgresql
db.name=postgresql
db.driver.module.prefix=org/postgresql
db.driver.jar.name=postgresql-9.3-1103.jdbc4.jar

Agora, vamos executar o instalador e esperar (bastante):

ant install.demo

Enquanto você espera a instalação finalizar, vamos configurar o BD:

  • Crie um novo banco de dados chamado jbpm
  • Vá até a pasta “/opt/jbpm-installer/db/ddl-scripts/postgres/”
  • Execute o script postgresql-jbpm-schema.sql e na sequência quartz_tables_postgres.sql

Quando a instalação finalizar, abra o arquivo “/opt/jbpm-installer/jboss-as-7.1.1.Final/bin/standalone.conf”, na linha 50, e altere as configurações como na linha abaixo:

-Xmx1024m -XX:MaxPermSize=512m

e na linha 52:

JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone-full.xml"

Abra o arquivo “/opt/jbpm-installer/jboss-as-7.1.1.Final/standalone/configuration/standalone-full.xml”, localize a seção datasource e adicione:

<datasource jta="true" jndi-name="java:jboss/datasources/jbpmDS" pool-name="jbpmDS" enabled="true" use-java-context="true" use-ccm="true">
    <connection-url>jdbc:postgresql://localhost:5432/jbpm</connection-url>
    <driver-class>org.postgresql.Driver</driver-class>
    <driver>postgresql</driver>
    <pool>
        <min-pool-size>2</min-pool-size>
        <max-pool-size>100</max-pool-size>
    </pool>
    <security>
        <user-name>postgres</user-name>
        <password>postgres</password>
    </security>
    <validation>
        <validate-on-match>false</validate-on-match>
        <background-validation>false</background-validation>
        <background-validation-millis>1</background-validation-millis>
    </validation>
    <statement>
        <prepared-statement-cache-size>64</prepared-statement-cache-size>
        <share-prepared-statements>true</share-prepared-statements>
    </statement>
</datasource>

E na seção drivers, acrescente:

<driver name="postgresql" module="org.postgresql">
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>

Se tudo estiver correto, você já pode iniciar o JBoss:

$ cd /opt/jbpm-installer/jboss-as-7.1.1.Final/bin/
$ ./standalone.sh -b 0.0.0.0

Se apareceu “Deployed” no terminal, você já pode acessar o jbpm-console: http://localhost:8080/jbpm-console

Espero que tudo tenha dado certo!

Um abraço e até o próximo post!

Guia: Substituir Windows 8.0 Pré-Instalado

Essa semana, meu antigo notebook veio a falecer e eu precisei comprar um meio que emergencialmente para terminar alguns freelas que estavam com prazos bem apertados.

Eu sou usuário linux mas ainda mantenho uma partição com Windows para alguns trabalhos específicos (exigência de cliente e/ou tecnologia, etc. ) . Como não fui com a cara do Windows 8, resolvi formatar a máquina e instalar meu Ubuntu + Win 7 e assim deu-se inicio ao meu final de semana terror.

O problema é o UEFI, sucessor de togakure da boa e velha BIOS. Por causa dele, eu não conseguia simplesmente mudar a prioridade de BOOT para CD/DVD já que o Windows 8 não reinicia de verdade, ele hiberna, então quando você pressiona Del, F1, F10 ou seja lá qual for a tecla que te levaria para o setup no boot, não acontece nada … você continua indo parar no vírus Windows 8.

Ok, vamos então para a receita de bolo para remover ele e instalar seu sistema operacional preferido.

DESATIVAR O FAST BOOT NO WINDOWS 8

Abra o painel de controle e vá até as opções de energia.
No menu do lado esquerdo, escolha a opção “Alterar o funcionamento dos botões de energia” e em seguida, clique em “Alterar configurações não disponíveis no momento”.
Na parte inferior da tela, desmarque a opção “Ligar inicialização rápida”.

ACESSAR A BIOS

Ainda no Windows 8, vá até as opções de desligamento e segure a tecla shift e clique em reiniciar. Isso vai fazer com que você entre nas configurações do UEFI.

Se tudo deu certo até o momento, você estará agora olhando para a tela do UEFI, que é mais ou menos assim:

Clique na opção “Troubleshoot”, depois em “Advanced Options” e por fim “UEFI Firmware Settings”. Pronto, o computador irá reiniciar e provavelmente você não terá que pressionar nenhuma tecla para entrar na BIOS, já vai entrar direto.

Já na boa e velha BIOS, procure as opções de Boot (cada fabricante tem um layout diferente, por isso não tenho como dizer onde exatamente está) e habilite o Boot Legacy e altere as prioridade de boot entre UEFI e legacy, deve ter uma opção: Boot Legacy First.

Na mesma tela, selecione a ordem de prioridade de boot para CD/DVD ou se você vai realizar uma instalação via USB, selecione o dispositivo correspondente. Tudo isso fica antes do seu HD que contém o Windows 8. Em alguns casos, também é necessário desativar o Secure Boot – Não foi o meu caso mas se for necessário, provavelmente se encontra na aba Security.

Reinicie com o CD/DVD de instalação do novo Sistema e tudo vai funcionar como esperado. Se você vai ficar com apenas 1 sistema operacional, seus problemas acabaram e você já pode ser feliz \o/.

* A partir de agora, sempre que precisar entrar na BIOS, basta pressionar a tecla de função normalmente como antigamente durante o boot.

DUAL BOOT – INSTALAR LINUX

Para instalar seu linux (em meu caso o Ubuntu), basta dar o boot pelo Live CD ou USB (lembre-se, você deve alterar a prioridade do boot na BIOS para que ele inicie pelo dispositivo e não pelo HD) e seguir as instruções de instalação.

Eis que você chega na parte de selecionar a partição de instalação e o instalador não reconhece a partição onde você instalou o outro sistema operacional e mostra o disco inteiro vazio. Pois é, mais uma novidade 🙂 – O GPT. O GPT é o novo formato de tabela de partição, sucessor da MBR. E o que acontece é que as vezes, você instala um sistema com MBR e ficam “resíduos” do GTP no disco, dai a ferramenta de partição entende que trata-se de um disco em GPT e lá não tem nada. 

Saia da instalação e entre no modo “Try Ubuntu”, acesse o terminal e execute a ferramenta gdisk. Sintaxe: gdisk /dev/sda

ATENÇÃO – Muito cuidado a partir daqui.

O gdisk irá identificar que o disco possui MBR e GPT e pergunta como você deseja trabalhar, escolha MBR Only.
Tecle “x” para entrar no modo expert
Tecle “z” para apagar os dados da GPT e confirme com “y”
Tecle “n” para a pergunta “Blanking the MBR”. Cuidado para não responder “y” aqui.

Pronto, saia do gdisk e abra o gparted ou qualquer outra ferramenta de particionamento que desejar. 
A partir desse momento, você já vai conseguir ver a(s) partição(ões) que contém o outro sistema instalado. Crie as partições linux que desejar e reinicie computador.

Pronto, siga o processo de instalação normalmente.

Referências:

http://askubuntu.com/questions/221835/installing-ubuntu-on-a-pre-installed-windows-8-64-bit-system-uefi-supported

http://www.tecmundo.com.br/como-fazer/29536-windows-8-o-que-e-o-modo-de-inicializacao-rapida-e-como-desabilita-lo.htm

http://askubuntu.com/questions/249642/gpt-partition-table-warning-message-during-install-of-ubuntu

Impressora HP: Impressão extremamente lenta

Sintomas: Impressora não realiza a impressão (Linux) ou imprime de forma extremamente lenta, imprimindo 1 faixa de cada vez (uns 15 ou 20 segundos de intervalo entre uma impressão e outra – Linux e Windows 7).

Diagnóstico: Provavelmente um dos cartuchos está com problema. Remova 1 cartucho de cada vez, mande um documento para a fila de impressão e verifique se a impressão voltou ao normal. Se sim, o cartucho com defeito é o que foi retirado.

Plus: No Linux, baixe a ferramenta gerenciamento de impressão da HP e o driver hplip no site: http://hplipopensource.com/hplip-web/index.html