Thank you for your quick response !
If you look at DemoTaskService.java main method, it has following code before starting MinaTaskServer.
// Add users
Map vars = new HashMap();
Reader reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadUsers.mvel" ) );
Map<String, User> users = ( Map<String, User> ) eval( reader, vars );
for ( User user : users.values() ) {
taskSession.addUser( user );
}
reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadGroups.mvel" ) );
Map<String, Group> groups = ( Map<String, Group> ) eval( reader, vars );
for ( Group group : groups.values() ) {
taskSession.addGroup( group );
}
What does it do with all users/groups loaded?
If you look at org.jbpm.integration.console.TaskManagement, after initializing TaskClient it has following,
try {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = null;
String propertyName = "roles.properties";
if (loader instanceof URLClassLoader) {
URLClassLoader ucl = (URLClassLoader) loader;
url = ucl.findResource(propertyName);
}
if (url == null) {
url = loader.getResource(propertyName);
}
if (url == null) {
System.out.println("No properties file: " + propertyName + " found");
} else {
Properties bundle = new Properties();
InputStream is = url.openStream();
if (is != null) {
bundle.load(is);
is.close();
} else {
throw new IOException("Properties file " + propertyName + " not available");
}
Enumeration<?> propertyNames = bundle.propertyNames();
while (propertyNames.hasMoreElements()) {
String key = (String) propertyNames.nextElement();
String value = bundle.getProperty(key);
groupListMap.put(key, Arrays.asList(value.split(",")));
System.out.print("Loaded user " + key + ":");
for (String role: groupListMap.get(key)) {
System.out.print(" " + role);
}
System.out.println();
}
}
} catch (Throwable t) {
t.printStackTrace();
}
which loads all the roles of all the users? It can be changed to load on demand for the particular user?
I am using Oracle but the user/group/roles gets loaded in the session all the time on startup.