You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hise-commits@incubator.apache.org by rr...@apache.org on 2010/01/15 07:18:32 UTC
svn commit: r899549 - in /incubator/hise/trunk:
hise-services/src/main/java/org/apache/hise/api/
hise-services/src/main/java/org/apache/hise/dao/
hise-services/src/main/java/org/apache/hise/engine/
hise-services/src/main/java/org/apache/hise/engine/jax...
Author: rr
Date: Fri Jan 15 07:18:31 2010
New Revision: 899549
URL: http://svn.apache.org/viewvc?rev=899549&view=rev
Log:
HISE-13: Add interface for external authorizations
Added:
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/HISEUserDetails.java (with props)
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/JpaQueryBuilder.java (with props)
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java (with props)
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/DefaultHISEUserDetails.java (with props)
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEPasswordCallback.java (with props)
Removed:
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEDaoPasswordCallback.java
Modified:
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/Task.java
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEEngine.java
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsImpl.java
incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/runtime/Task.java
incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/DaoTest.java
incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockHiseDao.java
incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockTaskOperationsImpl.java
incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/TaskOperationsTest.java
incubator/hise/trunk/hise-web/soapui-tests/hise-soapui-project.xml
incubator/hise/trunk/hise-web/src/main/resources/hise-cxf.xml
Added: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/HISEUserDetails.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/HISEUserDetails.java?rev=899549&view=auto
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/HISEUserDetails.java (added)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/HISEUserDetails.java Fri Jan 15 07:18:31 2010
@@ -0,0 +1,8 @@
+package org.apache.hise.api;
+
+import java.util.Collection;
+
+public interface HISEUserDetails {
+ public Collection<String> getUserGroups(String user);
+ public String getUserPassword(String user);
+}
Propchange: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/HISEUserDetails.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java Fri Jan 15 07:18:31 2010
@@ -33,6 +33,7 @@
import org.apache.commons.lang.Validate;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hise.api.HISEUserDetails;
import org.apache.hise.dao.TaskOrgEntity.OrgEntityType;
import org.apache.hise.engine.wsdl.IllegalArgumentFault;
import org.apache.hise.engine.wsdl.IllegalStateFault;
@@ -41,6 +42,7 @@
import org.springframework.orm.jpa.EntityManagerFactoryUtils;
import org.springframework.orm.jpa.JpaCallback;
import org.springframework.orm.jpa.support.JpaDaoSupport;
+import org.apache.hise.dao.JpaQueryBuilder.JQBParam;
public class HISEDao extends JpaDaoSupport {
@@ -328,37 +330,31 @@
}
});
}
-
- private Collection<String> getUserGroups(OrgEntity user) {
- Collection<String> r = new ArrayList<String>();
- for (OrgEntity g : user.getUserGroups()) {
- Validate.isTrue(g.getType() == OrgEntityType.GROUP);
- r.add(g.getName());
- }
- return r;
- }
- public List<Task> getUserTasks(final OrgEntity user, String taskType, final GenericHumanRole genericHumanRole, String workQueue, List<TStatus> status, String whereClause, String createdOnClause, final Integer maxTasks) {
+ public List<Task> getUserTasks(final TaskQuery query) {
// TaskOrgEntity to;to.g
- switch (genericHumanRole) {
+ switch (query.getGenericHumanRole()) {
case ACTUALOWNER:
return (List<Task>) getJpaTemplate().executeFind(new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException {
- return em.createQuery("select distinct t from Task t where t.actualOwner.name = :user")
- .setParameter("user", user.getName())
- .setMaxResults(maxTasks)
+ return em.createQuery("select distinct t from Task t where t.actualOwner = :user")
+ .setParameter("user", query.getUser())
+ .setMaxResults(query.getMaxTasks())
.getResultList();
}
});
case POTENTIALOWNERS:
-// return (List<Task>) getJpaTemplate().find("select distinct t from Task t, TaskOrgEntity e where e.task = t and (e.name = ? and e.type = 'USER' or e.name in (?) and e.type = 'GROUP') and e.genericHumanRole = ?", user.getName(), getUserGroups(user), genericHumanRole);
return (List<Task>) getJpaTemplate().executeFind(new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException {
- return em.createQuery("select distinct t from Task t, TaskOrgEntity e where e.task = t and (e.name = :user and e.type = 'USER' or e.name in (:groups) and e.type = 'GROUP') and e.genericHumanRole = :role")
- .setParameter("user", user.getName())
- .setParameter("groups", getUserGroups(user))
- .setParameter("role", genericHumanRole)
- .setMaxResults(maxTasks)
+ return new JpaQueryBuilder().buildQuery(em,
+ new Object[] {
+ "select distinct t from Task t, TaskOrgEntity e where e.task = t and (e.name = :user and e.type = 'USER'",
+ new JQBParam("user", query.getUser()),
+ new JQBParam("groups", query.getUserGroups(), " or e.name in (:groups) and e.type = 'GROUP'"),
+ ") and e.genericHumanRole = :role",
+ new JQBParam("role", query.getGenericHumanRole())
+ })
+ .setMaxResults(query.getMaxTasks())
.getResultList();
}
});
@@ -396,4 +392,5 @@
getJpaTemplate().remove(o);
}
}
+
}
Added: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/JpaQueryBuilder.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/JpaQueryBuilder.java?rev=899549&view=auto
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/JpaQueryBuilder.java (added)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/JpaQueryBuilder.java Fri Jan 15 07:18:31 2010
@@ -0,0 +1,58 @@
+package org.apache.hise.dao;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+public class JpaQueryBuilder {
+ public static class JQBParam {
+ public final String name;
+ public final Object value;
+ public final Object node;
+ public JQBParam(String name, Object value, Object node) {
+ super();
+ this.name = name;
+ this.value = value;
+ this.node = node;
+ }
+ public JQBParam(String name, Object value) {
+ this(name, value, null);
+ }
+ }
+
+ private StringBuilder queryString = new StringBuilder();
+ private List<JQBParam> params = new ArrayList<JQBParam>();
+
+ private boolean isEmptyValue(Object value) {
+ return value == null || value instanceof Collection && ((Collection) value).isEmpty();
+ }
+
+ private void buildQueryStr(Object node) {
+ if (node == null) {
+ } else if (node instanceof Object[]) {
+ for (Object o : (Object[]) node) {
+ buildQueryStr(o);
+ }
+ } else if (node instanceof JQBParam) {
+ JQBParam p = (JQBParam) node;
+ if (!isEmptyValue(p.value)) {
+ params.add((JQBParam) node);
+ buildQueryStr(p.node);
+ }
+ } else {
+ queryString.append(node.toString());
+ }
+ }
+
+ public Query buildQuery(EntityManager em, Object node) {
+ buildQueryStr(node);
+ Query q = em.createQuery(queryString.toString());
+ for (JQBParam p : params) {
+ q = q.setParameter(p.name, p.value);
+ }
+ return q;
+ }
+}
Propchange: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/JpaQueryBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/Task.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/Task.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/Task.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/Task.java Fri Jan 15 07:18:31 2010
@@ -206,11 +206,7 @@
@Enumerated(EnumType.STRING)
private Status statusBeforeSuspend;
- /**
- * People assigned to different generic human roles.
- */
- @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
- private OrgEntity actualOwner;
+ private String actualOwner;
/**
* This element is used to specify the priority of the task. It is an optional element which value is an integer expression. If not present, the priority of
@@ -347,12 +343,12 @@
public void setStatusBeforeSuspend(Status statusBeforeSuspend) {
this.statusBeforeSuspend = statusBeforeSuspend;
}
-
- public OrgEntity getActualOwner() {
+
+ public String getActualOwner() {
return actualOwner;
}
- public void setActualOwner(OrgEntity actualOwner) {
+ public void setActualOwner(String actualOwner) {
this.actualOwner = actualOwner;
}
Added: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java?rev=899549&view=auto
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java (added)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java Fri Jan 15 07:18:31 2010
@@ -0,0 +1,75 @@
+package org.apache.hise.dao;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+
+import org.apache.hise.lang.xsd.htda.TStatus;
+
+public class TaskQuery {
+ private String user;
+ private Collection<String> userGroups = new HashSet<String>();
+ private String taskType = "ALL";
+ private GenericHumanRole genericHumanRole = GenericHumanRole.ACTUALOWNER;
+ private String workQueue = "";
+ private List<TStatus> status = Collections.EMPTY_LIST;
+ private String whereClause = "";
+ private String createdOnClause = "";
+ private Integer maxTasks = 20;
+
+ public String getUser() {
+ return user;
+ }
+ public void setUser(String user) {
+ this.user = user;
+ }
+ public Collection<String> getUserGroups() {
+ return userGroups;
+ }
+ public void setUserGroups(Collection<String> userGroups) {
+ this.userGroups = userGroups;
+ }
+ public String getTaskType() {
+ return taskType;
+ }
+ public void setTaskType(String taskType) {
+ this.taskType = taskType;
+ }
+ public GenericHumanRole getGenericHumanRole() {
+ return genericHumanRole;
+ }
+ public void setGenericHumanRole(GenericHumanRole genericHumanRole) {
+ this.genericHumanRole = genericHumanRole;
+ }
+ public String getWorkQueue() {
+ return workQueue;
+ }
+ public void setWorkQueue(String workQueue) {
+ this.workQueue = workQueue;
+ }
+ public List<TStatus> getStatus() {
+ return status;
+ }
+ public void setStatus(List<TStatus> status) {
+ this.status = status;
+ }
+ public String getWhereClause() {
+ return whereClause;
+ }
+ public void setWhereClause(String whereClause) {
+ this.whereClause = whereClause;
+ }
+ public String getCreatedOnClause() {
+ return createdOnClause;
+ }
+ public void setCreatedOnClause(String createdOnClause) {
+ this.createdOnClause = createdOnClause;
+ }
+ public Integer getMaxTasks() {
+ return maxTasks;
+ }
+ public void setMaxTasks(Integer maxTasks) {
+ this.maxTasks = maxTasks;
+ }
+}
Propchange: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/DefaultHISEUserDetails.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/DefaultHISEUserDetails.java?rev=899549&view=auto
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/DefaultHISEUserDetails.java (added)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/DefaultHISEUserDetails.java Fri Jan 15 07:18:31 2010
@@ -0,0 +1,36 @@
+package org.apache.hise.engine;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.commons.lang.Validate;
+import org.apache.hise.api.HISEUserDetails;
+import org.apache.hise.dao.HISEDao;
+import org.apache.hise.dao.OrgEntity;
+import org.apache.hise.dao.TaskOrgEntity.OrgEntityType;
+
+/**
+ * Default implementation serves user details from HISE DAO
+ */
+public class DefaultHISEUserDetails implements HISEUserDetails {
+ private HISEDao hiseDao;
+
+ public void setHiseDao(HISEDao hiseDao) {
+ this.hiseDao = hiseDao;
+ }
+
+ public String getUserPassword(String user1) {
+ OrgEntity user = hiseDao.load(OrgEntity.class, user1);
+ return user.getUserPassword();
+ }
+
+ public Collection<String> getUserGroups(String user1) {
+ OrgEntity user = hiseDao.load(OrgEntity.class, user1);
+ Collection<String> r = new ArrayList<String>();
+ for (OrgEntity g : user.getUserGroups()) {
+ Validate.isTrue(g.getType() == OrgEntityType.GROUP);
+ r.add(g.getName());
+ }
+ return r;
+ }
+}
Propchange: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/DefaultHISEUserDetails.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEEngine.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEEngine.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEEngine.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEEngine.java Fri Jan 15 07:18:31 2010
@@ -9,6 +9,7 @@
import org.apache.commons.lang.Validate;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hise.api.HISEUserDetails;
import org.apache.hise.dao.HISEDao;
import org.apache.hise.dao.Job;
import org.apache.hise.engine.jaxws.HISEJaxWSClient;
@@ -33,12 +34,21 @@
public final Map<String, QName> tasksMap = new HashMap<String, QName>();
public final Map<QName, TaskInfo> tasks = new HashMap<QName, TaskInfo>();
private HISEDao hiseDao;
+ private HISEUserDetails hiseUserDetails;
private HISEScheduler hiseScheduler;
public HISEDao getHiseDao() {
return hiseDao;
}
+
+ public void setHiseUserDetails(HISEUserDetails hiseUserDetails) {
+ this.hiseUserDetails = hiseUserDetails;
+ }
+
+ public HISEUserDetails getHiseUserDetails() {
+ return hiseUserDetails;
+ }
public void setHiseDao(HISEDao hiseDao) {
this.hiseDao = hiseDao;
Added: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEPasswordCallback.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEPasswordCallback.java?rev=899549&view=auto
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEPasswordCallback.java (added)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEPasswordCallback.java Fri Jan 15 07:18:31 2010
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.hise.engine;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.hise.api.HISEUserDetails;
+import org.apache.hise.dao.HISEDao;
+import org.apache.ws.security.WSPasswordCallback;
+
+public class HISEPasswordCallback implements CallbackHandler {
+
+ private HISEUserDetails hiseUserDetails;
+
+ public void setHiseUserDetails(HISEUserDetails hiseUserDetails) {
+ this.hiseUserDetails = hiseUserDetails;
+ }
+
+ public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+ for (int i = 0; i < callbacks.length; i++) {
+ WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+
+ String pass = hiseUserDetails.getUserPassword(pc.getIdentifer());
+ if (pass != null) {
+ pc.setPassword(pass);
+ return;
+ }
+ }
+
+ // Password not found
+ throw new IOException();
+ }
+}
Propchange: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/HISEPasswordCallback.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsImpl.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsImpl.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsImpl.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsImpl.java Fri Jan 15 07:18:31 2010
@@ -35,6 +35,7 @@
import org.apache.hise.dao.GenericHumanRole;
import org.apache.hise.dao.OrgEntity;
import org.apache.hise.dao.TaskOrgEntity;
+import org.apache.hise.dao.TaskQuery;
import org.apache.hise.engine.HISEEngine;
import org.apache.hise.engine.wsdl.IllegalAccessFault;
import org.apache.hise.engine.wsdl.IllegalArgumentFault;
@@ -89,19 +90,33 @@
return context.getUserPrincipal().getName();
}
- protected OrgEntity loadUser() {
- return hiseEngine.getHiseDao().getOrgEntity(getUserString());
+ protected String loadUser() {
+// return hiseEngine.getHiseDao().getOrgEntity(getUserString());
+ return getUserString();
}
public void claim(String identifier) throws IllegalArgumentFault, IllegalStateFault, IllegalAccessFault {
Task task = Task.load(hiseEngine, Long.valueOf(identifier));
- task.claim(loadUser());
+ task.setCurrentUser(loadUser());
+ task.claim();
}
public List<org.apache.hise.lang.xsd.htda.TTask> getMyTasks(String taskType, String genericHumanRole, String workQueue, List<TStatus> status, String whereClause, String createdOnClause, Integer maxTasks) throws IllegalArgumentFault, IllegalStateFault {
List<org.apache.hise.lang.xsd.htda.TTask> l = new ArrayList<org.apache.hise.lang.xsd.htda.TTask>();
- OrgEntity user = loadUser();
- List<org.apache.hise.dao.Task> k = hiseEngine.getHiseDao().getUserTasks(user, taskType, GenericHumanRole.valueOf(genericHumanRole), workQueue, status, whereClause, createdOnClause, maxTasks);
+ String user = loadUser();
+
+ TaskQuery query = new TaskQuery();
+ query.setUser(user);
+ query.setUserGroups(hiseEngine.getHiseUserDetails().getUserGroups(user));
+ query.setTaskType(taskType);
+ query.setGenericHumanRole(GenericHumanRole.valueOf(genericHumanRole));
+ query.setWorkQueue(workQueue);
+ query.setStatus(status);
+ query.setWhereClause(whereClause);
+ query.setCreatedOnClause(createdOnClause);
+ query.setMaxTasks(maxTasks);
+
+ List<org.apache.hise.dao.Task> k = hiseEngine.getHiseDao().getUserTasks(query);
for (org.apache.hise.dao.Task u : k) {
TTask t = convertTask(u);
l.add(t);
@@ -229,7 +244,7 @@
t.setTaskType(u.isNotification() ? "NOTIFICATION" : "TASK");
t.setCreatedOn(u.getCreatedOn());
t.setActivationTime(u.getActivationTime());
- if (u.getActualOwner() != null) t.setActualOwner(u.getActualOwner().getName());
+ if (u.getActualOwner() != null) t.setActualOwner(u.getActualOwner());
t.setCreatedBy(u.getCreatedBy());
t.setName(u.getTaskDefinitionName());
t.setStatus(TStatus.valueOf(u.getStatus().toString()));
@@ -246,15 +261,15 @@
}
public void release(String identifier) throws IllegalArgumentFault, IllegalStateFault, IllegalAccessFault {
- OrgEntity user = loadUser();
Task t = Task.load(hiseEngine, Long.parseLong(identifier));
- t.release(user);
+ t.setCurrentUser(loadUser());
+ t.release();
}
public void start(String identifier) throws IllegalArgumentFault, IllegalStateFault, IllegalAccessFault {
- OrgEntity user = loadUser();
Task t = Task.load(hiseEngine, Long.parseLong(identifier));
- t.start(user);
+ t.setCurrentUser(loadUser());
+ t.start();
}
public void activate(String identifier) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault {
@@ -273,9 +288,9 @@
}
public void complete(String identifier, Object taskData) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault {
- OrgEntity user = loadUser();
Task t = Task.load(hiseEngine, Long.parseLong(identifier));
- t.complete(user);
+ t.setCurrentUser(loadUser());
+ t.complete();
}
public void delegate(String identifier, TOrganizationalEntity organizationalEntity) throws IllegalAccessFault, IllegalStateFault, RecipientNotAllowed, IllegalArgumentFault {
@@ -299,9 +314,9 @@
}
public void fail(String identifier, String faultName, Object faultData) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault, IllegalOperationFault {
- OrgEntity user = loadUser();
Task t = Task.load(hiseEngine, Long.parseLong(identifier));
- t.fail(user);
+ t.setCurrentUser(loadUser());
+ t.fail();
}
public void forward(String identifier, TOrganizationalEntity organizationalEntity) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault {
@@ -400,15 +415,13 @@
}
public void stop(String identifier) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault {
- OrgEntity user = loadUser();
Task t = Task.load(hiseEngine, Long.parseLong(identifier));
- t.stop(user);
+ t.stop();
}
public void suspend(String identifier) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault {
- OrgEntity user = loadUser();
Task t = Task.load(hiseEngine, Long.parseLong(identifier));
- t.suspend(user);
+ t.suspend();
}
public void suspendUntil(String identifier, TTime time) throws IllegalAccessFault, IllegalStateFault, IllegalArgumentFault {
Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/runtime/Task.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/runtime/Task.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/runtime/Task.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/runtime/Task.java Fri Jan 15 07:18:31 2010
@@ -86,6 +86,8 @@
private Job currentJob;
// private Date currentEventDateTime = Calendar.getInstance().getTime();
+ private String currentUser;
+
protected Task() {}
public Job getCurrentJob() {
@@ -96,6 +98,14 @@
this.currentJob = currentJob;
}
+ public String getCurrentUser() {
+ return currentUser;
+ }
+
+ public void setCurrentUser(String currentUser) {
+ this.currentUser = currentUser;
+ }
+
private Task(HISEEngine engine) {
this.hiseEngine = engine;
Validate.notNull(hiseEngine);
@@ -147,10 +157,7 @@
if (poSize == 1 && selected != null) {
//Nominate a single potential owner
- OrgEntity a = hiseEngine.getHiseDao().getOrgEntity(selected.getName());
- if (a.getType() == TaskOrgEntity.OrgEntityType.USER) {
- setActualOwner(a);
- }
+ setActualOwner(selected.getName());
}
}
}
@@ -224,7 +231,7 @@
// recalculatePriority();
}
- public void setActualOwner(OrgEntity user) {
+ public void setActualOwner(String user) {
taskDto.setActualOwner(user);
setStatus(Status.RESERVED);
}
@@ -473,7 +480,7 @@
* @throws HTIllegalAccessException
* Thrown when task is in illegal state for claim i.e. not READY or person cannot become actual owner i.e. not potential owner or excluded.
*/
- public void claim(OrgEntity user) {
+ public void claim() {
if (taskDto.getActualOwner() != null) {
throw new IllegalStateException("Actual owner already set " + taskDto.getActualOwner());
@@ -494,27 +501,25 @@
// throw new HTIllegalAccessException("Person is excluded from potential owners.", person.getName());
// }
- Validate.isTrue(user.getType() == TaskOrgEntity.OrgEntityType.USER);
-
- taskDto.setActualOwner(user);
+ taskDto.setActualOwner(currentUser);
// taskDto.addOperationComment(Operations.CLAIM, person);
setStatus(Status.RESERVED);
}
- public void start(OrgEntity user) {
+ public void start() {
setStatus(Status.IN_PROGRESS);
}
- public void stop(OrgEntity user) {
+ public void stop() {
setStatus(Status.RESERVED);
}
- public void release(OrgEntity user) {
+ public void release() {
setStatus(Status.READY);
}
- public void suspend(OrgEntity user) {
+ public void suspend() {
setStatus(Status.SUSPENDED);
}
@@ -535,12 +540,12 @@
setStatus(taskDto.getStatusBeforeSuspend());
}
- public void fail(OrgEntity user) {
+ public void fail() {
setStatus(Status.FAILED);
sendResponse();
}
- public void complete(OrgEntity user) {
+ public void complete() {
setStatus(Status.COMPLETED);
sendResponse();
}
Modified: incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/DaoTest.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/DaoTest.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/DaoTest.java (original)
+++ incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/DaoTest.java Fri Jan 15 07:18:31 2010
@@ -13,6 +13,7 @@
import org.apache.hise.dao.OrgEntity;
import org.apache.hise.dao.Task;
import org.apache.hise.dao.TaskOrgEntity;
+import org.apache.hise.dao.TaskQuery;
import org.apache.hise.dao.Task.Status;
import org.apache.hise.dao.TaskOrgEntity.OrgEntityType;
import org.apache.hise.lang.xsd.htda.TStatus;
@@ -63,7 +64,7 @@
Task t = new Task();
t.setStatus(Status.CREATED);
t.setTaskDefinitionKey("asd");
- t.setActualOwner(o);
+ t.setActualOwner("user1");
t.getInput().put("abc", new Message("abc", "def"));
hiseDao.saveTask(t);
@@ -125,8 +126,9 @@
tt.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus arg0) {
try {
- OrgEntity o = hiseDao.load(OrgEntity.class, "user1");
- List<Task> r = hiseDao.getUserTasks(o, "", GenericHumanRole.ACTUALOWNER, "", Collections.EMPTY_LIST, "", null, 100);
+ TaskQuery query = new TaskQuery();
+ query.setUser("user1");
+ List<Task> r = hiseDao.getUserTasks(query);
Assert.assertEquals("asd", r.get(0).getTaskDefinitionKey());
return null;
} catch (Exception e) {
@@ -144,8 +146,13 @@
try{
cleanup();
addTask2();
- OrgEntity o = hiseDao.load(OrgEntity.class, "user1");
- List<Task> r = hiseDao.getUserTasks(o, "", GenericHumanRole.POTENTIALOWNERS, "", Collections.EMPTY_LIST, "", null, 100);
+ TaskQuery query = new TaskQuery();
+ query.setUser("user1");
+ query.setGenericHumanRole(GenericHumanRole.POTENTIALOWNERS);
+ List<Task> r = hiseDao.getUserTasks(query);
+ query.getUserGroups().add("group1");
+ r = hiseDao.getUserTasks(query);
+
Assert.assertEquals("asd2", r.get(0).getTaskDefinitionKey());
return null;
} catch (Exception e) {
@@ -182,7 +189,7 @@
}
@Test
- public void testGrupQuery() throws Exception {
+ public void testGroupQuery() throws Exception {
TransactionTemplate tt = new TransactionTemplate(transactionManager);
tt.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus arg0) {
@@ -199,8 +206,11 @@
tt.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus arg0) {
try {
- OrgEntity o = hiseDao.load(OrgEntity.class, "user1");
- List<Task> r = hiseDao.getUserTasks(o, "", GenericHumanRole.POTENTIALOWNERS, "", Collections.EMPTY_LIST, "", null, 100);
+ TaskQuery query = new TaskQuery();
+ query.setUser("user1");
+ query.getUserGroups().add("group1");
+ query.setGenericHumanRole(GenericHumanRole.POTENTIALOWNERS);
+ List<Task> r = hiseDao.getUserTasks(query);
Assert.assertEquals("asd3", r.get(0).getTaskDefinitionKey());
} catch (Exception e) {
throw new RuntimeException(e);
Modified: incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockHiseDao.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockHiseDao.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockHiseDao.java (original)
+++ incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockHiseDao.java Fri Jan 15 07:18:31 2010
@@ -4,17 +4,15 @@
import java.util.Date;
import java.util.List;
-import org.apache.hise.dao.GenericHumanRole;
import org.apache.hise.dao.HISEDao;
-import org.apache.hise.dao.OrgEntity;
import org.apache.hise.dao.Task;
+import org.apache.hise.dao.TaskQuery;
import org.apache.hise.dao.Task.Status;
-import org.apache.hise.lang.xsd.htda.TStatus;
public class MockHiseDao extends HISEDao {
@Override
- public List<Task> getUserTasks(OrgEntity user, String taskType, GenericHumanRole genericHumanRole, String workQueue, List<TStatus> status, String whereClause, String createdOnClause, Integer maxTasks) {
+ public List<Task> getUserTasks(TaskQuery query) {
Task t = new Task();
t.setId(123L);
t.setTaskDefinitionKey("{asdf}asdf");
Modified: incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockTaskOperationsImpl.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockTaskOperationsImpl.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockTaskOperationsImpl.java (original)
+++ incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/MockTaskOperationsImpl.java Fri Jan 15 07:18:31 2010
@@ -1,7 +1,5 @@
package org.apache.hise;
-import org.apache.hise.dao.OrgEntity;
-import org.apache.hise.dao.TaskOrgEntity.OrgEntityType;
import org.apache.hise.engine.jaxws.TaskOperationsImpl;
public class MockTaskOperationsImpl extends TaskOperationsImpl {
@@ -11,12 +9,4 @@
return "user1";
}
- @Override
- protected OrgEntity loadUser() {
- OrgEntity oe = new OrgEntity();
- oe.setName("user1");
- oe.setType(OrgEntityType.USER);
- return oe;
- }
-
}
Modified: incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/TaskOperationsTest.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/TaskOperationsTest.java?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/TaskOperationsTest.java (original)
+++ incubator/hise/trunk/hise-services/src/test/java/org/apache/hise/TaskOperationsTest.java Fri Jan 15 07:18:31 2010
@@ -1,5 +1,6 @@
package org.apache.hise;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -14,6 +15,7 @@
import junit.framework.Assert;
+import org.apache.hise.api.HISEUserDetails;
import org.apache.hise.engine.HISEEngine;
import org.apache.hise.engine.jaxws.TaskOperationsImpl;
import org.apache.hise.lang.xsd.htda.TTask;
@@ -27,6 +29,15 @@
public void testGetMyTasks() throws Exception {
TaskOperationsImpl ti = new MockTaskOperationsImpl();
HISEEngine he = new HISEEngine();
+ he.setHiseUserDetails(new HISEUserDetails() {
+ public String getUserPassword(String user) {
+ return null;
+ }
+
+ public Collection<String> getUserGroups(String user) {
+ return Collections.singleton("group1");
+ }
+ });
MockHiseDao hd = new MockHiseDao();
he.setHiseDao(hd);
ti.setHiseEngine(he);
Modified: incubator/hise/trunk/hise-web/soapui-tests/hise-soapui-project.xml
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-web/soapui-tests/hise-soapui-project.xml?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-web/soapui-tests/hise-soapui-project.xml (original)
+++ incubator/hise/trunk/hise-web/soapui-tests/hise-soapui-project.xml Fri Jan 15 07:18:31 2010
@@ -3290,7 +3290,7 @@
<ok>?</ok>
</cla:resolve>
</soapenv:Body>
-</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsResolvingPT/resolveRequest"/></con:call></con:operation></con:interface><con:testSuite name="SimpleTests"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="getMyTasks" searchProperties="true" id="8f1618ed-6298-4f03-8f23-ab0643e54769"><con:settings/><con:testStep type="request" name="getMyTasks - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>getMyTasks</con:operation><con:request name="getMyTasks - Request 1" outgoingWss="" incomingWss="" wssPasswordType="PasswordDigest"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@wss-time-to-live"/></con:settings><con:encoding>UTF-8</co
n:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
+</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsResolvingPT/resolveRequest"/></con:call></con:operation></con:interface><con:testSuite name="SimpleTests"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="getMyTasks" searchProperties="true" id="8f1618ed-6298-4f03-8f23-ab0643e54769"><con:settings/><con:testStep type="request" name="getMyTasks - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>getMyTasks</con:operation><con:request name="getMyTasks - Request 1" outgoingWss="" incomingWss="" wssPasswordType="PasswordText"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@wss-time-to-live"/></con:settings><con:encoding>UTF-8</con:
encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
<soapenv:Body>
<xsd:getMyTasks>
<xsd:taskType>ALL</xsd:taskType>
@@ -3316,7 +3316,7 @@
</ClaimApprovalRequest>
</cla:approve>
</soapenv:Body>
-</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user2</con:username><con:password>user2pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8082/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>9</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers se
tNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="start - not existing"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>start</con:operation><con:request name="start - not existing" outgoingWss="" incomingWss="" wssPasswordType="PasswordDigest"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xml
ns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user2</con:username><con:password>user2pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8082/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>5</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers se
tNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="start - not existing"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>start</con:operation><con:request name="start - not existing" outgoingWss="" incomingWss="" wssPasswordType="PasswordDigest"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xml
ns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
<soapenv:Header/>
<soapenv:Body>
<xsd:start>
@@ -3381,7 +3381,7 @@
</ClaimApprovalRequest>
</cla:approve>
</soapenv:Body>
-</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user1</con:username><con:password>user1pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8086/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>10</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers s
etNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="start"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>start</con:operation><con:request name="start" outgoingWss="" incomingWss="" wssPasswordType="PasswordDigest"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xm
lsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user1</con:username><con:password>user1pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8086/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>6</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers se
tNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="start"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>start</con:operation><con:request name="start" outgoingWss="" incomingWss="" wssPasswordType="PasswordDigest"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xml
soap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
<soapenv:Header/>
<soapenv:Body>
<xsd:start>
@@ -3419,7 +3419,7 @@
</ClaimApprovalRequest>
</cla:approve>
</soapenv:Body>
-</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user1</con:username><con:password>user1pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8086/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>11</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers s
etNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="forward - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>forward</con:operation><con:request name="forward - Request 1" outgoingWss="" incomingWss="" wssPasswordType="PasswordText"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmln
s:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd" xmlns:ws="http://www.example.org/WS-HT">
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user1</con:username><con:password>user1pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8086/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>7</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers se
tNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="forward - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>forward</con:operation><con:request name="forward - Request 1" outgoingWss="" incomingWss="" wssPasswordType="PasswordText"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns
:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd" xmlns:ws="http://www.example.org/WS-HT">
<soapenv:Header/>
<soapenv:Body>
<xsd:forward>
@@ -3455,7 +3455,7 @@
</ClaimApprovalRequest>
</cla:approve>
</soapenv:Body>
-</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user1</con:username><con:password>user1pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8086/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>3</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers se
tNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="suspendUntil - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>suspendUntil</con:operation><con:request name="suspendUntil - Request 1" outgoingWss="" incomingWss="" wssPasswordType="PasswordText"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv
:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:username>user1</con:username><con:password>user1pass</con:password></con:credentials><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.insurance.example.com/claims/ClaimsHandlingPT/approveRequest" to="" replyTo="http://localhost:8086/ClaimsResponseService/" addDefaultTo="true"/></con:request></con:config></con:testStep><con:testStep type="properties" name="Properties"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>tid</con:name><con:value>8</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="transfer" name="Property Transfer"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers se
tNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" useXQuery="true" entitize="false" transferChildNodes="false"><con:name>tid</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>approve - Request 1</con:sourceStep><con:sourcePath><a>{*/*/*/text()}</a></con:sourcePath><con:targetType>tid</con:targetType><con:targetStep>Properties</con:targetStep></con:transfers></con:config></con:testStep><con:testStep type="request" name="suspendUntil - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>taskOperationsSOAP</con:interface><con:operation>suspendUntil</con:operation><con:request name="suspendUntil - Request 1" outgoingWss="" incomingWss="" wssPasswordType="PasswordText"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/taskOperations/</con:endpoint><con:request><![CDATA[<soapenv
:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.example.org/WS-HT/api/xsd">
<soapenv:Header/>
<soapenv:Body>
<xsd:suspendUntil>
Modified: incubator/hise/trunk/hise-web/src/main/resources/hise-cxf.xml
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-web/src/main/resources/hise-cxf.xml?rev=899549&r1=899548&r2=899549&view=diff
==============================================================================
--- incubator/hise/trunk/hise-web/src/main/resources/hise-cxf.xml (original)
+++ incubator/hise/trunk/hise-web/src/main/resources/hise-cxf.xml Fri Jan 15 07:18:31 2010
@@ -25,10 +25,6 @@
</bean>
-->
- <bean id="hisePasswordCallback" class="org.apache.hise.engine.HISEDaoPasswordCallback">
- <property name="hiseDao" ref="hiseDao"/>
- </bean>
-
<!--
<bean id="transactionHandler" class="org.apache.hise.engine.jaxws.TransactionHandler">
<property name="transactionManager" ref="transactionManager"/>
@@ -42,8 +38,17 @@
<bean id="hiseEngine" class="org.apache.hise.engine.HISEEngine">
<property name="hiseDao" ref="hiseDao"/>
<property name="hiseScheduler" ref="hiseScheduler"/>
+ <property name="hiseUserDetails" ref="hiseUserDetails"/>
</bean>
+ <bean id="hiseUserDetails" class="org.apache.hise.engine.DefaultHISEUserDetails">
+ <property name="hiseDao" ref="hiseDao"/>
+ </bean>
+
+ <bean id="hisePasswordCallback" class="org.apache.hise.engine.HISEPasswordCallback">
+ <property name="hiseUserDetails" ref="hiseUserDetails"/>
+ </bean>
+
<bean id="hiseScheduler" class="org.apache.hise.engine.HISEScheduler" init-method="init" destroy-method="destroy">
<property name="hiseEngine" ref="hiseEngine"/>
<property name="transactionManager" ref="transactionManager"/>