/*
* JBoss, Home of Professional Open Source.
* Copyright 2006, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.resource.connectionmanager;
import javax.management.ObjectName;
import javax.resource.spi.ManagedConnectionFactory;
import org.jboss.mx.util.ObjectNameFactory;
import org.jboss.security.SubjectFactory;
import org.jboss.system.ServiceMBean;
/**
* MBean interface.
*
* @author <a href="mailto:adrian@jboss.com">Adrian Brock</a>
* @author Anil.Saldhana@redhat.com
* @version $Revision: 80828 $
*/
public interface BaseConnectionManager2MBean extends ServiceMBean
{
public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.jca:service=BaseConnectionManager");
/**
* The JndiName attribute holds the jndi name the ConnectionFactory will be bound under in jndi. Note that an entry of the form DefaultDS2 will be bound to java:/DefaultDS2.
*
* @return the JndiName value.
*/
String getJndiName();
/**
* Set the JndiName value.
*
* @param jndiName The JndiName value.
*/
void setJndiName(String jndiName);
/**
* The ManagedConnectionPool holds the ObjectName of the mbean representing the pool for this connection manager. Normally it will be an embedded mbean in a depends tag rather than an ObjectName reference to the mbean.
*
* @return the ManagedConnectionPool value.
*/
ObjectName getManagedConnectionPool();
/**
* Set the ManagedConnectionPool value.
*
* @param newManagedConnectionPool The new ManagedConnectionPool value.
*/
void setManagedConnectionPool(ObjectName newManagedConnectionPool);
/**
* The CachecConnectionManager holds the ObjectName of the CachedConnectionManager mbean used by this ConnectionManager. Normally this will be a depends tag with the ObjectName of the unique CachedConnectionManager for the server.
*
* @param ccmName an <code>ObjectName</code> value
*/
void setCachedConnectionManager(ObjectName ccmName);
/**
* Describe <code>getCachedConnectionManager</code> method here.
*
* @return an <code>ObjectName</code> value
*/
ObjectName getCachedConnectionManager();
/**
* The SecurityDomainJndiName holds the jndi name of the security domain configured for the ManagedConnectionFactory this ConnectionManager manages. It is normally of the form java:/jaas/firebirdRealm, where firebirdRealm is the name found in auth.conf or equivalent file.
*
* @param securityDomainJndiName an <code>String</code> value
*/
void setSecurityDomainJndiName(String securityDomainJndiName);
/**
* Get the SecurityDomainJndiName value.
*
* @return the SecurityDomainJndiName value.
*/
String getSecurityDomainJndiName();
/**
* Get the JaasSecurityManagerService value.
*
* @return the JaasSecurityManagerService value.
* @deprecated
*/
ObjectName getJaasSecurityManagerService();
/**
* Set the JaasSecurityManagerService value.
*
* @param jaasSecurityManagerService The new JaasSecurityManagerService value.
* @deprecated
*/
void setJaasSecurityManagerService(ObjectName jaasSecurityManagerService);
/**
* Inject SubjectFactory to create Subjects
* @param subjectFactory
*/
void setSubjectFactory(SubjectFactory subjectFactory);
/**
* ManagedConnectionFactory is an internal attribute that holds the ManagedConnectionFactory instance managed by this ConnectionManager.
*
* @return value of managedConnectionFactory
*/
ManagedConnectionFactory getManagedConnectionFactory();
/**
* Describe <code>getInstance</code> method here.
*
* @return a <code>BaseConnectionManager2</code> value
*/
BaseConnectionManager2 getInstance();
/**
* Set the number of allocation retries
* @param number
*/
void setAllocationRetry(int number);
/**
* Get the number of allocation retries
* @return The number of retries
*/
int getAllocationRetry();
/**
* Set the wait time between each allocation retry
* @param millis
*/
void setAllocationRetryWaitMillis(long millis);
/**
* Get the wait time between each allocation retry
* @return The millis
*/
long getAllocationRetryWaitMillis();
}