diff --git a/jans-scim/service/pom.xml b/jans-scim/service/pom.xml
index b0d8fcacfbe..42df51574c3 100644
--- a/jans-scim/service/pom.xml
+++ b/jans-scim/service/pom.xml
@@ -86,6 +86,10 @@
io.jans
jans-core-cache
+
+ io.jans
+ jans-core-message
+
io.jans
jans-core-radius
diff --git a/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java b/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java
index fecdfaa2616..535112b0b65 100644
--- a/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java
+++ b/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java
@@ -21,6 +21,7 @@
import io.jans.orm.model.base.InumEntry;
import io.jans.service.cache.CacheConfiguration;
import io.jans.service.document.store.conf.DocumentStoreConfiguration;
+import io.jans.service.message.model.config.MessageConfiguration;
/**
* GluuConfiguration
@@ -76,6 +77,10 @@ public class GluuConfiguration extends InumEntry implements Serializable {
@JsonObject
private CacheConfiguration cacheConfiguration;
+ @AttributeName(name = "jansMessageConf")
+ @JsonObject
+ private MessageConfiguration messageConfiguration;
+
@AttributeName(name = "jansDocStoreConf")
@JsonObject
private DocumentStoreConfiguration documentStoreConfiguration;
@@ -190,6 +195,14 @@ public void setCacheConfiguration(CacheConfiguration cacheConfiguration) {
this.cacheConfiguration = cacheConfiguration;
}
+ public MessageConfiguration getMessageConfiguration() {
+ return messageConfiguration;
+ }
+
+ public void setMessageConfiguration(MessageConfiguration messageConfiguration) {
+ this.messageConfiguration = messageConfiguration;
+ }
+
public DocumentStoreConfiguration getDocumentStoreConfiguration() {
return documentStoreConfiguration;
}
diff --git a/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java b/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java
index f3d1db2733a..f62e12eeb94 100644
--- a/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java
+++ b/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java
@@ -6,23 +6,25 @@
package io.jans.scim.service;
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.enterprise.context.RequestScoped;
-import jakarta.enterprise.inject.Produces;
-import jakarta.inject.Inject;
+import org.slf4j.Logger;
-import io.jans.scim.model.conf.AppConfiguration;
import io.jans.model.SmtpConfiguration;
import io.jans.orm.PersistenceEntryManagerFactory;
import io.jans.orm.model.PersistenceConfiguration;
import io.jans.orm.service.PersistanceFactoryService;
+import io.jans.scim.model.GluuConfiguration;
+import io.jans.scim.model.conf.AppConfiguration;
import io.jans.service.cache.CacheConfiguration;
import io.jans.service.cache.InMemoryConfiguration;
import io.jans.service.document.store.conf.DocumentStoreConfiguration;
import io.jans.service.document.store.conf.LocalDocumentStoreConfiguration;
-import org.slf4j.Logger;
-
-import io.jans.scim.model.GluuConfiguration;
+import io.jans.service.message.model.config.MessageConfiguration;
+import io.jans.service.message.model.config.MessageProviderType;
+import io.jans.service.message.model.config.NullMessageConfiguration;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
/**
* Holds factory methods to create services
@@ -75,6 +77,26 @@ public CacheConfiguration getCacheConfiguration() {
return cacheConfiguration;
}
+ @Produces
+ @ApplicationScoped
+ public MessageConfiguration getMessageConfiguration() {
+ MessageConfiguration messageConfiguration = configurationService.getConfiguration().getMessageConfiguration();
+ if (messageConfiguration == null || messageConfiguration.getMessageProviderType() == null) {
+ log.error("Failed to read message configuration from DB. Please check configuration jsMessageConf attribute " +
+ "that must contain message configuration JSON represented by MessageConfiguration.class. Appliance DN: " + configurationService.getConfiguration().getDn());
+ log.info("Creating fallback Null message configuration ... ");
+
+ messageConfiguration = new MessageConfiguration();
+ messageConfiguration.setMessageProviderType(MessageProviderType.NULL);
+ messageConfiguration.setNullConfiguration(new NullMessageConfiguration());
+
+ log.info("NULL message configuration is created.");
+ }
+
+ log.info("Message configuration: " + messageConfiguration);
+ return messageConfiguration;
+ }
+
@Produces @ApplicationScoped
public DocumentStoreConfiguration getDocumentStoreConfiguration() {
DocumentStoreConfiguration documentStoreConfiguration = configurationService.getConfiguration().getDocumentStoreConfiguration();