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/09/27 17:19:05 UTC
[1/2] isis git commit: ISIS-1499: enhances BookmarkServiceDefault to
also support lookup of domain services.
Repository: isis
Updated Branches:
refs/heads/master d743fe719 -> aefce85d2
ISIS-1499: enhances BookmarkServiceDefault to also support lookup of domain services.
nb: requires that the bookmark's objectType is the fully qualified class name of the service.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/79a1a60e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/79a1a60e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/79a1a60e
Branch: refs/heads/master
Commit: 79a1a60ebecef58432ab26e61ad733703132fb00
Parents: d743fe7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Sep 27 18:04:18 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Sep 27 18:05:28 2016 +0100
----------------------------------------------------------------------
.../BookmarkServiceInternalDefault.java | 56 ++++++++++++++++++--
1 file changed, 52 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/79a1a60e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
index 7eb86f5..d4f9406 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
@@ -18,12 +18,20 @@
*/
package org.apache.isis.core.metamodel.services.bookmarks;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import com.google.common.collect.Maps;
+
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.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkHolder;
import org.apache.isis.applib.services.bookmark.BookmarkService2;
+import org.apache.isis.applib.services.registry.ServiceRegistry2;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
@@ -43,7 +51,6 @@ public class BookmarkServiceInternalDefault implements BookmarkService2 {
@Programmatic
- @Override
public Object lookup(
final BookmarkHolder bookmarkHolder,
final FieldResetPolicy fieldResetPolicy) {
@@ -58,9 +65,7 @@ public class BookmarkServiceInternalDefault implements BookmarkService2 {
}
- @Programmatic
- @Override
- public Object lookup(
+ private Object lookupInternal(
final Bookmark bookmark,
final FieldResetPolicy fieldResetPolicy) {
if(bookmark == null) {
@@ -73,6 +78,25 @@ public class BookmarkServiceInternalDefault implements BookmarkService2 {
}
}
+
+ @Programmatic
+ @Override
+ public Object lookup(
+ final Bookmark bookmark,
+ final FieldResetPolicy fieldResetPolicy) {
+ if(bookmark == null) {
+ return null;
+ }
+ final String objectType = bookmark.getObjectType();
+ final Object service = lookupService(objectType);
+ if(service != null) {
+ return service;
+ }
+ return lookupInternal(bookmark, fieldResetPolicy);
+ }
+
+
+
@Programmatic
@Override
public Object lookup(final Bookmark bookmark) {
@@ -120,10 +144,34 @@ public class BookmarkServiceInternalDefault implements BookmarkService2 {
+
+
+ private Map<String,Object> servicesByClassName;
+ private Object lookupService(final String className) {
+ cacheServicesByClassNameIfNecessary();
+ return servicesByClassName.get(className);
+ }
+
+ private void cacheServicesByClassNameIfNecessary() {
+ if (servicesByClassName == null) {
+ final Map<String,Object> servicesByClassName = Maps.newHashMap();
+ final List<Object> registeredServices = serviceRegistry2.getRegisteredServices();
+ for (Object registeredService : registeredServices) {
+ final String serviceClassName = registeredService.getClass().getName();
+ servicesByClassName.put(serviceClassName, registeredService);
+ }
+ this.servicesByClassName = servicesByClassName;
+ }
+ }
+
+
@javax.inject.Inject
PersistenceSessionServiceInternal persistenceSessionServiceInternal;
@javax.inject.Inject
private WrapperFactory wrapperFactory;
+ @Inject
+ ServiceRegistry2 serviceRegistry2;
+
}
[2/2] isis git commit: ISIS-1494: EmailNotificationServiceDefault now
uses EmailService (interface) rather than the concrete default impl
Posted by da...@apache.org.
ISIS-1494: EmailNotificationServiceDefault now uses EmailService (interface) rather than the concrete default impl
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/aefce85d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/aefce85d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/aefce85d
Branch: refs/heads/master
Commit: aefce85d248eca654f94e625b62eaef721dab966
Parents: 79a1a60
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Sep 27 18:15:14 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Sep 27 18:17:25 2016 +0100
----------------------------------------------------------------------
.../services/userreg/EmailNotificationServiceDefault.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/aefce85d/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
index 12fc4b8..679b204 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
@@ -23,20 +23,23 @@ import java.net.URL;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
+
import javax.annotation.PostConstruct;
-import javax.inject.Inject;
+
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
+
import org.slf4j.Logger;
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.services.email.EmailService;
import org.apache.isis.applib.services.userreg.EmailNotificationService;
import org.apache.isis.applib.services.userreg.events.EmailEventAbstract;
import org.apache.isis.applib.services.userreg.events.EmailRegistrationEvent;
import org.apache.isis.applib.services.userreg.events.PasswordResetEvent;
-import org.apache.isis.core.runtime.services.email.EmailServiceDefault;
import static java.util.regex.Pattern.compile;
import static java.util.regex.Pattern.quote;
@@ -172,7 +175,7 @@ public class EmailNotificationServiceDefault implements EmailNotificationService
//region > dependencies
@javax.inject.Inject
- private EmailServiceDefault emailService;
+ private EmailService emailService;
//endregion
}