001: /*
002: * This file is part of the WfMOpen project.
003: * Copyright (C) 2001-2005 Danet GmbH (www.danet.de), BU BTS.
004: * All rights reserved.
005: *
006: * This program is free software; you can redistribute it and/or modify
007: * it under the terms of the GNU General Public License as published by
008: * the Free Software Foundation; either version 2 of the License, or
009: * (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: * $Id: RmsConnection.java,v 1.3 2006/10/03 17:03:33 mlipp Exp $
021: *
022: * $Log: RmsConnection.java,v $
023: * Revision 1.3 2006/10/03 17:03:33 mlipp
024: * Clarified method names.
025: *
026: * Revision 1.2 2006/09/29 12:32:09 drmlipp
027: * Consistently using WfMOpen as projct name now.
028: *
029: * Revision 1.1 2006/09/24 20:57:17 mlipp
030: * Moved RMS implementations in own sub-package.
031: *
032: * Revision 1.3 2006/07/11 11:13:13 drmlipp
033: * Props RMS running.
034: *
035: * Revision 1.2 2006/07/10 13:47:08 drmlipp
036: * Implemented EisRmsService.
037: *
038: * Revision 1.1 2006/07/05 10:53:27 drmlipp
039: * Separated generic RMS adapter client from properties based adapter.
040: *
041: */
042: package de.danet.an.workflow.rmsimpls.eisrms.aci;
043:
044: import java.io.Serializable;
045: import java.rmi.RemoteException;
046: import java.util.Collection;
047:
048: import javax.naming.NameNotFoundException;
049: import javax.resource.ResourceException;
050:
051: /**
052: * This interface defines a connection to a resource management system
053: * accessed via JCA.
054: *
055: * @author Michael Lipp
056: */
057: public interface RmsConnection extends Serializable {
058:
059: /**
060: * Close the connection.
061: */
062: void close() throws ResourceException;
063:
064: /**
065: * Find a resource given its key.
066: * @param type the key
067: * @param name the name
068: */
069: RmsEntry lookupResource(String key) throws ResourceException,
070: NameNotFoundException;
071:
072: /**
073: * Find a user given its account (login) name.
074: * @param name the name
075: */
076: RmsEntry lookupUserByAccountName(String name)
077: throws ResourceException, NameNotFoundException;
078:
079: /**
080: * Given a resource's key, return the collection of
081: * resource entries this resource is authorized for.<P>
082: *
083: * This method usually returns all groups a user is a
084: * member of and all roles assigned to a user.
085: *
086: * @param key the resource's key
087: * @return a collection of <code>RmsEntry</code> objects, not
088: * including the resource identified by the key
089: * @throws ResourceException if an error occurs
090: */
091: Collection authorizers(String key) throws ResourceException;
092:
093: /**
094: * List all available resources.
095: *
096: * @throws ResourceException if an error occurs
097: */
098: Collection listResources() throws ResourceException;
099:
100: /**
101: * This optional method selects resources based on the resource
102: * selection criteria passed as parameter. <P>
103: *
104: * Usually, criteria for the resource selection must be determined
105: * within the resource assignment, based on the list of resources
106: * obtained with {@link #listResources
107: * <code>listResources</code>}. Implementations of resource
108: * management facilities may, however, support some query
109: * functionality that eases this task for the resource assignment
110: * service. The resource assignment service may have received
111: * such resource selection information from the workflow engine
112: * via {@link
113: * de.danet.an.workflow.spis.ras.ResourceAssignmentService#autoAssignResources
114: * <code>autoAssignResources</code>} (the workflow component has
115: * obtained the information propably as part of the process
116: * description and passed it through transparently).
117: *
118: * @param resSel an object that describes resource selection criteria
119: * @return collection of <code>RmsEntry</code> objects
120: * @throws UnsupportedOperationException if the resource management
121: * service does not support this feature.
122: * @throws ResourceException if an error occurs
123: */
124: Collection selectResources(Object resSel) throws ResourceException;
125: }
|