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 2015/09/03 14:32:59 UTC
[68/87] [abbrv] isis git commit: ISIS-1194: mothballing "site"
resources (everything under ./src).
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/quick-start.apt.vm
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/quick-start.apt.vm b/mothballed/src/site/apt/quick-start.apt.vm
new file mode 100644
index 0000000..7121f1f
--- /dev/null
+++ b/mothballed/src/site/apt/quick-start.apt.vm
@@ -0,0 +1,320 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+
+
+Where to Start?
+
+ 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 \
+ -D archetypeGroupId=org.apache.isis \
+ -D archetypeArtifactId=quickstart-archetype \
+ -D archetypeVersion=${project.version} \
+ -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 |
+| | ToDoItems (repository) interface. |
+*------------------------+-------------------------------------------------------------+
+| myapp-fixture | Domain object fixtures used for initializing the system |
+| | when being demo'ed or for unit testing. |
+*------------------------+-------------------------------------------------------------+
+| myapp-objstore-dflt | Implementation of ToDoItems repository, for the default |
+| | (in-memory) object store. |
+*------------------------+-------------------------------------------------------------+
+| myapp-objstore-mongodb | Implementation of ToDoItems repository, for the |
+| | NoSQL MongoDB object store. |
+*------------------------+-------------------------------------------------------------+
+| myapp-objstore-sql | Implementation of ToDoItems repository, for the |
+| | SQL object store. |
+*------------------------+-------------------------------------------------------------+
+| 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 |
+*------------------------+-------------------------------------------------------------+
+| myapp-webapp | Run as a webapp (from web.xml) using either the |
+| | {{{./viewer/html/index.html}HTML viewer}}, the |
+| | {{{./viewer/scimpi/index.html}Scimpi viewer}}, or the |
+| | {{{./viewer/json/index.html}JSON (RESTful) viewer}}. |
+| | Also includes a simple demo mobile app using the JSON viewer|
+*------------------------+-------------------------------------------------------------+
+
+ Out of the box the generated app is configured to run with the support the default
+ in-memory object store, but can easily be configured to work with the NoSQL or the
+ SQL object stores. The app includes an index.html with further information on this.
+ And, you can always 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. You've a few options.
+
+ The first is to run the self-hosting version version of the WAR file. This is the
+ as the regular WAR, but includes an embedded jetty webserver. It can be run either
+ from Maven:
+
++------------------------------------------------------------
+mvn antrun:run
++------------------------------------------------------------
+
+ Or you can just run using java -jar:
+
++------------------------------------------------------------
+java -jar webapp/target/myapp-webapp-1.0.0-SNAPSHOT-jetty-console.war
++------------------------------------------------------------
+
+ Either way, this is great if you want to distribute your app as a prototype.
+
+ Alternatively, you can also run using Maven's Jetty plugin:
+
++------------------------------------------------------------
+cd webapp
+mvn jetty:run
++------------------------------------------------------------
+
+
+ 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
+
+ Browse to the <a href="http://localhost:8080">index page</a> for details of how to access
+ the configured viewers.
+
+ Security (authentication) is configurable within Isis, and is enabled. You can log in using
+ the username/password of sven/pass.
+
+ []
+
+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 <<<ToDoItemsDefault>>> (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).
+
+ []
+
+Running the app from within Eclipse (3.7)
+
+ 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
+
+ []
+
+ 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.
+
+ 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?
+
+ <<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
+ Isis' programming model. The {{{./IsisCheatSheet.pdf}cheat sheet}} acts as a handy
+ reference.
+
+ To speed up your coding we provide some templates and other help for IDEs;
+ check out the {{{./ide-support.html}IDE support}} page. You should also check out
+ the {{{./icons.html}icons}} that we make available.
+
+ And after that, think about how you could 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} deploy on your own framework}}
+
+ * to {{{./use-cases/deploy-as-rest.html} deploy as a RESTful web service}}
+
+ * to {{{./use-cases/deploy-as-webapp.html} deploy as a webapp}}
+
+What else is there?
+
+ In terms of further documentation, you probably should look through the
+ {{{./core/docbkx/pdf/isis-core.pdf}core}}
+ documentation. This provides more detail on the design and architecture of Isis, along
+ with the key APIs.
+
+ 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). 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).
+
+ You'll find documentation for all of these components {{{./documentation.html}here}}.
+
+ And 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 ? ;-).
+
+ []
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/roadmap.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/roadmap.apt b/mothballed/src/site/apt/roadmap.apt
new file mode 100644
index 0000000..75ffd74
--- /dev/null
+++ b/mothballed/src/site/apt/roadmap.apt
@@ -0,0 +1,26 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+
+Roadmap
+
+ The roadmap for Isis is currently as defined in the original Isis
+ {{{http://wiki.apache.org/incubator/IsisProposal}proposal}} to the
+ Apache incubator.
+
+
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/screencasts.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/screencasts.apt b/mothballed/src/site/apt/screencasts.apt
new file mode 100644
index 0000000..5b7354f
--- /dev/null
+++ b/mothballed/src/site/apt/screencasts.apt
@@ -0,0 +1,55 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+
+ -----
+ Screencasts
+ -----
+
+ The following screencasts are available:
+
+%{toc}
+
+
+===
+
+{Setting up the Development Environment}
+
+%{snippet|verbatim=false|file=src/site/resources/screencasts/youtube-setting-up-the-development-environment.html}
+
+
+===
+
+{Download and Build}
+
+%{snippet|verbatim=false|file=src/site/resources/screencasts/youtube-download-and-build.html}
+
+
+
+===
+
+{Setting up Eclipse}
+
+%{snippet|verbatim=false|file=src/site/resources/screencasts/youtube-setting-up-eclipse.html}
+
+
+===
+
+{Importing into Eclipse}
+
+%{snippet|verbatim=false|file=src/site/resources/screencasts/youtube-importing-into-eclipse.html}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/use-cases/deploy-as-rest.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/use-cases/deploy-as-rest.apt b/mothballed/src/site/apt/use-cases/deploy-as-rest.apt
new file mode 100644
index 0000000..85883fc
--- /dev/null
+++ b/mothballed/src/site/apt/use-cases/deploy-as-rest.apt
@@ -0,0 +1,53 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+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. {{{../viewer/restfulobjects/index.html}RestfulObjects for Isis}},
+ an Isis 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}
+
+ Isis persistence API is pluggable, so if it does not provide the integration already then
+ you could implementing to its object store API.
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/use-cases/deploy-as-webapp.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/use-cases/deploy-as-webapp.apt b/mothballed/src/site/apt/use-cases/deploy-as-webapp.apt
new file mode 100644
index 0000000..67a5d7f
--- /dev/null
+++ b/mothballed/src/site/apt/use-cases/deploy-as-webapp.apt
@@ -0,0 +1,51 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+Deploy <Isis> as an auto-generated webapp
+
+ One of the original motivations for Isis itself was to be able
+ automatically generate a user interface for a domain object model.
+
+ 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 HTML 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.
+
+ If you need something a little more sophisticated, then the
+ {{{../viewer/scimpi/index.html}Scimpi viewer}} provides a similar webapp user interface,
+ but one that allows the views of objects to be progressively enhanced as required.
+ The programming model is akin to JSF, with a set of tags indicating the contents
+ of the custom views.
+
+* {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}
+
+ Isis persistence API is pluggable, so if it does not provide the integration already then
+ you could implementing to its object store API.
+
+* {Other Viewers}
+
+ Note that Isis does have a number of other (human-usable) viewers. See
+ {{{../viewer/index.html#Other_viewers}other viewers}} for details.
+
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/use-cases/deploy-own-framework.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/use-cases/deploy-own-framework.apt b/mothballed/src/site/apt/use-cases/deploy-own-framework.apt
new file mode 100644
index 0000000..4c86262
--- /dev/null
+++ b/mothballed/src/site/apt/use-cases/deploy-own-framework.apt
@@ -0,0 +1,79 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+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/annotation/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.
+
+ That said, it is also possible to deploy Isis as a {{{./deploy-as-rest.html}REST webservice}}, so you
+ could choose to implement a custom UI (eg in HTML5) that calls back to an Isis backend.
+
+* {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, Isis has a pluggable persistence API, so you could integrate to some other persistence
+ mechanism by implementing to this API.
+
+* Embedded Runtime
+
+ Even if you choose to deploy on your own framework, you may want to explore Isis
+ {{{../runtimes/embedded/index.html}Embedded Runtime}} module. This allows the Isis metamodel to be
+ instantiated standalone from the rest of the framework. Using this you could, for example, roll-your-own
+ generic UI; or you could integrate with other UI frameworks (such as {{{http://metawidget.org}MetaWidget}})
+ that do a lot of the heavy lifting for you.
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/use-cases/develop.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/use-cases/develop.apt b/mothballed/src/site/apt/use-cases/develop.apt
new file mode 100644
index 0000000..e8e4fa0
--- /dev/null
+++ b/mothballed/src/site/apt/use-cases/develop.apt
@@ -0,0 +1,63 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+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}}.
+
+* {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, (the {{{../applib/index.html}applib}}). 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
+ {{{./core/metamodel/xref/org/apache/isis/core/metamodel/facets/FacetFactory.html}FacetFactory}}
+ API, and the set of active <<<FacetFactory>>>s is specified through the
+ {{{./core/metamodel/xref/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.html}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 {{{../progmodels/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
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/use-cases/specify-and-test.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/use-cases/specify-and-test.apt b/mothballed/src/site/apt/use-cases/specify-and-test.apt
new file mode 100644
index 0000000..f1886b3
--- /dev/null
+++ b/mothballed/src/site/apt/use-cases/specify-and-test.apt
@@ -0,0 +1,103 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+Specify and test your <Isis> 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 and Concordion.
+ Being able to test your domain models independently of the other gives you
+ confidence when you move onto deploying your application {{{./deploy-own-framework.html}as}}
+ {{{./deploy-as-rest.html}you}} {{{./deploy-as-webapp.html}prefer}}.
+
+* {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() {
+ toDoItem = toDoItems.notYetDone().get(0);
+ toDoItem = wrapped(toDoItem);
+ }
+
+ @Test
+ public void cannotMarkAsDoneTwice() throws Exception {
+ toDoItem.markAsDone();
+ try {
+ toDoItem.markAsDone();
+ fail("Should not been disabled");
+ } catch (DisabledException e) {
+ assertThat(e.getMessage(), is("Already done"));
+ }
+ }
+
+ ...
+}
++-----------------------------------------------------------------
+
+ 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.
+
+ For example, the call to <<<markAsDone()>>> 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.
+
+ 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. This is provided through its
+ {{{../viewer/bdd/index.html}BDD viewer}}.
+
+ 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's 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.
+
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/apt/who-we-are.apt
----------------------------------------------------------------------
diff --git a/mothballed/src/site/apt/who-we-are.apt b/mothballed/src/site/apt/who-we-are.apt
new file mode 100644
index 0000000..3607eef
--- /dev/null
+++ b/mothballed/src/site/apt/who-we-are.apt
@@ -0,0 +1,47 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+
+Team
+
+ The table below lists the officers currently engaged with Apache Isis.
+
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|<<Who>> |<<Role>> |<<Contributions>> |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Dan Haywood |PPMC, Committer |Core, Default runtime, JSR-299 runtime, Wicket viewer, |
+| | |Json viewer, BDD viewer, JUnit viewer, JPA objectstore |
+| | |Wrapper progmodel, Groovy progmodel, site, docs, archetype |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Kevin Meyer |PPMC, Committer |Core, default runtime, SQL objectstore, Security |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Robert Matthews |PPMC, Committer |Core, default runtime, DnD viewer, HTML viewer, Scimpi viewer, |
+| | |XML objectstore, NoSQL objectstore, Remoting |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Alexander Krasnukhin |PPMC, Committer | |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Dave Slaughter |PPMC, Committer | |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Mark Struberg |PPMC, Champion, Mentor | |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Mohammed Nour El-Din |PPMC, Mentor |CI, release management |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Benson Marguiles |PPMC, Mentor | |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+|Siegfried Goeschl |PPMC, Mentor | |
+*----------------------+-----------------------+----------------------------------------------------------------------+
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/fml/TOREVIEW/faq.fml
----------------------------------------------------------------------
diff --git a/mothballed/src/site/fml/TOREVIEW/faq.fml b/mothballed/src/site/fml/TOREVIEW/faq.fml
new file mode 100644
index 0000000..5ebdae9
--- /dev/null
+++ b/mothballed/src/site/fml/TOREVIEW/faq.fml
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<faqs id="FAQ">
+ <part id="General">
+
+<faq id="prototyping">
+ <question>Can I use [[NAME]] to prototype an
+application that will be deployed on a different architecture?</question>
+ <answer>
+ <p>Absolutely - in fact most people start to use [[NAME]] initial for
+prototyping only and only later consider using it as a full deployment
+platform. The domain objects that you create for [[NAME]] are Plain
+Old Java Objects (POJOs) - they aren't tied to [[NAME]] in any way.
+So if you want to develop a hand-crafted user interface to invoke the
+objects' functionality, you can.</p>
+ </answer>
+ </faq>
+
+<faq id="what_applications">
+ <question>To what type of applications is [[NAME]]
+best (and worst!) suited?</question>
+ <answer>
+ <p>The auto-created user interfaces give the
+user a great deal of flexibility and control, but the corollary is that
+it does take a short while to get to know that user interface. So [[NAME]]
+Objects is best suited to the kind of in-house application that people
+use intensively; it is not at all suited to applications intended to be
+used by people with no training (for example a public web-site).
+However, per the previous question, there is nothing to stop you from
+developing a [[NAME]] application for internal users, then building
+a more conventional tightly-scripted interface to the same domain
+objects, for use by external parties.</p>
+ </answer>
+ </faq>
+
+<!--
+<faq id="what_pedigree">
+ <question>What's the history of [[NAME]]?</question>
+ <answer>
+ <p>... x-ref the DSFA case study here ....; history</p>
+ </answer>
+ </faq>
+-->
+
+
+ <faq id="security">
+ <question>How is security handled?</question>
+ <answer>
+ <p>[[NAME]] provides
+full support both for user authentication and authorisation. The user's
+role(s) may determine which classes of domain objects they may access,
+which properties, and which actions within those objects. This
+information may be administered via a simple file, LDAP, or relational
+database.</p>
+ </answer>
+ </faq>
+
+ </part>
+</faqs>
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/IsisCheatSheet.pdf
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/IsisCheatSheet.pdf b/mothballed/src/site/resources/IsisCheatSheet.pdf
new file mode 100644
index 0000000..dcf342c
Binary files /dev/null and b/mothballed/src/site/resources/IsisCheatSheet.pdf differ
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/Pawson-Naked-Objects-thesis.pdf
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/Pawson-Naked-Objects-thesis.pdf b/mothballed/src/site/resources/Pawson-Naked-Objects-thesis.pdf
new file mode 100644
index 0000000..aca07e4
Binary files /dev/null and b/mothballed/src/site/resources/Pawson-Naked-Objects-thesis.pdf differ
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/codequality/checkstyle.xml
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/codequality/checkstyle.xml b/mothballed/src/site/resources/codequality/checkstyle.xml
new file mode 100644
index 0000000..6d7dbb7
--- /dev/null
+++ b/mothballed/src/site/resources/codequality/checkstyle.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.1//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
+
+<!--
+
+ Checkstyle configuration that checks the sun coding conventions from:
+
+ - the Java Language Specification at
+ http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+ - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+ - the Javadoc guidelines at
+ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+ - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+ - some best practices
+
+ Checkstyle is very configurable. Be sure to read the documentation at
+ http://checkstyle.sf.net (or in your downloaded distribution).
+
+ Most Checks are configurable, be sure to consult the documentation.
+
+ To completely disable a check, just comment it out or delete it from the file.
+
+ Finally, it is worth reading the documentation.
+
+-->
+
+<module name="Checker">
+
+ <!-- Checks that a package.html file exists for each package. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
+ <!--
+ <module name="PackageHtml"/>
+ -->
+
+ <!-- Checks whether files end with a new line. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+ <!--
+ <module name="NewlineAtEndOfFile"/>
+ -->
+
+ <!-- Checks that property files contain the same keys. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+ <module name="Translation"/>
+
+ <module name="TreeWalker">
+
+ <property name="cacheFile" value="${checkstyle.cache.file}"/>
+
+ <!-- ************************************************************** -->
+ <!-- Checks that are different from the sun coding conventions ones -->
+ <!-- ************************************************************** -->
+ <!--
+ <property name="tabWidth" value="4"/>
+ <module name="LeftCurly">
+ <property name="option" value="nl"/>
+ </module>
+ <module name="RightCurly">
+ <property name="option" value="alone"/>
+ </module>
+ <module name="MemberName">
+ <property name="format" value="^m_[a-z](_?[a-zA-Z0-9])*$"/>
+ </module>
+ <module name="StaticVariableName">
+ <property name="format" value="^c_[a-z](_?[a-zA-Z0-9])*$"/>
+ </module>
+ <module name="MethodName">
+ <property name="format" value="[a-z](_?[a-zA-Z0-9]+)*$"/>
+ </module>
+ <module name="ParameterName">
+ <property name="format" value="[a-z](_?[a-zA-Z0-9]+)*$"/>
+ </module>
+ <module name="LocalVariableName">
+ <property name="format" value="[a-z](_?[a-zA-Z0-9]+)*$"/>
+ </module>
+ -->
+
+ <!-- ************************************************************** -->
+ <!-- Default Sun coding conventions checks -->
+ <!-- ************************************************************** -->
+
+ <!-- Checks for Javadoc comments. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html -->
+ <!--
+ <module name="JavadocMethod"/>
+ <module name="JavadocType"/>
+ <module name="JavadocVariable"/>
+ -->
+
+
+ <!-- Checks for Naming Conventions. -->
+ <!-- See http://checkstyle.sf.net/config_naming.html -->
+ <module name="ConstantName"/>
+ <module name="PackageName"/>
+ <module name="TypeName"/>
+ <module name="LocalFinalVariableName"/>
+ <!--
+ -->
+
+
+ <!-- Checks for Headers -->
+ <!-- See http://checkstyle.sf.net/config_header.html -->
+ <!--
+ <module name="Header">
+ -->
+ <!-- The follow property value demonstrates the ability -->
+ <!-- to have access to ANT properties. In this case it uses -->
+ <!-- the ${basedir} property to allow Checkstyle to be run -->
+ <!-- from any directory within a project. -->
+ <!--
+ <property name="headerFile" value="${checkstyle.header.file}"/>
+ </module>
+ -->
+
+ <!-- Following interprets the header file as regular expressions. -->
+ <!-- <module name="RegexpHeader"/> -->
+
+
+ <!-- Checks for imports -->
+ <!-- See http://checkstyle.sf.net/config_import.html -->
+ <module name="AvoidStarImport"/>
+ <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
+ <!--
+ <module name="RedundantImport"/>
+ <module name="UnusedImports"/>
+ -->
+
+
+ <!-- Checks for Size Violations. -->
+ <!-- See http://checkstyle.sf.net/config_sizes.html -->
+ <!--
+ <module name="FileLength"/>
+ <module name="LineLength"/>
+ <module name="MethodLength"/>
+ <module name="ParameterNumber"/>
+ -->
+
+
+ <!-- Checks for whitespace -->
+ <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+ <!--
+ <module name="EmptyForIteratorPad"/>
+ <module name="NoWhitespaceAfter"/>
+ <module name="NoWhitespaceBefore"/>
+ <module name="OperatorWrap"/>
+ <module name="ParenPad"/>
+ <module name="TabCharacter"/>
+ <module name="WhitespaceAfter"/>
+ <module name="WhitespaceAround"/>
+ -->
+
+
+ <!-- Modifier Checks -->
+ <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+ <!--
+ <module name="ModifierOrder"/>
+ <module name="RedundantModifier"/>
+ -->
+
+
+ <!-- Checks for blocks. You know, those {}'s -->
+ <!-- See http://checkstyle.sf.net/config_blocks.html -->
+ <!--
+ <module name="AvoidNestedBlocks"/>
+ <module name="EmptyBlock"/>
+
+ <module name="NeedBraces"/>
+ -->
+
+
+ <!-- Checks for common coding problems -->
+ <!-- See http://checkstyle.sf.net/config_coding.html -->
+ <!--
+ <module name="AvoidInlineConditionals"/>
+ <module name="DoubleCheckedLocking"/>
+ <module name="EmptyStatement"/>
+ <module name="EqualsHashCode"/>
+ <module name="HiddenField"/>
+ <module name="IllegalInstantiation"/>
+ <module name="InnerAssignment"/>
+ <module name="MagicNumber"/>
+ <module name="MissingSwitchDefault"/>
+ <module name="RedundantThrows"/>
+ <module name="SimplifyBooleanExpression"/>
+ <module name="SimplifyBooleanReturn"/>
+ -->
+
+ <!-- Checks for class design -->
+ <!-- See http://checkstyle.sf.net/config_design.html -->
+ <!--
+ <module name="DesignForExtension"/>
+ <module name="FinalClass"/>
+ <module name="HideUtilityClassConstructor"/>
+ <module name="InterfaceIsType"/>
+ <module name="VisibilityModifier"/>
+ -->
+
+
+ <!-- Miscellaneous other checks. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html -->
+ <!--
+ <module name="ArrayTypeStyle"/>
+ <module name="FinalParameters"/>
+ <module name="GenericIllegalRegexp">
+ <property name="format" value="\s+$"/>
+ <property name="message" value="Line has trailing spaces."/>
+ </module>
+ <module name="TodoComment"/>
+ <module name="UpperEll"/>
+ -->
+
+ </module>
+
+</module>
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/codequality/pmd.xml
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/codequality/pmd.xml b/mothballed/src/site/resources/codequality/pmd.xml
new file mode 100644
index 0000000..5747a1c
--- /dev/null
+++ b/mothballed/src/site/resources/codequality/pmd.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<ruleset name="Maven Ruleset"
+ xmlns="http://pmd.sf.net/ruleset/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+ xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
+
+ <!--
+ Customized PMD ruleset for Maven, see [0] for more information
+ [0] http://pmd.sourceforge.net/howtomakearuleset.html
+ -->
+
+ <description>
+ This ruleset checks the code for discouraged programming constructs.
+ </description>
+
+ <rule ref="rulesets/basic.xml">
+ <exclude name="EmptyCatchBlock"/>
+ </rule>
+ <rule ref="rulesets/basic.xml/EmptyCatchBlock">
+ <properties>
+ <property name="allowCommentedBlocks" value="true"/>
+ </properties>
+ </rule>
+
+ <rule ref="rulesets/unusedcode.xml"/>
+
+ <rule ref="rulesets/imports.xml"/>
+</ruleset>
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/com.cb.eclipse.folding.KAM-3.5.zip
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/com.cb.eclipse.folding.KAM-3.5.zip b/mothballed/src/site/resources/com.cb.eclipse.folding.KAM-3.5.zip
new file mode 100644
index 0000000..16a0f42
Binary files /dev/null and b/mothballed/src/site/resources/com.cb.eclipse.folding.KAM-3.5.zip differ
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/icons/haywood.html
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/icons/haywood.html b/mothballed/src/site/resources/icons/haywood.html
new file mode 100644
index 0000000..05176f3
--- /dev/null
+++ b/mothballed/src/site/resources/icons/haywood.html
@@ -0,0 +1,26 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ license agreements. See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership. The ASF licenses this file to
+ you under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+ by applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+<html><head><title>haywood</title></head><body>
+<!-- START SNIPPET: icon-table -->
+<table>
+ <tr>
+<td><a href='images/icons/haywood/16/actionpoint.gif'><img src='images/icons/haywood/16/actionpoint.gif'/></a><a href='images/icons/haywood/32/actionpoint.gif'><img src='images/icons/haywood/32/actionpoint.gif'/></a></td><td><a href='images/icons/haywood/16/address.gif'><img src='images/icons/haywood/16/address.gif'/></a><a href='images/icons/haywood/32/address.gif'><img src='images/icons/haywood/32/address.gif'/></a></td><td><a href='images/icons/haywood/16/agenda.gif'><img src='images/icons/haywood/16/agenda.gif'/></a><a href='images/icons/haywood/32/agenda.gif'><img src='images/icons/haywood/32/agenda.gif'/></a></td><td><a href='images/icons/haywood/16/blackboard.gif'><img src='images/icons/haywood/16/blackboard.gif'/></a><a href='images/icons/haywood/32/blackboard.gif'><img src='images/icons/haywood/32/blackboard.gif'/></a></td><td><a href='images/icons/haywood/16/books.gif'><img src='images/icons/haywood/16/books.gif'/></a><a href='images/icons/haywood/32/books.gif'><img src='i
mages/icons/haywood/32/books.gif'/></a></td><td><a href='images/icons/haywood/16/calendar.gif'><img src='images/icons/haywood/16/calendar.gif'/></a><a href='images/icons/haywood/32/calendar.gif'><img src='images/icons/haywood/32/calendar.gif'/></a></td><td><a href='images/icons/haywood/16/can.gif'><img src='images/icons/haywood/16/can.gif'/></a><a href='images/icons/haywood/32/can.gif'><img src='images/icons/haywood/32/can.gif'/></a></td><td><a href='images/icons/haywood/16/car.png'><img src='images/icons/haywood/16/car.png'/></a><a href='images/icons/haywood/32/car.png'><img src='images/icons/haywood/32/car.png'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/haywood/16/cellphone.gif'><img src='images/icons/haywood/16/cellphone.gif'/></a><a href='images/icons/haywood/32/cellphone.gif'><img src='images/icons/haywood/32/cellphone.gif'/></a></td><td><a href='images/icons/haywood/16/communication_channel.gif'><img src='images/icons/haywood/16/communication_channel.gif'/></a><a href='images/icons/haywood/32/communication_channel.gif'><img src='images/icons/haywood/32/communication_channel.gif'/></a></td><td><a href='images/icons/haywood/16/currency.gif'><img src='images/icons/haywood/16/currency.gif'/></a><a href='images/icons/haywood/32/currency.gif'><img src='images/icons/haywood/32/currency.gif'/></a></td><td><a href='images/icons/haywood/16/customer.gif'><img src='images/icons/haywood/16/customer.gif'/></a><a href='images/icons/haywood/32/customer.gif'><img src='images/icons/haywood/32/customer.gif'/></a></td><td><a href='images/icons/haywood/16/diploma.gif'><img src='images/icons/haywood/16/diploma.gif'/></a><a
href='images/icons/haywood/32/diploma.gif'><img src='images/icons/haywood/32/diploma.gif'/></a></td><td><a href='images/icons/haywood/16/document.gif'><img src='images/icons/haywood/16/document.gif'/></a><a href='images/icons/haywood/32/document.gif'><img src='images/icons/haywood/32/document.gif'/></a></td><td><a href='images/icons/haywood/16/dog.gif'><img src='images/icons/haywood/16/dog.gif'/></a><a href='images/icons/haywood/32/dog.gif'><img src='images/icons/haywood/32/dog.gif'/></a></td><td><a href='images/icons/haywood/16/dogs.gif'><img src='images/icons/haywood/16/dogs.gif'/></a><a href='images/icons/haywood/32/dogs.gif'><img src='images/icons/haywood/32/dogs.gif'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/haywood/16/emailaddress.gif'><img src='images/icons/haywood/16/emailaddress.gif'/></a><a href='images/icons/haywood/32/emailaddress.gif'><img src='images/icons/haywood/32/emailaddress.gif'/></a></td><td><a href='images/icons/haywood/16/employee.gif'><img src='images/icons/haywood/16/employee.gif'/></a><a href='images/icons/haywood/32/employee.gif'><img src='images/icons/haywood/32/employee.gif'/></a></td><td><a href='images/icons/haywood/16/flag.gif'><img src='images/icons/haywood/16/flag.gif'/></a><a href='images/icons/haywood/32/flag.gif'><img src='images/icons/haywood/32/flag.gif'/></a></td><td><a href='images/icons/haywood/16/folder.gif'><img src='images/icons/haywood/16/folder.gif'/></a><a href='images/icons/haywood/32/folder.gif'><img src='images/icons/haywood/32/folder.gif'/></a></td><td><a href='images/icons/haywood/16/function.gif'><img src='images/icons/haywood/16/function.gif'/></a><a href='images/icons/haywood/32/function.gif'><img src='images/i
cons/haywood/32/function.gif'/></a></td><td><a href='images/icons/haywood/16/language.gif'><img src='images/icons/haywood/16/language.gif'/></a><a href='images/icons/haywood/32/language.gif'><img src='images/icons/haywood/32/language.gif'/></a></td><td><a href='images/icons/haywood/16/locationmap.gif'><img src='images/icons/haywood/16/locationmap.gif'/></a><a href='images/icons/haywood/32/locationmap.gif'><img src='images/icons/haywood/32/locationmap.gif'/></a></td><td><a href='images/icons/haywood/16/meeting_room.gif'><img src='images/icons/haywood/16/meeting_room.gif'/></a><a href='images/icons/haywood/32/meeting_room.gif'><img src='images/icons/haywood/32/meeting_room.gif'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/haywood/16/mortar_board.gif'><img src='images/icons/haywood/16/mortar_board.gif'/></a><a href='images/icons/haywood/32/mortar_board.gif'><img src='images/icons/haywood/32/mortar_board.gif'/></a></td><td><a href='images/icons/haywood/16/order.gif'><img src='images/icons/haywood/16/order.gif'/></a><a href='images/icons/haywood/32/order.gif'><img src='images/icons/haywood/32/order.gif'/></a></td><td><a href='images/icons/haywood/16/order_item.gif'><img src='images/icons/haywood/16/order_item.gif'/></a><a href='images/icons/haywood/32/order_item.gif'><img src='images/icons/haywood/32/order_item.gif'/></a></td><td><a href='images/icons/haywood/16/organization_unit.gif'><img src='images/icons/haywood/16/organization_unit.gif'/></a><a href='images/icons/haywood/32/organization_unit.gif'><img src='images/icons/haywood/32/organization_unit.gif'/></a></td><td><a href='images/icons/haywood/16/permission.gif'><img src='images/icons/haywood/16/permission.gif'/></a><a hr
ef='images/icons/haywood/32/permission.gif'><img src='images/icons/haywood/32/permission.gif'/></a></td><td><a href='images/icons/haywood/16/product.gif'><img src='images/icons/haywood/16/product.gif'/></a><a href='images/icons/haywood/32/product.gif'><img src='images/icons/haywood/32/product.gif'/></a></td><td><a href='images/icons/haywood/16/product_group.gif'><img src='images/icons/haywood/16/product_group.gif'/></a><a href='images/icons/haywood/32/product_group.gif'><img src='images/icons/haywood/32/product_group.gif'/></a></td><td><a href='images/icons/haywood/16/role.gif'><img src='images/icons/haywood/16/role.gif'/></a><a href='images/icons/haywood/32/role.gif'><img src='images/icons/haywood/32/role.gif'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/haywood/16/skyscraper.gif'><img src='images/icons/haywood/16/skyscraper.gif'/></a><a href='images/icons/haywood/32/skyscraper.gif'><img src='images/icons/haywood/32/skyscraper.gif'/></a></td><td><a href='images/icons/haywood/16/telephone.gif'><img src='images/icons/haywood/16/telephone.gif'/></a><a href='images/icons/haywood/32/telephone.gif'><img src='images/icons/haywood/32/telephone.gif'/></a></td><td><a href='images/icons/haywood/16/transaction.gif'><img src='images/icons/haywood/16/transaction.gif'/></a><a href='images/icons/haywood/32/transaction.gif'><img src='images/icons/haywood/32/transaction.gif'/></a></td><td/></tr>
+</table>
+<!-- END SNIPPET: icon-table -->
+</body></html>
http://git-wip-us.apache.org/repos/asf/isis/blob/11645b5f/mothballed/src/site/resources/icons/nogl.html
----------------------------------------------------------------------
diff --git a/mothballed/src/site/resources/icons/nogl.html b/mothballed/src/site/resources/icons/nogl.html
new file mode 100644
index 0000000..e0329e8
--- /dev/null
+++ b/mothballed/src/site/resources/icons/nogl.html
@@ -0,0 +1,24 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ license agreements. See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership. The ASF licenses this file to
+ you under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+ by applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+<html><head><title>nogl</title></head><body>
+<!-- START SNIPPET: icon-table -->
+<table>
+ <tr>
+<td><a href='images/icons/nogl/32/Aircraft.gif'><img src='images/icons/nogl/32/Aircraft.gif'/></a></td><td><a href='images/icons/nogl/32/Audiotape.gif'><img src='images/icons/nogl/32/Audiotape.gif'/></a></td><td><a href='images/icons/nogl/32/Bargraph.gif'><img src='images/icons/nogl/32/Bargraph.gif'/></a></td><td><a href='images/icons/nogl/32/Basket.gif'><img src='images/icons/nogl/32/Basket.gif'/></a></td><td><a href='images/icons/nogl/32/Bed.gif'><img src='images/icons/nogl/32/Bed.gif'/></a></td><td><a href='images/icons/nogl/32/CallCentreAgent.gif'><img src='images/icons/nogl/32/CallCentreAgent.gif'/></a></td><td><a href='images/icons/nogl/32/Can.gif'><img src='images/icons/nogl/32/Can.gif'/></a></td><td><a href='images/icons/nogl/32/Car.gif'><img src='images/icons/nogl/32/Car.gif'/></a></td><td><a href='images/icons/nogl/32/Cheque.gif'><img src='images/icons/nogl/32/Cheque.gif'/></a></td><td><a href='images/icons/nogl/32/ChessPiece.gif'><img src='images/icons/nogl/32/ChessPiece.
gif'/></a></td><td><a href='images/icons/nogl/32/City.gif'><img src='images/icons/nogl/32/City.gif'/></a></td><td><a href='images/icons/nogl/32/Coins.gif'><img src='images/icons/nogl/32/Coins.gif'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/nogl/32/CreditCard.gif'><img src='images/icons/nogl/32/CreditCard.gif'/></a></td><td><a href='images/icons/nogl/32/Crosshairs.gif'><img src='images/icons/nogl/32/Crosshairs.gif'/></a></td><td><a href='images/icons/nogl/32/Factory.gif'><img src='images/icons/nogl/32/Factory.gif'/></a></td><td><a href='images/icons/nogl/32/Fax.gif'><img src='images/icons/nogl/32/Fax.gif'/></a></td><td><a href='images/icons/nogl/32/Folder.gif'><img src='images/icons/nogl/32/Folder.gif'/></a></td><td><a href='images/icons/nogl/32/Globe.gif'><img src='images/icons/nogl/32/Globe.gif'/></a></td><td><a href='images/icons/nogl/32/Hammer.gif'><img src='images/icons/nogl/32/Hammer.gif'/></a></td><td><a href='images/icons/nogl/32/Handshake.gif'><img src='images/icons/nogl/32/Handshake.gif'/></a></td><td><a href='images/icons/nogl/32/HouseUnderConstruction.gif'><img src='images/icons/nogl/32/HouseUnderConstruction.gif'/></a></td><td><a href='images/icons/nogl/32/KnifeFork.gif'><img src=
'images/icons/nogl/32/KnifeFork.gif'/></a></td><td><a href='images/icons/nogl/32/Letter.gif'><img src='images/icons/nogl/32/Letter.gif'/></a></td><td><a href='images/icons/nogl/32/LightningFlash.gif'><img src='images/icons/nogl/32/LightningFlash.gif'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/nogl/32/Man.gif'><img src='images/icons/nogl/32/Man.gif'/></a></td><td><a href='images/icons/nogl/32/Map.gif'><img src='images/icons/nogl/32/Map.gif'/></a></td><td><a href='images/icons/nogl/32/MissedTarget.gif'><img src='images/icons/nogl/32/MissedTarget.gif'/></a></td><td><a href='images/icons/nogl/32/Missilel.gif'><img src='images/icons/nogl/32/Missilel.gif'/></a></td><td><a href='images/icons/nogl/32/MobilePhone.gif'><img src='images/icons/nogl/32/MobilePhone.gif'/></a></td><td><a href='images/icons/nogl/32/Network.gif'><img src='images/icons/nogl/32/Network.gif'/></a></td><td><a href='images/icons/nogl/32/NetworkOn Map32.gif'><img src='images/icons/nogl/32/NetworkOn Map32.gif'/></a></td><td><a href='images/icons/nogl/32/Pen.gif'><img src='images/icons/nogl/32/Pen.gif'/></a></td><td><a href='images/icons/nogl/32/Phone.gif'><img src='images/icons/nogl/32/Phone.gif'/></a></td><td><a href='images/icons/nogl/32/PiggyBank.gif'><img src='images/icons/nogl/32/
PiggyBank.gif'/></a></td><td><a href='images/icons/nogl/32/QuestionMark.gif'><img src='images/icons/nogl/32/QuestionMark.gif'/></a></td><td><a href='images/icons/nogl/32/RadialPlot.gif'><img src='images/icons/nogl/32/RadialPlot.gif'/></a></td></tr>
+ <tr>
+<td><a href='images/icons/nogl/32/RoundTable.gif'><img src='images/icons/nogl/32/RoundTable.gif'/></a></td><td><a href='images/icons/nogl/32/Scales.gif'><img src='images/icons/nogl/32/Scales.gif'/></a></td><td><a href='images/icons/nogl/32/Smiley.gif'><img src='images/icons/nogl/32/Smiley.gif'/></a></td><td><a href='images/icons/nogl/32/SpeechBubble.gif'><img src='images/icons/nogl/32/SpeechBubble.gif'/></a></td><td><a href='images/icons/nogl/32/SteeringWheel.gif'><img src='images/icons/nogl/32/SteeringWheel.gif'/></a></td><td><a href='images/icons/nogl/32/Taxi.gif'><img src='images/icons/nogl/32/Taxi.gif'/></a></td><td><a href='images/icons/nogl/32/Truck.gif'><img src='images/icons/nogl/32/Truck.gif'/></a></td><td><a href='images/icons/nogl/32/Woman.gif'><img src='images/icons/nogl/32/Woman.gif'/></a></td><td/></tr>
+</table>
+<!-- END SNIPPET: icon-table -->
+</body></html>