aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls
diff options
context:
space:
mode:
authorThomas Knall <t.knall@datentechnik-innovation.com>2015-01-29 13:47:36 +0100
committerThomas Knall <t.knall@datentechnik-innovation.com>2015-01-29 13:47:36 +0100
commita3002d5966703675e982f5699b7a829d2dc22d84 (patch)
treef607f5c0ece9b96213abf770bef420409a626797 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls
parenta60b5f9a3c247056ab4b688d0e24c6d944b50b7e (diff)
downloadmoa-id-spss-a3002d5966703675e982f5699b7a829d2dc22d84.tar.gz
moa-id-spss-a3002d5966703675e982f5699b7a829d2dc22d84.tar.bz2
moa-id-spss-a3002d5966703675e982f5699b7a829d2dc22d84.zip
Integrate processes with module discovery.
- Fix AuthModuleImpl process resource uri. - Create package at.gv.egovernment.moa.id.auth.modules with submodule "internal" and "stork". - Rename AuthModuleImpl to DefaultAuthModuleImpl (placed in at.gv.egovernment.moa.id.auth.modules.internal). - Move stork specific tasks to "...stork.tasks" and internal modules to "...internal.tasks". - Fix bean classes in applicationContext.xml - Move process descriptions to at.gv.egovernment.moa.id.auth.modules.[internal|stork]. - Add STORKAuthModuleImpl.
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/AuthModuleImpl.java23
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/ModuleRegistration.java29
2 files changed, 15 insertions, 37 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/AuthModuleImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/AuthModuleImpl.java
deleted file mode 100644
index cbe5c5932..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/AuthModuleImpl.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package at.gv.egovernment.moa.id.moduls.moduleregistration;
-
-import com.datentechnik.process_engine.api.ExecutionContext;
-
-public class AuthModuleImpl implements AuthModule {
-
- @Override
- public int getPriority() {
- // neutral priority between Integer.MIN_VALUE and Integer.MAX_VALUE
- return 0;
- }
-
- @Override
- public String selectProcess(ExecutionContext context) {
- return context.get("ccc") == null ? "DefaultAuthentication" : null;
- }
-
- @Override
- public String[] getProcessDefinitions() {
- return new String[] { "DefaultAuthentication" };
- }
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/ModuleRegistration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/ModuleRegistration.java
index b90e0d94f..35fbce053 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/ModuleRegistration.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/moduleregistration/ModuleRegistration.java
@@ -32,13 +32,13 @@ public class ModuleRegistration {
private static ModuleRegistration instance = new ModuleRegistration();
- private List<AuthModule> orderedModules = new ArrayList<>();
+ private List<AuthModule> priorizedModules = new ArrayList<>();
@Autowired
private ApplicationContext ctx;
@Autowired
- ProcessEngine processEngine;
+ private ProcessEngine processEngine;
private Logger log = LoggerFactory.getLogger(getClass());
@@ -58,20 +58,21 @@ public class ModuleRegistration {
initSpringModules();
// order modules according to their priority
- orderModules();
+ priorizeModules();
}
/**
* Discovers modules which use the ServiceLoader mechanism.
*/
private void initServiceLoaderModules() {
- log.debug("Discovering modules which use the ServiceLoader mechanism.");
+ log.info("Looking for auth modules.");
ServiceLoader<AuthModule> loader = ServiceLoader.load(AuthModule.class);
Iterator<AuthModule> modules = loader.iterator();
while (modules.hasNext()) {
AuthModule module = modules.next();
+ log.info("Detected module {}", module.getClass().getName());
registerResourceUris(module);
- orderedModules.add(module);
+ priorizedModules.add(module);
}
}
@@ -83,7 +84,7 @@ public class ModuleRegistration {
Map<String, AuthModule> modules = ctx.getBeansOfType(AuthModule.class);
for (AuthModule module : modules.values()) {
registerResourceUris(module);
- orderedModules.add(module);
+ priorizedModules.add(module);
}
}
@@ -96,17 +97,17 @@ public class ModuleRegistration {
private void registerResourceUris(AuthModule module) {
for (String uri : module.getProcessDefinitions()) {
Resource resource = ctx.getResource(uri);
- if (resource.exists()) {
- log.debug("Registering process definition resource uri: '{}'.", resource);
+ if (resource.isReadable()) {
+ log.info("Registering process definition resource: '{}'.", resource);
try (InputStream processDefinitionInputStream = resource.getInputStream()) {
processEngine.registerProcessDefinition(processDefinitionInputStream);
} catch (IOException e) {
- log.info("Resource uri: '{}' could NOT be read.", resource);
+ log.error("Resource uri: '{}' could NOT be read.", uri, e);
} catch (ProcessDefinitionParserException e) {
- log.warn("Error while parsing process definition in '{}'", resource);
+ log.error("Error while parsing process definition in '{}'", uri, e);
}
} else {
- log.info("Resource uri: '{}' does NOT exist.", resource);
+ log.error("Resource uri: '{}' cannot be read.", uri);
}
}
}
@@ -114,8 +115,8 @@ public class ModuleRegistration {
/**
* Order the modules in descending order according to their priority.
*/
- private void orderModules() {
- Collections.sort(orderedModules, new Comparator<AuthModule>() {
+ private void priorizeModules() {
+ Collections.sort(priorizedModules, new Comparator<AuthModule>() {
@Override
public int compare(AuthModule thisAuthModule, AuthModule otherAuthModule) {
int thisOrder = thisAuthModule.getPriority();
@@ -135,7 +136,7 @@ public class ModuleRegistration {
* @return the process id or {@code null}
*/
public String selectProcess(ExecutionContext context) {
- for (AuthModule module : orderedModules) {
+ for (AuthModule module : priorizedModules) {
String id = module.selectProcess(context);
if (StringUtils.isNotEmpty(id)) {
log.debug("Process with id '{}' selected, for context '{}'.", id, context);