You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/11/26 13:57:48 UTC
svn commit: r1039335 - in /jackrabbit/branches/2.1: ./ jackrabbit-core/
jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/
Author: jukka
Date: Fri Nov 26 12:57:48 2010
New Revision: 1039335
URL: http://svn.apache.org/viewvc?rev=1039335&view=rev
Log:
2.1: Merged revision 1039064 (JCR-2523)
Modified:
jackrabbit/branches/2.1/ (props changed)
jackrabbit/branches/2.1/jackrabbit-core/pom.xml
jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnection.java
jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnectionFactory.java
jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
Propchange: jackrabbit/branches/2.1/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 26 12:57:48 2010
@@ -2,4 +2,4 @@
/jackrabbit/sandbox/JCR-1456:774917-886178
/jackrabbit/sandbox/JCR-2170:812417-816332
/jackrabbit/sandbox/tripod-JCR-2209:795441-795863
-/jackrabbit/trunk:931121,931479,931483-931484,931504,931609,931613,931838,931919,932318-932319,933144,933197,933203,933213,933216,933554,933646,933694,934405,934412,934849,935557,936668,938099,945528,950440,950680,955222,955229,955307,955852,961487,961626,964362,965539,986682,986686,986715,991144,995411-995412,996810,999298-999299,999965,1000947,1001707,1002065-1002066,1002084,1002101-1002102,1002168,1002170,1002589,1002608,1002657,1002729,1003423,1003470,1003542,1003773,1004182,1004184,1004223-1004224,1004652,1005057,1005112,1036117,1036336-1036337,1038201
+/jackrabbit/trunk:931121,931479,931483-931484,931504,931609,931613,931838,931919,932318-932319,933144,933197,933203,933213,933216,933554,933646,933694,934405,934412,934849,935557,936668,938099,945528,950440,950680,955222,955229,955307,955852,961487,961626,964362,965539,986682,986686,986715,991144,995411-995412,996810,999298-999299,999965,1000947,1001707,1002065-1002066,1002084,1002101-1002102,1002168,1002170,1002589,1002608,1002657,1002729,1003423,1003470,1003542,1003773,1004182,1004184,1004223-1004224,1004652,1005057,1005112,1036117,1036336-1036337,1038201,1039064
Modified: jackrabbit/branches/2.1/jackrabbit-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.1/jackrabbit-core/pom.xml?rev=1039335&r1=1039334&r2=1039335&view=diff
==============================================================================
--- jackrabbit/branches/2.1/jackrabbit-core/pom.xml (original)
+++ jackrabbit/branches/2.1/jackrabbit-core/pom.xml Fri Nov 26 12:57:48 2010
@@ -31,6 +31,7 @@
</parent>
<artifactId>jackrabbit-core</artifactId>
<name>Jackrabbit Core</name>
+ <version>2.1.2-r1038610</version>
<description>Jackrabbit content repository implementation</description>
<build>
Modified: jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnection.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnection.java?rev=1039335&r1=1039334&r2=1039335&view=diff
==============================================================================
--- jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnection.java (original)
+++ jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnection.java Fri Nov 26 12:57:48 2010
@@ -53,7 +53,7 @@ public final class JCAManagedConnection
/**
* Session instance.
*/
- private final XASession session;
+ private XASession session;
/**
* XAResource instance.
@@ -78,10 +78,12 @@ public final class JCAManagedConnection
/**
* Construct the managed connection.
*/
- public JCAManagedConnection(JCAManagedConnectionFactory mcf, JCAConnectionRequestInfo cri, XASession session) {
+ public JCAManagedConnection(
+ JCAManagedConnectionFactory mcf, JCAConnectionRequestInfo cri)
+ throws ResourceException {
this.mcf = mcf;
this.cri = cri;
- this.session = session;
+ this.session = openSession();
this.listeners = new LinkedList<ConnectionEventListener>();
this.handles = new LinkedList<JCASessionHandle>();
if (this.mcf.getBindSessionToTransaction().booleanValue()) {
@@ -92,10 +94,22 @@ public final class JCAManagedConnection
}
/**
- * Return the repository.
+ * Create a new session.
*/
- private Repository getRepository() {
- return mcf.getRepository();
+ @SuppressWarnings("deprecation")
+ private XASession openSession() throws ResourceException {
+ try {
+ XASession session = (XASession) mcf.getRepository().login(
+ cri.getCredentials(), cri.getWorkspace());
+ log("Created session (" + session + ")");
+ return session;
+ } catch (RepositoryException e) {
+ log("Failed to create session", e);
+ ResourceException exception = new ResourceException(
+ "Failed to create session: " + e.getMessage());
+ exception.setLinkedException(e);
+ throw exception;
+ }
}
/**
@@ -154,14 +168,8 @@ public final class JCAManagedConnection
public void cleanup()
throws ResourceException {
synchronized (handles) {
- try {
- this.session.refresh(false);
- } catch (RepositoryException e) {
- ResourceException exception =
- new ResourceException("unable to cleanup connection");
- exception.setLinkedException(e);
- throw exception;
- }
+ this.session.logout();
+ this.session = openSession();
this.handles.clear();
}
}
@@ -228,20 +236,31 @@ public final class JCAManagedConnection
}
}
+ @SuppressWarnings("deprecation")
+ private String getDescriptor(String key) throws ResourceException {
+ try {
+ return mcf.getRepository().getDescriptor(key);
+ } catch (RepositoryException e) {
+ log("Failed to access the repository", e);
+ ResourceException exception = new ResourceException(
+ "Failed to access the repository: " + e.getMessage());
+ exception.setLinkedException(e);
+ throw exception;
+ }
+ }
+
/**
* Return the product name.
*/
- public String getEISProductName()
- throws ResourceException {
- return getRepository().getDescriptor(Repository.REP_NAME_DESC);
+ public String getEISProductName() throws ResourceException {
+ return getDescriptor(Repository.REP_NAME_DESC);
}
/**
* Return the product version.
*/
- public String getEISProductVersion()
- throws ResourceException {
- return getRepository().getDescriptor(Repository.REP_VERSION_DESC);
+ public String getEISProductVersion() throws ResourceException {
+ return getDescriptor(Repository.REP_VERSION_DESC);
}
/**
Modified: jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnectionFactory.java?rev=1039335&r1=1039334&r2=1039335&view=diff
==============================================================================
--- jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnectionFactory.java (original)
+++ jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCAManagedConnectionFactory.java Fri Nov 26 12:57:48 2010
@@ -21,10 +21,8 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import javax.jcr.Credentials;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
import javax.resource.ResourceException;
import javax.resource.spi.ConnectionManager;
import javax.resource.spi.ConnectionRequestInfo;
@@ -32,7 +30,6 @@ import javax.resource.spi.ManagedConnect
import javax.resource.spi.ManagedConnectionFactory;
import javax.security.auth.Subject;
-import org.apache.jackrabbit.api.XASession;
import org.apache.jackrabbit.commons.JcrUtils;
/**
@@ -134,35 +131,12 @@ public final class JCAManagedConnectionF
*/
public Object createConnectionFactory(ConnectionManager cm)
throws ResourceException {
- createRepository();
JCARepositoryHandle handle = new JCARepositoryHandle(this, cm);
log("Created repository handle (" + handle + ")");
return handle;
}
/**
- * Create a new session.
- */
- private XASession openSession(JCAConnectionRequestInfo cri)
- throws ResourceException {
- createRepository();
- Credentials creds = cri.getCredentials();
- String workspace = cri.getWorkspace();
-
- try {
- Session session = getRepository().login(creds, workspace);
- log("Created session (" + session + ")");
- return (XASession) session;
- } catch (RepositoryException e) {
- log("Failed to create session", e);
- ResourceException exception = new ResourceException(
- "Failed to create session: " + e.getMessage());
- exception.setLinkedException(e);
- throw exception;
- }
- }
-
- /**
* {@inheritDoc}
* <p/>
* Creates a new physical connection to the underlying EIS resource manager.
@@ -186,13 +160,12 @@ public final class JCAManagedConnectionF
*/
private ManagedConnection createManagedConnection(JCAConnectionRequestInfo cri)
throws ResourceException {
- return new JCAManagedConnection(this, cri, openSession(cri));
+ return new JCAManagedConnection(this, cri);
}
/**
* Returns a matched connection from the candidate set of connections.
*/
- @SuppressWarnings("unchecked")
public ManagedConnection matchManagedConnections(
Set set, Subject subject, ConnectionRequestInfo cri)
throws ResourceException {
@@ -212,9 +185,14 @@ public final class JCAManagedConnectionF
}
/**
- * Return the repository.
+ * Return the repository, automatically creating it if needed.
*/
- public Repository getRepository() {
+ public synchronized Repository getRepository() throws RepositoryException {
+ if (repository == null) {
+ JCARepositoryManager mgr = JCARepositoryManager.getInstance();
+ repository = mgr.createRepository(parameters);
+ log("Created repository (" + repository + ")");
+ }
return repository;
}
@@ -266,26 +244,6 @@ public final class JCAManagedConnectionF
}
/**
- * Create repository.
- */
- private void createRepository()
- throws ResourceException {
- if (repository == null) {
- try {
- JCARepositoryManager mgr = JCARepositoryManager.getInstance();
- repository = mgr.createRepository(parameters);
- log("Created repository (" + repository + ")");
- } catch (RepositoryException e) {
- log("Failed to create repository", e);
- ResourceException exception = new ResourceException(
- "Failed to create session: " + e.getMessage());
- exception.setLinkedException(e);
- throw exception;
- }
- }
- }
-
- /**
* Shutdown the repository.
*/
protected void finalize() {
Modified: jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java?rev=1039335&r1=1039334&r2=1039335&view=diff
==============================================================================
--- jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java (original)
+++ jackrabbit/branches/2.1/jackrabbit-jca/src/main/java/org/apache/jackrabbit/jca/JCARepositoryHandle.java Fri Nov 26 12:57:48 2010
@@ -66,6 +66,7 @@ public final class JCARepositoryHandle e
/**
* Creates a new session.
*/
+ @SuppressWarnings("deprecation")
public Session login(Credentials creds, String workspace)
throws RepositoryException {
try {
@@ -113,7 +114,7 @@ public final class JCARepositoryHandle e
this.mcf = mcf;
}
- public Repository getRepository() {
+ public Repository getRepository() throws RepositoryException {
return mcf.getRepository();
}