oar generation on examples

18 views
Skip to first unread message

Sandrine Beauche

unread,
Apr 18, 2012, 4:45:39 AM4/18/12
to Rio Users Group
Hi all,

I 'm stuck to generate oar on the example, calculator for example. I
launch the mvn install or mvn package but it generate only jar files
and no oar files. I looked in the target directories, and in my local
maven repository but nothing. What should I do to obtain this oar
archive?

Thanks,
Sandrine.

Sandrine Beauche

unread,
Apr 18, 2012, 7:23:21 AM4/18/12
to Rio Users Group
Can anyone help me? I use the rio version 4.2 and I need to generate
an oar quickly because I have a deadline for my work :/

Thanks,
Sandrine.

On Apr 18, 10:45 am, Sandrine Beauche <sandrine.beau...@gmail.com>
wrote:

Dennis Reedy

unread,
Apr 18, 2012, 7:34:27 AM4/18/12
to rio-...@googlegroups.com
Hi Sandrine,

When you build the calculator example, are you building it from the top-level calculator directory? You should see the OAR in the target directory. If you dont, try running mvn install -X -Dmaven.test.skip to get some debugging information and post back.

Dennis

Sandrine Beauche

unread,
Apr 18, 2012, 7:58:44 AM4/18/12
to Rio Users Group
Hi,

I tried with the options that you suggested me, this is the output
about the build-oar goal execution:

[INFO] --- maven-rio-plugin:4.2:oar (build-oar) @ calculator-service
---
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-rio-plugin:
4.2:oar from plugin realm ClassRealm[plugin>org.apach
e.maven.plugins:maven-rio-plugin:4.2, parent: sun.misc.Launcher
$AppClassLoader@f4a24a]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-rio-plugin:
4.2:oar' with basic configurator -->
[DEBUG] (f) activation = Automatic
[DEBUG] (f) dependencies =
[org.rioproject.examples.calculator:calculator-api:jar:2.0:compile,
org.rioproject:rio-test
:jar:4.2:test, junit:junit:jar:4.8.2:test, org.rioproject:rio:jar:
4.2:compile]
[DEBUG] (f) oarFileName = D:\sandrine\sandbox\rio-4.2\examples
\calculator\calculator-service\target/calculator-service
-2.0.oar
[DEBUG] (f) opstring = D:\sandrine\sandbox\rio-4.2\examples
\calculator\calculator-service\src\main\opstring\calculator
.groovy
[DEBUG] (f) project = MavenProject:
org.rioproject.examples.calculator:calculator-service:2.0 @ D:\sandrine
\sandbox\ri
o-4.2\examples\calculator\calculator-service\pom.xml
[DEBUG] -- end configuration --
[DEBUG] The opstring [D:\sandrine\sandbox\rio-4.2\examples\calculator
\calculator-service\src\main\opstring\calculator.gr
oovy] does not exist, cannot build OAR

I put the opstring this place but nothing changed...

Sandrine.

Dennis Reedy

unread,
Apr 18, 2012, 8:31:49 AM4/18/12
to rio-...@googlegroups.com
Sandrine,

The calculator example is structures as follows:

calculator
   +- calculator-api
   +- calculator-service

The OAR will be built in the calculator/target directory

The output below shows the calculator-service interaction. Can you please try looking there? Also, if you could capture the output of the calculator module's build and install that would be great.

Thanks

Dennis

Sandrine Beauche

unread,
Apr 18, 2012, 9:01:27 AM4/18/12
to Rio Users Group
Sorry, this is the trace for the calculator project:

