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 2014/05/15 09:45:29 UTC

[1/2] git commit: ISIS-776: either autoComplete or choices for fixture script drop-down.

Repository: isis
Updated Branches:
  refs/heads/master 992c01732 -> f67aa096f


ISIS-776: either autoComplete or choices for fixture script drop-down.


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

Branch: refs/heads/master
Commit: 944cb27b4fe1690e6b1335c1febcad762275a179
Parents: 992c017
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu May 15 08:38:37 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu May 15 08:38:37 2014 +0100

----------------------------------------------------------------------
 .../applib/fixturescripts/FixtureScripts.java   | 32 ++++++++++++++++++--
 .../fixture/todo/ToDoItemsFixturesService.java  | 10 +++++-
 2 files changed, 39 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/944cb27b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
index 3bfa8ad..9e8ad42 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
@@ -23,11 +23,23 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Set;
+
 import javax.annotation.PostConstruct;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
 import com.google.common.collect.Lists;
+
 import org.apache.isis.applib.AbstractService;
 import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.*;
+import org.apache.isis.applib.annotation.DescribedAs;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.MinLength;
+import org.apache.isis.applib.annotation.MultiLine;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.Prototype;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.classdiscovery.ClassDiscoveryService;
@@ -126,6 +138,10 @@ public abstract class FixtureScripts extends AbstractService {
 
     // //////////////////////////////////////
     
+    /**
+     * To make this action usable in the UI, override either {@link #choices0RunFixtureScript()} or 
+     * {@link #autoComplete0RunFixtureScript(String)} with <tt>public</tt> visibility</tt>.
+     */
     @Prototype
     @MemberOrder(sequence="10")
     public List<FixtureResult> runFixtureScript(
@@ -143,9 +159,21 @@ public abstract class FixtureScripts extends AbstractService {
 
         return fixtureScript.run(parameters);
     }
-    public List<FixtureScript> choices0RunFixtureScript() {
+    protected List<FixtureScript> choices0RunFixtureScript() {
         return fixtureScriptList;
     }
+    protected List<FixtureScript> autoComplete0RunFixtureScript(final @MinLength(1) String arg) {
+        return Lists.newArrayList(
+                Collections2.filter(fixtureScriptList, new Predicate<FixtureScript>() {
+                    @Override
+                    public boolean apply(FixtureScript input) {
+                        return contains(input.getFriendlyName()) || contains(input.getLocalName());
+                    }
+                    private boolean contains(String str) {
+                        return str != null && str.contains(arg);
+                    }
+                }));
+    }
     public String disableRunFixtureScript(final FixtureScript fixtureScript, final String parameters) {
         return fixtureScriptList.isEmpty()? "No fixture scripts found under package '" + packagePrefix + "'": null;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/944cb27b/example/application/quickstart_wicket_restful_jdo/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java b/example/application/quickstart_wicket_restful_jdo/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
index 5e59b73..5b5722b 100644
--- a/example/application/quickstart_wicket_restful_jdo/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
+++ b/example/application/quickstart_wicket_restful_jdo/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
@@ -37,7 +37,15 @@ public class ToDoItemsFixturesService extends FixtureScripts {
         super("fixture.todo");
     }
 
-    
+    /**
+     * Raising visibility to <tt>public</tt> so that choices are available for first param
+     * of {@link #runFixtureScript(FixtureScript, String)}.
+     */
+    @Override
+    public List<FixtureScript> choices0RunFixtureScript() {
+        return super.choices0RunFixtureScript();
+    }
+
     @Prototype
     @MemberOrder(sequence="20")
     public List<FixtureResult> recreateToDoItemsForCurrent() {


[2/2] git commit: ISIS-782: install FixtureClock in IsisSystemForTest

Posted by da...@apache.org.
ISIS-782: install FixtureClock in IsisSystemForTest


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

Branch: refs/heads/master
Commit: f67aa096f668307041f54a82ae0d45c4ec665890
Parents: 944cb27
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu May 15 08:45:14 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu May 15 08:45:14 2014 +0100

----------------------------------------------------------------------
 .../integtestsupport/IsisSystemForTest.java     | 32 +++++++++++++++-----
 1 file changed, 24 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f67aa096/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
index 8122490..5c4fc79 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
@@ -29,6 +29,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.log4j.Level;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -36,6 +37,7 @@ import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
 import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.fixtures.FixtureClock;
 import org.apache.isis.applib.fixtures.InstallableFixture;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -146,8 +148,6 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
     private IsisSystemDefault isisSystem;
     private AuthenticationSession authenticationSession;
 
-    private DomainObjectContainer container;
-    
     private final IsisConfiguration configuration;
     private final PersistenceMechanismInstaller persistenceMechanismInstaller;
     private final AuthenticationRequest authenticationRequest;
@@ -159,6 +159,8 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
     
     private final MetaModelValidator metaModelValidator;
     private final ProgrammingModel programmingModel;
+    
+    private DomainObjectContainer container;
 
     
     ////////////////////////////////////////////////////////////
@@ -179,8 +181,8 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
         
         private final List <Listener> listeners = Lists.newArrayList();
 
-        private org.apache.log4j.Level level = null;
-        
+        private org.apache.log4j.Level level;
+
         public Builder with(IsisConfiguration configuration) {
             this.configuration = configuration;
             return this;
@@ -214,7 +216,11 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
         public IsisSystemForTest build() {
             final List<Object> servicesIfAny = asList(services);
             final List<InstallableFixture> fixturesIfAny = asList(fixtures);
-            return new IsisSystemForTest(configuration, programmingModel, metaModelValidator, persistenceMechanismInstaller, authenticationRequest, servicesIfAny, fixturesIfAny, listeners);
+            IsisSystemForTest isisSystem = new IsisSystemForTest(configuration, programmingModel, metaModelValidator, persistenceMechanismInstaller, authenticationRequest, servicesIfAny, fixturesIfAny, listeners);
+            if(level != null) {
+                isisSystem.setLevel(level);
+            }
+            return isisSystem;
         }
 
         private static <T> List<T> asList(T[] objects) {
@@ -243,7 +249,15 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
         return new Builder();
     }
 
-    private IsisSystemForTest(IsisConfiguration configuration, ProgrammingModel programmingModel, MetaModelValidator metaModelValidator, PersistenceMechanismInstaller persistenceMechanismInstaller, AuthenticationRequest authenticationRequest, List<Object> services, List<InstallableFixture> fixtures, List<Listener> listeners) {
+    private IsisSystemForTest(
+            final IsisConfiguration configuration, 
+            final ProgrammingModel programmingModel, 
+            final MetaModelValidator metaModelValidator, 
+            final PersistenceMechanismInstaller persistenceMechanismInstaller, 
+            final AuthenticationRequest authenticationRequest, 
+            final List<Object> services, 
+            final List<InstallableFixture> fixtures, 
+            final List<Listener> listeners) {
         this.configuration = configuration;
         this.programmingModel = programmingModel;
         this.metaModelValidator = metaModelValidator;
@@ -287,7 +301,6 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
     }
 
     private void setUpSystem(FireListeners fireListeners) throws Exception {
-        
 
         boolean firstTime = isisSystem == null;
         if(fireListeners.shouldFire()) {
@@ -299,6 +312,10 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
             isisLoggingConfigurer.configureLogging(".", new String[]{});
 
             isisSystem = createIsisSystem(services);
+
+            // ensures that a FixtureClock is installed as the singleton underpinning the ClockService
+            FixtureClock.initialize();
+
             isisSystem.init();
             IsisContext.closeSession();
         }
@@ -698,7 +715,6 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
      */
     public void setContainer(DomainObjectContainer container) {
         this.container = container;
-        
     }