$ mvn archetype:generate \ -DarchetypeGroupId=org.infinispan.archetypes \ -DarchetypeArtifactId=newproject-archetype \ -DarchetypeVersion=1.0.13 \ -DarchetypeRepository=http://repository.jboss.org/nexus/content/groups/public
Infinispan currently has 2 separate Maven archetypes you can use to create a skeleton project and get started using Infinispan. This is an easy way to get started using Infinispan as the archetype generates sample code, a sample Maven pom.xml with necessary depedencies, etc.
NOTE: You don't need to have any experience with or knowledge of Maven's Archetypes to use this! Just follow the simple steps below.
WARNING: These archetypes have only been tested with Maven 3. Please report back if you have any success with using Maven 2.
Use the newproject-archetype project. The simple command below will get you started, and
$ mvn archetype:generate \ -DarchetypeGroupId=org.infinispan.archetypes \ -DarchetypeArtifactId=newproject-archetype \ -DarchetypeVersion=1.0.13 \ -DarchetypeRepository=http://repository.jboss.org/nexus/content/groups/public
You will be prompted for a few things, including the artifactId , groupId and version of your new project. And that's it - you're ready to go!
The skeleton project ships with a sample application class, interacting with Infinispan. You should open this new project in your IDE - most good IDEs such as IntelliJ and Eclipse allow you to import Maven projects, see this guide and this guide. Once you open your project in your IDE, you should examine the generated classes and read through the comments.
Try running
$ mvn install -Prun
This archetype is useful if you wish to contribute a test to the Infinispan project and helps you get set up to use Infinispan's testing harness and related tools.
Use
$ mvn archetype:generate \ -DarchetypeGroupId=org.infinispan.archetypes \ -DarchetypeArtifactId=testcase-archetype \ -DarchetypeVersion=1.0.13 \ -DarchetypeRepository=http://repository.jboss.org/nexus/content/groups/public
Try running
$ mvn test
The generated project has a few different profiles you can use as well, using Maven's -P flag. E.g.,
$ mvn test -Pudp
The profiles available in the generated sample project are:
udp: use UDP for network communications rather than TCP
tcp: use TCP for network communications rather than UDP
jbosstm: Use the embedded JBoss Transaction Manager rather than Infinispan's dummy test transaction manager
If you have written a functional, unit or stress test for Infinispan and want to contribute this back to Infinispan, your best bet is to fork the Infinispan sources on GitHub. The test you would have prototyped and tested in an isolated project created using this archetype can be simply dropped in to Infinispan's test suite. Make your changes, add your test, prove that it fails even on Infinispan's upstream source tree and issue a pull request.
TIP: New to working with Infinispan and GitHub? Want to know how best to work with the repositories and contribute code? Read Infinispan and GitHub
The archetypes generate poms with dependencies to specific versions of Infinispan. You should edit these generated poms by hand to point to other versions of Infinispan that you are interested in.
The source code used to generate these archetypes are on GitHub. If you wish to enhance and contribute back to the project, fork away!