[INFO] --- maven-rio-plugin:4.2:oar (build-oar) @ calculator ---
[DEBUG] org.apache.maven.plugins:maven-rio-plugin:jar:4.2:
[DEBUG] org.rioproject.tools:classdepandjar:jar:4.0:compile
[DEBUG] org.apache.maven:maven-project:jar:2.0.8:compile
[DEBUG] org.apache.maven:maven-settings:jar:2.0.8:compile
[DEBUG] org.apache.maven:maven-profile:jar:2.0.8:compile
[DEBUG] org.apache.maven:maven-model:jar:2.0.8:compile
[DEBUG] org.apache.maven:maven-artifact-manager:jar:
2.0.8:compile
[DEBUG] org.apache.maven:maven-repository-metadata:jar:
2.0.8:compile
[DEBUG] org.apache.maven:maven-plugin-registry:jar:2.0.8:compile
[DEBUG] org.apache.maven:maven-artifact:jar:2.0.8:compile
[DEBUG] org.codehaus.plexus:plexus-container-default:jar:1.0-
alpha-9-stable-1:compile
[DEBUG] junit:junit:jar:3.8.1:compile
[DEBUG] classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG] org.apache.maven:maven-plugin-api:jar:2.0.7:compile
[DEBUG] org.codehaus.plexus:plexus-utils:jar:1.4.5:compile
[DEBUG] org.apache.ant:ant:jar:1.7.0:compile
[DEBUG] org.apache.ant:ant-launcher:jar:1.7.0:compile
[DEBUG] commons-lang:commons-lang:jar:2.1:compile
[DEBUG] org.codehaus.groovy:groovy-all:jar:1.7.0:compile
[DEBUG] jline:jline:jar:0.9.94:compile
[DEBUG] org.apache.maven:maven-archiver:jar:2.3:compile
[DEBUG] org.codehaus.plexus:plexus-archiver:jar:1.0-
alpha-9:compile
[DEBUG] org.codehaus.plexus:plexus-component-api:jar:1.0-
alpha-15:compile
[DEBUG] org.codehaus.plexus:plexus-classworlds:jar:1.2-
alpha-6:compile
[DEBUG] org.codehaus.plexus:plexus-io:jar:1.0-alpha-1:compile
[DEBUG] com.sun:tools:jar:1.5.0:system
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-
rio-plugin:4.2
[DEBUG] Importing foreign packages into class realm
plugin>org.apache.maven.plugins:maven-rio-plugin:4.2
[DEBUG] Imported: < project>org.rioproject.examples:calculator:2.0
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-
rio-plugin:4.2
[DEBUG] Included: org.apache.maven.plugins:maven-rio-plugin:jar:4.2
[DEBUG] Included: org.rioproject.tools:classdepandjar:jar:4.0
[DEBUG] Included: junit:junit:jar:3.8.1
[DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:1.4.5
[DEBUG] Included: org.apache.ant:ant:jar:1.7.0
[DEBUG] Included: org.apache.ant:ant-launcher:jar:1.7.0
[DEBUG] Included: commons-lang:commons-lang:jar:2.1
[DEBUG] Included: org.codehaus.groovy:groovy-all:jar:1.7.0
[DEBUG] Included: jline:jline:jar:0.9.94
[DEBUG] Included: org.apache.maven:maven-archiver:jar:2.3
[DEBUG] Included: org.codehaus.plexus:plexus-archiver:jar:1.0-
alpha-9
[DEBUG] Included: org.codehaus.plexus:plexus-io:jar:1.0-alpha-1
[DEBUG] Included: com.sun:tools:jar:1.5.0
[DEBUG] Excluded: org.apache.maven:maven-project:jar:2.0.8
[DEBUG] Excluded: org.apache.maven:maven-settings:jar:2.0.8
[DEBUG] Excluded: org.apache.maven:maven-profile:jar:2.0.8
[DEBUG] Excluded: org.apache.maven:maven-model:jar:2.0.8
[DEBUG] Excluded: org.apache.maven:maven-artifact-manager:jar:2.0.8
[DEBUG] Excluded: org.apache.maven:maven-repository-metadata:jar:
2.0.8
[DEBUG] Excluded: org.apache.maven:maven-plugin-registry:jar:2.0.8
[DEBUG] Excluded: org.apache.maven:maven-artifact:jar:2.0.8
[DEBUG] Excluded: org.codehaus.plexus:plexus-container-default:jar:
1.0-alpha-9-stable-1
[DEBUG] Excluded: classworlds:classworlds:jar:1.1-alpha-2
[DEBUG] Excluded: org.apache.maven:maven-plugin-api:jar:2.0.7
[DEBUG] Excluded: org.codehaus.plexus:plexus-component-api:jar:1.0-
alpha-15
[DEBUG] Excluded: org.codehaus.plexus:plexus-classworlds:jar:1.2-
alpha-6
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-rio-plugin:
4.2:oar from plugin realm ClassRealm[plugin>org.apach
e.maven.plugins:maven-rio-plugin:4.2, parent: sun.misc.Launcher
$AppClassLoader@f4a24a]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-rio-plugin:
4.2:oar' with basic configurator -->
[DEBUG] (f) activation = Automatic
[DEBUG] (f) dependencies = [org.rioproject:rio:jar:4.2:compile]
[DEBUG] (f) oarFileName = D:\sandrine\sandbox\rio-4.2\examples
\calculator\target/calculator-2.0.oar
[DEBUG] (f) opstring = D:\sandrine\sandbox\rio-4.2\examples
\calculator\src\main\opstring\calculator.groovy
[DEBUG] (f) project = MavenProject:
org.rioproject.examples:calculator:2.0 @ D:\sandrine\sandbox
\rio-4.2\examples\calc
ulator\pom.xml
[DEBUG] -- end configuration --
[DEBUG] The opstring [D:\sandrine\sandbox\rio-4.2\examples\calculator
\src\main\opstring\calculator.groovy] does not exis
t, cannot build OAR

But the problem is the same and I just unzipped the example archive
provided with rio 4.2 and then launched mvn install...

Sandrine.

Dennis Reedy

unread,
Apr 18, 2012, 9:10:01 AM4/18/12
to rio-...@googlegroups.com
Humm, not sure why this is failing for you ....

Let me boot up a Windows environment and try and reproduce

Dennis

Dennis Reedy

unread,
Apr 18, 2012, 10:09:27 AM4/18/12
to rio-...@googlegroups.com
Sandrine,

Not sure whats going on for you quite yet, but I've been able to produce the OAR without difficulty on OSX and Windows.

Dennis

Sandrine Beauche

unread,
Apr 18, 2012, 10:36:42 AM4/18/12
to rio-...@googlegroups.com
I tried again on linux this time, and it works! But with windows, nothing...

Dennis Reedy

unread,
Apr 18, 2012, 10:39:30 AM4/18/12
to rio-...@googlegroups.com
I verified using Windows XP, what version of Windows are you using? I need to most likely get a new version of Windows installed, I just cant see paying for it though. BTW, glad it works, sorry for the Windows problem.

Dennis

Sandrine Beauche

unread,
Apr 18, 2012, 10:50:49 AM4/18/12
to rio-...@googlegroups.com
I have windows 7...

Now I tried to deploy this oar to rio. First a started Rio with the start-all script, on linux. Then I copied the oar archive to the deploy directory under $RIO_HOME. The deploy didn't work, here is the trace I obtained in Rio:

INFO: Created /home/beauche/programmes/rio-4.2/deploy/calculator-2.0
18 avr. 2012 16:38:20 org.rioproject.opstring.OARUtil install
INFO: Installed OAR to /home/beauche/programmes/rio-4.2/deploy/calculator-2.0/calculator-2.0.oar
[WARNING] org.rioproject:examples:2.0 (pom) not found on repository http://repo1.maven.org/maven2/
18 avr. 2012 16:38:24 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
ATTENTION: Parsing [/home/beauche/programmes/rio-4.2/deploy/calculator-2.0/calculator.groovy]
java.lang.NullPointerException
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.createGroovyObjectGetPropertySite(AbstractCallSite.java:264)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.acceptGroovyObjectGetProperty(AbstractCallSite.java:249)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:241)
at org.rioproject.resolver.maven2.PomParser.processParent(PomParser.groovy:311)
at org.rioproject.resolver.maven2.PomParser$processParent.callCurrent(Unknown Source)
at org.rioproject.resolver.maven2.PomParser.parse(PomParser.groovy:107)
at org.rioproject.resolver.maven2.PomParser$parse.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:159)
at org.rioproject.resolver.maven2.PomParser.processParent(PomParser.groovy:308)
at org.rioproject.resolver.maven2.PomParser$processParent.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at org.rioproject.resolver.maven2.PomParser.parse(PomParser.groovy:107)
at org.rioproject.resolver.maven2.PomParser$parse.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at org.rioproject.resolver.maven2.SimpleResolver.doResolve(SimpleResolver.groovy:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:159)
at org.rioproject.resolver.maven2.SimpleResolver.getClassPathFor(SimpleResolver.groovy:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:225)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at org.rioproject.resolver.ResolverHelper.resolve(ResolverHelper.groovy:111)
at org.rioproject.opstring.OpStringUtil.checkCodebase(OpStringUtil.java:150)
at org.rioproject.opstring.OpStringUtil.checkCodebase(OpStringUtil.java:81)
at org.rioproject.monitor.AbstractOARDeployHandler.parseOAR(AbstractOARDeployHandler.java:101)
at org.rioproject.monitor.FileSystemOARDeployHandler.look(FileSystemOARDeployHandler.java:109)
at org.rioproject.monitor.AbstractOARDeployHandler.listofOperationalStrings(AbstractOARDeployHandler.java:76)
at org.rioproject.monitor.ProvisionMonitorImpl$DeployMonitor.processDeployHandlers(ProvisionMonitorImpl.java:4979)
at org.rioproject.monitor.ProvisionMonitorImpl$DeployMonitor.access$800(ProvisionMonitorImpl.java:4949)
at org.rioproject.monitor.ProvisionMonitorImpl$DeployMonitor$1.run(ProvisionMonitorImpl.java:4963)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
18 avr. 2012 16:38:24 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:38:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:39:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:39:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:40:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:40:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:41:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:41:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:42:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:42:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:43:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:43:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:44:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:44:50 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings
18 avr. 2012 16:45:20 org.rioproject.monitor.AbstractOARDeployHandler parseOAR
PLUS FIN: Returning [0] OperationalStrings

