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 2016/10/05 09:46:46 UTC

[1/8] isis git commit: ISIS-1465: improving interim-release.sh, build before tagging

Repository: isis
Updated Branches:
  refs/heads/maint-1.13.1 364a1aac2 -> 62853b952


ISIS-1465: improving interim-release.sh, build before tagging


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/d647bdf5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/d647bdf5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/d647bdf5

Branch: refs/heads/maint-1.13.1
Commit: d647bdf54822f019c3007429a3a38065e732afe5
Parents: 364a1aa
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 29 11:58:01 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 29 11:58:01 2016 +0100

----------------------------------------------------------------------
 interim-release.sh | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/d647bdf5/interim-release.sh
----------------------------------------------------------------------
diff --git a/interim-release.sh b/interim-release.sh
index 337d7e7..097b8bd 100644
--- a/interim-release.sh
+++ b/interim-release.sh
@@ -27,6 +27,9 @@ popd >/dev/null
 echo "Committing changes"
 git commit -am "bumping to $VERSION"
 
+echo "Building"
+mvn clean install -o
+
 echo "tagging"
 git tag $TAG
 


[3/8] isis git commit: ISIS-1507: switches off the QueryResultsCache while fixtures are being installed.

Posted by da...@apache.org.
ISIS-1507: switches off the QueryResultsCache while fixtures are being installed.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f6976b14
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f6976b14
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f6976b14

Branch: refs/heads/maint-1.13.1
Commit: f6976b14f241a104fcb90b6b0fb74fd3da7b9fca
Parents: 242e76b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 30 08:54:27 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 30 08:54:27 2016 +0100

----------------------------------------------------------------------
 .../guides/_rgsvc_api_EventBusService.adoc      |  2 +-
 core/applib/pom.xml                             |  6 ++
 .../events/system/FixturesInstalledEvent.java   | 32 +++++++++
 .../events/system/FixturesInstallingEvent.java  | 32 +++++++++
 .../fixturespec/FixtureScriptsDefault.java      | 15 +++-
 .../queryresultscache/QueryResultsCache.java    | 73 +++++++++++++++++++-
 core/pom.xml                                    |  6 ++
 7 files changed, 160 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/adocs/documentation/src/main/asciidoc/guides/_rgsvc_api_EventBusService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rgsvc_api_EventBusService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rgsvc_api_EventBusService.adoc
index c7ed940..e8b6763 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rgsvc_api_EventBusService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rgsvc_api_EventBusService.adoc
@@ -131,7 +131,7 @@ or if using Axonframework, the subscriber uses a different annotation:
 @DomainService(nature=NatureOfService.DOMAIN)
 public class MySubscribingDomainService
     @Programmatic
-    @org.axonframework.eventhandling.annotation.EventHandle
+    @org.axonframework.eventhandling.annotation.EventHandler
     public void on(ActionDomainEvent ev) { ... }
     ...
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/core/applib/pom.xml
----------------------------------------------------------------------
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index b7eef02..a2a1d41 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -114,6 +114,12 @@
             <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.axonframework</groupId>
+            <artifactId>axon-core</artifactId>
+            <optional>true</optional>
+        </dependency>
+
         <!-- DataNucleus' standard JDO support -->
         <dependency>
             <groupId>javax.jdo</groupId>

