From do-not-reply at jboss.org Thu Nov 22 12:06:13 2012
Content-Type: multipart/mixed; boundary="===============1117828086645191541=="
MIME-Version: 1.0
From: do-not-reply at jboss.org
To: gatein-commits at lists.jboss.org
Subject: [gatein-commits] gatein SVN: r8968 -
epp/portal/branches/EPP_5_2_1_GA_BZ879258/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/jcr.
Date: Thu, 22 Nov 2012 12:06:12 -0500
Message-ID: <201211221706.qAMH6ChX001078@svn01.web.mwc.hst.phx2.redhat.com>
--===============1117828086645191541==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: mputz
Date: 2012-11-22 12:06:12 -0500 (Thu, 22 Nov 2012)
New Revision: 8968
Modified:
epp/portal/branches/EPP_5_2_1_GA_BZ879258/wsrp-integration/extension-com=
ponent/src/main/java/org/gatein/integration/wsrp/jcr/JCRPersister.java
Log:
Bug 879341 - Backport of commit 8966 to fix JCRPersister
Modified: epp/portal/branches/EPP_5_2_1_GA_BZ879258/wsrp-integration/extens=
ion-component/src/main/java/org/gatein/integration/wsrp/jcr/JCRPersister.ja=
va
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- epp/portal/branches/EPP_5_2_1_GA_BZ879258/wsrp-integration/extension-co=
mponent/src/main/java/org/gatein/integration/wsrp/jcr/JCRPersister.java 201=
2-11-22 16:10:39 UTC (rev 8967)
+++ epp/portal/branches/EPP_5_2_1_GA_BZ879258/wsrp-integration/extension-co=
mponent/src/main/java/org/gatein/integration/wsrp/jcr/JCRPersister.java 201=
2-11-22 17:06:12 UTC (rev 8968)
@@ -23,30 +23,20 @@
=
package org.gatein.integration.wsrp.jcr;
=
-import org.chromattic.api.Chromattic;
import org.chromattic.api.ChromatticBuilder;
-import org.chromattic.api.ChromatticSession;
import org.chromattic.api.format.FormatterContext;
import org.chromattic.api.format.ObjectFormatter;
import org.chromattic.spi.jcr.SessionLifeCycle;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
-import org.exoplatform.container.component.ComponentRequestLifecycle;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.ext.common.SessionProvider;
-import org.gatein.common.util.ParameterValidation;
import org.gatein.wsrp.jcr.BaseChromatticPersister;
-import org.gatein.wsrp.jcr.mapping.BaseMapping;
=
import javax.jcr.Credentials;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
=
/**
* @author Chris Laprun
@@ -76,12 +66,12 @@
}
}
=
- public static class WSRPSessionLifeCycle implements SessionLifeCycle
+ public static abstract class AbstractSessionLifeCycle implements Sessio=
nLifeCycle
{
private ManageableRepository repository;
- private SessionProvider provider;
+ private ThreadLocal provider =3D new ThreadLocal();
=
- public WSRPSessionLifeCycle()
+ public AbstractSessionLifeCycle()
{
try
{
@@ -93,15 +83,22 @@
{
throw new RuntimeException(e);
}
-
- provider =3D SessionProvider.createSystemProvider();
}
=
public Session login() throws RepositoryException
{
- return provider.getSession(WSRP_WORKSPACE_NAME, repository);
+ SessionProvider sessionProvider =3D provider.get();
+ if (sessionProvider =3D=3D null)
+ {
+ sessionProvider =3D SessionProvider.createSystemProvider();
+ provider.set(sessionProvider);
+ }
+
+ return sessionProvider.getSession(getWorkspaceName(), repository);
}
=
+ protected abstract String getWorkspaceName();
+
public Session login(String s) throws RepositoryException
{
throw new UnsupportedOperationException();
@@ -128,56 +125,22 @@
}
}
=
- public static class PortletStatesSessionLifeCycle implements SessionLif=
eCycle
+ public static class WSRPSessionLifeCycle extends AbstractSessionLifeCyc=
le
{
- private ManageableRepository repository;
- private SessionProvider provider;
-
- public PortletStatesSessionLifeCycle()
+ @Override
+ protected String getWorkspaceName()
{
- try
- {
- ExoContainer container =3D ExoContainerContext.getCurrentConta=
iner();
- RepositoryService repoService =3D (RepositoryService)container=
.getComponentInstanceOfType(RepositoryService.class);
- repository =3D repoService.getRepository(REPOSITORY_NAME);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
-
- provider =3D SessionProvider.createSystemProvider();
+ return WSRP_WORKSPACE_NAME;
}
+ }
=
- public Session login() throws RepositoryException
+ public static class PortletStatesSessionLifeCycle extends AbstractSessi=
onLifeCycle
+ {
+ @Override
+ protected String getWorkspaceName()
{
- return provider.getSession(PORTLET_STATES_WORKSPACE_NAME, reposit=
ory);
+ return PORTLET_STATES_WORKSPACE_NAME;
}
-
- public Session login(String s) throws RepositoryException
- {
- throw new UnsupportedOperationException();
- }
-
- public Session login(Credentials credentials, String s) throws Repos=
itoryException
- {
- throw new UnsupportedOperationException();
- }
-
- public Session login(Credentials credentials) throws RepositoryExcep=
tion
- {
- throw new UnsupportedOperationException();
- }
-
- public void save(Session session) throws RepositoryException
- {
- session.save();
- }
-
- public void close(Session session)
- {
- session.logout();
- }
}
=
public static class QNameFormatter implements ObjectFormatter
@@ -245,4 +208,4 @@
return s.replace(SLASH, SLASH_REPLACEMENT);
}
}
-}
+}
\ No newline at end of file
--===============1117828086645191541==--