<html>
<head>
<title>Sisu</title>
</head>

<style>
dt {
	display: list-item;
	list-style-position: outside;
	list-style-image:
		url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
	margin-left: 16px;
}

dd {
	margin-left: 25px;
	margin-bottom: 5px;
}
</style>

<body>

	<p>
		The Sisu project is a proposed open source project under the <a
			href="http://www.eclipse.org/projects/project_summary.php?projectid=technology">Technology
			Container Project</a>.
	</p>

	<p>
		This proposal is in the Project Proposal Phase (as defined in the
		Eclipse Development Process) and is written to declare its intent and
		scope. We solicit additional participation and input from the Eclipse
		community. Please send all feedback to the <a
			href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse
			Proposals</a> Forum.
	</p>

	<h2>Scope</h2>

	<p>The Sisu project provides a complete dependency injection
		framework with specific capabilities for bridging to OSGi.</p>

	<h2>Description</h2>

	<p>
		Sisu is a fully compliant <a href="http://www.jcp.org/en/jsr/detail?id=330">JSR330</a>
		container that supports classpath scanning, auto-binding, and dynamic
		auto-wiring. Sisu uses Guice to perform dependency injection and provides the JSR330 support, but
		removes the need to write explicit bindings in Guice modules.
		Integration with other containers via the Eclipse Extension Registry
		and the OSGi Service Registry is a goal of this project.
	</p>

	<p>Sisu also provides a replacement Plexus container that builds on
		top of the JSR330 core. Plexus is the dependency injection container
		used in Maven 2.x. We wanted a more widely used technology for
		dependency injection and worked to replace Plexus with Sisu, a
		Guice-based solution, in Maven 3.x. Plexus was also used in m2eclipse
		and Nexus, but those usages have also been replaced with Sisu.</p>

	<h2>Relationship with other Eclipse projects</h2>

	<p>The projects at Eclipse that currently employ the use of Sisu
		are m2eclipse, Tycho, and Hudson. The Xtext framework is currently
		using Guice 2.x but is a project that could also levage Sisu and could
		likely take advantage of some of the OSGi capabilities provided by the
		Sisu framework. We hope to find other projects that want to leverage
		dependency injection, in particular using the combination of JSR330
		and OSGi, and we work together to improve the framework.</p>

	<h2>Initial Contribution</h2>

	<p>The initial contribution of the Sisu will consist of the
		following parts:</p>

	<ul>
		<li><a href="https://github.com/sonatype/sisu">Sisu</a></li>

		<li>Containers</li>

		<li>JSR330 support</li>
	</ul>
	
	<p>The following components are Guice extensions that use the Guice
		SPI.</p>

	<table>
		<tr>
			<td>guice-bean-reflect</td>
			<td>Bean reflection and introspection, ClassSpace abstraction</td>
		</tr>
		<tr>
			<td>guice-bean-inject</td>
			<td>Bean property injection (based on custom Guice injection)</td>
		</tr>
		<tr>
			<td>guice-bean-scanners</td>
			<td>JSR330 classpath scanning and support for indexes</td>
		</tr>
		<tr>
			<td>guice-bean-converters</td>
			<td>Additional Guice TypeConverters (File, URL)</td>
		</tr>
		<tr>
			<td>guice-bean-locators</td>
			<td>Lookup/watch implementations across multiple injectors</td>
		</tr>
		<tr>
			<td>guice-bean-binders</td>
			<td>Auto-bind implementations, auto-wire dependencies</td>
		</tr>
		<tr>
			<td>guice-bean-containers</td>
			<td>Classic and OSGi entry-points, JUnit/TestNG support</td>
		</tr>
		<tr>
			<td>sisu-inject-bean</td>
			<td>OSGi aggregate bundle (JSR330 support)</td>
		</tr>
	</table>

	<p>Plexus support builds on top of JSR330 support. The following components are Guice extensions to allow legacy
		Plexus components to run unmodified within Guice.</p>

	<table>
		<tr>
			<td>guice-plexus-metadata</td>
			<td>Runtime form of Plexus metadata</td>
		</tr>
		<tr>
			<td>guice-plexus-scanners</td>
			<td>Plexus XML and Plexus annotation scanners</td>
		</tr>
		<tr>
			<td>guice-plexus-converters</td>
			<td>Plexus TypeConverters (Date, Bean XML)</td>
		</tr>
		<tr>
			<td>guice-plexus-locators</td>
			<td>Plexus lookup semantics / visibility filtering</td>
		</tr>
		<tr>
			<td>guice-plexus-binders</td>
			<td>Auto-bind Plexus components, auto-wire Plexus requirements</td>
		</tr>
		<tr>
			<td>guice-plexus-lifecycles</td>
			<td>Plexus lifecycle support (start, stop, dispose, etc.)</td>
		</tr>
		<tr>
			<td>guice-plexus-shim</td>
			<td>Thin facade; delegates legacy API to new container</td>
		</tr>
		<tr>
			<td>sisu-inject-plexus</td>
			<td>OSGi aggregate bundle (Plexus support)</td>
		</tr>
	</table>

	<p>Registries</p>

	<p>The following components are Sisu extensions to allow
		interaction with other containers.</p>

	<table>
		<tr>
			<td>sisu-eclipse-registry</td>
			<td>Eclipse extension bi-jection [work-in-progress]</td>
		</tr>
		<tr>
			<td>sisu-osgi-registry</td>
			<td>OSGi service bi-jection [work-in-progress]</td>
		</tr>
		<tr>
			<td>sisu-spi-registry</td>
			<td>Service Provider injection [work-in-progress]</td>
		</tr>
	</table>

	<p>
		<a href="https://github.com/sonatype/sisu-guice">Sisu Guice</a>
	</p>

	<p>This is a version of Guice that we provide a set of patches on
		top of. These patches help with various issues and conveniences that
		we have encountered that the Guice team doesn't wish to apply.</p>

	<p>
		<a href="https://github.com/sonatype/sisu-guava">Sisu Guava</a>
	</p>

	<p>This is a version of Guauva that we provide a set of
		patches on top of. These patches help with various issues and
		conveniences that we have encountered that the Guice team doesn't
		wish to apply.</p>

	<p>
		<a href="https://github.com/sonatype/sisu-maven-plugin">Sisu Maven
			Plugin</a>
	</p>

	<p>The Sisu Maven Plugin primarily provides support for the
		generation of Sisu index files. These index files cache the results of
		classpath scanning, providing faster startup times. Sisu has a Java6
		APT plugin to generate the index files at compile time, but this can’t
		help when building with a Java5 JDK or assembling a WAR out of
		existing components. In such cases the Sisu Maven Plugin can generate
		the index files as part of the build process. In the future the plugin
		may also provide support for launching/controlling Sisu applications.</p>

	<p>All these parts are fully implemented and are currently working
		together to form the basis of Maven 3.x, Nexus, Hudson, and Tycho.</p>

	<h2>Legal Issues</h2>

	<p>There are no known legal issues.</p>

	<h2>Committers</h2>

	<p>The following individuals are proposed as initial committers to
		the project:</p>

	<ul>
		<li>Stuart McCulloch, Sonatype (lead)</li>
		<li>Jason van Zyl, Sonatype (lead)</li>
		<li>Benjamin Bentmann, Sonatype</li>
		<li>Igor Fedorenko, Sonatype</li>
		<li>Alin Dreghiciu, Sonatype</li>
	</ul>

	<h2>Mentors</h2>

	<p>The following Architecture Council members will mentor this
		project:</p>

	<ul>
		<li>Mik Kersten</li>
		<li>Wayne Beaton</li>
	</ul>

	<h2>Interested Parties</h2>

	<p>The following individuals, organisations, companies and projects
		have expressed interest in this project:</p>

	<ul>
		<li>Dain Sundstrom, Proofpoint</li>
		<li>Dhanji R. Prasanna</li>
		<li>Jesse Wilson, Google</li>
		<li>Werner Keil, Eclipse UOMo</li>
		<li>Bob Lee, Square</li>
		<li>David Blevins, IBM</li>
		<li>Brian de Alwis</li>
	</ul>

	<h2>Project Scheduling</h2>

	<p>The Sisu project intends to make the first code contribution by
		August 30th, and we hope for the first builds to be available soon
		after that.</p>

	<h2>Meaning of the word sisu</h2>

	<p>
		<a href="http://en.wikipedia.org/wiki/Sisu">Sisu</a> is a Finnish term
		loosely translated into English as strength of will, determination,
		perseverance, and acting rationally in the face of adversity. However,
		the word is widely considered to lack a proper translation into any
		language. Sisu has been described as being integral to understanding
		Finnish culture. The literal meaning is equivalent in English to
		"having guts", and the word derives from sisus, which means something
		inner or interior. However sisu is defined by a long-term element in
		it; it is not momentary courage, but the ability to sustain an action
		against the odds. Deciding on a course of action and the sticking to
		that decision against repeated failures is sisu. It is similar to
		equanimity, except the forbearance of sisu has a grimmer quality of
		stress management than the latter. The noun sisu is related to the
		adjective sisukas, one having the quality of sisu.
	</p>

	<h2>Changes to this Document</h2>

	<table>
		<tr>
			<th>Date</th>
			<th>Change</th>
		</tr>
		<tr>
			<td>21-July-2011</td>
			<td>Document created</td>
		</tr>
		<tr>
			<td>27-July-2011</td>
			<td>Added several interested parties.</td>
		</tr>
	</table>

</body>
</html>
<html><body></body></html>