/*
* ModeShape (http://www.modeshape.org)
*
* Licensed 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.modeshape.jca;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.resource.ResourceException;
import javax.resource.spi.ManagedConnectionMetaData;
import org.modeshape.common.annotation.Immutable;
/**
* Implements Managed Connection Metadata.
*
* @author kulikov
*/
@Immutable
public class JcrManagedConnectionMetaData implements ManagedConnectionMetaData {
private final Repository repository;
private final Session session;
/**
* Constructs new object instance.
*
* @param repository JCR repository instance
* @param session JSR session instance.
*/
public JcrManagedConnectionMetaData(Repository repository, Session session) {
this.repository = repository;
this.session = session;
}
/**
* Returns Product name of the underlying EIS instance connected through the
* ManagedConnection.
*
* @return Product name of the EIS instance
* @throws ResourceException Thrown if an error occurs
*/
@Override
public String getEISProductName() throws ResourceException {
return repository.getDescriptor(Repository.REP_NAME_DESC);
}
/**
* Returns Product version of the underlying EIS instance connected through
* the ManagedConnection.
*
* @return Product version of the EIS instance
* @throws ResourceException Thrown if an error occurs
*/
@Override
public String getEISProductVersion() throws ResourceException {
return repository.getDescriptor(Repository.REP_VERSION_DESC);
}
/**
* Returns maximum limit on number of active concurrent connections
*
* @return Maximum limit for number of active concurrent connections
* @throws ResourceException Thrown if an error occurs
*/
@Override
public int getMaxConnections() throws ResourceException {
return Integer.MAX_VALUE;
}
/**
* Returns name of the user associated with the ManagedConnection instance
*
* @return Name of the user
* @throws ResourceException Thrown if an error occurs
*/
@Override
public String getUserName() throws ResourceException {
return session.getUserID();
}
}