you have to implement your own UserGroupCallback class... something like this:
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.inject.Alternative;
import org.kie.internal.task.api.UserGroupCallback;
@Alternative
public class MyUserGroupCallback implements UserGroupCallback {
public boolean existsGroup(String groupId) {
return true;
}
public boolean existsUser(String userId) {
return true;
}
public List<String> getGroupsForUser(String userId, List<String> groupIds, List<String> allExistingGroupIds) {
List<String> l = new ArrayList<String>();
return l;
}
}
And then provide a Producer of your implemetation:
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder;
import org.jbpm.runtime.manager.impl.cdi.InjectableRegisterableItemsFactory;
import org.kie.api.io.ResourceType;
import org.kie.internal.io.ResourceFactory;
import org.kie.internal.runtime.manager.RuntimeEnvironment;
import org.kie.internal.runtime.manager.cdi.qualifier.PerProcessInstance;
import org.kie.internal.runtime.manager.cdi.qualifier.PerRequest;
import org.kie.internal.runtime.manager.cdi.qualifier.Singleton;
import org.kie.internal.task.api.UserGroupCallback;
@ApplicationScoped
public class SimpleProcessRuntimeProducer {
@SuppressWarnings("cdi-ambiguous-dependency")
@Inject
private InjectableRegisterableItemsFactory factory;
@Inject
private UserGroupCallback usergroupCallback;
@Produces
public UserGroupCallback produceUserGroupCallback() {
return usergroupCallback;
}
@PersistenceUnit(unitName = "unitname")
private EntityManagerFactory emf;
@Produces
public EntityManagerFactory produceEntityManagerFactory() {
if (this.emf == null) {
this.emf = Persistence
.createEntityManagerFactory("unitname");
}
return this.emf;
}
@Produces
@Singleton
@PerProcessInstance
@PerRequest
public RuntimeEnvironment produceEnvironment(EntityManagerFactory emf) {
RuntimeEnvironment environment = RuntimeEnvironmentBuilder
.getDefault()
.entityManagerFactory(emf)
.userGroupCallback(usergroupCallback)
.registerableItemsFactory(factory)
.addAsset(ResourceFactory.newClassPathResource("process.bpmn"),ResourceType.BPMN2)
.get();
return environment;
}
}
Hope this helps