SemiSpace is a light weight Open Source interpretation of Tuple Space / Object Space based on ideas from JavaSpaces. It can be run as single, stand alone, space on one J2SE 6.0 VM (or greater), or clustered with Terracotta version 3.2.1_2.

Please see the SemiSpace book for in-depth information about installation and usage.

Other information:

SemiSpace offers

... a light weight JavaSpaces inspired tuple space which

  • is non-intrusive: You do not need to change existing code
  • easy to configure: Spring-based configuration
  • has very few dependencies: Basically just XStream and logging
  • easy to integrate into your J2EE or stand alone applications: You should easily be able to slip it into your standard J2EE stack
  • supports generics for ease of usage
  • can be distributed: Terracotta can be used for distributing the space and contents therein.
  • has a Terracotta Integration Module (TIM) included.
  • can be distributed (or not) both from console applications and J2EE application servers: Geronimo, Jetty, or some other J2EE- or webapp-server, can easily contain SemiSpace
  • does not need Jini installed ... as SemiSpace do not use Jini.
  • uses getters in addition to public fields: In difference to the JavaSpaces specification
  • does not use the Entry mix-in interface: Allows any XStream-able class to be put into the space.
  • is Open Source and licensed under Apache 2
  • exposes statistics over JMX (if you use the webapp module)
  • can use a JDBC back end for long time persistence
  • supplies a simple actor pattern framework
  • a comet-based interface to a SemiSpace-enabled webapp

Maven2 repository

SemiSpace resides in in Maven repo1, and the dependency reference is as follows - for stable versions:

		<dependency>
			<groupId>org.semispace</groupId>
			<artifactId>semispace-main</artifactId>
			<version>1.2.0</version>
		</dependency>

Accessing the repository directly

In order to obtain snapshot versions, or just a direct download of the packages, add the following to your pom:

<repositories>
    <repository>
        <id>semispace</id>
        <name>Space resides in semispace-repo</name>
        <layout>default</layout>
        <url>http://www.semispace.org/maven2</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Source code and IDE integration

In order to download the source code (in the easiest manner), you can do something similar to the following:

# If you already have an eclipse project, first do: mvn eclipse:clean 
mvn -DdownloadSources=true eclipse:eclipse

Invocations are similar if you use IntelliJ, mvn idea:idea - or just open the pom file as a project.

Subversion Checkout

You can anonymously check out the project with an invocation similar to:

svn co http://www.semispace.org/svn/trunk/ space

The source code compiles with Maven-2.2.1, and should also compile with later versions of Maven.

The releases are tagged, and you can find them here: http://www.semispace.org/svn/tags

Alternatives

JavaSpace alternatives are: