You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by bu...@apache.org on 2014/11/20 18:17:52 UTC

svn commit: r929878 - in /websites/staging/isis/trunk: cgi-bin/ content/ content/contributors/ content/contributors/resources/ content/intro/getting-started/ content/more-advanced-topics/

Author: buildbot
Date: Thu Nov 20 17:17:52 2014
New Revision: 929878

Log:
Staging update by buildbot for isis

Modified:
    websites/staging/isis/trunk/cgi-bin/   (props changed)
    websites/staging/isis/trunk/content/   (props changed)
    websites/staging/isis/trunk/content/contributors/release-process.html
    websites/staging/isis/trunk/content/contributors/resources/release.sh
    websites/staging/isis/trunk/content/intro/getting-started/simpleapp-archetype.html
    websites/staging/isis/trunk/content/intro/getting-started/todoapp-archetype.html
    websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.html
    websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.html

Propchange: websites/staging/isis/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Nov 20 17:17:52 2014
@@ -1 +1 @@
-1640602
+1640767

Propchange: websites/staging/isis/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Nov 20 17:17:52 2014
@@ -1 +1 @@
-1640602
+1640767

Modified: websites/staging/isis/trunk/content/contributors/release-process.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/release-process.html (original)
+++ websites/staging/isis/trunk/content/contributors/release-process.html Thu Nov 20 17:17:52 2014
@@ -541,10 +541,10 @@ git pull --ff-only
 
 <p>Then, determine/confirm the version number of the module being released.  This should be in line with our <a href="versioning-policy.html">semantic versioning policy</a>.</p>
 
-<p>Next, create a release branch in your local Git repo, using the version number determined and as per <a href="release-branch-and-tag-names.html">these standards</a>.  For example, to prepare release candidate #1 for a release 1.7.0 of <code>core</code>, use:</p>
+<p>Next, create a release branch in your local Git repo, using the version number determined and as per <a href="release-branch-and-tag-names.html">these standards</a>.  For example, to prepare release candidate #1 for a release 1.8.0 of <code>core</code>, use:</p>
 
 <pre>
-git checkout -b prepare/isis-1.7.0
+git checkout -b prepare/isis-1.8.0
 </pre>
 
 <p>All release preparation is done locally; if we are successful, this branch will be pushed back to master.</p>