Sandrine.

Dennis Reedy

unread,
Apr 18, 2012, 10:55:24 AM4/18/12
to rio-...@googlegroups.com
Did you build the examples module (not just the calculator example)? Also, as mentioned before, Rio's maven repository is hosed right now. I'm trying to get things running with my site and am having issues with my current hosting provider. I hope this is resolved soon.

Dennis

Sandrine Beauche

unread,
Apr 18, 2012, 11:10:59 AM4/18/12
to rio-...@googlegroups.com
No I tried on calculator only... I have just tried on the examples module and now it works. Very strange...

Thank you very much for your quick replies.

Dennis Reedy

unread,
Apr 18, 2012, 11:14:17 AM4/18/12
to rio-...@googlegroups.com

On Apr 18, 2012, at 1110AM, Sandrine Beauche wrote:

> No I tried on calculator only... I have just tried on the examples module and now it works. Very strange...

It is not strange, the calculator's parent (example) could not be found locally or in central. The 4.2 code through an NPE because of that issue.

>
> Thank you very much for your quick replies.

Sure, no problem.

Dennis

Sandrine Beauche

unread,
Apr 18, 2012, 1:12:58 PM4/18/12
to rio-...@googlegroups.com
Ok I understand that to deploy an oar, Rio needs to take the dependencies declarated in the opstring from the maven repository. That is why if I didnt' mvn install on the target machine, the oar does not work.

