001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package javax.resource.spi;
023:
024: import java.io.PrintWriter;
025: import java.io.Serializable;
026: import java.util.Set;
027:
028: import javax.resource.ResourceException;
029: import javax.security.auth.Subject;
030:
031: /**
032: * A ManagedConnectionFactory is a factory for the creation of
033: * ManagedConnection objects and ConnectionFactory objects. It provides methods
034: * which can be used to match ManagedConnetions.
035: */
036: public interface ManagedConnectionFactory extends Serializable {
037: /**
038: * Creates a connection factory instance. The connection manager is provided
039: * by the resource adapter.
040: *
041: * @return the connection factory
042: * @throws ResourceException for a generic error
043: * @throws ResourceAdapterInternalException for an internal error in the
044: * resource adapter
045: */
046: public Object createConnectionFactory() throws ResourceException;
047:
048: /**
049: * Creates a connection factory instance. the connection manager is provided
050: * by the application server
051: *
052: * @param cxManager the connection manager
053: * @return the connection factory
054: * @throws ResourceException for a generic error
055: * @throws ResourceAdapterInternalException for an internal error in the
056: * resource adapter
057: */
058: public Object createConnectionFactory(ConnectionManager cxManager)
059: throws ResourceException;
060:
061: /**
062: * Creates a new ManagedConnection
063: *
064: * @param subject the subject
065: * @param cxRequestInfo the connection request info
066: * @return the managed connection
067: * @throws ResourceException for a generic error
068: * @throws ResourceAllocationException for an error allocting resources
069: * @throws ResourceAdapterInternalException for an internal error in the
070: * resource adapter
071: * @throws SecurityException for a security problem
072: * @throws EISSystemException for an error from the EIS
073: */
074: public ManagedConnection createManagedConnection(Subject subject,
075: ConnectionRequestInfo cxRequestInfo)
076: throws ResourceException;
077:
078: /**
079: * Returns a matching connection from the set.
080: *
081: * @param connectionSet the connection set
082: * @param subject the subject
083: * @param cxRequestInfo the connection request info
084: * @return the managed connection
085: * @throws ResourceException for a generic error
086: * @throws ResourceAdapterInternalException for an internal error in the
087: * resource adapter
088: * @throws SecurityException for a security problem
089: * @throws NotSupportedException if not supported
090: */
091: public ManagedConnection matchManagedConnections(Set connectionSet,
092: Subject subject, ConnectionRequestInfo cxRequestInfo)
093: throws ResourceException;
094:
095: /**
096: * Gets the logwriter for this instance.
097: *
098: * @return the log writer
099: * @throws ResourceException for a generic error
100: */
101: public PrintWriter getLogWriter() throws ResourceException;
102:
103: /**
104: * Sets the logwriter for this instance.
105: *
106: * @param out the log writer
107: * @throws ResourceException for a generic error
108: * @throws ResourceAdapterInternalException for an internal error in the
109: * resource adapter
110: */
111: public void setLogWriter(PrintWriter out) throws ResourceException;
112:
113: /**
114: * Tests object for equality
115: *
116: * @param other the other object
117: * @return true when equals, false otherwise
118: */
119: public boolean equals(Object other);
120:
121: /**
122: * Generates a hashCode for this object
123: *
124: * @return the hash code
125: */
126: public int hashCode();
127: }
|