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/11/26 12:08:28 UTC

[03/11] isis git commit: ISIS-1542: adds HSQL DB Manager to simpleapp application

ISIS-1542: adds HSQL DB Manager to simpleapp application


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

Branch: refs/heads/maint-1.13.2
Commit: 792be3edbed0832b14eacd5c5bad504037a61f77
Parents: cbdf6c2
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Nov 24 10:46:57 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Nov 24 10:46:57 2016 +0000

----------------------------------------------------------------------
 .../services/dbmanager/HsqlDbManagerMenu.java   | 73 ++++++++++++++++++++
 .../services/homepage/HomePageService.java      | 17 ++---
 2 files changed, 77 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/792be3ed/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java b/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
new file mode 100644
index 0000000..ab8397a
--- /dev/null
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
@@ -0,0 +1,73 @@
+/*
+ *  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 domainapp.application.services.dbmanager;
+
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
+import com.google.common.base.Strings;
+
+import org.hsqldb.util.DatabaseManagerSwing;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
+
+@DomainService(
+        nature = NatureOfService.VIEW_MENU_ONLY
+)
+@DomainServiceLayout(
+        named = "Prototyping",
+        menuOrder = "999",
+        menuBar = DomainServiceLayout.MenuBar.SECONDARY
+)
+public class HsqlDbManagerMenu {
+
+
+    private String url;
+
+    @PostConstruct
+    public void init(Map<String,String> properties) {
+        this.url = properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL");
+    }
+
+
+    @Action(
+            semantics = SemanticsOf.SAFE,
+            restrictTo = RestrictTo.PROTOTYPING
+    )
+    @ActionLayout(
+            named = "HSQL DB Manager",
+            cssClassFa = "database"
+    )
+    public void hsqlDbManager() {
+        String[] args = {"--url", url, "--noexit" };
+        DatabaseManagerSwing.main(args);
+    }
+    public boolean hideHsqlDbManager() {
+        return Strings.isNullOrEmpty(url) || !url.contains("hsqldb:mem");
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/792be3ed/example/application/simpleapp/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/services/homepage/HomePageService.java b/example/application/simpleapp/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
index 112b7ba..71a5b30 100644
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
+++ b/example/application/simpleapp/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
@@ -23,29 +23,20 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.HomePage;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.applib.services.factory.FactoryService;
 
 @DomainService(
         nature = NatureOfService.VIEW_CONTRIBUTIONS_ONLY // trick to suppress the actions from the top-level menu
 )
 public class HomePageService {
 
-    //region > homePage (action)
-
-    @Action(
-            semantics = SemanticsOf.SAFE
-    )
+    @Action(semantics = SemanticsOf.SAFE)
     @HomePage
     public HomePageViewModel homePage() {
-        return serviceRegistry.injectServicesInto(new HomePageViewModel());
+        return factoryService.instantiate(HomePageViewModel.class);
     }
 
-    //endregion
-
-    //region > injected services
 
     @javax.inject.Inject
-    ServiceRegistry serviceRegistry;
-
-    //endregion
+    FactoryService factoryService;
 }