I would like to have an oar that is standalone, because on the target deployment machine, I'm not be sure to be able to run maven. I would like just to upload rio on the target machine with my oar and then it work by launching the start-all script. How can I do to have this standalone archive?

Sandrine.

----- Original Message -----
From: "Dennis Reedy" <dennis...@gmail.com>
To: rio-...@googlegroups.com
Sent: Mercredi 18 Avril 2012 17:14:17
Subject: Re: oar generation on examples

Dennis Reedy

unread,
Apr 18, 2012, 1:34:12 PM4/18/12
to rio-...@googlegroups.com

On Apr 18, 2012, at 112PM, Sandrine Beauche wrote:

> Ok I understand that to deploy an oar, Rio needs to take the dependencies declarated in the opstring from the maven repository. That is why if I didnt' mvn install on the target machine, the oar does not work.

Correct.

>
> I would like to have an oar that is standalone, because on the target deployment machine, I'm not be sure to be able to run maven. I would like just to upload rio on the target machine with my oar and then it work by launching the start-all script. How can I do to have this standalone archive?

The OAR and the dependencies that your service requires must all be resolvable from a repository. So what this means is you will need to deploy (via maven) your artifacts to a repository. When Rio processes the OAR it will resolve the dependencies (both direct and transitive) your service require at service activation time.

