Agregando propiedades a nuestro JPos-Q2Server

jpos.org

jpos.org

Hay situaciones donde tenemos que agregarle información desde el archivo de configuración del JPos Q2Server. Utilizando nuestro proyecto anterior, le vamos agregar a la configuración, información de acceso a una base de datos donde vamos a almacenar la data que se procesa. Solo voy a incluir el código para acceder a dicha información, en algún pos futuro veremos como insertar efectivamente la transacción.

Tenemos nuestro actual archivo de configuración para el Q2Server:

Archivo configuración QServer

Archivo configuración QServer

Le agregamos las siguientes lineas, a nuestro archivo de configuración (lo que esta en rojo, ya esta en el archivo, solo se indican para ubicar correctamente la información):

<request-listener class="cl.gomark.listener.RequestListener" logger="Q2">
<property name="db.driver" value="org.postgresql.Driver" />
<property name="db.url" value="jdbc:postgresql://localhost/gomark_24082010" />
<property name="db.user" value="postgres" />
<property name="db.password" value="****" />
</request-listener>

Con esto nos queda el siguiente archivo de configuración (en mi caso de nombre 90-gomark-server.xml):

Configuración Q2Server

Configuración Q2Server

Una vez con nuestro archivo de configuración ya listo, modificamos nuestra clase (le agregamos la implementación ReConfigurable):

