Author: danhaywood
Date: Thu Nov 20 17:17:41 2014
New Revision: 1640767
URL: http://svn.apache.org/r1640767
Log:
derived properties, other bits n bobs
Modified:
isis/site/trunk/content/contributors/release-process.md
isis/site/trunk/content/contributors/resources/release.sh
isis/site/trunk/content/intro/getting-started/simpleapp-archetype.md
isis/site/trunk/content/intro/getting-started/todoapp-archetype.md
isis/site/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.md
isis/site/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.md
Modified: isis/site/trunk/content/contributors/release-process.md
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/contributors/release-process.md?rev=1640767&r1=1640766&r2=1640767&view=diff
==============================================================================
--- isis/site/trunk/content/contributors/release-process.md (original)
+++ isis/site/trunk/content/contributors/release-process.md Thu Nov 20 17:17:41
2014
@@ -107,10 +107,10 @@ git pull --ff-only
Then, determine/confirm the version number of the module being released. This
should be in line with our [semantic versioning policy](versioning-policy.html).
-Next, create a release branch in your local Git repo, using the version number
determined and as per [these standards](release-branch-and-tag-names.html).
For example, to prepare release candidate #1 for a release 1.7.0 of `core`, use:
+Next, create a release branch in your local Git repo, using the version number
determined and as per [these standards](release-branch-and-tag-names.html).
For example, to prepare release candidate #1 for a release 1.8.0 of `core`, use:
<pre>
-git checkout -b prepare/isis-1.7.0
+git checkout -b prepare/isis-1.8.0
</pre>
All release preparation is done locally; if we are successful, this branch
will be pushed back to master.
@@ -129,11 +129,11 @@ Before making any formal release, there
The version number of the parent pom should reflect the branch name that you
are now on (with a `-SNAPSHOT` suffix). In many cases this will have been done
already during earlier development; but confirm that it has been updated. If
it has not, make the change.
-For example, if releasing `core` version `1.7.0`, the POM should read:
+For example, if releasing `core` version `1.8.0`, the POM should read:
<groupId>org.apache.isis.core</groupId>
<artifactId>isis</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
### Update parent (Isis Core)
@@ -157,7 +157,7 @@ If releasing a non-core component, then
<parent>
<groupId>org.apache.isis.core</groupId>
<artifactId>isis</artifactId>
- <version>1.7.0</version>
+ <version>1.8.0</version>
<relativePath />
</parent>
@@ -356,9 +356,9 @@ Most of the work is done using the `mvn
Run the dry-run as follows:
mvn release:prepare -P apache-release -D dryRun=true \
- -DreleaseVersion=1.7.0 \
- -Dtag=isis-1.7.0 \
- -DdevelopmentVersion=1.8.0-SNAPSHOT
+ -DreleaseVersion=1.8.0 \
+ -Dtag=isis-1.8.0 \
+ -DdevelopmentVersion=1.9.0-SNAPSHOT
where:
@@ -388,24 +388,17 @@ $ mvn release:prepare -P apache-release
[INFO] Isis Core MetaModel
[INFO] Isis Core Runtime
[INFO] Isis Core WebServer
-[INFO] Isis Core CgLib Bytecode
-[INFO] Isis Core Javassist Bytecode
-[INFO] Isis Core (In-Memory) ObjectStore
-[INFO] Isis Core (In-memory) ProfileStore
-[INFO] Isis Core (Bypass) Security
-[INFO] Isis Core TCK App
-[INFO] Isis Core TCK DOM
+ ...
[INFO] Isis Core Integration Testing Support
-[INFO] Isis Core TCK Fixtures
[INFO]
[INFO] ------------------------------------------------------------------------
-[INFO] Building Apache Isis Core 1.7.0-SNAPSHOT
+[INFO] Building Apache Isis Core 1.8.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.3.2:prepare (default-cli) @ isis ---
[INFO] Resuming release from phase 'map-release-versions'
What is the release version for "Apache Isis Core"? (org.apache.isis.core:isis)
-1.7.0: :
+1.8.0: :
</pre>
If you didn't provide the `releaseVersion`, `tag` and `developmentVersion`
tags, then you'll be prompted for them. You can generally accept the defaults
that Maven offers.
@@ -413,19 +406,19 @@ If you didn't provide the `releaseVersio
Assuming this completes successfully, re-run the command, but without the
`dryRun` flag and specifying `resume=false` (to ignore the generated
`release.properties` file that gets generated as a side-effect of using `git`).
You can also set the `skipTests` flag since they would have been run during
the previous dry run:
mvn release:prepare -P apache-release -D resume=false -DskipTests=true
- -DreleaseVersion=1.7.0 \
- -Dtag=isis-1.7.0 \
- -DdevelopmentVersion=1.8.0-SNAPSHOT
+ -DreleaseVersion=1.8.0 \
+ -Dtag=isis-1.8.0 \
+ -DdevelopmentVersion=1.9.0-SNAPSHOT
> If any issues here, then explicitly delete the generated
> `release.properties` file first.
### Post-prepare sanity check
-You should end up with artifacts in your local repo with the new version
`1.7.0`. There are then a couple of sanity checks that you can perform:
+You should end up with artifacts in your local repo with the new version
`1.8.0`. There are then a couple of sanity checks that you can perform:
* unzip the source-release ZIP and check it builds
- For example, if building core, then the ZIP file will be called
`isis-1.7.0-source-release.zip` and should reside in
`~/.m2/repository/org/apache/isis/core/isis/1.7.0` directory.
+ For example, if building core, then the ZIP file will be called
`isis-1.8.0-source-release.zip` and should reside in
`~/.m2/repository/org/apache/isis/core/isis/1.8.0` directory.
Unzip in a new directory, and build.
@@ -479,17 +472,17 @@ The command starts off by checking out t
[INFO] Performing a LOCAL checkout from
scm:git:file:///C:\APACHE\isis-git-rw\co
re
[INFO] Checking out the project to perform the release ...
-[INFO] Executing: cmd.exe /X /C "git clone --branch isis-1.7.0
file:///C:\APACHE\isis-git-rw\core C:\APACHE\isis-git-rw\core\target\checkout"
+[INFO] Executing: cmd.exe /X /C "git clone --branch isis-1.8.0
file:///C:\APACHE\isis-git-rw\core C:\APACHE\isis-git-rw\core\target\checkout"
[INFO] Working directory: C:\APACHE\isis-git-rw\core\target
[INFO] Performing a LOCAL checkout from scm:git:file:///C:\APACHE\isis-git-rw
[INFO] Checking out the project to perform the release ...
-[INFO] Executing: cmd.exe /X /C "git clone --branch isis-1.7.0
file:///C:\APACHE\isis-git-rw C:\APACHE\isis-git-rw\core\target\checkout"
+[INFO] Executing: cmd.exe /X /C "git clone --branch isis-1.8.0
file:///C:\APACHE\isis-git-rw C:\APACHE\isis-git-rw\core\target\checkout"
[INFO] Working directory: C:\APACHE\isis-git-rw\core\target
[INFO] Executing: cmd.exe /X /C "git ls-remote file:///C:\APACHE\isis-git-rw"
[INFO] Working directory: C:\Users\ADMINI~1\AppData\Local\Temp
[INFO] Executing: cmd.exe /X /C "git fetch file:///C:\APACHE\isis-git-rw"
[INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
-[INFO] Executing: cmd.exe /X /C "git checkout isis-1.7.0"
+[INFO] Executing: cmd.exe /X /C "git checkout isis-1.8.0"
[INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
[INFO] Executing: cmd.exe /X /C "git ls-files"
[INFO] Working directory: C:\APACHE\isis-git-rw\core\target\checkout
@@ -550,12 +543,12 @@ Finally, push both the branch and the ta
To push the branch, for example:
- git checkout prepare/isis-1.7.0
- git push -u origin prepare/isis-1.7.0
+ git checkout prepare/isis-1.8.0
+ git push -u origin prepare/isis-1.8.0
To push the tag, with the `-RCn` suffix, for example:
- git push origin refs/tags/isis-1.7.0:refs/tags/isis-1.7.0-RC1
+ git push origin refs/tags/isis-1.8.0:refs/tags/isis-1.8.0-RC1
git fetch
The remote tag isn't visible locally (eg via `gitk --all`), but can be seen
[online](https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=summary).
@@ -572,28 +565,28 @@ The following boilerplate is for a relea
Use the following subject:
<pre>
-[VOTE] Apache Isis Core release 1.7.0 RC1 and related components
+[VOTE] Apache Isis Core release 1.8.0 RC1 and related components
</pre>
And use the following body:
<pre>
I've cut a release for Apache Isis Core and related components:
-* Core 1.7.0
-* Wicket Viewer 1.7.0
-* SimpleApp Archetype 1.7.0
-* TodoApp Archetype 1.7.0
+* Core 1.8.0
+* Wicket Viewer 1.8.0
+* SimpleApp Archetype 1.8.0
+* TodoApp Archetype 1.8.0
The source code artifacts have been uploaded to staging repositories on
repository.apache.org:
-*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/core/isis/1.7.0/isis-1.7.0-source-release.zip
-*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/viewer/isis-viewer-wicket/1.7.0/isis-viewer-wicket-1.7.0-source-release.zip
-*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/archetype/simpleapp-archetype/1.7.0/simpleapp-archetype-1.7.0-source-release.zip
-*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/archetype/todoapp-archetype/1.7.0/todoapp-archetype-1.7.0-source-release.zip
+*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/core/isis/1.8.0/isis-1.8.0-source-release.zip
+*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/viewer/isis-viewer-wicket/1.8.0/isis-viewer-wicket-1.8.0-source-release.zip
+*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/archetype/simpleapp-archetype/1.8.0/simpleapp-archetype-1.8.0-source-release.zip
+*
http://repository.apache.org/content/repositories/orgapacheisis-10xx/org/apache/isis/archetype/todoapp-archetype/1.8.0/todoapp-archetype-1.8.0-source-release.zip
For each zip there is a corresponding signature file (append .asc to the zip's
url).
-In the source code repo the code has been tagged as isis-1.7.0-RC1,
isis-viewer-wicket-1.7.0-RC1, simpleapp-archetype-1.7.0-RC1 and
todoapp-archetype-1.7.0-RC1.
+In the source code repo the code has been tagged as isis-1.8.0-RC1,
isis-viewer-wicket-1.8.0-RC1, simpleapp-archetype-1.8.0-RC1 and
todoapp-archetype-1.8.0-RC1.
For instructions on how to verify the release (build from binaries and/or use
in Maven directly), see
http://isis.apache.org/contributors/verifying-releases.html
@@ -606,7 +599,7 @@ Please verify the release and cast your
Remember to update:
-* the version number (1.7.0 or whatever)
+* the version number (1.8.0 or whatever)
* the release candidate number (`RC1` or whatever)
* the repository id, as provided by Nexus earlier (`orgapacheisis-10xx` or
whatever)
@@ -620,7 +613,7 @@ Once the vote has completed, post the re
For example, use the following subject for a vote on Isis Core:
<pre>
-[RESULT] [VOTE] Apache Isis Core release 1.7.0
+[RESULT] [VOTE] Apache Isis Core release 1.8.0
</pre>
using the body (alter last line as appropriate):
@@ -643,28 +636,28 @@ If the vote has been successful, then re
You can do this using the `scripts/promoterctag.sh` script; for example:
- sh scripts/promoterctag isis-1.7.0 RC1
+ sh scripts/promoterctag isis-1.8.0 RC1
Or, if you like to execute the steps in that script by hand:
* add the new remote tag, for example:
<pre>
- git push origin refs/tags/isis-1.7.0:refs/tags/isis-1.7.0
+ git push origin refs/tags/isis-1.8.0:refs/tags/isis-1.8.0
git fetch
</pre>
* delete the `-RCn` remote tag, for example:
<pre>
- git push origin --delete refs/tags/isis-1.7.0-RC1
+ git push origin --delete refs/tags/isis-1.8.0-RC1
git fetch
</pre>
* delete the `-RCn` local tag, for example:
<pre>
- git tag -d isis-1.7.0-RC1
+ git tag -d isis-1.8.0-RC1
git fetch
</pre>
@@ -677,25 +670,25 @@ If the vote has been unsuccessful, then:
* delete the remote branch, for example:
<pre>
- git push origin --delete prepare/isis-1.7.0
+ git push origin --delete prepare/isis-1.8.0
</pre>
* delete your local branch, for example:
<pre>
- git branch -D prepare/isis-1.7.0
+ git branch -D prepare/isis-1.8.0
</pre>
* delete the remote origin server's tag, for example:
<pre>
- git push origin --delete refs/tags/isis-1.7.0-RC1
+ git push origin --delete refs/tags/isis-1.8.0-RC1
</pre>
* delete the tag that was created locally, for example:
<pre>
- git tag -d isis-1.7.0
+ git tag -d isis-1.8.0
</pre>
* drop the staging repository in [Nexus](http://repository.apache.org)
@@ -776,7 +769,7 @@ Update the Isis CMS website:
Typically this be will a new page in the core section or for one of the
components. Make a note of the URL of this new page (for use in the mailing
list announcement).
- For example, a new release of Isis Core would have a release notes page
`http://isis.apache.org/core/release-notes-1.7.0.html`
+ For example, a new release of Isis Core would have a release notes page
`http://isis.apache.org/core/release-notes-1.8.0.html`
* Do a search for `x.y.0-SNAPSHOT` and replace with `x.y.0`
@@ -813,17 +806,17 @@ Announce the release to [email protected]
For example, for a release of Apache Isis Core, use the following subject:
<pre>
-[ANN] Apache Isis version 1.7.0 Released
+[ANN] Apache Isis version 1.8.0 Released
</pre>
And use the following body (summarizing the main points as required):
<pre>
The Isis team is pleased to announce the release of:
-* Apache Isis Core version 1.7.0
-* Wicket Viewer 1.7.0
-* SimpleApp Archetype 1.7.0
-* ToDoApp Archetype 1.7.0
+* Apache Isis Core version 1.8.0
+* Wicket Viewer 1.8.0
+* SimpleApp Archetype 1.8.0
+* ToDoApp Archetype 1.8.0
New features in this release include:
- ...
@@ -861,9 +854,9 @@ Because we release from a branch, the ch
git checkout master # update master with latest
git pull
- git merge prepare/isis-1.7.0 # merge branch onto master
- git branch -d prepare/isis-1.7.0 # branch no longer needed
- git push origin --delete prepare/isis-1.7.0 # remote branch no longer
needed
+ git merge prepare/isis-1.8.0 # merge branch onto master
+ git branch -d prepare/isis-1.8.0 # branch no longer needed
+ git push origin --delete prepare/isis-1.8.0 # remote branch no longer
needed
If the core was updated, then you'll most likely need to update other POMs to
the new `-SNAPSHOT`.
Modified: isis/site/trunk/content/contributors/resources/release.sh
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/contributors/resources/release.sh?rev=1640767&r1=1640766&r2=1640767&view=diff
==============================================================================
--- isis/site/trunk/content/contributors/resources/release.sh (original)
+++ isis/site/trunk/content/contributors/resources/release.sh Thu Nov 20
17:17:41 2014
@@ -15,8 +15,8 @@ fi
# release candidate
# export ISISART=isis
-# export ISISREL=1.6.0
-# export ISISDEV=1.7.0-SNAPSHOT
+# export ISISREL=1.8.0
+# export ISISDEV=1.9.0-SNAPSHOT
# export ISISRC=RC1
read -p "ISISART? ($ISISART): " xISISART
Modified: isis/site/trunk/content/intro/getting-started/simpleapp-archetype.md
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/intro/getting-started/simpleapp-archetype.md?rev=1640767&r1=1640766&r2=1640767&view=diff
==============================================================================
--- isis/site/trunk/content/intro/getting-started/simpleapp-archetype.md
(original)
+++ isis/site/trunk/content/intro/getting-started/simpleapp-archetype.md Thu
Nov 20 17:17:41 2014
@@ -97,7 +97,7 @@ Note that if you use `mvn jetty:run`, th
Finally, you can also run the app by deploying to a standalone servlet
container such as [Tomcat](http://tomcat.apache.org).
-## Running the App with Fixtures (1.7.0-SNAPSHOT)
+## Running the App with Fixtures (1.7.0)
It is also possible to start the application with a pre-defined set of data;
useful for demos or manual exploratory
testing. This is done by specifying a _fixture script_ on the command line:
Modified: isis/site/trunk/content/intro/getting-started/todoapp-archetype.md
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/intro/getting-started/todoapp-archetype.md?rev=1640767&r1=1640766&r2=1640767&view=diff
==============================================================================
--- isis/site/trunk/content/intro/getting-started/todoapp-archetype.md
(original)
+++ isis/site/trunk/content/intro/getting-started/todoapp-archetype.md Thu Nov
20 17:17:41 2014
@@ -120,7 +120,7 @@ Note that if you use `mvn jetty:run`, th
Finally, you can also run the app by deploying to a standalone servlet
container such as [Tomcat](http://tomcat.apache.org).
-## Running the App with Fixtures (1.7.0-SNAPSHOT)
+## Running the App with Fixtures (1.7.0)
It is also possible to start the application with a pre-defined set of data;
useful for demos or manual exploratory
testing. This is done by specifying a _fixture script_ on the command line:
Modified:
isis/site/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.md
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.md?rev=1640767&r1=1640766&r2=1640767&view=diff
==============================================================================
---
isis/site/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.md
(original)
+++
isis/site/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.md
Thu Nov 20 17:17:41 2014
@@ -7,7 +7,8 @@ Most derived properties are read-only, t
other information available to the object.
Omitting the mutator (`setXxx()`) method for a property indicates both
-that the field is derived, and is not be persisted.
+that the field is derived, and is not be persisted. It should however
+be annotated with Isis' `@NotPersisted` annotation.
For example:
@@ -16,6 +17,7 @@ For example:
...
// this is the derived property
+ @NotPersisted
public Employee getManager() {
if (getDepartment() == null) { return null; }
return getDepartment().getManager();
@@ -27,8 +29,8 @@ For example:
A derived property can be made updateable (in that it takes the provided
value and does something sensible with it) simply providing a setter that
-has been annotated using both Isis' `@NotPersisted` attribute and JDO's
-`@javax.jdo.annotations.NotPersistent` attribute:
+has been annotated using both Isis' `@NotPersisted` annotation and JDO's
+`@javax.jdo.annotations.NotPersistent` annotation:
public class Employee {
public Department getDepartment() { ... }
@@ -44,7 +46,7 @@ has been annotated using both Isis' `@No
...
}
-### Read-write using a modify method (1.7.0-SNAPSHOT onwards)
+### Read-write using a modify method (1.7.0 onwards)
Alternatively, a derived property can be made updateable by providing a
`modifyXxx()` supporting method:
Modified:
isis/site/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.md
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.md?rev=1640767&r1=1640766&r2=1640767&view=diff
==============================================================================
---
isis/site/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.md
(original)
+++
isis/site/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.md
Thu Nov 20 17:17:41 2014
@@ -2,17 +2,19 @@ How to make a derived collection
--------------------------------
Collections can be derived by omitting the mutator (the same way as
-properties<!--, see ?-->).
+[properties](./how-to-04-010-How-to-make-a-derived-property.html). It should
however be annotated with Isis' `@NotPersisted` annotation.
For example:
public class Department {
+
// Standard collection
- private List<Employee> employees = new ArrayList<Employee>();
- public List<Employee> getEmployees() { ... }
- private void setEmployees(List<Employee>) { ... }
+ private SortedSet<Employee> employees = new TreeSet<Employee>();
+ public SortedSet<Employee> getEmployees() { ... }
+ private void setEmployees(SortedSet<Employee>) { ... }
// Derived collection
+ @NotPersisted
public List<Employee> getTerminatedEmployees() {
List<Employee> terminatedEmployees = new ArrayList<Employee>();
for(Employee e: employees) {