Latest GreenVulcano instances work on Apache Karaf 4.2.7.
- Download Karaf 4.2.7 (Select Binary Distribution -> tar.gz)
- Extract tar.gz into a folder in your file system.
- /apache-karaf-4.2.7 will be the Karaf home.
Installation
Before to run karaf, you have to configure GreenVulcano Maven repository:
update
http://mvn.greenvulcano.com/nexus/content/groups/public@id=gv, \
:warning: _Please check that in
https://repo1.maven.org/maven2@id=central, \
https://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases, \
Then start Karaf (Open a terminal in #KarafHome /bin and write ./karaf)
Install feature repository and install gvegine
gvadmin@root()> feature:repo-add mvn:it.greenvulcano.gvesb/features/4.1.2/xml/features
gvadmin@root()> feature:install gvengine
To open GV Console go to http://localhost:8181/gvconsole/#/login and log with gvadmin gvadmin
If you want to stop Karaf and GV Console, insert halt into the terminal.
:warning: To enable debugging from Developer Studio, install the following bundle:
gvadmin@root()> bundle:install -s -l 96 mvn:it.greenvulcano.gvesb/gvdebug/4.1.2
Using the Docker image
You can run GreenVulcano GAIA ESB on Docker simply by typing
docker run greenvulcano/gaia:latest
or specifying more options like:
- http port mapping (8181)
- ssh port mapping (8081)
- environment variable GAIA_FEATURES with the list of features you want to be installed
docker run --name mygaia \
-p 18181:8181 -p 18101:8101 \
-e GAIA_FEATURES="gvengine, gvvcl-rest, gvdatahandler, gvhttp" \
greenvulcano/gaia:latest
To access into Karaf console use ssh:
ssh -p 18101 gvadmin@127.0.0.1
The list of karaf features, now also include those of GreenVulcano:
gvadmin@root()> feature:list
To show GreenVulcano features only:
gvadmin@root()> feature:list | grep Green
At the end of this process a folder will be created at **
gv.app.home=
It is necessary to restart karaf to properly load a new configuration.
Plugins and adapters
You can install specific plugins and adapters to extends GreenVulcano GAIA ESB
gvadmin@root()> feature:install gvvcl-rest
For data handler just install following bundle, with start level 96:
gvadmin@root()> feature:install gvdatahandler
To url mapping (httpInboundGateway) install also gvhttp: it is a war file and not a jar file, so don’t forget to add /war suffix:
gvadmin@root()> feature:install gvhttp
For database connections (JNDI, JDBC), refer to OPS4J Pax JDBC framework i.e. :
gvadmin@root()> feature:install pax-jdbc-oracle
or:
gvadmin@root()> feature:install pax-jdbc-mysql
For scheduled sevices install:
gvadmin@root()> feature:install gvscheduler
gvadmin@root()> feature:install gvscheduler-conf
For jms queues intall:
gvadmin@root()> feature:install gvvcl-jms
Deploy
Export a configuration from Developer studio. Then choose whether to use “Developer Studio & GVConsole” or “Karaf” deploy.
- Developer Studio & GVConsole – GVConsole -> Configuration – upload configurazion in .zip format – choose a Configuration-Id – press Deploy button
- Karaf
gvadmin@root()> gvesb:deploy Configuration-Id /path/to/vulcon/export.zip
A folder named
will be created into /GreenV, which contains GreenVulcano configuration.
Logging
You can setup a fine-grained logging service configuring proprerly log4j in karaf. This is a sample configuration in etc/org.ops4j.pax.logging.cfg to logging each service in a single file:
log4j2.property.MASTER_SERVICE = NOOP
# GVESB Appender to produce multiple log files - One per value of MASTER_SERVICE key in thread context map
log4j2.appender.gv.type = Routing
log4j2.appender.gv.name = RoutingGVCore
log4j2.appender.gv.routes.type = Routes
log4j2.appender.gv.routes.pattern = \$\$\\\{ctx:MASTER_SERVICE\}
log4j2.appender.gv.routes.service.type = Route
log4j2.appender.gv.routes.service.appender.type = RollingRandomAccessFile
log4j2.appender.gv.routes.service.appender.name = Rolling-\$\\\{ctx:MASTER_SERVICE\}
log4j2.appender.gv.routes.service.appender.fileName = ${karaf.data}/log/GVCore.\$\\\{ctx:MASTER_SERVICE\}.log
log4j2.appender.gv.routes.service.appender.filePattern = ${karaf.data}/log/${date:yyyy-MM}/GVCore.\$\\\{ctx:MASTER_SERVICE\}.%d{MM-dd-yyyy}.zip
log4j2.appender.gv.routes.service.appender.append = true
log4j2.appender.gv.routes.service.appender.layout.type = PatternLayout
log4j2.appender.gv.routes.service.appender.layout.pattern = [%d{ISO8601}][%-5.5p][%X{SERVICE}/%X{OPERATION}][%X{ID}][%X{bundle.id} - %X{bundle.name}][%t] - %m%n
log4j2.appender.gv.routes.service.appender.policies.type = Policies
log4j2.appender.gv.routes.service.appender.policies.time.type =TimeBasedTriggeringPolicy
log4j2.appender.gv.routes.service.appender.policies.time.interval = 1
log4j2.appender.gv.routes.service.appender.policies.time.modulate = true
# GVESB Logger mapping service name
log4j2.logger.greenvulcano.name = it.greenvulcano
log4j2.logger.greenvulcano.level = DEBUG
log4j2.logger.greenvulcano.appenderRef.gv.ref = RoutingGVCore
# Filtering specific services
#log4j2.logger.greenvulcano.appenderRef.gv.filter.mdc.type = ThreadContextMapFilter
#log4j2.logger.greenvulcano.appenderRef.gv.filter.mdc.operator = or
#log4j2.logger.greenvulcano.appenderRef.gv.filter.mdc.fleet.type = KeyValuePair
#log4j2.logger.greenvulcano.appenderRef.gv.filter.mdc.fleet.key = MASTER_SERVICE
#log4j2.logger.greenvulcano.appenderRef.gv.filter.mdc.fleet.value = (service name)
Monitoring
You can access to GV GAIA ESB v4 JMX infrastructure using jconsole connected to karaf.
Use this url
service:jmx:rmi:///jndi/rmi://<karaf host>:1099/karaf-root
to connect jconsole on a remote instance. All MBean are under the node GreenVulcano