HTH

Dennis

Sandrine Beauche

unread,
Apr 19, 2012, 3:11:08 AM4/19/12
to rio-...@googlegroups.com
Hi,

For my demo, I can do with this constraint by uploading a local maven repository with the interesting dependencies.

But just to give a feedback, I find this idea quite disturbing... When I deploy an archive to Tomcat, Axis or Petals for example, I deploy an archive containing all the dependencies, so it is standalone. Or the container has is own shared library management mechanism, so it not depends on another software like maven. The problem with maven is the dependency to an internet network connection and not all the environment provide it. And what about people that prefer Ivy instead than maven?

Anyway thank you very much for you quick help! :)

A+
Sandrine.

----- Original Message -----
From: "Dennis Reedy" <dennis...@gmail.com>
To: rio-...@googlegroups.com
Sent: Mercredi 18 Avril 2012 19:34:12
Subject: Re: oar generation on examples

Dennis Reedy

unread,
Apr 19, 2012, 9:52:34 AM4/19/12
to rio-...@googlegroups.com

On Apr 19, 2012, at 311AM, Sandrine Beauche wrote:

> Hi,
>
> For my demo, I can do with this constraint by uploading a local maven repository with the interesting dependencies.

For your demo you can just have the artifacts installed locally, you dont need them to be available remotely.

>
> But just to give a feedback, I find this idea quite disturbing... When I deploy an archive to Tomcat, Axis or Petals for example, I deploy an archive containing all the dependencies, so it is standalone. Or the container has is own shared library management mechanism,

You could do this, just create an uber jar that has no dependencies and ensure it is available locally. But I think you are missing key concepts.

Rio is not just a container. Rio provides for the dynamic provisioning and management of services through the network. In order to make your application work using any of the systems you list above you must install the artifacts on each machine and into each directory for your application to work. What happens if ...

- A machine dies and you need to keep your application running?
- Your application needs to be upgraded to fix an issue or defect, but you have to install your archive first, on every machine.
- Your application needs to scale up (or down), there are additional machines available, but the software is not installed
- Your administrator is out sick for any of the above

If none of these are use-cases in your system then dont bother with Rio, choose Tomcat, Axis or Petals.

> so it not depends on another software like maven.

There is no dependency on Maven, Rio provides the resolution of the artifacts at runtime.

> The problem with maven is the dependency to an internet network connection and not all the environment provide it. And what about people that prefer Ivy instead than maven?

It has nothing to do with Rio. You can develop your artifacts using anything you want. All you need to do is put your artifacts in a maven compatible repository.

HTH

Dennis

Dawid Loubser

unread,
Apr 24, 2012, 9:56:01 AM4/24/12
to Rio Users Group
Just to add to this -

Sandrine: if I recall correctly, your research work with regards
JavaSpaces brought you to my fork of the Blitz JavaSpaces project,
after which I recommended Rio to you as one of the easiest ways to get
a space (and related services) up and running. As Dennis says, Rio has
particular qualities to automatically provision services across any
number of machines automatically. It is designed for this.
Furthermore, Jini (and JavaSpaces) are inherently about distributed /
networked computing, even though you can easily set things up to work
with no network connection at all.

The fact that you do not deploy code bundles to Rio is *specifically*
what makes Rio interesting and powerful for a *particular class of
problem* - otherwise, any of the thousands of other software
containers will do the trick for you :-)
Reply all
Reply to author
Forward
0 new messages