public class RequestListener extends Log implements ISORequestListener,
ReConfigurable, LogSource {

Luego agregamos el siguiente metodo a nuestra clase “RequestListener”:

@Override

public void setConfiguration(Configuration configuration) {

	_config = configuration;

	LogEvent logEvt = new LogEvent(this, "RequestListener:setConfiguration");

	logEvt.addMessage("db.driver = " + _config.get("db.driver"));

	logEvt.addMessage("db.url = " + _config.get("db.url"));

	logEvt.addMessage("db.user = " + _config.get("db.user"));

	logEvt.addMessage("db.password = " + _config.get("db.password"));		

	Logger.log(logEvt);

}

Donde _config es una propieda de la clase de tipo privada, la cual contiene toda la configuración agregada al archivo, para extraer un respectivo dato:

String miValor = _config.get(“db.url”);

Si todo sale bien, cuando iniciemos nuestro servicio JPos Q2Server, deviese verse de la siguiente forma:

Bueno, esto seria por esta vez. Cualquier comentario, es bienvenido!

Saludos!

Advertisements

Intalación JPOS en Ubuntu 10.4

Para poder instalar JPOS, se requieren tener instalada las siguientes herramientas:

  1. Java JDK (mini Howto para instalar jdk en ubuntu 10.4 http://www.ubuntu-es.org/node/133779)
  2. Subversion (instalar subversion: sudo aptitude install subversion)
  3. ANT (instalar ant: sudo apt-get install ant ant-optional)

Una vez instalada las herramientas, iniciamos la descarga desde el repositorio de la rama en desarrollo de JPOS (existe una versión estable para descarga en http://www.jpos.org)

svn co https://jpos.svn.sourceforge.net/svnroot/jpos/trunk/jpos6/ jpos-1.6.9

donde jpos-1.6.9 es el nombre del directorio donde lo vamos a alojar (el nombre puede ser cualquiera)

Una vez finalizado el proceso de descarga, procedemos a compilar vía ant (todo esto dentro del directorio donde alojamos el proyecto jpos)

moo@rcx01:~/jpos-1.6.9$ ant
Buildfile: build.xml
prepare:
[echo] Build jPOS-1.6.9.2010.08.19.03.52.17
[mkdir] Created dir: /home/moo/jpos-1.6.9/build
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/src
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/lib
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/lib/test
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/bin
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/doc
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/cfg
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/modules
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/deploy
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/deploy/lib
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/webapps/root
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/classes
[mkdir] Created dir: /home/moo/jpos-1.6.9/dist
[mkdir] Created dir: /home/moo/jpos-1.6.9/build/log
copy-lib:
[copy] Copying 7 files to /home/moo/jpos-1.6.9/build/lib
modules:
[copy] Copying 620 files to /home/moo/jpos-1.6.9/build/modules
[copy] Copying 2 files to /home/moo/jpos-1.6.9/build/deploy
[copy] Copying 2 files to /home/moo/jpos-1.6.9/build/lib
[copy] Copying 592 files to /home/moo/jpos-1.6.9/build
prepare:
[echo] Build jPOS-1.6.9.2010.08.19.03.52.17
support:
[copy] Copying 12 files to /home/moo/jpos-1.6.9/build/classes
[subant] No sub-builds to iterate on
[subant] No sub-builds to iterate on
copy-bin:
[copy] Copying 3 files to /home/moo/jpos-1.6.9/build/bin
manifest:
main:
[javac] Compiling 465 source files to /home/moo/jpos-1.6.9/build/classes
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[rmic] RMI Compiling 2 classes to /home/moo/jpos-1.6.9/build/classes
support:
[copy] Copying 12 files to /home/moo/jpos-1.6.9/build/classes
jar:
[jar] Building jar: /home/moo/jpos-1.6.9/build/jpos.jar
compile:
BUILD SUCCESSFUL
Total time: 12 seconds
moo@rcx01:~/jpos-1.6.9$
Para ejecutar nuestro Jpos, procedemos:
moo@rcx01:~/jpos-1.6.9$ ant run
Buildfile: build.xml
prepare:
[echo] Build jPOS-1.6.9.2010.08.19.03.56.47
copy-lib:
modules:
[copy] Copying 2 files to /home/moo/jpos-1.6.9/build/modules
prepare:
[echo] Build jPOS-1.6.9.2010.08.19.03.56.47
support:
[copy] Copying 12 files to /home/moo/jpos-1.6.9/build/classes
[subant] No sub-builds to iterate on
[subant] No sub-builds to iterate on
support:
[copy] Copying 12 files to /home/moo/jpos-1.6.9/build/classes
copy-bin:
manifest:
main:
jar:
[jar] Building jar: /home/moo/jpos-1.6.9/build/jpos.jar
run:
[java] <log realm=”Q2.system” at=”Thu Aug 19 15:56:51 CLT 2010.282″>
[java]   <info>
[java]     Q2 started, deployDir=/home/moo/jpos-1.6.9/build/deploy
[java]   </info>
[java] </log>
[java] <log realm=”Q2.system” at=”Thu Aug 19 15:56:51 CLT 2010.340″>
[java]   <info>
[java]     new classloader [22c95b] has been created
[java]   </info>
[java] </log>
[java] <log realm=”Q2.system” at=”Thu Aug 19 15:56:51 CLT 2010.342″>
[java]   <info>
[java]     deploy:/home/moo/jpos-1.6.9/build/deploy/99_sysmon.xml
[java]   </info>
[java] </log>
[java] <log realm=”org.jpos.q2.qbean.SystemMonitor” at=”Thu Aug 19 15:56:51 CLT 2010.357″>
[java]   <info>
[java]     Starting SystemMonitor
[java]   </info>
[java] </log>
[java] <log realm=”org.jpos.q2.qbean.SystemMonitor” at=”Thu Aug 19 15:56:51 CLT 2010.361″>
[java]   <info>
[java]     <release>jPOS 1.6.9 r2962</release>
[java]     <instance>c669c33b-d2c1-43c8-a1ef-83dc517c4018</instance>
[java]     <uptime>00:00:00.409</uptime>
[java]     <memory>
[java]        freeMemory=7206848
[java]       totalMemory=7995392
[java]       inUseMemory=788544
[java]     </memory>
[java]     <threads>
[java]             delay=0 ms
[java]           threads=4
[java]             Thread[Reference Handler,10,system]
[java]             Thread[Finalizer,8,system]
[java]             Thread[Signal Dispatcher,9,system]
[java]             Thread[Q2-c669c33b-d2c1-43c8-a1ef-83dc517c4018,5,main]
[java]             Thread[DestroyJavaVM,5,main]
[java]             Thread[Timer-0,5,main]
[java]             Thread[SystemMonitor,5,main]
[java]     </threads>
[java]     — name-registrar —
[java]       logger.Q2: org.jpos.util.Logger
[java]       logger.Q2.buffered: org.jpos.util.BufferedLogListener
[java]   </info>
[java] </log>
Ahí una forma muy básica de instalar jpos en un ubuntu (para windows es bastante similar)