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==--