(+1) Binding.  I guess this means I had better get my article finished up!  

-----Original Message-----
From: Howard Lewis Ship [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, September 21, 2004 10:22 AM
To: [email protected]
Subject: [VOTE] Release HiveMind 1.0 (final)

Self explanatory: HiveMind 1.0 is ready to go, so we can focus on 1.1.  

I've worked on a comprehensive release notice for 1.0 ... the kind of
things that will be used on TSS.com to announce HiveMind (and will,
for many readers, be the first they've read of HiveMind).

- - - - - - - - - - - - - - - - - - 

The Jakarta HiveMind team is proud to announce HiveMind 1.0 final release.  
HiveMind is a services and configuration microkernel; an
infrastructure for all types of Java applications. HiveMInd encourages
the use of
best practices, as well as encouring the aggresive refactoring seen in
Test Driven Development.

<p>
A HiveMind application stack consists of a <b>Registry</b> of services
and configurations:

<p>
<img src="http://jakarta.apache.org/hivemind/images/FrameworkStack.png"/>

<p>
The top zone, "Application", is your application, responsible for
creating the Registry and obtaining services from it. This may be a
<a href="http://jakarta.apache.org/tapestry/";>Tapestry</a>
application, or any kind of servlet-based application, a command line
tool, or
a GUI built on Swing or AWT ... HiveMind doesn't know or care about
the application.

<p>
Each service (represented as a yellow circle) is an interface combined
with a Plain Old Java Object (POJO) implementation of that interface.
These services are containers of business logic, in much the way that
stateless session beans are used in a typical J2EE application. In
many cases,
the few services exposed to the application are facades around larger
networks of services.
HiveMind is responsible for thread-safe just-in-time creation of your
services. 
In addition, HiveMind uses the dependency injection pattern to connect
your services together.

<p>Collaborating services are represented as objects (implementing an
interface) <i>injected</i> into a service implementation. A service
implementation never has to know anything about the lifecycle of a
collaborating service, it simply knows that an object with the right
interface is provided. This greatly simplifies  unit testing, because
your unit tests can easily inject <em>mock</em> implementations of the
other services.


<p>
HiveMind mates its rich services model to an equally rich configurations
model. 
HiveMind configurations (the blue boxes in the diagram) are containers
of XML ... think of them as a kind of generic deployment descriptor
for any kind of data needed by your application. You define the
configuration point in terms of a simple schema (elements and
attributes)
and rules to convert contributed XML into Java objects; your services
see the end result:
a list of application-specific objects ready to be used by the
service.  You get the benefits of flexible XML configuration without
the hassles!

<p>
Combining the services model with the configurations model is
extremely effective; it allows significant data-driven solutions to be
assembled easily. Because
configurations can easily reference services, it becomes simple in
HiveMind to build all kinds of complex patterns: pipelines, factories,
strategies ... all of the
best design patterns become practical, even easy.

<p>
HiveMind also includes a built-in documentation facility, <a
href="http://jakarta.apache.org/hivemind/hivedocs/index.html";>HiveDoc</a>.
HiveDoc is a hypertext representation of all the services,
configurations and contributions in a Registry, allowing you to easily
see
exactly how your application is structured.

<p>
HiveMind interoperates well with other frameworks; it is built
specifically with J2EE in mind (and explicitly addresses the thread
safety and class loader
issues implicit in using J2EE), and has explicit interoperability with
<a href="http://www.springframework.org"/>Spring</a>.

<p>
HiveMind is based on the same four principals that have made <a
href="http://jakarta.apache.org/tapestry/";>Tapestry</a> so successful:
<b>Simplicity</b>,

<b>Consistency</b>, <b>Efficiency</b> and <b>Feedback</b>.

<p>
HiveMind is available under the terms of the <a
href="http://apache.org/licenses/LICENSE-2.0.html";>Apache Software
License 2.0</a>.

<p>
HiveMind 1.0 has been in development for nearly a year and a half. The
HiveMind team consists of
James Carman,
Erik Hatcher,
Harish Krishnaswamy,
Howard Lewis Ship
and
Knut Wannheden.

<p>
HiveMind's home page contains extensive documentation and examples:

<p>
<a
href="http://jakarta.apache.org/hivemind/";>http://jakarta.apache.org/hivemin
d/</a>

<p>
HiveMind can be downloaded from Apache's network of mirror servers:


<!-- THE ANCHOR WILL LIKELY CHANGE TO #hivemind-stable -->

<p>
<a
href="http://jakarta.apache.org/site/binindex.cgi#hivemind-current";>http://j
akarta.apache.org/site/binindex.cgi#hivemind-current</a>



-- 
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to