public static void main(String[] args) { InstanceFilter instf = new InstanceFilter( "name = dtc* namespace=http://www.intalio.com* " + "status=active|terminated started>=2005-11-29T15:15:19 started<2005-11-29T15:15:20 last-active < 2005-11-30 " + "${http://ode.org/}order-id= 12 $shipping-id=aa45fz", "name started", 50); System.out.println(instf); }
if ( filter.getIidFilter() != null ) { StringBuffer filters = new StringBuffer(); List<String> iids = filter.getIidFilter(); for (int m = 0; m < iids.size(); m++) { filters.append(" pi.id = :iid").append(m); if (filter.getPidFilter() != null) { StringBuffer filters = new StringBuffer(); List<String> pids = filter.getPidFilter(); String cmp; if (filter.arePidsNegative()) { cmp = " != "; } else { if (filter.getNameFilter() != null) { clauses.add(" pi.process.typeName like :pname"); parameters.put("pname", filter.getNameFilter().replaceAll("\\*", "%")); if (filter.getNamespaceFilter() != null) { clauses.add(" pi.process.typeNamespace like :pnamespace"); parameters.put("pnamespace", filter.getNamespaceFilter().replaceAll("\\*", "%")); if (filter.getStartedDateFilter() != null) { for ( String ds : filter.getStartedDateFilter() ) { if (filter.getLastActiveDateFilter() != null) { for ( String ds : filter.getLastActiveDateFilter() ) { if (filter.getStatusFilter() != null) {
@SuppressWarnings("unchecked") public Collection<ProcessInstanceDAO> instanceQuery(InstanceFilter filter) { if(filter.getLimit()==0) { return Collections.EMPTY_LIST; for (ProcessDaoImpl proc : _store.values()) { boolean pmatch = true; if (filter.getNameFilter() != null && !equalsOrWildcardMatch(filter.getNameFilter(), proc.getProcessId().getLocalPart())) pmatch = false; if (filter.getNamespaceFilter() != null && !equalsOrWildcardMatch(filter.getNamespaceFilter(), proc.getProcessId().getNamespaceURI())) pmatch = false; if (filter.getStatusFilter() != null) { boolean statusMatch = false; for (Short status : filter.convertFilterState()) { if (inst.getState() == status.byteValue()) statusMatch = true; if (filter.getStartedDateFilter() != null && !dateMatch(filter.getStartedDateFilter(), inst.getCreateTime(), filter)) match = false; if (filter.getLastActiveDateFilter() != null && !dateMatch(filter.getLastActiveDateFilter(), inst.getLastActiveTime(), filter)) match = false; if(matched.size()==filter.getLimit()) { break selectionCompleted; if (filter.getOrders() != null) {
private Long getInstanceCountByState(String processList, String instanceState) throws InstanceManagementException { if (isProcessListEmpty(processList)) { return (long) 0; } final List<Long> instanceCountList = new ArrayList<Long>(); StringBuilder filter = new StringBuilder(); if (!isProcessListEmpty(processList)) { filter.append(processList); } filter.append("status="); filter.append(instanceState); final InstanceFilter instanceFilter = new InstanceFilter(filter.toString(), null, Integer.MAX_VALUE); try { BpelDatabase bpelDb = bpelServer.getODEBPELServer().getBpelDb(); bpelDb.exec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) throws AxisFault { instanceCountList.add(conn.instanceCount(instanceFilter)); return null; } }); } catch (Exception e) { String errMsg = "Error querying instances from database. Filter: " + instanceFilter.toString(); log.error(errMsg, e); throw new InstanceManagementException(errMsg, e); } return instanceCountList.get(0); }
public Map<InstanceSummaryKey, Long> countInstancesSummary(Set<String> pids) { Map<InstanceSummaryKey, Long> result = new HashMap<InstanceSummaryKey, Long>(); if (!pids.isEmpty()) { for (StatusKeys status : InstanceFilter.StatusKeys.values()) { Query query = getSession().getNamedQuery(HProcessInstance.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES); query.setParameterList("states", new InstanceFilter("status=" + status.toString()).convertFilterState()); query.setParameterList("processIds", pids); for (Object o : query.list()) { Object[] row = (Object[]) o; InstanceSummaryKey key = new InstanceSummaryKey(row[0].toString(), status.toString()); result.put(key, (Long) row[1]); } } } return result; }
public Collection<ProcessInstanceDAO> instanceQuery(InstanceFilter criteria) { if (criteria.getLimit() == 0) { return Collections.emptyList(); } List<ProcessInstanceDAO> daos = new ArrayList<ProcessInstanceDAO>(); Iterator<HProcessInstance> iter = _instanceQuery(getSession(), false, criteria); while (iter.hasNext()) { daos.add(new ProcessInstanceDaoImpl(_sm, iter.next())); } return daos; }
private boolean isSecureFilter(InstanceFilter filter, Set<QName> processIds) { List<String> pids = filter.getPidFilter(); Set<String> strPids = new HashSet<String>(); if (pids != null) { for (QName pidQName : processIds) { strPids.add(pidQName.toString()); } for (String pid : pids) { if (!strPids.contains(pid)) { return false; } } } return true; } }
final InstanceFilter instanceFilter = new InstanceFilter(filter, orderBy, limit); } catch (Exception e) { String errMsg = "Error querying instances from database. Instance Filter:" + instanceFilter.toString(); log.error(errMsg, e); throw new InstanceManagementException(errMsg, e);
public int deleteInstances(InstanceFilter criteria, Set<CLEANUP_CATEGORY> categories) { if (criteria.getLimit() == 0) { return 0; } List<HProcessInstance> instances = _instanceQueryForList(getSession(), false, criteria); if( __log.isDebugEnabled() ) __log.debug("Collected " + instances.size() + " instances to delete."); if( !instances.isEmpty() ) { ProcessDaoImpl process = (ProcessDaoImpl)createTransientProcess(instances.get(0).getProcessId()); return process.deleteInstances(instances, categories); } return 0; }
List<String> pids = filter.getPidFilter(); if (pids != null && pids.size() > 0) { Disjunction disj = Restrictions.disjunction(); for (String pid: pids) { if( !filter.arePidsNegative() ) { disj.add(Restrictions.eq("processId", pid)); } else { List<String> iids = filter.getIidFilter(); if (iids != null && iids.size() > 0) { Disjunction disj = Restrictions.disjunction(); if (filter.getNameFilter() != null) { processCrit.add(Restrictions.like("typeName", filter.getNameFilter().replaceAll("\\*", "%"))); if (filter.getNamespaceFilter() != null) { processCrit.add(Restrictions.like("typeNamespace", filter.getNamespaceFilter().replaceAll("\\*", "%"))); if (filter.getStatusFilter() != null) { List<Short> statuses = filter.convertFilterState(); Disjunction disj = Restrictions.disjunction(); for (short status : statuses) { if (filter.getStartedDateFilter() != null) { for (String sdf : filter.getStartedDateFilter()) { addFilterOnPrefixedDate(crit, sdf, "created"); if (filter.getLastActiveDateFilter() != null) { for (String ladf : filter.getLastActiveDateFilter()) {
public int countInstancesByPidAndString(BpelDAOConnection conn, QName pid, String status) { InstanceFilter instanceFilter = new InstanceFilter("status=" + status + " pid="+ pid); // TODO: this is grossly inefficient return conn.instanceQuery(instanceFilter).size(); }
if (!isSecureFilter(new InstanceFilter(tFilter), tenantProcessStore.getProcessConfigMap().keySet())) { String errMsg = "Instance deletion operation not permitted due to insecure filter: " + tFilter; final InstanceFilter instanceFilter = new InstanceFilter(tFilter); } catch (Exception e) { String errMsg = "Exception during instance deletion. Filter: " + instanceFilter.toString(); log.error(errMsg, e); throw new InstanceManagementException(errMsg, e);
int cleanInstances(String filter, final Set<CLEANUP_CATEGORY> categories, int limit) { _log.debug("CRON CLEAN using filter: " + filter + ", limit: " + limit); final InstanceFilter instanceFilter = new InstanceFilter(filter, "", limit); try { if( _contexts.scheduler != null ) { return _contexts.scheduler.execTransaction(new Callable<Integer>() { public Integer call() throws Exception { BpelDAOConnection con = _contexts.dao.getConnection(); if( con instanceof FilteredInstanceDeletable ) { return ((FilteredInstanceDeletable)con).deleteInstances(instanceFilter, categories); } return 0; } }); } else { return 0; } } catch (RuntimeException re) { throw re; } catch (Exception e) { throw new RuntimeException("Exception while listing instances: ", e); } } }
final InstanceFilter instanceFilter = new InstanceFilter(tFilter, order, limit); } catch (Exception e) { String errMsg = "Error querying instances from database. Instance Filter:" + instanceFilter.toString(); log.error(errMsg, e); throw new InstanceManagementException(errMsg, e);
public Collection<Long> delete(String filter) { final InstanceFilter instanceFilter = new InstanceFilter(filter); final List<Long> ret = new LinkedList<Long>(); try { _db.exec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) { Collection<ProcessInstanceDAO> instances = conn.instanceQuery(instanceFilter); for (ProcessInstanceDAO instance : instances) { ProcessConf proc = _store.getProcessConfiguration(instance.getProcess().getProcessId()); if (proc == null) throw new ProcessNotFoundException("ProcessNotFound:" + instance.getProcess().getProcessId()); // delete the instance and all related data instance.delete(EnumSet.allOf(CLEANUP_CATEGORY.class)); ret.add(instance.getInstanceId()); } return null; } }); } catch (Exception e) { __log.error("Exception during instance deletion", e); throw new ProcessingException("Exception during instance deletion: " + e.toString()); } return ret; }
final InstanceFilter instanceFilter = new InstanceFilter(tFilter, order, limit); } catch (Exception e) { String errMsg = "Error querying instances from database. Instance Filter:" + instanceFilter.toString(); log.error(errMsg, e); throw new InstanceManagementException(errMsg, e);
public static List<Long> delete(String filter) { log.info("Instance filter for instance deletion:" + filter); final InstanceFilter instanceFilter = new InstanceFilter(filter); final List<Long> ret = new LinkedList<Long>(); try { dbexec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection conn) { Collection<ProcessInstanceDAO> instances = conn.instanceQuery(instanceFilter); for (ProcessInstanceDAO instance : instances) { instance.delete(EnumSet.allOf(ProcessConf.CLEANUP_CATEGORY.class), true); ret.add(instance.getInstanceId()); } return null; } }); } catch (Exception e) { String errMsg = "Exception during instance deletion. Filter: " + filter; log.error(errMsg, e); throw new ManagementException(errMsg, e); } return ret; }
public List<String> getEventTimeline(String instanceFilter, String eventFilter) { final InstanceFilter ifilter = new InstanceFilter(instanceFilter, null, 0); final BpelEventFilter efilter = new BpelEventFilter(eventFilter, 0); List<Date> tline = dbexec(new BpelDatabase.Callable<List<Date>>() { public List<Date> run(BpelDAOConnection session) throws Exception { return session.bpelEventTimelineQuery(ifilter, efilter); } }); ArrayList<String> ret = new ArrayList<String>(tline.size()); CollectionsX.transform(ret, tline, new UnaryFunction<Date, String>() { public String apply(Date x) { return ISO8601DateParser.format(x); } }); return ret; }
public Object[] findFailedCountAndLastFailedDateForProcessId(BpelDAOConnection conn, String status, String processId) { Date lastFailureDt = null; int failureInstances = 0; InstanceFilter instanceFilter = new InstanceFilter("status=" + status + " pid="+ processId); for (ProcessInstanceDAO instance : conn.instanceQuery(instanceFilter)) { int count = instance.getActivityFailureCount(); if (count > 0) { ++failureInstances; Date failureDt = instance.getActivityFailureDateTime(); if (lastFailureDt == null || lastFailureDt.before(failureDt)) lastFailureDt = failureDt; } } return new Object[] {failureInstances, lastFailureDt}; }
final InstanceFilter instanceFilter = new InstanceFilter(filter); long count = (long) dbexec(new BpelDatabase.Callable<Object>() {