You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2011/12/13 01:07:17 UTC
svn commit: r1213506 - in /incubator/isis/trunk/framework: ./ src/site/
src/site/apt/ src/site/apt/use-cases/ src/site/apt/usecases/
src/site/resources/images/homepage/ viewer/json/src/site/apt/
viewer/src/site/ viewer/src/site/apt/
Author: danhaywood
Date: Tue Dec 13 00:07:16 2011
New Revision: 1213506
URL: http://svn.apache.org/viewvc?rev=1213506&view=rev
Log:
ISIS-107: updating site (use case blurb)
Added:
incubator/isis/trunk/framework/src/site/apt/quick-start.apt
- copied, changed from r1212828, incubator/isis/trunk/framework/src/site/apt/where-to-start.apt
incubator/isis/trunk/framework/src/site/apt/use-cases/
- copied from r1212828, incubator/isis/trunk/framework/src/site/apt/usecases/
incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-own-framework.apt
- copied, changed from r1212828, incubator/isis/trunk/framework/src/site/apt/usecases/deploy-on-own-framework.apt
Removed:
incubator/isis/trunk/framework/src/site/apt/quickstart-app.apt
incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-on-own-framework.apt
incubator/isis/trunk/framework/src/site/apt/usecases/
incubator/isis/trunk/framework/src/site/apt/where-to-start.apt
Modified:
incubator/isis/trunk/framework/msdf.sh
incubator/isis/trunk/framework/src/site/apt/index.apt
incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-rest.apt
incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-webapp.apt
incubator/isis/trunk/framework/src/site/apt/use-cases/develop.apt
incubator/isis/trunk/framework/src/site/apt/use-cases/specify-and-test.apt
incubator/isis/trunk/framework/src/site/apt/who-we-are.apt
incubator/isis/trunk/framework/src/site/resources/images/homepage/IsisUseCases.png.map
incubator/isis/trunk/framework/src/site/site.xml
incubator/isis/trunk/framework/viewer/json/src/site/apt/index.apt
incubator/isis/trunk/framework/viewer/src/site/apt/index.apt
incubator/isis/trunk/framework/viewer/src/site/site.xml
Modified: incubator/isis/trunk/framework/msdf.sh
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/msdf.sh?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/msdf.sh (original)
+++ incubator/isis/trunk/framework/msdf.sh Tue Dec 13 00:07:16 2011
@@ -16,7 +16,7 @@
# under the License.
echo mvn site-deploy -D modules=site -D deploy=local -D site=full $*
-# mvn site-deploy -D modules=site -D deploy=local -D site=full $*
+ mvn site-deploy -D modules=site -D deploy=local -D site=full $*
root=`pwd`
for a in `cat modules | grep -v ^# | grep ^.*[:].*$`
do
@@ -25,8 +25,8 @@ do
if [ "$n" ]; then
cd $d
pwd
- echo mvn clean site-deploy -D modules=site -D deploy=local -D patch=$n $*
- mvn3 -T 4 clean site-deploy -D modules=site -D deploy=local -D patch=$n $*
+ echo mvn -T 4 clean site-deploy -D modules=site -D deploy=local -D patch=$n $*
+ mvn -T 4 clean site-deploy -D modules=site -D deploy=local -D patch=$n $*
cd $root
fi
done
Modified: incubator/isis/trunk/framework/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/index.apt?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/index.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/index.apt Tue Dec 13 00:07:16 2011
@@ -34,16 +34,17 @@ Isis in action
auto-generated webapp, running against an in-memory object store. To use, you'll need to
register an account (the credentials are stored only in memory and are reset nightly).
- The webapp has full documentation to guide you further, and also links to the
- {{{./#}application's source}} so you can see how little code you need to write in Isis.
+ The webapp has full documentation to guide you further. It also links to the
+ {{{http://mmyco.co.uk:8180/isis-onlinedemo/doc/xref/index.html}application's source}}
+ so you can see how little code you need to write to get an application up and running with Isis.
Getting Started
- Isis is built with Maven and has a {{{./where-to-start.html}quickstart archetype}}
+ Isis is built with Maven and has a {{{./quick-start.html}quickstart archetype}}
to get you going quickly. This will generate a simple one-class domain model, configured
to run like the online demo (but with no security).
- After that, there are plenty of resources linked from the site menu on the left-hand side.
+ After that, please consult the various resources linked from the site menu on the left-hand side.
Disclaimer
Copied: incubator/isis/trunk/framework/src/site/apt/quick-start.apt (from r1212828, incubator/isis/trunk/framework/src/site/apt/where-to-start.apt)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/quick-start.apt?p2=incubator/isis/trunk/framework/src/site/apt/quick-start.apt&p1=incubator/isis/trunk/framework/src/site/apt/where-to-start.apt&r1=1212828&r2=1213506&rev=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/where-to-start.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/quick-start.apt Tue Dec 13 00:07:16 2011
@@ -19,11 +19,11 @@
Where to Start?
- There's quite a lot to <Apache Isis>, with lots of optional components.
- But you can get up and working quickly just by running our quickstart
- archetype. To use it, first create a new directory, and 'cd' into
- that directory. Then run the following command:
+ The quickest way to get started with <Apache Isis> is to run the
+ quickstart archetype.
+ Create a new directory, and 'cd' into that directory. Then run the
+ following command:
+------------------------------------------------------------
mvn archetype:generate \
@@ -31,24 +31,262 @@ mvn archetype:generate \
-D archetypeArtifactId=quickstart-archetype \
-D groupId=com.mycompany \
-D artifactId=myapp
++------------------------------------------------------------
+
+ where:
+
+ * groupId represents your own organization, and
+
+ * artifactId is a unique identifier for this app within your organization.
+
+ []
+
+ You'll then be prompted for some further properties (which you can generally leave as the default):
+
+ * enter a version, eg 1.0-SNAPSHOT
+
+ * enter a package
+
+ * Confirm the entry
+
+ []
+
+ The archetype generation process will then run; it only takes a few seconds.
+
+ Switch into the root directory of your newly generated app:
+
++------------------------------------------------------------
+cd myapp
++------------------------------------------------------------
+
+ where 'myapp' is the artifactId entered above.
+
+
+App Structure
+
+ The generated app is a very simple application consisting of a single domain
+ object for tracking to-do items. The intention is not to showcase all of
+ Isis' capabilities; rather it is to allow you to very easily modify the
+ generated application (eg rename "ToDoItem" to "Customer") without having
+ to waste time deleting lots of generated code.
+
+*----------------------+---------------------------------------------------------+
+| Module | Description |
+*----------------------+---------------------------------------------------------+
+| myapp | The parent (aggregator) module |
+*----------------------+---------------------------------------------------------+
+| myapp-dom | The domain object model, consisting of ToDoItem and |
+| | ToDoItemRepository interface. |
+*----------------------+---------------------------------------------------------+
+| myapp-fixture | Domain object fixtures used for initializing the system |
+| | when being demo'ed or for unit testing. |
+*----------------------+---------------------------------------------------------+
+| myapp-objstore-dflt | Implementation of ToDoItemRepository, for the default |
+| | (in-memory) object store. |
+*----------------------+---------------------------------------------------------+
+| myapp-webapp | Run as a webapp (from web.xml) using either the |
+| | {{{./viewer/html/index.html}HTML viewer}} or the |
+| | {{{./viewer/json/index.html}JSON (RESTful) viewer}} |
+*----------------------+---------------------------------------------------------+
+| myapp-tests-bdd | Run domain object tests using Isis' |
+| | {{{./viewer/bdd/index.html}integration}} |
+| | with the {{{http://concordion.org}Concordion}} BDD |
+| | framework. |
+*----------------------+---------------------------------------------------------+
+| myapp-tests-junit | Run domain object tests using Isis' |
+| | {{{./viewer/junit/index.html}custom test runner}} |
+| | for {{{http://junit.org}JUnit}} runner |
+*----------------------+---------------------------------------------------------+
+
+ The most significant omission with the generated application is that it is
+ configured only to support the default in-memory object store. What this
+ means is that any changes you make to objects will not be persisted between
+ runs. If you'd like to use other viewers and object stores, ask for help on the
+ {{{mailto:isis-users@incubator.apache.org}isis-users}} mailing list.
+
+Compiling the App
+
+ Start off by using maven to compile the app:
+
++------------------------------------------------------------
+mvn clean install
++------------------------------------------------------------
+
+ All being well, the application should compile. This may take a little
+ while for the first time as modules are brought down from the remote
+ repo.
+
+Running the webapp
+
+ Now that you've built the application, it's time to run it. One way to do this is
+ with Maven's Jetty plugin:
+
++------------------------------------------------------------
+cd webapp
+mvn jetty:run
++------------------------------------------------------------
+
+ Alternatively you can run <Isis> as a self-hosted WAR:
+
++------------------------------------------------------------
+cd webapp
+java -jar target/myapp-webapp-1.0.0-SNAPSHOT-jetty-console.war
++------------------------------------------------------------
+
+ This is great if you want to distribute your app as a prototype.
+
+ The webapp is configured to support two of Isis' viewers, the {{{./viewer/html/index.html}HTML viewer}}
+ and the {{{./viewer/json/index.html}JSON (RESTful) viewer}}.
+
+Accessing the webapp using the HTML viewer
+
+ The {{{./viewer/html/index.html}HTML viewer}} provides a basic, non-customizable web view
+ of the domain model. It's accessible from {{{http://localhost:8080/htmlviewer}http://localhost:8080/htmlviewer}}.
+
+ Security (authentication) is configurable within Isis, but is turned off
+ within the application generated by the archetype. You should therefore be taken to the home
+ page (logged in as the default user, "sven").
+
+Accessing the JSON (Restful) viewer
+
+ The application can also be accessed using the {{{./viewer/json/index.html}JSON (RESTful) viewer}}.
+ This exposes the domain model as a set of resources, in a JSON representation. It's accessible from
+ the root of the webapp, {{{http://localhost:8080/}http://localhost:8080/}}.
+
+ Whereas the HTML viewer is intended for use by humans, the JSON viewer is intended to be consumed
+ by applications. Even so, you can access the JSON viewer using a web browser. The Chrome and Firefox
+ browsers have plugins such as JSONView and REST Console that let you exercise the REST API directly
+ from a browser.
+
+ []
+
+Running the app's JUnit tests
+
+ <Isis> provides the means to test domain object logic using a
+ {{{./viewer/junit/index.html}custom runner}} for {{{http://junit.org}JUnit}}.
+
+ To run the tests, use:
+------------------------------------------------------------
+cd tests-junit
+mvn test
++------------------------------------------------------------
+
+
+Running the app's BDD (Concordion) tests
+
+ <Isis> also provides the means to test domain object logic using an
+ {{{./viewer/bdd/index.html}integration}} with the
+ {{{http://concordion.org}Concordion}} BDD framework.
+
+ Concordion tests are written as XHTML; the Concordion framework then uses
+ annotations within the XHTML to call into (what Concordion calls) "fixture"
+ code, written in Java. The tests can be found in
+ <<<src/test/resources/viewer/bdd/stories>>> (in the tests-bdd module).
+
+ Normally the developer would need to write the fixtures called by Concordion.
+ The Isis integration however provides these fixtures already, so using
+ BDD testing in Concordion/Isis amounts to annotating the XHTML to call the
+ pre-defined fixtures (eg to invoke an action or check the value of a
+ property).
+
+ To run the tests, use:
+
++------------------------------------------------------------
+cd tests-bdd
+mvn test
++------------------------------------------------------------
+
+ Concordion itself integrates with JUnit, so as you can see the tests
+ are run in the usual way.
+
+ []
+
+ As a byproduct of running the tests, Concordion generates output HTML which
+ are marked up versions of the the original scenarios. The idea is to make it easy
+ for a (non-technical) stakeholder to view the outcome of the tests.
+ The location of this output HTML should be printed to the console; the default
+ location is <<</tmp/concordion/viewer/bdd/stories>>>.
+
+
+Import into an IDE
+
+ You can use any IDE that supports Maven; the <Isis> committers tend to use
+ Eclipse 3.7 (with built-in Maven support through the m2e feature) or the
+ earlier {{{http://m2eclipse.sonatype.org}m2eclipse}} plugin.
+ NetBeans and IntelliJ are equally as good, though, at supporting Maven.
+
+ In Eclipse, use File > Import > Maven > Existing Maven Project, and navigate
+ to the root (myapp) directory.
+
+
+Exploring the App
+
+ As already noted, the application consists of a very simple domain model
+ consisting for a task manager app, consisting of a single domain object,
+ <<<ToDoItem>>>, and a single repository, <<<ToDoItems>>>.
+
+ * open up <<<ToDoItem>>> and <<<ToDoItems>>> (in the dom module, under src/main/java)
+
+ * open up <<<ToDoItemsFixture>>> (in the fixture module)
+
+ This is used to initialize the in-memory object store between runs.
+
+ * open up <<<ToDoItemRepositoryDefault>>> (in the objstore-dflt module)
+
+ This is an implementation of the repository that delegates to the in-memory
+ object store
+
+ * open up the <<<isis.properties>>> file, used to bootstrap Isis.
+
+ You'll find this file either in the <<<WEB-INF>>> directory in the webapp module.
+
+ The most important item in this file is the <isis.services> key, which points
+ to the repository implementation(s).
- The {{{./quickstart-app.html}quickstart app}} page has more detail
- of the generated application and how to run it.
+ []
+
+Running the app from within Eclipse (3.7)
-Documentation
+ To run each of the viewers in Eclipse:
+
+ * to run the webapp, go to the <<<webapp/ide/eclipse/launch>>> directory and then use Run As > quickstart_webapp.launch.
+
+ * to run the JUnit tests, go to the tests-junit module and use Eclipse's built-in JUnit support to run the tests
+
+ * to run the BDD (Concordion) tests, go to the tests-bdd module and use Eclipse's built-in JUnit support to run the tests
+
+ []
- Over and above running the archetype, you'll probably want to read some
- documentation to figure out what Isis offers. To keep things manageable,
- all Isis documentation about these components is scoped closest along with
- that component. That means that any given documentation is likely to have
- just the information you
- require to use or configure that component (it also makes it easier for us
- to maintain those documents).
+ The archetype currently does not provide equivalent configuration for other IDEs.
+ However, if you open the Eclipse <<<.launch>>> file
+ you'll see that all we are doing is running <<<org.apache.isis.Isis>>> with some
+ command line arguments, so hopefully this is easy enough to reproduce in
+ other IDEs.
- On the other hand, it can be difficult to know exactly where to go in the
- first place... hence these notes.
+ Alternatively, you can use those IDE's in-built support for Maven and have them execute the same Maven goals
+ (as documented above) that are used from the command-line.
+
+ []
+
+
+Where Next?
+
+ Over and above running the archetype, you should decide how you want to use Isis:
+
+ * to {{{./use-cases/develop.html}develop prototypes}}
+
+ * to {{{./use-cases/specify-and-test.html}develop tested domain models...}}
+
+ * to {{{./use-cases/deploy-own-framework.html}... to deploy on your own framework}}
+
+ * to {{{./use-cases/deploy-as-rest.html}... to deploy as a RESTful web service}}
+
+ * to {{{./use-cases/deploy-as-webapp.html}... to deploy as a webapp}}
+
+ []
+
+ To guide you, you'll want to read some documentation to figure out what Isis offers.
<<Your first port of call should be the {{{./applib/docbkx/pdf/isis-applib.pdf}applib}}
documentation>>. This describes how to go about writing a domain application following
@@ -60,17 +298,23 @@ Documentation
Once you have an understanding of those APIs, you'll probably want to delve into individual
implementations of the APIs, such as the programming model, security, viewers or the
- runtime (persistence). You'll find documentation for all of these components {{{./documentation.html}here}}.
+ runtime (persistence). To keep things manageable, all <Isis> documentation about these
+ components is scoped closest along with that component. That means that any given documentation
+ is likely to have just the information you require to use or configure that component
+ (it also makes it easier for us to maintain those documents).
-What Else is There?
+ You'll find documentation for all of these components {{{./documentation.html}here}}.
+
+
+What else is there?
To speed up your coding we provide some templates and other help for IDEs;
- check out the {{{./ide-support.html}IDE support}} page.
+ check out the {{{./ide-support.html}IDE support}} page. You should also check out
+ the {{{./icons.html}icons}} and the {{{./IsisCheatSheet.pdf}cheat sheet}}.
In the future, we also hope to provide a selection of off-the-shelf domain
services and value types integrations for you to reuse; these will be hosted
- within a "domain" library. (Until then, why
- not contribute some of your own ? ;-).
+ within a "domain" library. (Until then, why not contribute some of your own ? ;-).
[]
Modified: incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-rest.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-rest.apt?rev=1213506&r1=1212828&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-rest.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-rest.apt Tue Dec 13 00:07:16 2011
@@ -17,4 +17,41 @@
Deploy <Isis> as a RESTful web service
+ {{{http://en.wikipedia.org/wiki/Representational_state_transfer}REST}}
+ (Representation State Transfer) is an architectural style for building
+ highly scalable distributed systems, using the same principles as the
+ World Wide Web. Many commercial web APIs (twitter, facebook, Amazon)
+ are implemented as either pure REST APIs or some approximation therein.
+
+ The {{{http://restfulobjects.org}Restful Objects}} specification defines
+ a means by a domain object model can be exposed as RESTful resources
+ using JSON representations over HTTP. Isis {{{../viewer/json/index.html}JSON viewer}}
+ is an implementation of that spec, making any Isis domain object automatically
+ available via REST.
+
+ There are two main use cases for deploying Isis as a RESTful web service are:
+
+ * to allow a custom UI to be built against the RESTful API
+
+ For example, using Javascript/JQuery, or an RIA technology such as Flex, JavaFX, Silverlight
+
+ * to enable integration between systems
+
+ REST is designed to be machine-readable, and so is an excellent choice for synchronous
+ data interchange scenarios. It can also be of use for system migrations (by wrapping
+ old and new systems in REST, and using HTTP 301 redirects back to the client).
+
+* {Isis persistence}
+
+ The easiest way to deploy Isis as a RESTful web service is using Isis' own persistence
+ mechanisms. These are provided by the {{{../runtimes/dflt/index.html}default runtime}}, and
+ offer in turn a number of {{{../runtimes/dflt/objectstores/index.html}object stores}}.
+
+* {Custom persistence}
+
+ If Isis does not integrate with the persistence mechanism that you require, then you are
+ free to implement your own persistence layer.
+
+ This can be done by using the {{{../runtimes/embedded/index.html}embedded runtime}}, and
+ implementing the {{{../runtimes/embedded/xref/org/apache/isis/runtimes/embedded/EmbeddedContext.html}EmbeddedContext}} API.
\ No newline at end of file
Modified: incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-webapp.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-webapp.apt?rev=1213506&r1=1212828&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-webapp.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-as-webapp.apt Tue Dec 13 00:07:16 2011
@@ -17,8 +17,33 @@
Deploy <Isis> as an auto-generated webapp
- Using the html-viewer.
+ One of the original motivations for Isis itself was to be able
+ automatically generate a user interface for a domain object model.
- There are other viewers too.
+ The {{{../viewer/html/index.html}HTML viewer}} provides a straight-forward
+ webapp for a domain model, but is one that nonetheless provides access and honours all of the business
+ logic that may be encoded within those domain objects.
+
+ The viewer makes minimal use of Javascript, as it was originally written
+ to comply with governmental standards that forbid the use of such. The
+ viewer supports customization only to the extent that its CSS can be changed.
+
+* {Isis persistence}
+
+ The easiest way to deploy Isis with the HTML viewer is using Isis' own persistence
+ mechanisms. These are provided by the {{{../runtimes/dflt/index.html}default runtime}}, and
+ offer in turn a number of {{{../runtimes/dflt/objectstores/index.html}object stores}}.
+
+* {Custom persistence}
-
\ No newline at end of file
+ If Isis does not integrate with the persistence mechanism that you require, then you are
+ free to implement your own persistence layer.
+
+ This can be done by using the {{{../runtimes/embedded/index.html}embedded runtime}}, and
+ implementing the {{{../runtimes/embedded/xref/org/apache/isis/runtimes/embedded/EmbeddedContext.html}EmbeddedContext}} API.
+
+* {Other Viewers}
+
+ It should be noted that Isis does have a number of other (human-usable)
+ viewers. See {{{../viewer/index.html#Other_viewers}other viewers}} for details.
+
Copied: incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-own-framework.apt (from r1212828, incubator/isis/trunk/framework/src/site/apt/usecases/deploy-on-own-framework.apt)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-own-framework.apt?p2=incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-own-framework.apt&p1=incubator/isis/trunk/framework/src/site/apt/usecases/deploy-on-own-framework.apt&r1=1212828&r2=1213506&rev=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/usecases/deploy-on-own-framework.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/use-cases/deploy-own-framework.apt Tue Dec 13 00:07:16 2011
@@ -17,4 +17,54 @@
Deploy <Isis> domain model on your own Framework
+ The {{{./applib/index.html}programming model}} defined by Isis deliberately minimizes
+ the dependencies on the rest of the framework. In fact, the only hard dependency
+ that the domain model classes have on Isis is through the <<<org.apache.isis.applib>>>
+ classes, mostly to pick up annotations such as {{{../applib/xref/org/apache/isis/applib/annotations/Disabled.html}@Disabled}}.
+ The idea is to make it easy to be able to write take a domain object {{{./develop.html}prototyped}}
+ and/or {{{./specify-and-test.html}tested}} using Isis, but to deploy on some
+ other framework's runtime.
+
+ If you are interested in taking this approach, note that there is one important
+ interface that must be implemented by your own framework, namely
+ {{{../applib/xref/org/apache/isis/applib/DomainObjectContainer.html}DomainObjectContainer}}.
+ This interface represents the one-and-only "touchpoint" between the domain objects and the runtime.
+ If you inspect the methods then you'll see it covers such concerns as persistence, and of
+ raising warnings or errors.
+
+ Isis' own runtime injects an (implementation of this) interface into each and every domain
+ object. You will likely need to do something similar within your own framework, (or come up with an equivalent
+ mechanism, eg Service Locator pattern).
+
+ Note also that although Isis does define a convenience superclass <<<AbstractDomainObject>>>,
+ isn't necessary for domain objects to inherit from it. In fact, the main purpose of this superclass
+ is to provide delegate methods to the injected <<<DomainObjectContainer>>>.
+
+* {Custom UI}
+
+ One of the main reasons for going down the custom framework route is to have full control over the
+ user interface, but it does beg the question: why bother with Isis at all?
+
+ The answer is that using Isis to write your domain objects will:
+
+ * allow you to build a better/richer/deeper domain model more quickly.
+
+ The key to better domain models is stakeholder feedback. You can use Isis to spike out prototypes, and
+ then feedback the results of the insights gained from those prototypes into more formal development
+ in your actual runtime framework.
+
+ * enforce proper architectural layering.
+
+ Isis only lets business logic to be written in domain objects. Using Isis for your domain model
+ helps prevent business logic creeping into adjacent layers.
+
+* {Custom persistence}
+
+ Another reason for choosing the custom framework is full control over persistence. That is, you can
+ use whichever persistence technology you prefer, not just those that have been integrated by Isis.
+
+ That said, it is also possible to deploy Isis either as a {{{./deploy-as-rest.html}REST webservice}} or
+ {{{./deploy-as-webapp.html}as a webapp}} but, while using a custom persistence mechanism. So if custom
+ persistence is your only reason for going down the custom framework route, consider these
+ other deployment options also.
\ No newline at end of file
Modified: incubator/isis/trunk/framework/src/site/apt/use-cases/develop.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/use-cases/develop.apt?rev=1213506&r1=1212828&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/use-cases/develop.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/use-cases/develop.apt Tue Dec 13 00:07:16 2011
@@ -17,3 +17,45 @@
Use <Isis> for Prototyping and Development
+ Isis is great for rapid prototyping, because all you need to write
+ in order to get an application up-and-running is the domain model
+ objects.
+
+ By focussing just on the domain, you'll also find that you start to
+ develop a <ubiquitous language> - a set of terms and concepts that the
+ entire team (business and technologists alike) have a shared
+ understanding.
+
+ Once you've sketched out your domain model, you can then either
+ start-over using your preferred framework, or you might choose to
+ take the domain model forward into more formal {{{./specify-and-test.html}specification
+ and testing}}. Either way, a {{{./deploy-own-framework.html}number of}} deployment
+ {{{./deploy-as-rest.html}options}} are {{{./deploy-as-webapp.html}available}}.
+
+* {Isis programming model}
+
+ Isis defines a set of programming conventions - a programming model - from
+ which it infers the structure of your domain objects.
+
+ This programming model is essentially POJOs, supplemented with a number of
+ annotations and method naming conventions. It is fully documented in the
+ Isis application library, or {{{./applib/index.html}applib}} for short. Most of the
+ important conventions are documented in the {{{./IsisCheatSheet.pdf}cheat sheet}}.
+
+* {Custom extensions}
+
+ As well as the conventions that Isis defines, you are free to also define your
+ own programming conventions. Each aspect - or facet - of the programming model is
+ defined through the {{{./TODO}FacetFactory}}} API, and the set of active <<<FacetFactory>>>s
+ is specified through the {{{./TODO}ProgrammingModel}}} API.
+
+ We expect that most developers won't bother to customise the programming model,
+ and even if you do, you'll probably just want to tweak Isis' defaults, rather than
+ replace them wholesale. It's good to know you have the option though. One reason
+ you might want to do this is to write domain models that are compatible with some
+ other framework.
+
+ Isis customisability is also the basis by which the framework supports other programming
+ languages. For example, the {{{./progmodel/groovy/index.html}Groovy}} progmodel allows
+ you to write your domain objects using the {{{http://groovy.codehaus.org}Groovy}} programming language.
+
\ No newline at end of file
Modified: incubator/isis/trunk/framework/src/site/apt/use-cases/specify-and-test.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/use-cases/specify-and-test.apt?rev=1213506&r1=1212828&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/use-cases/specify-and-test.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/use-cases/specify-and-test.apt Tue Dec 13 00:07:16 2011
@@ -17,14 +17,82 @@
Specify and test your <Isis> domain model
- If you are using Isis for more than just prototyping, then you'll want
- to decide on how to test your domain model.
+ If you decide to use <Isis> for more than just {{{./develop.html}prototyping}}},
+ then you'll probably want to formally test your domain model.
+
+ <Isis> integrates with two testing frameworks to help you.
+
+* {JUnit integration}
+
+ <Isis> provides a JUnit test runner in order to integrate with {{{http://junit.org}JUnit}}.
+ This is provided through its {{{./viewer/junit/index.html}JUnit viewer}}.
+
+ For example, the following (based on the quickstart archetype) tests
+ that a todo-item marked as complete cannot be marked as done once more.
+
++-----------------------------------------------------------------
+@RunWith(IsisTestRunner.class)
+public class ToDoItemTest {
+
+ private ToDoItem toDoItem;
+
+ @Before
+ public void setUp() {
+ firstItem = wrapped(toDoItems.notYetDone().get(0));
+ }
+
+ @Test
+ public void cannotMarkAsCompleteTwice() throws Exception {
+ toDoItem.markAsComplete();
+ try {
+ toDoItem.markAsComplete();
+ fail("Should not been disabled");
+ } catch (DisabledException e) {
+ assertThat(e.getMessage(), is("Already done"));
+ }
+ }
+
+ ...
+}
++-----------------------------------------------------------------
- ... dependency injection
+ The JUnit integration works by wrapping each domain object pojo in a proxy
+ object. This proxy object is responsible for ensuring that the
+ underlying pojo is interacted with in the same way as it would were being
+ viewed in a regular Isis viewer.
- ... integrations with JUnit
+ For example, the call to <<<markAsComplete()>>> action is transparently
+ prefaced by a check to ensure that the action is not disabled. If the
+ action is disabled, then the proxy throws the DisabledException.
- ... integration with Concordion.
- nb: has a dependency on XOM.
+ It might seem a little odd - given that there is no UI - to call Isis' JUnit
+ integration a "viewer". However, it does simulate what a viewer does, and
+ fits into the same architectural layer as the other viewers.
+
+* {BDD integration}
+
+ <Isis> also provides an integration with {{{http://concordion.org}Concordion}},
+ which is a BDD (behaviour-driven design) framework.
+
+ The idea behind BDD is to allow a business stakeholder to describe the desired
+ behaviour of the system in non-technical terms, and then to gain feedback )as to
+ whether that behaviour has been implemented) in the similar way.
+
+ Concordion implementation of this idea is to capture the specification using
+ XHTML. This XHTML is then annotated by the developer inline with corresponding Java methods.
+ Concordion's own JUnit test runner parses the XHTML in order to call these methods, which
+ in turn interact with the system-under-test. Running the test also generates a copy of the
+ original XHTML, this time annotated to indicate the result (success or failure)
+ of the test.
+
+ Isis' integration with Concordion is to provide a pre-defined set of Java methods
+ in a test case, by which the domain model can be interacted in a regular way. For example,
+ using these methods the analyst can assert on the results of invoking an action, or, indeed,
+ could assert that an action is disabled.
+
+ One caveat with Isis' Concordion integration: Concordion itself uses {{{http://xom.nu}XOM}},
+ an XML library which is LGPL licensed. LGPL is incompatible with the Apache license, which
+ means we are unable to explicitly include XOM as a transient dependency. You are free to use
+ the Concordion integration, but you should be aware that doing so will require you to
+ explicitly configure the use of this non-Apache dependency.
-
\ No newline at end of file
Modified: incubator/isis/trunk/framework/src/site/apt/who-we-are.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/apt/who-we-are.apt?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/apt/who-we-are.apt (original)
+++ incubator/isis/trunk/framework/src/site/apt/who-we-are.apt Tue Dec 13 00:07:16 2011
@@ -24,17 +24,17 @@ Team
|<<Who>> |<<Role>> |<<Contributions>> |
*----------------------+-----------------------+----------------------------------------------------------------------+
|Dan Haywood |PPMC, Committer |Core, Default runtime, JSR-299 runtime, Wicket viewer, |
-| | |Restful viewer, BDD viewer, JUnit viewer, JPA objectstore |
+| | |Json viewer, BDD viewer, JUnit viewer, JPA objectstore |
| | |Wrapper progmodel, Groovy progmodel, site, docs, archetype |
*----------------------+-----------------------+----------------------------------------------------------------------+
-|Robert Matthews |PPMC, Committer |Core, default runtime, DnD viewer, HTML viewer, Scimpi viewer, |
-| | |XML objectstore, SQL objectstore, NoSQL objectstore, Remoting |
+|Kevin Meyer |PPMC, Committer |Core, default runtime, SQL objectstore, Security |
*----------------------+-----------------------+----------------------------------------------------------------------+
-|Kevin Meyer |PPMC, Committer |SQL objectstore |
+|Robert Matthews |PPMC, Committer |Core, default runtime, DnD viewer, HTML viewer, Scimpi viewer, |
+| | |XML objectstore, NoSQL objectstore, Remoting |
*----------------------+-----------------------+----------------------------------------------------------------------+
-|Dave Slaughter |PPMC, Committer |Screencasts |
+|Alexander Krasnukhin |PPMC, Committer | |
*----------------------+-----------------------+----------------------------------------------------------------------+
-|Alexander Krasnukhin |PPMC, Committer |Android viewer? |
+|Dave Slaughter |PPMC, Committer | |
*----------------------+-----------------------+----------------------------------------------------------------------+
|Mark Struberg |PPMC, Champion, Mentor | |
*----------------------+-----------------------+----------------------------------------------------------------------+
@@ -44,12 +44,4 @@ Team
*----------------------+-----------------------+----------------------------------------------------------------------+
|Siegfried Goeschl |PPMC, Mentor | |
*----------------------+-----------------------+----------------------------------------------------------------------+
-|Sabine Winkler |user |BDD (Concordion) viewer (testing) |
-*----------------------+-----------------------+----------------------------------------------------------------------+
-|Vangjel Stavro |user |RESTful viewer, JavaFX viewer |
-*----------------------+-----------------------+----------------------------------------------------------------------+
-|Mike Burton |user |Facelets viewer? |
-*----------------------+-----------------------+----------------------------------------------------------------------+
-|Ulrich Stark |(to confirm) |Tapestry viewer? |
-*----------------------+-----------------------+----------------------------------------------------------------------+
\ No newline at end of file
Modified: incubator/isis/trunk/framework/src/site/resources/images/homepage/IsisUseCases.png.map
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/resources/images/homepage/IsisUseCases.png.map?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/resources/images/homepage/IsisUseCases.png.map (original)
+++ incubator/isis/trunk/framework/src/site/resources/images/homepage/IsisUseCases.png.map Tue Dec 13 00:07:16 2011
@@ -20,12 +20,25 @@
<map name="map">
-<area shape="rect" coords="12,107,143,181" alt="Develop your domain model" href="./usecases/develop.html" />
+<area shape="rect" coords="12,107,143,181" alt="Develop your domain model" href="./use-cases/develop.html" />
+<area shape="rect" coords="0,192,158,208" alt="Develop your domain model using the Isis Programming Model" href="./use-cases/develop.html#Isis_programming_model" />
+<area shape="rect" coords="15,228,149,246" alt="Develop your domain model using Custom Extensions to the Isis Programming Model" href="./use-cases/develop.html#Custom_extensions" />
-<area shape="rect" coords="229,107,362,181" alt="Specify and test your domain model" href="./usecases/specify-and-test.html" />
-<area shape="rect" coords="438,5,568,79" alt="Deploy as the domain model in your preferred framework" href="./usecases/deploy-own-framework.html" />
-<area shape="rect" coords="438,107,568,181" alt="Deploy as an auto-generated REST web service" href="./usecases/deploy-as-rest.html" />
-<area shape="rect" coords="438,208,568,283" alt="Deploy as an auto-generated webapp" href="./usecases/deploy-as-webapp.html" />
+<area shape="rect" coords="229,107,362,181" alt="Specify and test your domain model" href="./use-cases/specify-and-test.html" />
+<area shape="rect" coords="240,191,353,210" alt="Test your domain model using JUnit" href="./use-cases/specify-and-test.html#Junit_integration" />
+<area shape="rect" coords="241,210,351,229" alt="Specify your domain model using BDD (Concordion)" href="./use-cases/specify-and-test.html#BDD_integration" />
+
+<area shape="rect" coords="438,5,568,79" alt="Deploy as the domain model in your preferred framework" href="./use-cases/deploy-own-framework.html" />
+<area shape="rect" coords="574,24,680,43" alt="Deploy as the domain model in your preferred framework with a custom UI" href="./use-cases/deploy-own-framework.html#Custom_UI" />
+<area shape="rect" coords="576,46,738,64" alt="Deploy as the domain model in your preferred framework with custom persistence" href="./use-cases/deploy-own-framework.html#Custom_persistence" />
+
+<area shape="rect" coords="438,107,568,181" alt="Deploy as an auto-generated REST web service" href="./use-cases/deploy-as-rest.html" />
+<area shape="rect" coords="575,116,718,138" alt="Deploy as an auto-generated REST web service using Isis' persistence mechanism" href="./use-cases/deploy-as-rest.html#Isis_persistence" />
+<area shape="rect" coords="577,154,738,172" alt="Deploy as an auto-generated REST web service using a custom persistence mechanism" href="./use-cases/deploy-as-rest.html#Custom_persistence" />
+
+<area shape="rect" coords="438,208,568,283" alt="Deploy as an auto-generated webapp" href="./use-cases/deploy-as-webapp.html" />
+<area shape="rect" coords="575,220,715,240" alt="Deploy as an auto-generated webapp using Isis' persistence mechanism" href="./use-cases/deploy-as-webapp.html#Isis_persistence" />
+<area shape="rect" coords="574,252,737,275" alt="Deploy as an auto-generated webapp using a custom persistence mechanism" href="./use-cases/deploy-as-webapp.html#Custom_persistence" />
</map>
Modified: incubator/isis/trunk/framework/src/site/site.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/src/site/site.xml?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/src/site/site.xml (original)
+++ incubator/isis/trunk/framework/src/site/site.xml Tue Dec 13 00:07:16 2011
@@ -35,46 +35,49 @@
<menu name="Apache Isis">
<item name="Home" href="index.html" />
- <item name="Who we are" href="who-we-are.html" />
+ <item name="Demo App" href="http://mmyco.co.uk:8180/isis-onlinedemo" />
</menu>
<menu name="Getting Started">
- <item name="Quick start" href="where-to-start.html" />
- <item name="Downloads" href="downloads.html" />
- <item name="Documentation" href="documentation.html" />
+ <item name="Quick Start" href="quick-start.html" />
<item name="Cheat Sheet" href="IsisCheatSheet.pdf"/>
<!--
<item name="Screencasts" href="screencasts.html"/>
-->
<item name="Icons" href="icons.html" />
<item name="IDE Support" href="ide-support.html"/>
- <item name="Programming Conventions" href="applib/index.html" />
+ <item name="Downloads" href="downloads.html" />
</menu>
<!-- This 'global' menu is inherited -->
<menu name="Use Cases" inherit="bottom">
<item name="Develop" inherit="bottom" href="use-cases/develop.html"/>
<item name="Specify and Test" inherit="bottom" href="use-cases/specify-and-test.html"/>
- <item name="Deploy on own framework" href="use-cases/deploy-on-own-framework.html" />
- <item name="Deploy as REST web service" href="use-cases/deploy-as-rest.html" />
- <item name="Deploy as Webapp" href="use-cases/deploy-as-webapp.html" />
+ <item name="Deploy on own framework" href="use-cases/deploy-own-framework.html" />
+ <item name="Deploy as REST service" href="use-cases/deploy-as-rest.html" />
+ <item name="Deploy as webapp" href="use-cases/deploy-as-webapp.html" />
</menu>
+ <!-- This 'global' menu is inherited -->
+ <menu name="Documentation">
+ <item name="Isis Programming Model" href="applib/index.html" />
+ <item name="Module Documentation" href="documentation.html" />
+ </menu>
+
<menu name="Community and Help">
+ <item name="Who we are" href="who-we-are.html" />
<!--
<item name="IRC" href="http://webchat.freenode.net/?channels=apache-isis&uio=d4" />
-->
- <item name="Mailing List" href="mail-lists.html" >
+ <item name="Users Mailing List" href="mail-lists.html" >
<item name="Post to"
- href="mailto:isis-dev@incubator.apache.org" />
+ href="mailto:isis-users@incubator.apache.org" />
<item name="Archives"
- href="http://mail-archives.apache.org/mod_mbox/incubator-isis-dev/" />
+ href="http://mail-archives.apache.org/mod_mbox/incubator-isis-users/" />
<item name="Subscribe"
- href="mailto:isis-dev-subscribe@incubator.apache.org" />
+ href="mailto:isis-users-subscribe@incubator.apache.org" />
<item name="Markmail (RSS)"
- href="http://incubator.markmail.org/search/?q=isis-dev" />
- <item name="Gmane (NNTP)"
- href="http://blog.gmane.org/gmane.comp.apache.incubator.isis.devel" />
+ href="http://incubator.markmail.org/search/?q=isis-users" />
</item>
<!--
<item name="Twitter (#ApacheIsis)" href="http://search.twitter.com/search?q=%23ApacheIsis" />
@@ -86,42 +89,19 @@
<item name="Isis Extras" href="http://code.google.com/a/apache-extras.org/p/isis-extras/" />
</menu>
- <menu name="Other Resources">
- <item name="Blogs">
- <item name="Dan Haywood's blog" href="http://danhaywood.com/" />
- </item>
- <item name="Presentation Materials (please reuse)" href="./presentations/">
- <item name="Introducing Apache Isis" href="./presentations/">
- <item name="PPTX (Microsoft)" href="./presentations/IntroducingApacheIsis.pptx" />
- <item name="PPT (Microsoft)" href="./presentations/IntroducingApacheIsis.ppt" />
- <item name="ODP (OpenDocument)" href="./presentations/IntroducingApacheIsis.odp" />
- <item name="PDF slides" href="./presentations/IntroducingApacheIsis-slides.pdf" />
- <item name="PDF notes" href="./presentations/IntroducingApacheIsis-notes.pdf" />
- </item>
- </item>
- <item name="Naked Objects">
- <item name="Books on Naked Objects" href="naked-objects-books.html" />
- <item name="Richard Pawson's Thesis" href="Pawson-Naked-Objects-thesis.pdf" />
- <item name="Naked Objects for .NET" href="http://www.nakedobjects.net/" />
- </item>
- <!--
- <item name="Isis Roadmap" href="roadmap.html" />
- -->
- </menu>
-
<!-- This 'global' menu is inherited -->
<menu name="Isis Modules" inherit="bottom">
<item name="Application Library" href="applib/index.html" />
<item name="Core Framework" href="core/index.html"/>
- <item name="Testing Support" href="viewer/testing-support.html">
+ <item name="Testing Support" href="viewer/index.html#Testing_support.html">
<item name="BDD" href="viewer/bdd/index.html" />
<item name="JUnit" href="viewer/junit/index.html" />
</item>
- <item name="Deployable viewers" href="viewer/deployable-viewers.html">
+ <item name="Deployable viewers" href="viewer/index.html#Deployable_viewers">
<item name="Json (REST)" href="viewer/json/index.html" />
<item name="HTML (webapp)" href="viewer/html/index.html" />
</item>
- <item name="Other viewers (alpha)" href="viewer/other-viewers.html"/>
+ <item name="Other viewers (alpha)" href="viewer/index.html#Other_viewers"/>
<item name="Runtimes" href="runtimes/index.html">
<item name="Default" href="runtimes/dflt/index.html">
<item name="Object Stores" href="runtimes/dflt/objectstores/index.html"/>
@@ -134,11 +114,48 @@
</item>
</menu>
+ <menu name="Other Resources">
+ <item name="Blogs">
+ <item name="Dan Haywood's blog" href="http://danhaywood.com/" />
+ </item>
+ <!--
+ <item name="Presentation Materials (from v0.1)" href="./presentations/">
+ <item name="Introducing Apache Isis" href="./presentations/">
+ <item name="PPTX (Microsoft)" href="./presentations/IntroducingApacheIsis.pptx" />
+ <item name="PPT (Microsoft)" href="./presentations/IntroducingApacheIsis.ppt" />
+ <item name="ODP (OpenDocument)" href="./presentations/IntroducingApacheIsis.odp" />
+ <item name="PDF slides" href="./presentations/IntroducingApacheIsis-slides.pdf" />
+ <item name="PDF notes" href="./presentations/IntroducingApacheIsis-notes.pdf" />
+ </item>
+ </item>
+ -->
+ <item name="Naked Objects">
+ <item name="Books on Naked Objects" href="naked-objects-books.html" />
+ <item name="Richard Pawson's Thesis" href="Pawson-Naked-Objects-thesis.pdf" />
+ <item name="Naked Objects for .NET" href="http://www.nakedobjects.net/" />
+ </item>
+ <!--
+ <item name="Isis Roadmap" href="roadmap.html" />
+ -->
+ </menu>
+
<menu name="For Contributors">
<item name="Contributor's Guide">
<item name="PDF" href="docbkx/pdf/${docbkxGuideName}.pdf" />
<item name="HTML" href="docbkx/html/guide/${docbkxGuideName}.html" />
</item>
+ <item name="Dev Mailing List" href="mail-lists.html" >
+ <item name="Post to"
+ href="mailto:isis-dev@incubator.apache.org" />
+ <item name="Archives"
+ href="http://mail-archives.apache.org/mod_mbox/incubator-isis-dev/" />
+ <item name="Subscribe"
+ href="mailto:isis-dev-subscribe@incubator.apache.org" />
+ <item name="Markmail (RSS)"
+ href="http://incubator.markmail.org/search/?q=isis-dev" />
+ <item name="Gmane (NNTP)"
+ href="http://blog.gmane.org/gmane.comp.apache.incubator.isis.devel" />
+ </item>
</menu>
<menu name="Project Info" ref="reports"/>
Modified: incubator/isis/trunk/framework/viewer/json/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/src/site/apt/index.apt?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/src/site/apt/index.apt (original)
+++ incubator/isis/trunk/framework/viewer/json/src/site/apt/index.apt Tue Dec 13 00:07:16 2011
@@ -34,7 +34,3 @@ Further Info
See this module's {{{./json-applib/index.html}applib}}, {{{./json-viewer/index.html}viewer}} and
{{{./docbkx/html/guide/isis-json-viewer.html}user guide}} for more information.
-See also
-
- The {{{../xhtml/index.html}XHTML}} viewer is similar, but produces an XHTML representation.
-
Modified: incubator/isis/trunk/framework/viewer/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/src/site/apt/index.apt?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/src/site/apt/index.apt (original)
+++ incubator/isis/trunk/framework/viewer/src/site/apt/index.apt Tue Dec 13 00:07:16 2011
@@ -17,7 +17,7 @@
-Viewers
+* {Deployable viewers}
The <viewer> module is the parent of the different viewer implementations.
@@ -35,7 +35,7 @@ Viewers
or for exploring the REST API. Or, if your user base are "experts" in the
domain then you may also consider deploying it directly into production.
-Testing Support
+* {Testing support}
Isis' testing support is also provided by viewer implementations. That may seem
slightly odd terminology, but consider the test as a client of the domain model,
@@ -61,11 +61,11 @@ Testing Support
exceptions thrown by proxied domain objects.
-Other Viewers
+* {Other viewers}
- There are a number of other viewers that are of alpha-quality. That means that they are
- either incomplete implementations, inadequately documented, or just requiring a little
- attention (ie are broken).
+ There are a number of other viewers that should be considered as being of alpha-quality.
+ That means that they are either incomplete implementations, inadequately documented, or
+ just require a little attention (ie are broken).
That said, you are welcome to use them. If you do, let us know of any shortcomings
and we'll endeavour to fix them.
Modified: incubator/isis/trunk/framework/viewer/src/site/site.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/src/site/site.xml?rev=1213506&r1=1213505&r2=1213506&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/src/site/site.xml (original)
+++ incubator/isis/trunk/framework/viewer/src/site/site.xml Tue Dec 13 00:07:16 2011
@@ -29,16 +29,19 @@
<item name="Jottings" href="jottings.html" />
</menu>
- <menu name="Viewer Modules">
- <item name="DnD" href="./dnd/index.html" />
+ <menu name="Deployable Viewers">
<item name="HTML" href="./html/index.html" />
- <item name="Scimpi" href="./scimpi/index.html" />
- <item name="Wicket" href="./wicket/index.html" />
- <item name="XHTML" href="./xhtml/index.html" />
<item name="JSON" href="./json/index.html" />
<item name="JUnit Support" href="./junit/index.html" />
<item name="BDD Integration" href="./bdd/index.html" />
</menu>
+
+ <menu name="Other Viewers">
+ <item name="DnD" href="./dnd/index.html" />
+ <item name="Scimpi" href="./scimpi/index.html" />
+ <item name="Wicket" href="./wicket/index.html" />
+ </menu>
+
</body>
</project>