@@ -563,11 +563,11 @@ Unless otherwise stated, you should assu
 
 <p>The version number of the parent pom should reflect the branch name that you are now on (with a <code>-SNAPSHOT</code> 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.</p>
 
-<p>For example, if releasing <code>core</code> version <code>1.7.0</code>, the POM should read:</p>
+<p>For example, if releasing <code>core</code> version <code>1.8.0</code>, the POM should read:</p>
 
 <pre><code>&lt;groupId&gt;org.apache.isis.core&lt;/groupId&gt;
 &lt;artifactId&gt;isis&lt;/artifactId&gt;
-&lt;version&gt;1.7.0-SNAPSHOT&lt;/version&gt;
+&lt;version&gt;1.8.0-SNAPSHOT&lt;/version&gt;
 </code></pre>
 
 <h3>Update parent (Isis Core)</h3>
@@ -593,7 +593,7 @@ Unless otherwise stated, you should assu
 <pre><code>&lt;parent&gt;
     &lt;groupId&gt;org.apache.isis.core&lt;/groupId&gt;
     &lt;artifactId&gt;isis&lt;/artifactId&gt;
-    &lt;version&gt;1.7.0&lt;/version&gt;
+    &lt;version&gt;1.8.0&lt;/version&gt;
     &lt;relativePath /&gt;
 &lt;/parent&gt;
 </code></pre>
@@ -810,9 +810,9 @@ licenses to remove from supplemental-mod
 <p>Run the dry-run as follows:</p>
 
 <pre><code>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
 </code></pre>
 
 <p>where:</p>
@@ -846,24 +846,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>
 
 <p>If you didn't provide the <code>releaseVersion</code>, <code>tag</code> and <code>developmentVersion</code> tags, then you'll be prompted for them.  You can generally accept the defaults that Maven offers.</p>
@@ -871,9 +864,9 @@ What is the release version for "Apache 
 <p>Assuming this completes successfully, re-run the command, but without the <code>dryRun</code> flag and specifying <code>resume=false</code> (to ignore the generated <code>release.properties</code> file that gets generated as a side-effect of using <code>git</code>).  You can also set the <code>skipTests</code> flag since they would have been run during the previous dry run:</p>
 
 <pre><code>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
 </code></pre>
 
 <blockquote>
@@ -882,12 +875,12 @@ What is the release version for "Apache 
 
 <h3>Post-prepare sanity check</h3>
 
-<p>You should end up with artifacts in your local repo with the new version <code>1.7.0</code>. There are then a couple of sanity checks that you can perform:</p>
+<p>You should end up with artifacts in your local repo with the new version <code>1.8.0</code>. There are then a couple of sanity checks that you can perform:</p>
 
 <ul>
 <li>unzip the source-release ZIP and check it builds</p>
 
-<p>For example, if building core, then the ZIP file will be called <code>isis-1.7.0-source-release.zip</code> and should reside in <code>~/.m2/repository/org/apache/isis/core/isis/1.7.0</code> directory.</p>
+<p>For example, if building core, then the ZIP file will be called <code>isis-1.8.0-source-release.zip</code> and should reside in <code>~/.m2/repository/org/apache/isis/core/isis/1.8.0</code> directory.</p>
 
 <p>Unzip in a new directory, and build.</li>
 <li>Inspect the <code>DEPENDENCIES</code> file.</p>
@@ -942,17 +935,17 @@ Check that the generated app's artifacts
 [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
@@ -1013,13 +1006,13 @@ re
 
 <p>To push the branch, for example:</p>
 
-<pre><code>git checkout prepare/isis-1.7.0
-git push -u origin prepare/isis-1.7.0
+<pre><code>git checkout prepare/isis-1.8.0
+git push -u origin prepare/isis-1.8.0
 </code></pre>
 
 <p>To push the tag, with the <code>-RCn</code> suffix, for example:</p>
 
-<pre><code>git push origin refs/tags/isis-1.7.0:refs/tags/isis-1.7.0-RC1
+<pre><code>git push origin refs/tags/isis-1.8.0:refs/tags/isis-1.8.0-RC1
 git fetch
 </code></pre>
 
@@ -1038,28 +1031,28 @@ git fetch
 <p>Use the following subject:</p>
 
 <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>
 
 <p>And use the following body:</p>
 
 <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
 
@@ -1073,7 +1066,7 @@ Please verify the release and cast your 
 <p>Remember to update:</p>
 
 <ul>
-<li>the version number (1.7.0 or whatever)</li>
+<li>the version number (1.8.0 or whatever)</li>
 <li>the release candidate number (<code>RC1</code> or whatever)</li>
 <li>the repository id, as provided by Nexus earlier (<code>orgapacheisis-10xx</code> or whatever)</li>
 </ul>
@@ -1087,7 +1080,7 @@ Please verify the release and cast your 
 <p>For example, use the following subject for a vote on Isis Core:</p>
 
 <pre>
-[RESULT] [VOTE] Apache Isis Core release 1.7.0
+[RESULT] [VOTE] Apache Isis Core release 1.8.0
 </pre>
 
 <p>using the body (alter last line as appropriate):</p>
@@ -1110,7 +1103,7 @@ The vote is (UN)SUCCESSFUL.
 
 <p>You can do this using the <code>scripts/promoterctag.sh</code> script; for example:</p>
 
-<pre><code>sh scripts/promoterctag isis-1.7.0 RC1
+<pre><code>sh scripts/promoterctag isis-1.8.0 RC1
 </code></pre>
 
 <p>Or, if you like to execute the steps in that script by hand:</p>
@@ -1120,7 +1113,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <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>
 
@@ -1129,7 +1122,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <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>
 
@@ -1138,7 +1131,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <pre>
-  git tag -d isis-1.7.0-RC1
+  git tag -d isis-1.8.0-RC1
   git fetch
 </pre>
 
@@ -1153,7 +1146,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <pre>
-  git push origin --delete prepare/isis-1.7.0
+  git push origin --delete prepare/isis-1.8.0
 </pre>
 
 <ul>
@@ -1161,7 +1154,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <pre>
-  git branch -D prepare/isis-1.7.0
+  git branch -D prepare/isis-1.8.0
 </pre>
 
 <ul>
@@ -1169,7 +1162,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <pre>
-  git push origin --delete refs/tags/isis-1.7.0-RC1
+  git push origin --delete refs/tags/isis-1.8.0-RC1
 </pre>
 
 <ul>
@@ -1177,7 +1170,7 @@ The vote is (UN)SUCCESSFUL.
 </ul>
 
 <pre>
-  git tag -d isis-1.7.0
+  git tag -d isis-1.8.0
 </pre>
 
 <ul>
@@ -1259,7 +1252,7 @@ isis/
 
 <p>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).</p>
 
-<p>For example, a new release of Isis Core would have a release notes page <code>http://isis.apache.org/core/release-notes-1.7.0.html</code></li>
+<p>For example, a new release of Isis Core would have a release notes page <code>http://isis.apache.org/core/release-notes-1.8.0.html</code></li>
 <li>Do a search for <code>x.y.0-SNAPSHOT</code> and replace with <code>x.y.0</code></li>
 <li>Update the version number on the <a href="../intro/getting-started/quickstart-archetype.html">quickstart archetype</a> and the <a href="../intro/getting-started/simple-archetype.html">simple archetype</a> pages.</li>
 <li>For core (if released) and for each released component's about page, update the link to the latest release notes providing details of the contents of the release.</li>
@@ -1294,17 +1287,17 @@ TODO: some sort of process required here
 <p>For example, for a release of Apache Isis Core, use the following subject:</p>
 
 <pre>
-[ANN] Apache Isis version 1.7.0 Released
+[ANN] Apache Isis version 1.8.0 Released
 </pre>
 
 <p>And use the following body (summarizing the main points as required):</p>
 
 <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:
 - ...
@@ -1341,9 +1334,9 @@ Enjoy!
 
 <pre><code>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
 </code></pre>
 
 <p>If the core was updated, then you'll most likely need to update other POMs to the new <code>-SNAPSHOT</code>.</p>

Modified: websites/staging/isis/trunk/content/contributors/resources/release.sh
==============================================================================
--- websites/staging/isis/trunk/content/contributors/resources/release.sh (original)
+++ websites/staging/isis/trunk/content/contributors/resources/release.sh Thu Nov 20 17:17:52 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: websites/staging/isis/trunk/content/intro/getting-started/simpleapp-archetype.html
==============================================================================
--- websites/staging/isis/trunk/content/intro/getting-started/simpleapp-archetype.html (original)
+++ websites/staging/isis/trunk/content/intro/getting-started/simpleapp-archetype.html Thu Nov 20 17:17:52 2014
@@ -530,7 +530,7 @@ mvn jetty:run -D jetty.port=9090
 
 <p>Finally, you can also run the app by deploying to a standalone servlet container such as <a href="http://tomcat.apache.org">Tomcat</a>.</p>
 
-<h2>Running the App with Fixtures (1.7.0-SNAPSHOT)</h2>
+<h2>Running the App with Fixtures (1.7.0)</h2>
 
 <p>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 <em>fixture script</em> on the command line:</p>

Modified: websites/staging/isis/trunk/content/intro/getting-started/todoapp-archetype.html
==============================================================================
--- websites/staging/isis/trunk/content/intro/getting-started/todoapp-archetype.html (original)
+++ websites/staging/isis/trunk/content/intro/getting-started/todoapp-archetype.html Thu Nov 20 17:17:52 2014
@@ -553,7 +553,7 @@ mvn jetty:run -D jetty.port=9090
 
 <p>Finally, you can also run the app by deploying to a standalone servlet container such as <a href="http://tomcat.apache.org">Tomcat</a>.</p>
 
-<h2>Running the App with Fixtures (1.7.0-SNAPSHOT)</h2>
+<h2>Running the App with Fixtures (1.7.0)</h2>
 
 <p>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 <em>fixture script</em> on the command line:</p>

Modified: websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.html
==============================================================================
--- websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.html (original)
+++ websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-010-How-to-make-a-derived-property.html Thu Nov 20 17:17:52 2014
@@ -429,7 +429,8 @@
 other information available to the object.</p>
 
 <p>Omitting the mutator (<code>setXxx()</code>) method for a property indicates both
-that the field is derived, and is not be persisted.</p>
+that the field is derived, and is not be persisted.  It should however
+be annotated with Isis' <code>@NotPersisted</code> annotation.</p>
 
 <p>For example:</p>
 
@@ -438,6 +439,7 @@ that the field is derived, and is not be
     ...
 
     // this is the derived property
+    @NotPersisted
     public Employee getManager() {
         if (getDepartment() == null) { return null; }
         return getDepartment().getManager();
@@ -450,8 +452,8 @@ that the field is derived, and is not be
 
 <p>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' <code>@NotPersisted</code> attribute and JDO's
-<code>@javax.jdo.annotations.NotPersistent</code> attribute:</p>
+has been annotated using both Isis' <code>@NotPersisted</code> annotation and JDO's
+<code>@javax.jdo.annotations.NotPersistent</code> annotation:</p>
 
 <pre><code>public class Employee {
     public Department getDepartment() { ... }
@@ -468,7 +470,7 @@ has been annotated using both Isis' <cod
 }
 </code></pre>
 
-<h3>Read-write using a modify method (1.7.0-SNAPSHOT onwards)</h3>
+<h3>Read-write using a modify method (1.7.0 onwards)</h3>
 
 <p>Alternatively, a derived property can be made updateable by providing a 
 <code>modifyXxx()</code> supporting method:</p>

Modified: websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.html
==============================================================================
--- websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.html (original)
+++ websites/staging/isis/trunk/content/more-advanced-topics/how-to-04-020-How-to-make-a-derived-collection.html Thu Nov 20 17:17:52 2014
@@ -424,17 +424,19 @@
 <h2>How to make a derived collection</h2>
 
 <p>Collections can be derived by omitting the mutator (the same way as
-properties<!--, see ?-->).</p>
+<a href="./how-to-04-010-How-to-make-a-derived-property.html">properties</a>.  It should however be annotated with Isis' <code>@NotPersisted</code> annotation.</p>
 
 <p>For example:</p>
 
 <pre><code>public class Department {
+
     // Standard collection
-    private List&lt;Employee&gt; employees = new ArrayList&lt;Employee&gt;();
-    public List&lt;Employee&gt; getEmployees() { ... }
-    private void setEmployees(List&lt;Employee&gt;) { ... }
+    private SortedSet&lt;Employee&gt; employees = new TreeSet&lt;Employee&gt;();
+    public SortedSet&lt;Employee&gt; getEmployees() { ... }
+    private void setEmployees(SortedSet&lt;Employee&gt;) { ... }
 
     // Derived collection
+    @NotPersisted
     public List&lt;Employee&gt; getTerminatedEmployees() {
         List&lt;Employee&gt; terminatedEmployees = new ArrayList&lt;Employee&gt;();
         for(Employee e: employees) {