http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstalledEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstalledEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstalledEvent.java
new file mode 100644
index 0000000..83060c3
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstalledEvent.java
@@ -0,0 +1,32 @@
+/*
+ *  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.
+ */
+
+package org.apache.isis.applib.events.system;
+
+import java.util.EventObject;
+
+public class FixturesInstalledEvent extends EventObject {
+
+    private static final long serialVersionUID = 1L;
+
+    public FixturesInstalledEvent(final Object source) {
+        super(source);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstallingEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstallingEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstallingEvent.java
new file mode 100644
index 0000000..812c4e6
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/system/FixturesInstallingEvent.java
@@ -0,0 +1,32 @@
+/*
+ *  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.
+ */
+
+package org.apache.isis.applib.events.system;
+
+import java.util.EventObject;
+
+public class FixturesInstallingEvent extends EventObject {
+
+    private static final long serialVersionUID = 1L;
+
+    public FixturesInstallingEvent(final Object source) {
+        super(source);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/core/applib/src/main/java/org/apache/isis/applib/services/fixturespec/FixtureScriptsDefault.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/fixturespec/FixtureScriptsDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/fixturespec/FixtureScriptsDefault.java
index 6401aab..ae88f38 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/fixturespec/FixtureScriptsDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/fixturespec/FixtureScriptsDefault.java
@@ -21,7 +21,6 @@ package org.apache.isis.applib.services.fixturespec;
 import java.util.List;
 
 import javax.annotation.PostConstruct;
-import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -32,9 +31,12 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.events.system.FixturesInstalledEvent;
+import org.apache.isis.applib.events.system.FixturesInstallingEvent;
 import org.apache.isis.applib.fixturescripts.FixtureResult;
 import org.apache.isis.applib.fixturescripts.FixtureScript;
 import org.apache.isis.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.applib.services.eventbus.EventBusService;
 
 /**
  * Default instance of {@link FixtureScripts}, instantiated automatically by the framework if no custom user-defined instance was
@@ -101,7 +103,12 @@ public class FixtureScriptsDefault extends FixtureScripts {
                 multiLine = 10)
             @Parameter(optionality = Optionality.OPTIONAL)
             final String parameters) {
-        return super.runFixtureScript(fixtureScript, parameters);
+        try {
+            eventBusService.post(new FixturesInstallingEvent(this));
+            return super.runFixtureScript(fixtureScript, parameters);
+        } finally {
+            eventBusService.post(new FixturesInstalledEvent(this));
+        }
     }
 
     /**
@@ -216,7 +223,9 @@ public class FixtureScriptsDefault extends FixtureScripts {
 
     //region > injected services
     @javax.inject.Inject
-    private FixtureScriptsSpecificationProvider fixtureScriptsSpecificationProvider;
+    FixtureScriptsSpecificationProvider fixtureScriptsSpecificationProvider;
+    @javax.inject.Inject
+    EventBusService eventBusService;
     //endregion
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
index 12accb1..82b45a8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
@@ -20,9 +20,13 @@ import java.util.Arrays;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
 
 import com.google.common.collect.Maps;
+import com.google.common.eventbus.Subscribe;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -30,7 +34,10 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.events.system.FixturesInstalledEvent;
+import org.apache.isis.applib.events.system.FixturesInstallingEvent;
 import org.apache.isis.applib.services.WithTransactionScope;
+import org.apache.isis.applib.services.eventbus.EventBusService;
 
 /**
  * This service (API and implementation) provides a mechanism by which idempotent query results can be cached for the duration of an interaction.
@@ -48,6 +55,7 @@ public class QueryResultsCache implements WithTransactionScope {
 
     private static final Logger LOG = LoggerFactory.getLogger(QueryResultsCache.class);
 
+
     public static class Key {
         private final Class<?> callingClass;
         private final String methodName;
@@ -134,17 +142,35 @@ public class QueryResultsCache implements WithTransactionScope {
 
     @Programmatic
     public <T> T execute(final Callable<T> callable, final Class<?> callingClass, final String methodName, final Object... keys) {
+        if(control.isFixturesInstalling()) {
+            try {
+                return callable.call();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
         final Key cacheKey = new Key(callingClass, methodName, keys);
-        return execute(callable, cacheKey);
+        return executeWithCaching(callable, cacheKey);
     }
 
     @Programmatic
     @SuppressWarnings("unchecked")
     public <T> T execute(final Callable<T> callable, final Key cacheKey) {
+        if(control.isFixturesInstalling()) {
+            try {
+                return callable.call();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return executeWithCaching(callable, cacheKey);
+    }
+
+    protected <T> T executeWithCaching(final Callable<T> callable, final Key cacheKey) {
         try {
             final Value<?> cacheValue = cache.get(cacheKey);
             logHitOrMiss(cacheKey, cacheValue);
-            if(cacheValue != null) { 
+            if(cacheValue != null) {
                 return (T) cacheValue.getResult();
             }
 
@@ -208,4 +234,47 @@ public class QueryResultsCache implements WithTransactionScope {
         cache.clear();
     }
 
+    /**
+     * In separate class because {@link QueryResultsCache} itself is request-scoped
+     */
+    @DomainService(nature = NatureOfService.DOMAIN)
+    public static class Control {
+
+        @PostConstruct
+        public void postConstruct() {
+            eventBusService.register(this);
+        }
+
+        @PreDestroy
+        public void preDestroy() {
+            eventBusService.unregister(this);
+        }
+
+        @Subscribe
+        @org.axonframework.eventhandling.annotation.EventHandler
+        public void on(FixturesInstallingEvent ev) {
+            fixturesInstalling = true;
+        }
+
+        @Subscribe
+        @org.axonframework.eventhandling.annotation.EventHandler
+        public void on(FixturesInstalledEvent ev) {
+            fixturesInstalling = false;
+        }
+
+        private boolean fixturesInstalling;
+
+        public boolean isFixturesInstalling() {
+            return fixturesInstalling;
+        }
+
+        @Inject
+        EventBusService eventBusService;
+    }
+
+
+    @Inject
+    Control control;
+
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/f6976b14/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 66cfce5..2c9adf8 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -153,6 +153,7 @@
         <guice.version>4.0</guice.version>
         <picocontainer.version>2.15</picocontainer.version>
 
+
         <dom4j.version>1.6.1</dom4j.version>
         <jdom.version>2.0.2</jdom.version>
         <xstream.version>1.4.8</xstream.version>
@@ -1306,6 +1307,11 @@ ${license.additional-notes}
                 <artifactId>guava</artifactId>
                 <version>${guava.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.axonframework</groupId>
+                <artifactId>axon-core</artifactId>
+                <version>${axon-core.version}</version>
+            </dependency>
 
             <!-- Logging -->
             <dependency>


[6/8] isis git commit: ISIS-1482: synchronizes access to PoWriter, to avoid deadlocks

Posted by da...@apache.org.
ISIS-1482: synchronizes access to PoWriter, to avoid deadlocks


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fd7f1052
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fd7f1052
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fd7f1052

Branch: refs/heads/maint-1.13.1
Commit: fd7f1052924b71b697f4b424d66da4dbd2a7cfcf
Parents: 89886e0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 30 11:44:17 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 30 11:44:17 2016 +0100

----------------------------------------------------------------------
 .../org/apache/isis/core/runtime/services/i18n/po/PoWriter.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/fd7f1052/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
index 4ae4b93..562ac51 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
@@ -136,7 +136,7 @@ class PoWriter extends PoAbstract {
         return null;
     }
 
-    private Block blockFor(final String msgId) {
+    private synchronized Block blockFor(final String msgId) {
         Block block = blocksByMsgId.get(msgId);
         if(block == null) {
             block = new Block(msgId);


[5/8] isis git commit: ISIS-1508: makes the clean up functionality within IsisTransactionRule (as used by integ tests) more robust to a badly behaving test.

Posted by da...@apache.org.
ISIS-1508: makes the clean up functionality within IsisTransactionRule (as used by integ tests) more robust to a badly behaving test.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/89886e0c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/89886e0c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/89886e0c

Branch: refs/heads/maint-1.13.1
Commit: 89886e0c1743f66d625078200071928d1975e9a6
Parents: f3f53f6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 30 09:03:59 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 30 09:11:32 2016 +0100

----------------------------------------------------------------------
 .../IntegrationTestAbstract.java                | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/89886e0c/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
index c9ee2ea..935577d 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
@@ -39,6 +39,7 @@ import org.apache.isis.applib.services.scratchpad.Scratchpad;
 import org.apache.isis.applib.services.sessmgmt.SessionManagementService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.xactn.TransactionService;
+import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.specsupport.scenarios.ScenarioExecution;
 import org.apache.isis.core.specsupport.specs.CukeGlueAbstract;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -214,6 +215,10 @@ public abstract class IntegrationTestAbstract {
                         isft.endTran();
                         isft.nextSession();
                     } catch(final Throwable e) {
+
+                        // if test failed to clean up after itself, then take care of it here.
+                        endTransactionTilDone();
+
                         isft.nextSession();
                         final List<Throwable> causalChain = Throwables.getCausalChain(e);
                         // if underlying cause is an applib-defined exception, throw that rather than Isis' wrapper exception
@@ -226,6 +231,21 @@ public abstract class IntegrationTestAbstract {
                         throw e;
                     }
                 }
+
+                protected void endTransactionTilDone() {
+                    IsisTransactionManager tranMgr = isft.getIsisSessionFactory().getCurrentSession()
+                                                         .getPersistenceSession().getTransactionManager();
+                    int count = 0;
+                    while(tranMgr.getTransactionLevel() > 0 &&
+                          count++ < 10              // just in case, to prevent an infinite loop...
+                            ) {
+                        try {
+                            tranMgr.endTransaction();
+                        } catch(Exception ignore) {
+                            // ignore
+                        }
+                    }
+                }
             };
         }
     }


[8/8] isis git commit: ISIS-1510: allows configuration properties to be overridden from either system properties or a new ISIS_OPTS environment variable

Posted by da...@apache.org.
ISIS-1510: allows configuration properties to be overridden from either system properties or a new ISIS_OPTS environment variable


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/62853b95
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/62853b95
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/62853b95

Branch: refs/heads/maint-1.13.1
Commit: 62853b95249d48212ca340765fa498e82b14d0a3
Parents: b09f968
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Oct 5 11:44:58 2016 +0200
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Oct 5 11:44:58 2016 +0200

----------------------------------------------------------------------
 .../guides/_ugbtb_deployment_docker.adoc        | 56 ++++++++++++++++-
 .../configbuilder/IsisConfigurationBuilder.java | 23 +++++--
 .../PrimerForEnvironmentVariableISIS_OPT.java   | 66 ++++++++++++++++++++
 ...PrimerForEnvironmentVariablesIsisPrefix.java | 35 +++++++++++
 .../PrimerForSystemProperties.java              | 52 +++++++++++++++
 .../runtime/optionhandler/OptionHandler.java    |  3 +-
 .../core/webapp/IsisWebAppBootstrapper.java     |  4 +-
 .../wicket/viewer/IsisWicketApplication.java    |  2 +-
 8 files changed, 230 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_docker.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_docker.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_docker.adoc
index 26ed652..1a42d17 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_docker.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_docker.adoc
@@ -5,6 +5,21 @@
 :_imagesdir: images/
 
 
+When running the application within a Docker container, the problem that must be solved is to override the
+configuration properties baked into the war file, eg to point to the app to a different JDBC URL.
+
+There are several options.
+
+[WARNING]
+====
+All the options here rely on starting the Docker container with a set of arguments, some of which would very likely
+be passwords for database connections etc.  As such these techniques are only suitable where the security of the
+Docker host can be assured.
+====
+
+
+== Using an `overrides.properties` file
+
 In addition to loading the regular configuration properties from `WEB-INF` directory (described
 xref:rgcfg.adoc#_rgcfg_configuration-files[here]), Apache Isis will also load the `overrides.properties` file.
 
@@ -16,7 +31,7 @@ While the regular configuration files are "baked into" the application WAR file,
 created dynamically as part of the Docker `ENTRYPOINT` script, eg as documented in the
 link:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/[Dockerfile best practices].
 
-This, Docker can be supported relatively trivially:
+Thus, Docker can be supported as follows:
 
 * use `mvn` (as currently) to create a WAR file; set up with the `pom.xml` with the JDBC drivers of all DB servers that
   you might want to connect to (hsqldb, sql server, postgresql etc)
@@ -33,3 +48,42 @@ over the WAR file itself.
 
 * use `ENTRYPOINT` (and probably also `CMD`) to invoke above script.
 
+
+
+== Using system properties
+
+(As of `1.13.1-SNAPSHOT`), the servlet context initializer will search for any system properties called `isis.xxx`
+ and if present will use them as overrides.
+
+Thus, an alternative option for a Docker image is to bootstrap the servlet container (Tomcat, Jetty) with appropriate
+system properties set up.  For example, with Tomcat this can be done by writing into the `conf/catalina.properties` file
+(see for example link:http://stackoverflow.com/a/16566920[this stackoverflow] post).
+
+The Docker's `ENTRYPOINT` therefore just needs to parse the Docker container's own command line arguments and use to
+create this file.
+
+
+== Using the `ISIS_OPT` environment variable
+
+(As of `1.13.1-SNAPSHOT`), the servlet context initializer will search for an environment variable called `$ISIS_OPTS`
+ and if present will parse the content as a set of key/value pairs.  Each key/value pair is separated by "||".
+
+For example:
+
+[source,bash]
+----
+export ISIS_OPTS="isis.appManifest=domainapp.app.DomainAppAppManifestWithFixtures||isis.objects.editing=false"
+----
+
+can be used to run with a different app manifest, and also to disable editing of properties.
+
+To use a different separator, set the (optional) `$ISIS_OPTS_SEPARATOR` variable.
+
+[source,bash]
+----
+export ISIS_OPTS_SEPARATOR=";"
+export ISIS_OPTS="isis.appManifest=domainapp.app.DomainAppAppManifestWithFixtures;isis.objects.editing=false"
+----
+
+The Docker's `ENTRYPOINT` therefore just needs to parse the Docker container's own command line arguments and use to
+set this environment variable.

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
index 447983d..ba75b22 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
@@ -106,7 +106,12 @@ public final class IsisConfigurationBuilder {
         return composite;
     }
 
-    public void addDefaultConfigurationResources() {
+    public void addDefaultConfigurationResourcesAndPrimers() {
+        addDefaultConfigurationResources();
+        addDefaultPrimers();
+    }
+
+    private void addDefaultConfigurationResources() {
         IsisConfigurationDefault.ContainsPolicy ignorePolicy = IsisConfigurationDefault.ContainsPolicy.IGNORE;
         NotFoundPolicy continuePolicy = NotFoundPolicy.CONTINUE;
 
@@ -147,6 +152,11 @@ public final class IsisConfigurationBuilder {
         addConfigurationResource("overrides.properties", NotFoundPolicy.CONTINUE, IsisConfigurationDefault.ContainsPolicy.OVERWRITE);
     }
 
+    private void addDefaultPrimers() {
+        primeWith(new PrimerForSystemProperties());
+        primeWith(new PrimerForEnvironmentVariablesIsisPrefix());
+        primeWith(new PrimerForEnvironmentVariableISIS_OPT());
+    }
 
     //endregion
 
@@ -300,11 +310,15 @@ public final class IsisConfigurationBuilder {
         return true;
     }
 
-    public void primeWith(final OptionHandler optionHandler) {
+    public interface Primer {
+        void prime(IsisConfigurationBuilder isisConfigurationBuilder);
+    }
+
+    public void primeWith(final Primer primer) {
         ensureNotLocked();
 
-        LOG.debug("priming configurations for '{}'", optionHandler);
-        optionHandler.prime(this);
+        LOG.debug("priming configurations for '{}'", primer);
+        primer.prime(this);
     }
 
     //endregion
@@ -376,5 +390,4 @@ public final class IsisConfigurationBuilder {
 
     //endregion
 
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariableISIS_OPT.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariableISIS_OPT.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariableISIS_OPT.java
new file mode 100644
index 0000000..e0bebd9
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariableISIS_OPT.java
@@ -0,0 +1,66 @@
+/*
+ *  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.
+ */
+package org.apache.isis.core.commons.configbuilder;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.google.common.base.Splitter;
+import com.google.common.collect.Maps;
+
+public class PrimerForEnvironmentVariableISIS_OPT implements IsisConfigurationBuilder.Primer {
+
+    public static final String OPT_ENV = "ISIS_OPTS";
+    public static final String SEPARATOR_ENV = "ISIS_OPTS_SEPARATOR";
+    public static final String SEPARATOR_DEFAULT = "||";
+
+    @Override
+    public void prime(final IsisConfigurationBuilder builder) {
+        final String separator = determineSeparator();
+        final String env = System.getenv(OPT_ENV);
+        for (Map.Entry<String, String> entry : fromEnv(env, separator).entrySet()) {
+            final String envVarName = entry.getKey();
+            final String envVarValue = entry.getValue();
+            builder.put(envVarName, envVarValue);
+        }
+    }
+
+    private static String determineSeparator() {
+        final String separator = System.getenv(SEPARATOR_ENV);
+        if (separator != null) {
+            return separator;
+        }
+        return SEPARATOR_DEFAULT;
+    }
+
+    private static Map<String, String> fromEnv(final String env, final String separator) {
+        final LinkedHashMap<String, String> map = Maps.newLinkedHashMap();
+        if (env != null) {
+            final List<String> keyAndValues = Splitter.on(separator).splitToList(env);
+            for (String keyAndValue : keyAndValues) {
+                final List<String> parts = Splitter.on("=").splitToList(keyAndValue);
+                if (parts.size() == 2) {
+                    map.put(parts.get(0), parts.get(1));
+                }
+            }
+        }
+        return map;
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariablesIsisPrefix.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariablesIsisPrefix.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariablesIsisPrefix.java
new file mode 100644
index 0000000..b5e5a4d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForEnvironmentVariablesIsisPrefix.java
@@ -0,0 +1,35 @@
+/*
+ *  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.
+ */
+package org.apache.isis.core.commons.configbuilder;
+
+import java.util.Map;
+
+public class PrimerForEnvironmentVariablesIsisPrefix implements IsisConfigurationBuilder.Primer {
+    @Override
+    public void prime(final IsisConfigurationBuilder builder) {
+        final Map<String, String> envVars = System.getenv();
+        for (Map.Entry<String, String> entry : envVars.entrySet()) {
+            final String envVarName = entry.getKey();
+            final String envVarValue = entry.getValue();
+            if (envVarName.startsWith("isis.")) {
+                builder.put(envVarName, envVarValue);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForSystemProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForSystemProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForSystemProperties.java
new file mode 100644
index 0000000..1dc9002
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/PrimerForSystemProperties.java
@@ -0,0 +1,52 @@
+/*
+ *  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.
+ */
+package org.apache.isis.core.commons.configbuilder;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import com.google.common.collect.Maps;
+
+public class PrimerForSystemProperties implements IsisConfigurationBuilder.Primer {
+
+    @Override
+    public void prime(final IsisConfigurationBuilder builder) {
+        final Properties properties = System.getProperties();
+        for (Map.Entry<String, String> entry : fromProperties(properties).entrySet()) {
+            final String envVarName = entry.getKey();
+            final String envVarValue = entry.getValue();
+            if (envVarName.startsWith("isis.")) {
+                builder.put(envVarName, envVarValue);
+            }
+        }
+    }
+
+    private static Map<String, String> fromProperties(final Properties properties) {
+        final LinkedHashMap<String, String> map = Maps.newLinkedHashMap();
+        for (final Map.Entry<Object, Object> entry : properties.entrySet()) {
+            final Object key = entry.getKey();
+            final Object value = entry.getValue();
+            if (key instanceof String && value instanceof String) {
+                map.put((String) key, (String) value);
+            }
+        }
+        return map;
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
index 1419063..366af3c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
@@ -24,12 +24,11 @@ import org.apache.commons.cli.Options;
 
 import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 
-public interface OptionHandler  {
+public interface OptionHandler extends IsisConfigurationBuilder.Primer {
 
     void addOption(Options options);
 
     boolean handle(CommandLine commandLine, BootPrinter bootPrinter, Options options);
 
-    void prime(IsisConfigurationBuilder isisConfigurationBuilder);
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
index 603d44e..9123aea 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
@@ -40,9 +40,9 @@ import org.apache.isis.core.runtime.logging.IsisLoggingConfigurer;
 import org.apache.isis.core.runtime.runner.IsisInjectModule;
 import org.apache.isis.core.runtime.runner.opts.OptionHandlerInitParameters;
 import org.apache.isis.core.runtime.system.DeploymentType;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
 import org.apache.isis.core.runtime.system.SystemConstants;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
 import org.apache.isis.core.webapp.config.ResourceStreamSourceForWebInf;
 
 /**
@@ -84,7 +84,7 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
             loggingConfigurer.configureLogging(webInfDir, new String[0]);
 
             final IsisConfigurationBuilder isisConfigurationBuilder = obtainIsisConfigurationBuilder(servletContext);
-            isisConfigurationBuilder.addDefaultConfigurationResources();
+            isisConfigurationBuilder.addDefaultConfigurationResourcesAndPrimers();
 
             final DeploymentType deploymentType = determineDeploymentType(servletContext, isisConfigurationBuilder);
             addConfigurationResourcesForDeploymentType(isisConfigurationBuilder, deploymentType);

http://git-wip-us.apache.org/repos/asf/isis/blob/62853b95/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 5839215..c40b7d9 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -256,7 +256,7 @@ public class IsisWicketApplication
             getResourceSettings().setParentFolderPlaceholder("$up$");
 
             final IsisConfigurationBuilder isisConfigurationBuilder = obtainConfigBuilder();
-            isisConfigurationBuilder.addDefaultConfigurationResources();
+            isisConfigurationBuilder.addDefaultConfigurationResourcesAndPrimers();
 
             final IsisConfigurationDefault configuration = isisConfigurationBuilder.getConfiguration();
 


[2/8] isis git commit: ISIS-1465: interim-release.sh needs to push the remote branch, so can be picked up by CI

Posted by da...@apache.org.
ISIS-1465: interim-release.sh needs to push the remote branch, so can be picked up by CI


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/242e76bc
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/242e76bc
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/242e76bc

Branch: refs/heads/maint-1.13.1
Commit: 242e76bc5ed79f99e2bbff68deab83bb1cf6ec4a
Parents: d647bdf
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 29 22:47:17 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 29 22:47:17 2016 +0100

----------------------------------------------------------------------
 interim-release.sh | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/242e76bc/interim-release.sh
----------------------------------------------------------------------
diff --git a/interim-release.sh b/interim-release.sh
index 097b8bd..fd9afc2 100644
--- a/interim-release.sh
+++ b/interim-release.sh
@@ -36,6 +36,16 @@ git tag $TAG
 echo "pushing tag"
 git push $REMOTE $TAG
 
+echo "removing any earlier remote branches"
+for a in `git ls-remote --heads $REMOTE  | sed 's?.*refs/heads/??' | grep interim`
+do
+    git push $REMOTE --delete $a
+done
+
+# need to push branch, so will be picked up for building by CI
+echo "pushing branch"
+git push $REMOTE $BRANCH
+
 echo "switching back to original branch"
 git checkout $CURR_BRANCH
 


[4/8] isis git commit: EST-1507: fixes unit test for QueryResultsCache

Posted by da...@apache.org.
EST-1507: fixes unit test for QueryResultsCache


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f3f53f63
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f3f53f63
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f3f53f63

Branch: refs/heads/maint-1.13.1
Commit: f3f53f63cc20996ee2b45388b3ebdcf0460493d4
Parents: f6976b1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 30 09:09:25 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 30 09:11:24 2016 +0100

----------------------------------------------------------------------
 .../QueryResultsCacheTest.java                  | 43 ++++++++++++++++++--
 1 file changed, 40 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f3f53f63/core/applib/src/test/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheTest.java
----------------------------------------------------------------------
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheTest.java
index d5210dd..d0e99cf 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheTest.java
@@ -16,22 +16,30 @@
  */
 package org.apache.isis.applib.services.queryresultscache;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
 import java.util.concurrent.Callable;
 
 import org.junit.Before;
 import org.junit.Test;
 
+import org.apache.isis.applib.events.system.FixturesInstallingEvent;
+import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
 public class QueryResultsCacheTest {
 
     private QueryResultsCache queryResultsCache;
 
+    QueryResultsCache.Control control;
+
     @Before
     public void setUp() throws Exception {
         queryResultsCache = new QueryResultsCache();
+        control = new QueryResultsCache.Control();
+        queryResultsCache.control = control;
     }
+
     @Test
     public void execute() {
         
@@ -80,4 +88,33 @@ public class QueryResultsCacheTest {
         assertThat(i[0], is(5));
     }
     
+    @Test
+    public void cachingDisabled() {
+
+        // given fixtures installing, hence caching disabled
+        control.on(new FixturesInstallingEvent(new FixtureScriptsDefault()));
+
+        final int[] i = new int[]{0};
+
+        Callable<String> callable = new Callable<String>(){
+
+            @Override
+            public String call() throws Exception {
+                i[0]++;
+                return "foo";
+            }
+
+        };
+
+        // when, then (a cache miss)
+        assertThat(i[0], is(0));
+        assertThat(queryResultsCache.execute(callable, QueryResultsCacheTest.class, "caching", "a","b",1,2), is("foo"));
+        assertThat(i[0], is(1));
+
+        // when, then should also be a cache miss - would've been a hit previously
+        assertThat(queryResultsCache.execute(callable, QueryResultsCacheTest.class, "caching", "a","b",1,2), is("foo"));
+        assertThat(i[0], is(2));
+
+    }
+
 }


[7/8] isis git commit: ISIS-1507: makes Control injected service settable from unit tests.

Posted by da...@apache.org.
ISIS-1507: makes Control injected service settable from unit tests.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b09f9685
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b09f9685
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b09f9685

Branch: refs/heads/maint-1.13.1
Commit: b09f9685dae4e44a2055d730e5a5bc676c7b8304
Parents: fd7f105
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Sep 30 15:42:11 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Sep 30 15:42:11 2016 +0100

----------------------------------------------------------------------
 .../isis/applib/services/queryresultscache/QueryResultsCache.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/b09f9685/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
index 82b45a8..6e39a3e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
@@ -274,7 +274,7 @@ public class QueryResultsCache implements WithTransactionScope {
 
 
     @Inject
-    Control control;
+    protected Control control;
 
 
 }