Skip to end of metadata
Go to start of metadata


Ariane Distribution is based on Eclipse Virgo Tomcat 3.6.2. We strongly recommend you to read the Eclipse Virgo documentation.

For our own needs we changed some things from the official Eclipse Virgo distribution and also added some cool libraries.

Ariane is currently tested on Linux only. 

Folders tree

Directory pathDescription
$VIRGO_HOME/binVirgo directory where you can find script for startup and so on
$VIRGO_HOME/arianeAriane Distribution where you can find ariane installer, neo4j environment, components and plugins cache files...
$VIRGO_HOME/configurationVirgo directory where you can find most of the running virgo configuration
$VIRGO_HOME/docsVirgo documentation directory
$VIRGO_HOME/libVirgo base libraries directory
$VIRGO_HOME/p2Virgo p2 directory (about p2)
$VIRGO_HOME/pickupVirgo pickup directory
$VIRGO_HOME/pluginsVirgo plugins directory
$VIRGO_HOME/repositoryVirgo repository directory
$VIRGO_HOME/serviceabilityVirgo serviceabillity directory (logs)
$VIRGO_HOME/workVirgo work directory (deployment)

 

Some additional cool 3rd party libs

Ariane distribution comes with many librairies in addition to the already Eclipse Virgo librairies (like Spring or Felix gogo). Bellow is an overview of these technologies you're able to use with Ariane distrib :

 NameVersionDescription
Apache Shiro1.2.2Our base security lib (authentication / authorization / RBAC model)
 Apache Tomcat7.0Our servlet container
 Eclipse Virgo3.6.2Our OSGI container
Felix iPojo1.11.0Used to define OSGI services, consumers ...
Groovy1.8.9Used to sniff HTML pages by some plugins
Hibernate4.3.0Our JPA implementation but with OSGI power which help us to extend a persistent unit through our plugins
Infinispan6.0.0Our data cache provider
JGroups3.4.1Infinispan transport but can be used for others needs
JBoss REST easy2.3.6Our REST lib
Neo4J1.9.5Our GraphDB
PrimeFaces3.5Our JSF lib
Scala2.10Use for our DSL
Tinkerpop Blueprints2.4Use for our graph db data model implementation
Tinkerpop Gremlin2.4Tests
Tinkerpop Pipes2.4Tests

 

Some modifications to Eclipse Virgo

Virgo kernel shell patch

To make work plan startup through Virgo console we add to provide a patch on the Eclipse Virgo Kernel... So we use a dedicated virgo.kernel bundle to enable this patch. This bundle is generated by compiling following project : 

https://github.com/echinopsii/net.echinopsii.3rdparty.virgo.kernel

After compilation the produced patch can be found in {$your_net.echinopsii.3rdparty.virgo.kernel_clone_directory}/org.eclipse.virgo.shell.command/target/artifact/net.echinopsii.3rdparty.org.eclipse.virgo.shell.command.jar

Note: we changed the final artifact name for tracability purpose...

This patch replace the $VIRGO_HOME/plugins/org.eclipse.virgo.shell.command.jar and we consequently updated the ./configuration/org.eclipse.virgo.kernel.userregion.properties file : 

 

JBoss REST Easy integration

In order to make work JBoss REST Easy in Eclipse Virgo Tomcat we attach the libs as catalina fragment. First we need to generate bundle from official JBoss REST Easy libraries with the following bundlor manifests :

Then we push the generated bundle into the Eclipse Virgo Ext repository and we change the org.eclipse.virgo.web.tomcat_3.6.2.RELEASE plan like that :

Ariane virgo web tomcat planOfficial virgo web tomcat plan

 

 

 

 

When you start Virgo you can see JBoss REST Easy bundles started as fragments of catalina host :

 

Add a global context for Ariane web resources

We added file $VIRGO_HOME/configuration/Catalina/localhost/context.xml.default to get Tomcat aliases on our web resources. These resources are in $VIRGO_HOME/ariane/static folder.

MISCs configuration

We changed miscs configuration as follow :

  • the OSGI service HTTP port in $VIRGO_HOME/configuration/config.ini

  • the SSH osgi console for Virgo kernel region port in $VIRGO_HOME/configuration/osgi.console.properties

    NOTE: ssh is enabled by default in our changes


  • the Tomcat ports in $VIRGO_HOME/configuration/tomcat-server.xml

  • the SSH osgi console port for Virgo user region in $VIRGO_HOME/repository/ext/osgi.console.properties

    NOTE: ssh is enabled by default in our changes

     

  • the logs configuration in $VIRGO_HOME/configuration/serviceability.xml
     
  • the admin credentials in $VIRGO_HOME/configuration/org.eclipse.virgo.kernel.users.properties

  • the JRE profile to get some profiling capabilities in $VIRGO_HOME/configuration/java6-server.profile

    To profile the app with YourKit you also need to add a new file $VIRGO_HOME/bin/setenv.sh with following content :

  • the JRE memory sizing in $VIRGO_HOME/bin/dmk.sh

  • the JMX port in $VIRGO_HOME/bin/dmk.sh

Repository configuration

On Ariane distrib we add two other repositories in $VIRGO_HOME/configuration/org.eclipse.virgo.repository.properties :

  • ariane-core for Ariane components and our 3rd party libs
  • ariane-plugins for Ariane plugins

NOTE: we only use usr repository in Ariane development environment.

 

RMI configuration

Neo4J web console needs RMI configuration. So we need to add specific JRE parameters in $VIRGO_HOME/bin/dmk.sh : 

and a virgo.policy file :

  • No labels