Author: andreas
Date: Fri Feb 6 02:04:27 2009
New Revision: 741373
URL: http://svn.apache.org/viewvc?rev=741373&view=rev
Log:
Continue springification of source factories and related classes.
Added:
lenya/trunk/org.apache.lenya.core.observation/src/main/resources/
lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/
lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/
lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/spring/
lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/spring/lenya-core-observation-components.xml
Modified:
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryUtil.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/SessionImpl.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/util/ServletHelper.java
lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/AxisUUIDGenerator.java
lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java
lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml
lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java
lenya/trunk/org.apache.lenya.parent/pom.xml
lenya/trunk/org.apache.lenya.welcome/pom.xml
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/AggregatingFallbackSourceFactory.java Fri Feb 6 02:04:27 2009
@@ -24,8 +24,10 @@
import java.util.List;
import java.util.Map;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.cocoon.processing.ProcessInfoProvider;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.store.impl.MRUMemoryStore;
import org.apache.lenya.cms.publication.DocumentFactory;
@@ -56,7 +58,7 @@
* </p>
*/
public class AggregatingFallbackSourceFactory extends FallbackSourceFactory {
-
+
/**
* @see org.apache.excalibur.source.SourceFactory#getSource(java.lang.String, java.util.Map)
*/
@@ -73,7 +75,10 @@
uris = findUris(location, parameters);
store.hold(cacheKey, uris);
if (getLogger().isDebugEnabled()) {
- getLogger().debug("No cached source URI for key " + cacheKey + ", caching resolved URIs.");
+ getLogger()
+ .debug(
+ "No cached source URI for key " + cacheKey
+ + ", caching resolved URIs.");
}
} else {
uris = cachedUris;
@@ -81,8 +86,7 @@
getLogger().debug("Using cached source URIs for key " + cacheKey);
}
}
- }
- else {
+ } else {
uris = findUris(location, parameters);
}
return new AggregatingSource(location, uris, getSourceResolver());
@@ -90,14 +94,16 @@
protected String[] findUris(final String location, Map parameters) throws IOException,
MalformedURLException {
-
+
FallbackUri uri = new FallbackUri(location);
String pubId = uri.getPubId();
String path = uri.getPath();
try {
- Request request = ContextHelper.getRequest(this.context);
+ final ProcessInfoProvider processInfo = (ProcessInfoProvider) WebAppContextUtils
+ .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
+ HttpServletRequest request = processInfo.getRequest();
if (pubId == null) {
String webappUrl = ServletHelper.getWebappURI(request);
@@ -118,24 +124,26 @@
} else {
uris = new String[0];
}
-
+
List allUris = new ArrayList();
allUris.addAll(Arrays.asList(uris));
-
+
String contextSourceUri = null;
if (path.startsWith("lenya/modules/")) {
final String moduleShortcut = path.split("/")[2];
String baseUri = getModuleManager().getBaseURI(moduleShortcut);
- final String modulePath = path.substring(("lenya/modules/" + moduleShortcut).length());
+ final String modulePath = path.substring(("lenya/modules/" + moduleShortcut)
+ .length());
contextSourceUri = baseUri + modulePath;
} else {
contextSourceUri = "context://" + path;
}
- if (org.apache.lenya.cms.cocoon.source.SourceUtil.exists(contextSourceUri, getSourceResolver())) {
+ if (org.apache.lenya.cms.cocoon.source.SourceUtil.exists(contextSourceUri,
+ getSourceResolver())) {
allUris.add(contextSourceUri);
}
- return (String[]) allUris.toArray(new String[allUris.size()]);
+ return (String[]) allUris.toArray(new String[allUris.size()]);
} catch (Exception e) {
throw new RuntimeException("Resolving path [" + location + "] failed: ", e);
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java Fri Feb 6 02:04:27 2009
@@ -21,10 +21,10 @@
import java.net.MalformedURLException;
import java.util.Map;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.cocoon.processing.ProcessInfoProvider;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceFactory;
@@ -51,14 +51,15 @@
* Source factory following the fallback principle.
* </p>
* <p>
- * The ID of the current publication can be passed in the URL (<code>fallback:pub://path</code),
+ * The ID of the current publication can be passed in the URL (
+ * <code>fallback:pub://path</code),
* this is necessary as a workaround for bug 40564.
* </p>
*
* @version $Id$
*/
public class FallbackSourceFactory extends AbstractLogEnabled implements SourceFactory,
- Contextualizable, URIAbsolutizer {
+ URIAbsolutizer {
protected MRUMemoryStore store;
private SourceResolver resolver;
@@ -66,7 +67,7 @@
private DocumentFactoryBuilder documentFactoryBuilder;
private PublicationTemplateManager templateManager;
private ModuleManager moduleManager;
-
+
/**
* Configure the spring bean accordingly if you want to use a store.
* @param store The store.
@@ -83,43 +84,43 @@
protected MRUMemoryStore getStore() {
return this.store;
}
-
+
public void setSourceResolver(SourceResolver resolver) {
this.resolver = resolver;
}
-
+
protected SourceResolver getSourceResolver() {
return this.resolver;
}
-
+
public void setRepositoryManager(RepositoryManager repoMgr) {
this.repositoryManager = repoMgr;
}
-
+
protected RepositoryManager getRepositoryManager() {
return this.repositoryManager;
}
-
+
public void setDocumentFactoryBuilder(DocumentFactoryBuilder builder) {
this.documentFactoryBuilder = builder;
}
-
+
protected DocumentFactoryBuilder getDocumentFactoryBuilder() {
return this.documentFactoryBuilder;
}
-
+
public void setTemplateManager(PublicationTemplateManager mgr) {
this.templateManager = mgr;
}
-
+
protected PublicationTemplateManager getTemplateManager() {
return this.templateManager;
}
-
+
public void setModuleManager(ModuleManager mgr) {
this.moduleManager = mgr;
}
-
+
protected ModuleManager getModuleManager() {
return this.moduleManager;
}
@@ -173,7 +174,9 @@
}
protected String getPublicationId() {
- Request request = ContextHelper.getRequest(this.context);
+ final ProcessInfoProvider processInfo = (ProcessInfoProvider) WebAppContextUtils
+ .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
+ HttpServletRequest request = processInfo.getRequest();
String webappUri = ServletHelper.getWebappURI(request);
URLInformation info = new URLInformation(webappUri);
String pubId = null;
@@ -189,10 +192,10 @@
}
return pubId;
}
-
+
protected Source findSource(final String location, Map parameters) throws IOException,
MalformedURLException {
-
+
FallbackUri uri = new FallbackUri(location);
String pubId = uri.getPubId();
@@ -200,8 +203,9 @@
Source source = null;
try {
-
- Request request = ContextHelper.getRequest(this.context);
+ final ProcessInfoProvider processInfo = (ProcessInfoProvider) WebAppContextUtils
+ .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
+ HttpServletRequest request = processInfo.getRequest();
if (pubId == null) {
String webappUrl = request.getRequestURI().substring(
@@ -224,8 +228,8 @@
if (path.startsWith("lenya/modules/")) {
final String moduleShortcut = path.split("/")[2];
String baseUri = this.moduleManager.getBaseURI(moduleShortcut);
- final String modulePath = path
- .substring(("lenya/modules/" + moduleShortcut).length());
+ final String modulePath = path.substring(("lenya/modules/" + moduleShortcut)
+ .length());
source = this.resolver.resolveURI(baseUri + modulePath);
} else {
String contextUri = "context://" + path;
@@ -248,16 +252,6 @@
return new ExistingSourceResolver();
}
- protected org.apache.avalon.framework.context.Context context;
-
- /**
- * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
- */
- public void contextualize(org.apache.avalon.framework.context.Context _context)
- throws ContextException {
- this.context = _context;
- }
-
/**
* @see org.apache.excalibur.source.SourceFactory#release(org.apache.excalibur.source.Source)
*/
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java Fri Feb 6 02:04:27 2009
@@ -17,30 +17,50 @@
*/
package org.apache.lenya.cms.repository;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.lenya.ac.Identity;
+import org.apache.lenya.cms.observation.ObservationRegistry;
/**
* Repository manager implementation.
* @version $Id:$
*/
-public class RepositoryManagerImpl extends AbstractLogEnabled implements RepositoryManager,
- Serviceable {
+public class RepositoryManagerImpl extends AbstractLogEnabled implements RepositoryManager {
- protected ServiceManager manager;
+ public Session createSession(Identity identity, boolean modifiable) throws RepositoryException {
+ SessionImpl session = new SessionImpl(identity, modifiable, getLogger());
+ session.setObservationRegistry(getObservationRegistry());
+ session.setUuidGenerator(getUuidGenerator());
+ session.setSharedItemStore(getSharedItemStore());
+ return session;
+ }
+
+ private SharedItemStore sharedItemStore;
+ private UUIDGenerator uuidGenerator;
+ private ObservationRegistry observationRegistry;
- /**
- * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
- */
- public void service(ServiceManager manager) throws ServiceException {
- this.manager = manager;
+ protected SharedItemStore getSharedItemStore() {
+ return sharedItemStore;
}
- public Session createSession(Identity identity, boolean modifiable) throws RepositoryException {
- return new SessionImpl(identity, modifiable, this.manager, getLogger());
+ public void setSharedItemStore(SharedItemStore sharedItemStore) {
+ this.sharedItemStore = sharedItemStore;
+ }
+
+ protected UUIDGenerator getUuidGenerator() {
+ return uuidGenerator;
+ }
+
+ public void setUuidGenerator(UUIDGenerator uuidGenerator) {
+ this.uuidGenerator = uuidGenerator;
+ }
+
+ protected ObservationRegistry getObservationRegistry() {
+ return observationRegistry;
+ }
+
+ public void setObservationRegistry(ObservationRegistry observationRegistry) {
+ this.observationRegistry = observationRegistry;
}
}
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryUtil.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryUtil.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/RepositoryUtil.java Fri Feb 6 02:04:27 2009
@@ -17,6 +17,7 @@
*/
package org.apache.lenya.cms.repository;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.avalon.framework.service.ServiceManager;
@@ -35,7 +36,7 @@
* @return A session.
* @throws RepositoryException if an error occurs.
*/
- public static Session getSession(RepositoryManager repoManager, Request request)
+ public static Session getSession(RepositoryManager repoManager, HttpServletRequest request)
throws RepositoryException {
Session session = (Session) request.getAttribute(Session.class.getName());
if (session == null) {
@@ -77,6 +78,11 @@
return session;
}
+ protected static Identity getIdentity(HttpServletRequest request) {
+ HttpSession session = request.getSession();
+ return (Identity) session.getAttribute(Identity.class.getName());
+ }
+
protected static Identity getIdentity(Request request) {
HttpSession cocoonSession = request.getSession();
return (Identity) cocoonSession.getAttribute(Identity.class.getName());
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/SessionImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/SessionImpl.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/SessionImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/repository/SessionImpl.java Fri Feb 6 02:04:27 2009
@@ -23,9 +23,6 @@
import java.util.List;
import java.util.Set;
-import org.apache.avalon.framework.container.ContainerUtil;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.commons.logging.Log;
import org.apache.lenya.ac.Identity;
@@ -50,8 +47,30 @@
public class SessionImpl extends AbstractLogEnabled implements Session {
protected static final String UNMODIFIABLE_SESSION_ID = "unmodifiable";
- private ServiceManager manager;
private Identity identity;
+ private ObservationRegistry observationRegistry;
+ private UUIDGenerator uuidGenerator;
+
+ protected ObservationRegistry getObservationRegistry() {
+ return observationRegistry;
+ }
+
+ protected void setObservationRegistry(ObservationRegistry observationRegistry)
+ throws RepositoryException {
+ if (this.observationRegistry != null) {
+ throw new IllegalStateException("Observation registry already set.");
+ }
+ this.observationRegistry = observationRegistry;
+ addListener(observationRegistry);
+ }
+
+ protected UUIDGenerator getUuidGenerator() {
+ return uuidGenerator;
+ }
+
+ protected void setUuidGenerator(UUIDGenerator uuidGenerator) {
+ this.uuidGenerator = uuidGenerator;
+ }
/**
* Ctor.
@@ -60,47 +79,19 @@
* @param manager The service manager.
* @param logger The logger.
*/
- public SessionImpl(Identity identity, boolean modifiable, ServiceManager manager, Log logger) {
-
- Assert.notNull("service manager", manager);
- this.manager = manager;
+ public SessionImpl(Identity identity, boolean modifiable, Log logger) {
this.identityMap = new IdentityMapImpl(logger);
this.identity = identity;
this.id = modifiable ? createUuid() : UNMODIFIABLE_SESSION_ID;
- ObservationRegistry registry = null;
- try {
- registry = (ObservationRegistry) this.manager.lookup(ObservationRegistry.ROLE);
- addListener(registry);
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (registry != null) {
- this.manager.release(registry);
- }
- }
-
if (modifiable) {
this.unitOfWork = new UnitOfWorkImpl(this.identityMap, this.identity, getLogger());
}
}
protected String createUuid() {
- String id;
- UUIDGenerator generator = null;
- try {
-
- generator = (UUIDGenerator) this.manager.lookup(UUIDGenerator.ROLE);
- id = generator.nextUUID();
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (generator == null) {
- this.manager.release(generator);
- }
- }
- return id;
+ return getUuidGenerator().nextUUID();
}
public Identity getIdentity() {
@@ -126,17 +117,17 @@
* Commits the transaction.
* @throws RepositoryException if an error occurs.
* @throws ConcurrentModificationException if a transactionable has been modified by another
- * session.
+ * session.
*/
public synchronized void commit() throws RepositoryException, ConcurrentModificationException {
savePersistables();
-
+
this.committing = true;
try {
synchronized (TransactionLock.LOCK) {
-
+
getUnitOfWork().commit();
getSharedItemStore().clear();
}
@@ -190,16 +181,13 @@
}
protected SharedItemStore getSharedItemStore() {
- if (this.sharedItemStore == null) {
- try {
- this.sharedItemStore = (SharedItemStore) this.manager.lookup(SharedItemStore.ROLE);
- } catch (ServiceException e) {
- throw new RuntimeException(e);
- }
- }
return this.sharedItemStore;
}
+ protected void setSharedItemStore(SharedItemStore sharedItemStore) {
+ this.sharedItemStore = sharedItemStore;
+ }
+
/**
* @see org.apache.lenya.cms.repository.Session#getRepositoryItem(org.apache.lenya.cms.repository.RepositoryItemFactory,
* java.lang.String)
@@ -284,7 +272,7 @@
public String getId() {
return this.id;
}
-
+
public String toString() {
return "Session " + getId();
}
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/util/ServletHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/util/ServletHelper.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/util/ServletHelper.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/util/ServletHelper.java Fri Feb 6 02:04:27 2009
@@ -25,6 +25,7 @@
import java.util.HashMap;
import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
@@ -56,6 +57,17 @@
* @param request The request.
* @return A string.
*/
+ public static String getWebappURI(HttpServletRequest request) {
+ String context = request.getContextPath();
+ String requestUri = request.getRequestURI();
+ return getWebappURI(context, requestUri);
+ }
+
+ /**
+ * Returns the URL inside the web application (without the context prefix).
+ * @param request The request.
+ * @return A string.
+ */
public static String getWebappURI(Request request) {
String context = request.getContextPath();
String requestUri = request.getRequestURI();
Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/AxisUUIDGenerator.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/AxisUUIDGenerator.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/AxisUUIDGenerator.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/AxisUUIDGenerator.java Fri Feb 6 02:04:27 2009
@@ -17,7 +17,6 @@
*/
package org.apache.lenya.cms.repository;
-import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.axis.components.uuid.UUIDGen;
import org.apache.axis.components.uuid.UUIDGenFactory;
import org.apache.cocoon.util.AbstractLogEnabled;
@@ -25,7 +24,7 @@
/**
* UUID generator based on Apache Axis.
*/
-public class AxisUUIDGenerator extends AbstractLogEnabled implements UUIDGenerator, ThreadSafe {
+public class AxisUUIDGenerator extends AbstractLogEnabled implements UUIDGenerator {
// FIXME Get rid of this absurd dependency on Axis!! - fr
private UUIDGen delegate;
Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java Fri Feb 6 02:04:27 2009
@@ -17,10 +17,6 @@
*/
package org.apache.lenya.cms.repository;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.lenya.ac.Identity;
import org.apache.lenya.cms.observation.RepositoryEvent;
@@ -33,15 +29,23 @@
/**
* Shared item store implementation.
*/
-public class SharedItemStoreImpl extends AbstractLogEnabled implements SharedItemStore, ThreadSafe, Serviceable {
+public class SharedItemStoreImpl extends AbstractLogEnabled implements SharedItemStore {
private Session session;
- private ServiceManager manager;
+ private RepositoryManager repositoryManager;
+
+ public RepositoryManager getRepositoryManager() {
+ return repositoryManager;
+ }
+
+ public void setRepositoryManager(RepositoryManager repositoryManager) {
+ this.repositoryManager = repositoryManager;
+ }
public synchronized Session getSession() {
if (this.session == null) {
try {
- this.session = RepositoryUtil.createSession(this.manager, null, false);
+ this.session = getRepositoryManager().createSession(null, false);
} catch (RepositoryException e) {
throw new RuntimeException(e);
}
@@ -118,8 +122,4 @@
return getClass().getName();
}
- public void service(ServiceManager manager) throws ServiceException {
- this.manager = manager;
- }
-
}
Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml Fri Feb 6 02:04:27 2009
@@ -20,9 +20,19 @@
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
xmlns="http://www.springframework.org/schema/beans">
<bean name="org.apache.lenya.cms.repository.RepositoryManager"
- class="org.apache.lenya.cms.repository.RepositoryManagerImpl"/>
+ class="org.apache.lenya.cms.repository.RepositoryManagerImpl">
+ <property name="observationRegistry" ref="org.apache.lenya.cms.observation.ObservationRegistry"/>
+ <property name="uuidGenerator" ref="org.apache.lenya.cms.repository.UUIDGenerator"/>
+ <property name="sharedItemStore" ref="org.apache.lenya.cms.repository.SharedItemStore"/>
+ </bean>
<bean name="org.apache.lenya.cms.publication.DocumentFactoryBuilder"
class="org.apache.lenya.cms.publication.DocumentFactoryBuilderImpl"/>
<bean name="org.apache.lenya.cms.module.ModuleManager"
class="org.apache.lenya.cms.module.ModuleManagerImpl"/>
+ <bean name="org.apache.lenya.cms.repository.SharedItemStore"
+ class="org.apache.lenya.cms.repository.SharedItemStoreImpl">
+ <property name="repositoryManager" ref="org.apache.lenya.cms.repository.RepositoryManager"/>
+ </bean>
+ <bean name="org.apache.lenya.cms.repository.UUIDGenerator"
+ class="org.apache.lenya.cms.repository.AxisUUIDGenerator"/>
</beans>
Modified: lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java (original)
+++ lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java Fri Feb 6 02:04:27 2009
@@ -23,7 +23,6 @@
import java.util.Map;
import java.util.Set;
-import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentIdentifier;
@@ -32,8 +31,7 @@
/**
* Observation manager. Works as an observation registry and sends the notifications.
*/
-public class ObservationManager extends AbstractLogEnabled implements ObservationRegistry,
- ThreadSafe {
+public class ObservationManager extends AbstractLogEnabled implements ObservationRegistry {
private Map identifier2listeners = new HashMap();
private Set listeners = new HashSet();
Added: lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/spring/lenya-core-observation-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/spring/lenya-core-observation-components.xml?rev=741373&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/spring/lenya-core-observation-components.xml (added)
+++ lenya/trunk/org.apache.lenya.core.observation/src/main/resources/META-INF/cocoon/spring/lenya-core-observation-components.xml Fri Feb 6 02:04:27 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
+ xmlns="http://www.springframework.org/schema/beans">
+ <bean name="org.apache.lenya.cms.observation.ObservationRegistry"
+ class="org.apache.lenya.cms.observation.ObservationManager"/>
+</beans>
Modified: lenya/trunk/org.apache.lenya.parent/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.parent/pom.xml?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.parent/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.parent/pom.xml Fri Feb 6 02:04:27 2009
@@ -319,6 +319,11 @@
</dependency>
<dependency>
<groupId>org.apache.lenya</groupId>
+ <artifactId>lenya-core-observation</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lenya</groupId>
<artifactId>lenya-core-sitemanagement</artifactId>
<version>${project.version}</version>
</dependency>
Modified: lenya/trunk/org.apache.lenya.welcome/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.welcome/pom.xml?rev=741373&r1=741372&r2=741373&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.welcome/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.welcome/pom.xml Fri Feb 6 02:04:27 2009
@@ -90,6 +90,10 @@
</dependency>
<dependency>
<groupId>org.apache.lenya</groupId>
+ <artifactId>lenya-core-observation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lenya</groupId>
<artifactId>lenya-core-templating</artifactId>
</dependency>
<dependency>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.