incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator Wiki] Update of "IsisProposal" by MohammadNour
Date Tue, 24 Aug 2010 11:37:59 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The "IsisProposal" page has been changed by MohammadNour.
http://wiki.apache.org/incubator/IsisProposal?action=diff&rev1=9&rev2=10

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

  
  Fifth, the synergies with other Apache projects will help us meet our ambition to make the
framework easier to extend.  There are two principle extension points of the framework: viewers,
and object stores.  While we do understand that it isn't a goal of Apache per se to create
a portfolio of frameworks, we hope that being part of the Apache family might encourage members
of these other communities to help us develop new viewers or object stores.  One of the sister
projects provides a customizable viewer that uses Wicket; since pre-announcing this proposal
on the incubator mailing list we've had one expression of interest to develop a new viewer
using Tapestry.
  
- The 'domain services' angle of DDD also means there are opportunities to integrate with
frameworks that aren't just about presentation or persistence; in Dan's book he sketches out
an integration with [[camel.apache.org|Camel]; there are multiple opportunities here.  We
also hope to tap into expertise to help us refactor the framework components into JSR-299
beans.  Again, we've had an expression of interest from the incubator mailing list along these
lines.  
+ The 'domain services' angle of DDD also means there are opportunities to integrate with
frameworks that aren't just about presentation or persistence; in Dan's book he sketches out
an integration with [[camel.apache.org|Camel]; there are multiple opportunities here.  We
also hope to tap into expertise to help us refactor the framework components into JSR-299
beans.  Again, we've had an expression of interest from the incubator mailing list along these
lines.
  
- Sixth, it isn't finished.  As has been pointed out to us, projects whose codebases are finished
don't make for good project candidates.  Isis, though, will probably never be truly finished.
 The hexagonal architecture, as we think of it, is about plugging in different presentation
and persistence layers.  We have several viewers that are in active development (including
the Wicket, and a RESTful-based viewer), and object stores too (BerkleyDB, MongoDB, vanilla
SQL).  But there are lots of UI frameworks we haven't even started on, either Apache's own
(eg Click, Tapestry, MyFaces, Pivot, …) or external (eg [[http://vaadin.com|Vaadin]], Portals,
Android, JavaFX, NetBeans RCP, Eclipse RCP, Eclipse RAP, FLEX, Silverlight, …).  The same
is true for persistence technologies, both internal to Apache (eg [[http://couchdb.apache.org/|CouchDB]],
[[http://openjpa.apache.org|OpenJPA]], Cassandra, Cayenne, HBase, iBATIS, ...) and external
(eg neo4j, db4o, BigTable, Amazon S3, JCloud … ).  And… there are also lots of development
tools that could be built, either IDE integrations, or into build tools such as Maven.
+ Sixth, it isn't finished.  As has been pointed out to us, projects whose codebases are finished
don't make for good project candidates.  Isis, though, will probably never be truly finished.
 The hexagonal architecture, as we think of it, is about plugging in different presentation
and persistence layers.  We have several viewers that are in active development (including
the Wicket, and a RESTful-based viewer), and object stores too (BerkleyDB, MongoDB, vanilla
SQL).  But there are lots of UI frameworks we haven't even started on, either Apache's own
(eg Click, Tapestry, [[http://myfaces.apache.org/|MyFaces]], Pivot, …) or external (eg [[http://vaadin.com|Vaadin]],
Portals, Android, JavaFX, [[http://netbeans.org|NetBeans]] RCP, Eclipse RCP, Eclipse RAP,
FLEX, Silverlight, …).  The same is true for persistence technologies, both internal to
Apache (eg [[http://couchdb.apache.org/|CouchDB]], [[http://openjpa.apache.org|OpenJPA]],
Cassandra, Cayenne, HBase, iBATIS, ...) and external (eg neo4j, db4o, [[http://labs.google.com/papers/bigtable.html|BigTable]],
Amazon S3, JCloud … ).  And… there are also lots of development tools that could be built,
either IDE integrations, or into build tools such as Maven.
  
  In summary: we hope that incubation will allow us to develop Isis into a standards-based
framework for building domain-driven apps, appealing both to its user community (who just
want to use it "out-of-the-box") and to its contributor community (who want to quickly understand
how it works and what is required to extend it).
  
  == Initial Source ==
  === 1. Combine the codebases ===
- Both the core Naked Objects framework and the sister projects reside in Subversion trees,
hosted on SourceForge:
+ Both the core Naked Objects framework and the sister projects reside in Subversion trees,
hosted on [[http://sourceforge.net|SourceForge]]:
  
   * nakedobjects.sourceforge.net
   * wicketobjects.sourceforge.net
   * restfulobjects.sourceforge.net
   * jpaobjects.sourceforge.net
-  * testedobjects.sourceforge.net  (FitNesse, Concordion)
+  * testedobjects.sourceforge.net  ([[http://fitnesse.org/|FitNesse]], [[http://www.concordion.org/|Concordion]])
   * groovyobjects.sourceforge.net
  
  These will need to be moved into a single Subversion tree, hosted on Apache infrastructure.
@@ -71, +71 @@

   * org.nakedobjects.plugins.xxx for each plugin
  
  These should move, respectively, to
+ 
   * org.apache.isis.application.*
-  * org.apache.isis.core.* and 
+  * org.apache.isis.core.* and
   * org.apache.isis.alternatives.xxx  (we expect that plugins will become [[http://docs.jboss.org/weld/reference/1.0.1-Final/en-US/html/injection.html#alternatives|alternatives]]
under JSR-299).
  
  The sister projects package names are currently:
@@ -109, +110 @@

   * v 0.4 - Scimpi web application release. Introduce dynamic view design into the DND viewer.
   * v 0.5 - Wicket viewer release, NOSQL release (using CouchDB, MongoDB and BerkeleyDB).
   * v 0.6 - SQL persistor release, CLI viewer release.
-  * v 0.7 - porting to Apache implementations: JPA persistor ported from Hibernate to Apache
OpenJPA; consider porting restful objects from RestEasy to either Apache Wink and/or Apache
CXF.
+  * v 0.7 - porting to Apache implementations: JPA persistor ported from Hibernate to Apache
OpenJPA; consider porting restful objects from [[http://jboss.org/resteasy/|RESTEasy]] to
either Apache Wink and/or Apache CXF.
   * v 0.8 - manageability: integrate with JMX for runtime management; provide profiling of
client/server and webapps (eg serialization vs domain logic vs domain services vs object store
timings)
   * v 0.9 - Portal integration: Examine and implement support for compatible portals. Under
consideration: [[http://www-01.ibm.com/software/websphere/portal/|WebSphere Portal Server]].
   * v 1.0 - contract tests for all major plugin APIs (object stores, authentication, authorization,
remoting).
  
  We also have a number of overarching goals:
+ 
   * steadily improve the code coverage
   * clean up the APIs.  Some of the code dates back to Java 1.1 (at one point in time the
code was cross-compiled into J# code); so there is opportunity to use more generics and remove
use of arrays
   * steadily reduce the amount of proprietary code, and the code size in general; use newer
libraries such as google-collections more extensively.
@@ -124, +126 @@

  
  The main committers for the codebases to date have been Robert Matthews and Dan Haywood.
 Both Rob and Dan work on the NOF core, and each also works independently (reflecting their
individual interests) on their respective plugins.  Much work was done on the core by both
Rob and Dan leading up to the release of NOF 4.0.0, and we are now reasonably happy with it.
 Much work remains (see above) in the area of plugins/alternatives; there is work to complete
and improve the existing ones and many opportunities to develop new ones.
  
- We readily support users on the NO forum (on SourceForge) and also on the forum for Dan's
book (on pragprog.com).  As a consequence of Dan's book, a GWT-based viewer (non open source)
has been developed separately, and we have provided support for this (and hope it will be
contributed back to the framework in the future).
+ We readily support users on the NO forum (on [[http://sourceforge.net/projects/nakedobjects/forums/|SourceForge]])
and also on the forum for Dan's book (on pragprog.com).  As a consequence of Dan's book, a
GWT-based viewer (non open source) has been developed separately, and we have provided support
for this (and hope it will be contributed back to the framework in the future).
  
  Over the years we have received some patches for the framework, which we have incorporated,
but not many.  Part of the reason for this, we believe, is that until NOF 4.0.0 it had a monolithic
architecture, making it difficult for would-be contributors to provide small patches.  We
think that NOF 4.0.0 improves in this area, but a move to JSR-299 would be a major step forward
to help bring up participation.
  
@@ -132, +134 @@

  We recognize that the lack of a large (or at least, vocal) user community is the weakest
part of our proposal.  That said, we do have a steady trickle of queries on both the Naked
Objects forum, and on the forum for Dan's book.  Getting NOF 4.0.0 released has rekindled
interest in at least one long-time user who is helping Rob to test one of the object store
plugins, while we've also picked up commitment to help with this Apache proposal from a couple
of people via the book forum.
  
  To help build up our community we intend to:
+ 
   * ensure that the website and documentation is first-rate (see initial goals, above)
   * write a series of articles for leading web journals, eg theserverside.com, javaworld.com,
artima.com.  We would want to point out that we were in the Apache Incubator, and actively
looking for help
   * submit sessions to Devoxx and similar, Java-focused, conferences; again we'd trade on
the Apache Incubator status.

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message