private ActivitiContextFactoryImpl.CustomStandaloneProcessEngineConfiguration getProcessEngineConfiguration() { ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); if (ctx instanceof ActivitiContextImpl) { return ((ActivitiContextImpl) ctx).getCustomStandaloneProcessEngineConfiguration(); } else { throw new IllegalArgumentException(ctx + " not an instance of " + ActivitiContextImpl.class.getName()); } }
private static Properties loadUserAttributesProperty(ProcessToolContext ctx) { if (ctx == null) { ctx = ProcessToolContext.Util.getThreadProcessToolContext(); } if (ctx == null) { throw new RuntimeException("Unable to find ProcessToolContext in thread local"); } String properties = LiferaySettingsProvider.getLdapCustomUserAttributes(); if (properties == null || !Strings.hasText(properties)) { return null; } properties = properties.replace(';', '\n'); try { return PropertiesUtil.load(properties); } catch (IOException e) { throw new RuntimeException(e); } }
protected ProcessEngine getProcessEngine() { ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); if (ctx instanceof ActivitiContextImpl) { ProcessEngine engine = ((ActivitiContextImpl) ctx).getProcessEngine(); if (user != null && user.getLogin() != null) engine.getIdentityService().setAuthenticatedUserId(user.getLogin()); return engine; } else { throw new IllegalArgumentException(ctx + " not an instance of " + ActivitiContextImpl.class.getName()); } }
@Override public void adminReassignProcessTask(ProcessInstance pi, BpmTask bpmTask, String userLogin) { log.severe("User: " + user.getLogin() + " attempting to reassign task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to user: " + userLogin); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); pi = getProcessData(pi.getInternalId(), ctx); ProcessEngine processEngine = getProcessEngine(); TaskService ts = processEngine.getTaskService(); Task task = ts.createTaskQuery().taskId(bpmTask.getInternalTaskId()).singleResult(); if (nvl(userLogin, "").equals(nvl(task.getAssignee(), ""))) { log.severe("User: " + user.getLogin() + " has not reassigned task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " as the user is the same: " + userLogin); return; } //this call should also take care of swimlanes ts.setAssignee(bpmTask.getInternalTaskId(), userLogin); fillProcessAssignmentData(pi, ctx); log.info("Process.running:" + pi.getRunning()); ctx.getProcessInstanceDAO().saveProcessInstance(pi); log.severe("User: " + user.getLogin() + " has reassigned task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to user: " + userLogin); }
/** * @param user * @param roleNames */ public ActivitiBpmSession(UserData user, Collection<String> roleNames) { super(user, roleNames, ProcessToolContext.Util.getThreadProcessToolContext().getRegistry()); IdentityService is = getProcessEngine().getIdentityService(); User bpmUser = is.createUserQuery().userId(user.getLogin()).singleResult(); if (bpmUser == null) { bpmUser = is.newUser(user.getLogin()); bpmUser.setEmail(user.getEmail()); bpmUser.setFirstName(user.getRealName()); is.saveUser(bpmUser); } }
private Session getSession() { return customSession != null ? customSession : ProcessToolContext.Util.getThreadProcessToolContext().getHibernateSession(); }
@Override protected IAttributesProvider getAttributesProvider(Long id) { return getThreadProcessToolContext().getProcessInstanceDAO().getProcessInstance(id); }
@Override protected IAttributesConsumer getAttributesConsumer(Long id) { return getThreadProcessToolContext().getProcessInstanceDAO().getProcessInstance(id); }
@Override public void adminCancelProcessInstance(ProcessInstance pi) { log.severe("User: " + user.getLogin() + " attempting to cancel process: " + pi.getInternalId()); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); pi = getProcessData(pi.getInternalId(), ctx); ProcessEngine processEngine = getProcessEngine(); processEngine.getRuntimeService().deleteProcessInstance(pi.getInternalId(), "admin-cancelled"); fillProcessAssignmentData(pi, ctx); pi.setRunning(false); pi.setState(null); ctx.getProcessInstanceDAO().saveProcessInstance(pi); log.severe("User: " + user.getLogin() + " has cancelled process: " + pi.getInternalId()); }
private void initHelpProvider() { if (helpProvider == null) { HelpProviderFactory helpProviderFactory = (HelpProviderFactory)ProcessToolContext.Util .getThreadProcessToolContext() .getRegistry() .lookupService(HelpProviderFactory.class.getName()); helpProvider = helpProviderFactory .getInstance(getApplication(), getProcessDefinitions(), !cannotEdit(), helpDictionaryName); if (helpProvider == null) { helpProvider = createDummyHelpProvider(); } } }
public ProcessToolBpmSession createAutoSession(Collection<String> roles) { ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); if (autoUser == null) { autoUser = ctx.getAutoUser(); } return new ActivitiBpmSession(autoUser, roles); }
@Override public void adminCompleteTask(ProcessInstance pi, BpmTask bpmTask, ProcessStateAction action) { log.severe("User: " + user.getLogin() + " attempting to complete task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to outcome: " + action); performAction(action, ProcessToolContext.Util.getThreadProcessToolContext(), bpmTask); log.severe("User: " + user.getLogin() + " has completed task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to outcome: " + action); }
private void publishEvents(ProcessInstance processInstance, BpmEvent.Type signalProcess) { eventBusManager.publish(new BpmEvent(signalProcess, processInstance, user)); ProcessToolContext.Util.getThreadProcessToolContext().getEventBusManager().publish(new BpmEvent(signalProcess, processInstance, user)); }
@Override public void setContext(ProcessStateConfiguration state, ProcessStateWidget configuration, I18NSource i18NSource, ProcessToolBpmSession bpmSession, Application application, Set<String> permissions, boolean isOwner) { super.setContext(state, configuration, i18NSource, bpmSession, application, permissions, isOwner); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); processDictionaryRegistry = ctx.getProcessDictionaryRegistry(); }
@Override public <T> T withExistingOrNewContext(ReturningProcessToolContextCallback<T> callback) { ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); return ctx != null && ctx.isActive() ? callback.processWithContext(ctx) : withProcessToolContext(callback); }
public static String getLdapCustomUserAttributes() { ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); return ctx.getSetting(LiferaySettings.LDAP_CUSTOM_USER_ATTRIBUTES); }
@Override protected Container getValues() { ScriptProcessorRegistry registry = ProcessToolContext.Util.getThreadProcessToolContext().getRegistry() .lookupService( ScriptProcessorRegistry.class.getName()); Collection<String> registeredProcessors = registry.getRegisteredProcessors(); return new BeanItemContainer<String>(String.class, registeredProcessors); }
@Override public void buttonClick(Button.ClickEvent event) { ProcessComment pc = new ProcessComment(); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); pc.setAuthor(bpmSession.getUser(ctx)); pc.setAuthorSubstitute(bpmSession.getSubstitutingUser(ctx)); pc.setCreateTime(new Date()); pc.setProcessState(processState); final BeanItem<ProcessComment> bi = new BeanItem<ProcessComment>(pc); displayCommentDetails(addCommentButton, bi); } });
@Override public void withTransaction(final ProcessToolGuiCallback r) { ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); r.callback(ctx, bpmSession); }
public static ProcessToolBpmSession getBpmSession(IProcessToolRequestContext context, String userLogin) { ProcessToolBpmSession userSession = context.getBpmSession(); if (userSession.getUserLogin().equals(userLogin)) { return userSession; } UserSubstitutionDAO userSubstitutionDAO = getThreadProcessToolContext().getUserSubstitutionDAO(); if (userSubstitutionDAO.isSubstitutedBy(userLogin, userSession.getUserLogin())) { return userSession.createSession(userLogin); } throw new RuntimeException("Attempting to create session for nonsubstituted user: " + userLogin); }