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.4.0.

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

Important:The source code has now moved to github: https://github.com/nostra/semispace

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)
  • supplies a simple actor pattern framework
  • a cometd-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.3.1</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: