You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/05/09 17:39:35 UTC

[isis] 04/04: ISIS-2112: fixes provisioning of MetamodelEventService

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 2112_SpringBoot
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 6d6100e5edb0b174b4e3d2c0456d26a731dcb5c8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu May 9 19:39:25 2019 +0200

    ISIS-2112: fixes provisioning of MetamodelEventService
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2112
---
 .../events/MetamodelEventSupport_Spring.java       | 111 +++++++++++++++++++++
 .../context/session/RuntimeEventService.java       |   8 --
 2 files changed, 111 insertions(+), 8 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/events/MetamodelEventSupport_Spring.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/events/MetamodelEventSupport_Spring.java
new file mode 100644
index 0000000..f7e5b4d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/events/MetamodelEventSupport_Spring.java
@@ -0,0 +1,111 @@
+package org.apache.isis.core.metamodel.services.events;
+
+import java.lang.annotation.Annotation;
+import java.util.concurrent.CompletionStage;
+
+import javax.enterprise.event.Event;
+import javax.enterprise.event.NotificationOptions;
+import javax.enterprise.util.TypeLiteral;
+
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import org.apache.isis.applib.events.domain.ActionDomainEvent;
+import org.apache.isis.applib.events.domain.CollectionDomainEvent;
+import org.apache.isis.applib.events.domain.PropertyDomainEvent;
+import org.apache.isis.applib.events.ui.CssClassUiEvent;
+import org.apache.isis.applib.events.ui.IconUiEvent;
+import org.apache.isis.applib.events.ui.LayoutUiEvent;
+import org.apache.isis.applib.events.ui.TitleUiEvent;
+import org.apache.isis.commons.internal.debug._Probe;
+
+import lombok.RequiredArgsConstructor;
+
+@Configuration
+public class MetamodelEventSupport_Spring {
+    
+    @Bean
+    public Event<CssClassUiEvent<Object>> cssClassUiEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<CssClassUiEvent<Object>>(publisher);
+    }
+    
+    @Bean
+    public Event<IconUiEvent<Object>> iconUiEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<IconUiEvent<Object>>(publisher);
+    }
+    
+    @Bean
+    public Event<LayoutUiEvent<Object>> layoutUiEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<LayoutUiEvent<Object>>(publisher);
+    }
+    
+    @Bean
+    public Event<TitleUiEvent<Object>> titleUiEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<TitleUiEvent<Object>>(publisher);
+    }
+    
+    @Bean
+    public Event<ActionDomainEvent<?>> actionDomainEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<ActionDomainEvent<?>>(publisher);
+    }
+    
+    @Bean
+    public Event<PropertyDomainEvent<?, ?>> propertyDomainEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<PropertyDomainEvent<?, ?>>(publisher);
+    }
+    
+    @Bean
+    public Event<CollectionDomainEvent<?, ?>> collectionDomainEvents(ApplicationEventPublisher publisher) {
+        return new SimpleEvent<CollectionDomainEvent<?, ?>>(publisher);
+    }
+    
+    // -- HELPER
+    
+    @RequiredArgsConstructor
+    static class SimpleEvent<T> implements Event<T> {
+
+        private final ApplicationEventPublisher publisher;
+        
+        _Probe probe = _Probe.unlimited().label("SimpleEvent");
+
+        @Override
+        public void fire(T event) {
+            probe.println("fire(%s)", event.getClass());
+            publisher.publishEvent(event);
+        }
+
+        @Override
+        public <U extends T> CompletionStage<U> fireAsync(U event) {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public <U extends T> CompletionStage<U> fireAsync(U event, NotificationOptions options) {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public Event<T> select(Annotation... qualifiers) {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public <U extends T> Event<U> select(Class<U> subtype, Annotation... qualifiers) {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public <U extends T> Event<U> select(TypeLiteral<U> subtype, Annotation... qualifiers) {
+            // TODO Auto-generated method stub
+            return null;
+        }
+        
+    }
+    
+
+}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/session/RuntimeEventService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/session/RuntimeEventService.java
index e46fe39..9b7588b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/session/RuntimeEventService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/session/RuntimeEventService.java
@@ -22,7 +22,6 @@ import javax.enterprise.event.Event;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
-import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.applib.fixturescripts.events.FixturesInstalledEvent;
 import org.apache.isis.applib.fixturescripts.events.FixturesInstallingEvent;
 import org.apache.isis.core.runtime.system.session.IsisSession;
@@ -77,13 +76,6 @@ public class RuntimeEventService {
 	public void fireFixturesInstalled(FixturesInstalledEvent fixturesInstalledEvent) {
 		fixturesInstalledEvents.fire(fixturesInstalledEvent);
 	}
-	
-	// -- METAMODEL EVENTS
-	
-	public void fireCssClassUiEvent(CssClassUiEvent<Object> cssClassUiEvent) {
-		// TODO Auto-generated method stub
-		
-	}
 		
 
 }