svn commit: r741654 [6/9] - in /lenya/trunk: org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/ org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/ org...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Deactivate.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Deactivate.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Deactivate.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Deactivate.java Fri Feb  6 17:55:28 2009
@@ -22,18 +22,14 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.lenya.cms.linking.LinkManager;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.site.NodeSet;
-import org.apache.lenya.cms.site.SiteException;
 import org.apache.lenya.cms.site.SiteNode;
 import org.apache.lenya.cms.site.SiteUtil;
 import org.apache.lenya.cms.usecase.UsecaseException;
-import org.apache.lenya.cms.workflow.usecases.InvokeWorkflow;
 
 /**
  * Deactivate usecase handler.
@@ -49,6 +45,9 @@
     public static final String PARAM_CHECK_LIVE_CHILDREN = "checkLiveChildren";
 
     protected static final String LINKS_TO_DOCUMENT = "linksToDocument";
+    
+    private DocumentManager documentManager;
+    private LinkManager linkManager;
 
     /**
      * Checks if the workflow event is supported and the parent of the document exists in the live
@@ -72,7 +71,7 @@
                 addErrorMessage("This usecase can only be invoked when the live version exists.");
             } else {
                 checkChildren();
-                setParameter(LINKS_TO_DOCUMENT, new LinkList(this.manager, doc));
+                setParameter(LINKS_TO_DOCUMENT, new LinkList(doc));
             }
         }
     }
@@ -89,7 +88,7 @@
 
         Document doc = getSourceDocument();
         Document liveDoc = doc.getAreaVersion(Publication.LIVE_AREA);
-        NodeSet subSite = SiteUtil.getSubSite(this.manager, liveDoc.getLink().getNode());
+        NodeSet subSite = SiteUtil.getSubSite(liveDoc.getLink().getNode());
         SiteNode node = liveDoc.getLink().getNode();
         subSite.remove(node);
 
@@ -133,16 +132,10 @@
      * @param authoringDocument The authoring document.
      */
     protected void deactivate(Document authoringDocument) {
-
         boolean success = false;
-
-        DocumentManager documentManager = null;
         try {
             Document liveDocument = authoringDocument.getAreaVersion(Publication.LIVE_AREA);
-
-            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-            documentManager.delete(liveDocument);
-
+            getDocumentManager().delete(liveDocument);
             success = true;
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -151,11 +144,7 @@
                 getLogger().debug("Deactivate document [" + authoringDocument + "]. Success: ["
                         + success + "]");
             }
-            if (documentManager != null) {
-                this.manager.release(documentManager);
-            }
         }
-
     }
 
     protected String getEvent() {
@@ -165,18 +154,15 @@
     /**
      * A list of links pointing to a document. Allows lazy loading from the usecase view.
      */
-    public static class LinkList {
+    public class LinkList {
         
         private Document document;
         private Document[] documents;
-        private ServiceManager manager;
         
         /**
-         * @param manager The manager.
          * @param doc The document to resolve the links from.
          */
-        public LinkList(ServiceManager manager, Document doc) {
-            this.manager = manager;
+        public LinkList(Document doc) {
             this.document = doc;
         }
         
@@ -192,9 +178,8 @@
         
         protected Document[] getLinksToDocument() {
             Set docs = new HashSet();
-            LinkManager linkMgr = null;
+            LinkManager linkMgr = Deactivate.this.getLinkManager();
             try {
-                linkMgr = (LinkManager) this.manager.lookup(LinkManager.ROLE);
                 Document liveVersion = this.document.getAreaVersion(Publication.LIVE_AREA);
                 Document[] referencingDocs = linkMgr.getReferencingDocuments(liveVersion);
                 for (int d = 0; d < referencingDocs.length; d++) {
@@ -206,14 +191,31 @@
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }
-            finally {
-                if (linkMgr != null) {
-                    this.manager.release(linkMgr);
-                }
-            }
             return (Document[]) docs.toArray(new Document[docs.size()]);
         }
 
     }
 
+    protected DocumentManager getDocumentManager() {
+        return documentManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setDocumentManager(DocumentManager documentManager) {
+        this.documentManager = documentManager;
+    }
+
+    protected LinkManager getLinkManager() {
+        return linkManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setLinkManager(LinkManager linkManager) {
+        this.linkManager = linkManager;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/History.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/History.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/History.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/History.java Fri Feb  6 17:55:28 2009
@@ -36,7 +36,7 @@
         super.initParameters();
 
         if (getSourceDocument() != null) {
-            Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, getLogger(),
+            Workflowable workflowable = WorkflowUtil.getWorkflowable(getLogger(),
                     getSourceDocument());
             setParameter("versions", workflowable.getVersions());
         }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java Fri Feb  6 17:55:28 2009
@@ -53,7 +53,7 @@
      */
     protected void doExecute() throws Exception {
         super.doExecute();
-        WorkflowUtil.invoke(this.manager, getLogger(), getSourceDocument(), getEvent());
+        WorkflowUtil.invoke(getLogger(), getSourceDocument(), getEvent());
     }
 
 }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java Fri Feb  6 17:55:28 2009
@@ -53,8 +53,7 @@
             SortedSet states = new TreeSet();
             for (Iterator i = preOrder.iterator(); i.hasNext();) {
                 Document doc = (Document) i.next();
-                WorkflowableWrapper wrapper = new WorkflowableWrapper(this, this.manager, doc,
-                        getLogger());
+                WorkflowableWrapper wrapper = new WorkflowableWrapper(this, doc, getLogger());
                 wrappers.add(wrapper);
                 states.addAll(Arrays.asList(wrapper.getStates()));
             }
@@ -110,8 +109,10 @@
     private Map usecase2event = new HashMap();
     private List variables = new ArrayList();
 
+    /**
+     * TODO: Replace with bean properties
+     */
     public void configure(Configuration config) throws ConfigurationException {
-        super.configure(config);
 
         Configuration[] usecaseConfigs = config.getChildren("usecase");
         for (int i = 0; i < usecaseConfigs.length; i++) {

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflowInvoke.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflowInvoke.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflowInvoke.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/MultiWorkflowInvoke.java Fri Feb  6 17:55:28 2009
@@ -30,10 +30,12 @@
  * Invocation usecase for the multi-workflow usecase.
  */
 public class MultiWorkflowInvoke extends AbstractUsecase {
-    
+
     protected static final String URL = "url";
     protected static final String USECASE_NAME = "usecaseName";
-    
+
+    private UsecaseInvoker usecaseInvoker;
+
     protected void doExecute() throws Exception {
         super.doExecute();
 
@@ -42,23 +44,27 @@
         String url = getParameterAsString(URL);
         Assert.notNull("url", url);
 
-        UsecaseInvoker invoker = null;
-        try {
-            invoker = (UsecaseInvoker) this.manager.lookup(UsecaseInvoker.ROLE);
-            invoker.invoke(url, usecase, new HashMap());
-
-            if (invoker.getResult() != UsecaseInvoker.SUCCESS) {
-                List messages = invoker.getErrorMessages();
-                for (Iterator i = messages.iterator(); i.hasNext();) {
-                    UsecaseMessage message = (UsecaseMessage) i.next();
-                    addErrorMessage(message.getMessage(), message.getParameters());
-                }
-            }
-        } finally {
-            if (invoker == null) {
-                this.manager.release(invoker);
+        UsecaseInvoker invoker = getUsecaseInvoker();
+        invoker.invoke(url, usecase, new HashMap());
+
+        if (invoker.getResult() != UsecaseInvoker.SUCCESS) {
+            List messages = invoker.getErrorMessages();
+            for (Iterator i = messages.iterator(); i.hasNext();) {
+                UsecaseMessage message = (UsecaseMessage) i.next();
+                addErrorMessage(message.getMessage(), message.getParameters());
             }
         }
     }
 
+    protected UsecaseInvoker getUsecaseInvoker() {
+        return usecaseInvoker;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setUsecaseInvoker(UsecaseInvoker usecaseInvoker) {
+        this.usecaseInvoker = usecaseInvoker;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Publish.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Publish.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Publish.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Publish.java Fri Feb  6 17:55:28 2009
@@ -28,10 +28,9 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.lenya.ac.AccessControlException;
@@ -98,6 +97,11 @@
     protected static final String CAN_SEND_NOTIFICATION = "canSendNotification";
     protected static final String UNPUBLISHED_LINKS = "unpublishedLinks";
 
+    private LinkManager linkManager;
+    private LinkResolver linkResolver;
+    private UsecaseScheduler usecaseScheduler;
+    private DocumentManager documentManager;
+
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
@@ -116,15 +120,14 @@
         setParameter(CAN_SEND_NOTIFICATION, canSendNotification);
         setParameter(PARAM_SEND_NOTIFICATION, canSendNotification);
 
-        setParameter(UNPUBLISHED_LINKS, new LinkList(this.manager, getSourceDocument()));
+        setParameter(UNPUBLISHED_LINKS, new LinkList(getSourceDocument()));
 
     }
 
     protected boolean canNotifySubmitter() {
 
         boolean shallNotifySubmitter = false;
-        Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, logger,
-                getSourceDocument());
+        Workflowable workflowable = WorkflowUtil.getWorkflowable(logger, getSourceDocument());
         Version versions[] = workflowable.getVersions();
 
         // consider the case that there was no submit transition
@@ -140,11 +143,9 @@
     }
 
     protected boolean hasBrokenLinks() {
-        LinkManager linkMgr = null;
-        LinkResolver resolver = null;
+        LinkManager linkMgr = getLinkManager();
+        LinkResolver resolver = getLinkResolver();
         try {
-            linkMgr = (LinkManager) this.manager.lookup(LinkManager.ROLE);
-            resolver = (LinkResolver) this.manager.lookup(LinkResolver.ROLE);
             org.apache.lenya.cms.linking.Link[] links = linkMgr.getLinksFrom(getSourceDocument());
             for (int i = 0; i < links.length; i++) {
                 LinkTarget target = resolver.resolve(getSourceDocument(), links[i].getUri());
@@ -154,13 +155,6 @@
             }
         } catch (Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (linkMgr != null) {
-                this.manager.release(linkMgr);
-            }
-            if (resolver != null) {
-                this.manager.release(resolver);
-            }
         }
         return false;
     }
@@ -235,11 +229,10 @@
 
         List missingDocuments = new ArrayList();
 
-        ServiceSelector selector = null;
-        SiteManager siteManager = null;
         try {
-            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
-            siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());
+            SiteManager siteManager = (SiteManager) WebAppContextUtils
+                    .getCurrentWebApplicationContext().getBean(
+                            SiteManager.ROLE + "/" + publication.getSiteManagerHint());
 
             if (!liveSite.contains(document.getPath())) {
                 DocumentLocator liveLoc = document.getLocator().getAreaVersion(
@@ -258,13 +251,6 @@
             }
         } catch (Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (selector != null) {
-                if (siteManager != null) {
-                    selector.release(siteManager);
-                }
-                this.manager.release(selector);
-            }
         }
 
         if (!missingDocuments.isEmpty()) {
@@ -329,17 +315,11 @@
             deleteParameter(SCHEDULE);
             String dateString = getParameterAsString(SCHEDULE_TIME);
             DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            UsecaseScheduler scheduler = null;
             try {
                 Date date = format.parse(dateString);
-                scheduler = (UsecaseScheduler) this.manager.lookup(UsecaseScheduler.ROLE);
-                scheduler.schedule(this, date);
+                getUsecaseScheduler().schedule(this, date);
             } catch (ParseException e) {
                 addErrorMessage("scheduler-date-format-invalid");
-            } finally {
-                if (scheduler != null) {
-                    this.manager.release(scheduler);
-                }
             }
         } else {
             super.doExecute();
@@ -352,12 +332,8 @@
 
         createAncestorNodes(authoringDocument);
 
-        DocumentManager documentManager = null;
-
         try {
-            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-            documentManager.copyToArea(authoringDocument, Publication.LIVE_AREA);
-
+            getDocumentManager().copyToArea(authoringDocument, Publication.LIVE_AREA);
             boolean notify = Boolean.valueOf(getBooleanCheckboxParameter(PARAM_SEND_NOTIFICATION))
                     .booleanValue();
             if (notify) {
@@ -366,10 +342,6 @@
 
         } catch (Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (documentManager != null) {
-                this.manager.release(documentManager);
-            }
         }
     }
 
@@ -383,16 +355,14 @@
             return;
         }
 
-        Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, logger,
-                authoringDocument);
+        Workflowable workflowable = WorkflowUtil.getWorkflowable(logger, authoringDocument);
         Version versions[] = workflowable.getVersions();
 
         // obtain submitted version
         Version version = versions[versions.length - 2];
 
         String userId = version.getUserId();
-        User user = PolicyUtil.getUser(this.manager, authoringDocument.getCanonicalWebappURL(),
-                userId, logger);
+        User user = PolicyUtil.getUser(authoringDocument.getCanonicalWebappURL(), userId, logger);
 
         Identifiable[] recipients = { user };
 
@@ -411,8 +381,8 @@
         Message message = new Message(subject, body, sender, recipients);
 
         NotificationEventDescriptor descriptor = new NotificationEventDescriptor(message);
-        RepositoryEvent event = RepositoryEventFactory.createEvent(this.manager, getSession(),
-                getLogger(), descriptor);
+        RepositoryEvent event = RepositoryEventFactory.createEvent(getSession(), getLogger(),
+                descriptor);
         getSession().enqueueEvent(event);
     }
 
@@ -426,7 +396,7 @@
         if (proxy != null) {
             url = proxy.getURL(document);
         } else {
-            Request request = ContextHelper.getRequest(this.context);
+            HttpServletRequest request = getRequest();
             final String serverUrl = "http://" + request.getServerName() + ":"
                     + request.getServerPort();
             final String webappUrl = document.getCanonicalWebappURL();
@@ -453,18 +423,15 @@
     /**
      * A list of links originating from a document. Allows lazy loading from the usecase view.
      */
-    public static class LinkList {
+    public class LinkList {
 
         private Document document;
         private Document[] documents;
-        private ServiceManager manager;
 
         /**
-         * @param manager The manager.
          * @param doc The document to resolve the links from.
          */
-        public LinkList(ServiceManager manager, Document doc) {
-            this.manager = manager;
+        public LinkList(Document doc) {
             this.document = doc;
         }
 
@@ -480,11 +447,9 @@
 
         protected Document[] getUnpublishedLinks() {
             Set docs = new HashSet();
-            LinkManager linkMgr = null;
-            LinkResolver resolver = null;
+            LinkManager linkMgr = Publish.this.getLinkManager();
+            LinkResolver resolver = Publish.this.getLinkResolver();
             try {
-                linkMgr = (LinkManager) this.manager.lookup(LinkManager.ROLE);
-                resolver = (LinkResolver) this.manager.lookup(LinkResolver.ROLE);
                 org.apache.lenya.cms.linking.Link[] links = linkMgr.getLinksFrom(this.document);
                 for (int i = 0; i < links.length; i++) {
                     LinkTarget target = resolver.resolve(this.document, links[i].getUri());
@@ -497,17 +462,54 @@
                 }
             } catch (Exception e) {
                 throw new RuntimeException(e);
-            } finally {
-                if (linkMgr != null) {
-                    this.manager.release(linkMgr);
-                }
-                if (resolver != null) {
-                    this.manager.release(resolver);
-                }
             }
             return (Document[]) docs.toArray(new Document[docs.size()]);
         }
 
     }
 
+    protected LinkManager getLinkManager() {
+        return linkManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setLinkManager(LinkManager linkManager) {
+        this.linkManager = linkManager;
+    }
+
+    protected LinkResolver getLinkResolver() {
+        return linkResolver;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setLinkResolver(LinkResolver linkResolver) {
+        this.linkResolver = linkResolver;
+    }
+
+    protected UsecaseScheduler getUsecaseScheduler() {
+        return usecaseScheduler;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setUsecaseScheduler(UsecaseScheduler usecaseScheduler) {
+        this.usecaseScheduler = usecaseScheduler;
+    }
+
+    protected DocumentManager getDocumentManager() {
+        return documentManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setDocumentManager(DocumentManager documentManager) {
+        this.documentManager = documentManager;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Reject.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Reject.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Reject.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Reject.java Fri Feb  6 17:55:28 2009
@@ -17,8 +17,10 @@
  */
 package org.apache.lenya.cms.workflow.usecases;
 
-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.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.Identifiable;
 import org.apache.lenya.ac.User;
@@ -75,8 +77,7 @@
         User sender = getSession().getIdentity().getUser();
 
         String reason = getParameterAsString(PARAM_REJECT_REASON);
-        Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, getLogger(),
-                authoringDocument);
+        Workflowable workflowable = WorkflowUtil.getWorkflowable(getLogger(), authoringDocument);
         Version versions[] = workflowable.getVersions();
         // current version is reject, want originating submit
         Version version = versions[versions.length - 2];
@@ -86,8 +87,8 @@
         if (version.getEvent().equals("submit")) {
 
             String userId = version.getUserId();
-            User user = PolicyUtil.getUser(this.manager, authoringDocument.getCanonicalWebappURL(),
-                    userId, getLogger());
+            User user = PolicyUtil.getUser(authoringDocument.getCanonicalWebappURL(), userId,
+                    getLogger());
 
             Identifiable[] recipients = { user };
 
@@ -99,7 +100,9 @@
             if (proxy != null) {
                 url = proxy.getURL(authoringVersion);
             } else {
-                Request request = ContextHelper.getRequest(this.context);
+                ProcessInfoProvider process = (ProcessInfoProvider) WebAppContextUtils
+                        .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
+                HttpServletRequest request = process.getRequest();
                 final String serverUrl = "http://" + request.getServerName() + ":"
                         + request.getServerPort();
                 final String webappUrl = authoringVersion.getCanonicalWebappURL();
@@ -113,8 +116,8 @@
             Message message = new Message(subject, body, sender, recipients);
 
             NotificationEventDescriptor descriptor = new NotificationEventDescriptor(message);
-            RepositoryEvent event = RepositoryEventFactory.createEvent(this.manager, getSession(),
-                    getLogger(), descriptor);
+            RepositoryEvent event = RepositoryEventFactory.createEvent(getSession(), getLogger(),
+                    descriptor);
             getSession().enqueueEvent(event);
         }
     }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Submit.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Submit.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Submit.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/Submit.java Fri Feb  6 17:55:28 2009
@@ -17,8 +17,8 @@
  */
 package org.apache.lenya.cms.workflow.usecases;
 
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.cms.ac.PolicyUtil;
@@ -28,8 +28,6 @@
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.Proxy;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.workflow.usecases.InvokeWorkflow;
-// FIXME Dependency on non-core module.
 import org.apache.lenya.notification.Message;
 import org.apache.lenya.notification.NotificationEventDescriptor;
 import org.apache.lenya.notification.NotificationException;
@@ -46,20 +44,20 @@
     public static final String PARAM_USER_NOTIFICATION_MESSAGE = "userNotificationMessage";
 
     /**
-     * If a notification message shall be sent. 
+     * If a notification message shall be sent.
      */
     public static final String PARAM_SEND_NOTIFICATION = "sendNotification";
-    
+
     protected static final String MESSAGE_SUBJECT = "notification-message";
     protected static final String MESSAGE_DOCUMENT_SUBMITTED = "document-submitted";
-    
+
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
 
         super.doExecute();
-        
+
         if (Boolean.valueOf(getBooleanCheckboxParameter(PARAM_SEND_NOTIFICATION)).booleanValue()) {
             sendNotification(getSourceDocument());
         }
@@ -70,8 +68,8 @@
 
         User sender = getSession().getIdentity().getUser();
 
-        User[] recipients = PolicyUtil.getUsersWithRole(this.manager, authoringDocument
-                .getCanonicalWebappURL(), "review", getLogger());
+        User[] recipients = PolicyUtil.getUsersWithRole(authoringDocument.getCanonicalWebappURL(),
+                "review", getLogger());
 
         // check to see if current user can review their own submission
         for (int i = 0; i < recipients.length; i++) {
@@ -86,13 +84,13 @@
         if (proxy != null) {
             url = proxy.getURL(authoringVersion);
         } else {
-            Request request = ContextHelper.getRequest(this.context);
+            HttpServletRequest request = getRequest();
             final String serverUrl = "http://" + request.getServerName() + ":"
                     + request.getServerPort();
             final String webappUrl = authoringVersion.getCanonicalWebappURL();
             url = serverUrl + request.getContextPath() + webappUrl;
         }
-        
+
         String userMessage = getParameterAsString(PARAM_USER_NOTIFICATION_MESSAGE, "");
 
         Text[] subjectParams = { new Text(getEvent(), true) };
@@ -101,10 +99,9 @@
         Text body = new Text(MESSAGE_DOCUMENT_SUBMITTED, params);
         Message message = new Message(subject, body, sender, recipients);
 
-
         NotificationEventDescriptor descriptor = new NotificationEventDescriptor(message);
-        RepositoryEvent event = RepositoryEventFactory.createEvent(this.manager, getSession(),
-                getLogger(), descriptor);
+        RepositoryEvent event = RepositoryEventFactory.createEvent(getSession(), getLogger(),
+                descriptor);
         getSession().enqueueEvent(event);
     }
 }

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java Fri Feb  6 17:55:28 2009
@@ -17,7 +17,6 @@
  */
 package org.apache.lenya.cms.workflow.usecases;
 
-import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.commons.logging.Log;
 import org.apache.lenya.cms.metadata.MetaDataException;
 import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
@@ -57,16 +56,15 @@
 
     /**
      * Adds an error message if the event can not be invoked.
-     * @param manager The service manager.
      * @param usecase The usecase.
      * @param event The event.
      * @param doc The document.
      * @param logger The logger.
      */
-    public static final void checkWorkflow(ServiceManager manager, AbstractUsecase usecase,
-            String event, Document doc, Log logger) {
+    public static final void checkWorkflow(AbstractUsecase usecase, String event, Document doc,
+            Log logger) {
         try {
-            if (!WorkflowUtil.canInvoke(manager, logger, doc, event)) {
+            if (!WorkflowUtil.canInvoke(logger, doc, event)) {
                 UsecaseWorkflowHelper.addWorkflowError(usecase, event, doc);
             }
         } catch (WorkflowException e) {

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/WorkflowableWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/WorkflowableWrapper.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/WorkflowableWrapper.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/usecases/WorkflowableWrapper.java Fri Feb  6 17:55:28 2009
@@ -19,7 +19,6 @@
 
 import java.util.Arrays;
 
-import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.commons.logging.Log;
 import org.apache.lenya.cms.publication.Document;
@@ -33,31 +32,26 @@
  * Wrap a workflowable for easy evaluation in JX template.
  */
 public class WorkflowableWrapper extends AbstractLogEnabled {
-    
+
     private MultiWorkflow usecase;
     private Workflowable workflowable;
-    private ServiceManager manager;
     private Document document;
 
     /**
      * Ctor.
      * @param usecase The usecase.
-     * @param manager The service manager.
      * @param document The document to wrap.
      * @param logger The logger.
      */
-    public WorkflowableWrapper(MultiWorkflow usecase, ServiceManager manager, Document document,
-            Log logger) {
+    public WorkflowableWrapper(MultiWorkflow usecase, Document document, Log logger) {
         setLogger(logger);
         this.usecase = usecase;
         this.document = document;
-        this.manager = manager;
     }
 
     protected Workflowable getWorkflowable() {
         if (this.workflowable == null) {
-            this.workflowable = WorkflowUtil.getWorkflowable(this.manager, getLogger(),
-                    this.document);
+            this.workflowable = WorkflowUtil.getWorkflowable(getLogger(), this.document);
         }
         return this.workflowable;
     }
@@ -86,9 +80,7 @@
     }
 
     protected Workflow getWorkflowSchema() throws WorkflowException {
-        Workflow workflow = WorkflowUtil
-                .getWorkflowSchema(this.manager, getLogger(), this.document);
-        return workflow;
+        return WorkflowUtil.getWorkflowSchema(getLogger(), this.document);
     }
 
     /**
@@ -120,7 +112,7 @@
      */
     public boolean canInvoke(String usecaseName) throws WorkflowException {
         String event = this.usecase.getEvent(usecaseName);
-        return WorkflowUtil.canInvoke(this.manager, getLogger(), this.document, event);
+        return WorkflowUtil.canInvoke(getLogger(), this.document, event);
     }
 
     /**
@@ -130,11 +122,9 @@
      * @throws WorkflowException if an error occurs.
      */
     public boolean getValue(String variable) throws WorkflowException {
-        Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, getLogger(),
-                this.document);
+        Workflowable workflowable = WorkflowUtil.getWorkflowable(getLogger(), this.document);
         if (workflowable.getVersions().length == 0) {
-            Workflow workflow = WorkflowUtil.getWorkflowSchema(this.manager, getLogger(),
-                    this.document);
+            Workflow workflow = WorkflowUtil.getWorkflowSchema(getLogger(), this.document);
             return workflow.getInitialValue(variable);
         } else {
             return workflowable.getLatestVersion().getValue(variable);

Modified: lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogGenerator.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogGenerator.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogGenerator.java (original)
+++ lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogGenerator.java Fri Feb  6 17:55:28 2009
@@ -33,10 +33,12 @@
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.PublicationUtil;
+import org.apache.lenya.cms.publication.URLInformation;
+import org.apache.lenya.cms.repository.RepositoryManager;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.cms.site.SiteManager;
+import org.apache.lenya.util.ServletHelper;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
 
@@ -76,6 +78,8 @@
      * Only generate the #numrecent entries
      */
     protected int numrecent;
+    
+    private RepositoryManager repositoryManager;
 
     /**
      * Set the request parameters. Must be called before the generate method.
@@ -120,9 +124,10 @@
         SiteManager siteManager = null;
         try {
             Request request = ObjectModelHelper.getRequest(this.objectModel);
-            Session session = RepositoryUtil.getSession(this.manager, request);
-            DocumentFactory map = DocumentUtil.createDocumentFactory(this.manager, session);
-            Publication publication = PublicationUtil.getPublication(this.manager, request);
+            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
+            DocumentFactory map = DocumentUtil.createDocumentFactory(session);
+            String id = new URLInformation(ServletHelper.getWebappURI(request)).getPublicationId();
+            Publication publication = map.getPublication(id);
 
             selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
             siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());
@@ -177,4 +182,12 @@
         this.contentHandler.endPrefixMapping(PREFIX);
         this.contentHandler.endDocument();
     }
+
+    public void setRepositoryManager(RepositoryManager repositoryManager) {
+        this.repositoryManager = repositoryManager;
+    }
+
+    public RepositoryManager getRepositoryManager() {
+        return repositoryManager;
+    }
 }

Modified: lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogOverviewGenerator.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogOverviewGenerator.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogOverviewGenerator.java (original)
+++ lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/cocoon/generation/BlogOverviewGenerator.java Fri Feb  6 17:55:28 2009
@@ -34,10 +34,12 @@
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentUtil;
 import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.PublicationUtil;
+import org.apache.lenya.cms.publication.URLInformation;
+import org.apache.lenya.cms.repository.RepositoryManager;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.cms.site.SiteManager;
+import org.apache.lenya.util.ServletHelper;
 import org.apache.lenya.xml.DocumentHelper;
 import org.apache.xpath.XPathAPI;
 import org.w3c.dom.Element;
@@ -108,6 +110,8 @@
      */
     protected Request request;
     
+    private RepositoryManager repositoryManager;
+    
     /**
      * Set the request parameters. Must be called before the generate method.
      * 
@@ -178,10 +182,10 @@
         ServiceSelector selector = null;
         SiteManager siteManager = null;
         try {            
-            Session session = RepositoryUtil.getSession(this.manager, request);
-            DocumentFactory map = DocumentUtil.createDocumentFactory(this.manager, session);
-            Publication publication = PublicationUtil.getPublication(
-                    this.manager, request);
+            Session session = RepositoryUtil.getSession(getRepositoryManager(), request);
+            DocumentFactory map = DocumentUtil.createDocumentFactory(session);
+            String id = new URLInformation(ServletHelper.getWebappURI(request)).getPublicationId();
+            Publication publication = map.getPublication(id);
             
             
             selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE
@@ -440,4 +444,12 @@
         this.contentHandler.endPrefixMapping(PREFIX);
         this.contentHandler.endDocument();
     }
+
+    public void setRepositoryManager(RepositoryManager repositoryManager) {
+        this.repositoryManager = repositoryManager;
+    }
+
+    public RepositoryManager getRepositoryManager() {
+        return repositoryManager;
+    }
 }

Modified: lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Deactivate.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Deactivate.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Deactivate.java (original)
+++ lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Deactivate.java Fri Feb  6 17:55:28 2009
@@ -33,6 +33,8 @@
  * @version $Id: Deactivate.java 264805 2005-08-30 16:20:15Z andreas $
  */
 public class Deactivate extends DocumentUsecase {
+    
+    private DocumentManager documentManager;
 
     /**
      * Checks if the workflow event is supported and the parent of the document exists in the live
@@ -48,10 +50,7 @@
                 return;
             }
             String event = getEvent();
-            if (!WorkflowUtil.canInvoke(this.manager,
-                    getLogger(),
-                    getSourceDocument(),
-                    event)) {
+            if (!WorkflowUtil.canInvoke(getLogger(), getSourceDocument(), event)) {
                 addInfoMessage("The document cannot be deactivated because the workflow event cannot be invoked.");
             }
         }
@@ -64,12 +63,13 @@
         try {
             List nodes = new ArrayList();
             Document doc = getSourceDocument();
-            Document liveDoc = doc.getAreaVersion(Publication.LIVE_AREA);            
+            Document liveDoc = doc.getAreaVersion(Publication.LIVE_AREA);
             nodes.add(doc.getRepositoryNode());
-            nodes.add(liveDoc.getRepositoryNode());            
+            nodes.add(liveDoc.getRepositoryNode());
             nodes.add(liveDoc.area().getSite().getRepositoryNode());
-            nodes.add(doc.area().getSite().getRepositoryNode());            
-            return (org.apache.lenya.cms.repository.Node[]) nodes.toArray(new org.apache.lenya.cms.repository.Node[nodes.size()]);            
+            nodes.add(doc.area().getSite().getRepositoryNode());
+            return (org.apache.lenya.cms.repository.Node[]) nodes
+                    .toArray(new org.apache.lenya.cms.repository.Node[nodes.size()]);
         } catch (Exception e) {
             throw new UsecaseException(e);
         }
@@ -89,33 +89,23 @@
      * @param authoringDocument The authoring document.
      */
     protected void deactivate(Document authoringDocument) {
-
         boolean success = false;
-
-        DocumentManager documentManager = null;
         try {
             Document liveDocument = authoringDocument.getAreaVersion(Publication.LIVE_AREA);
 
-            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-            documentManager.delete(liveDocument);
-         
-            WorkflowUtil.invoke(this.manager,
-                    getLogger(),
-                    authoringDocument,
-                    getEvent());                  
+            getDocumentManager().delete(liveDocument);
+
+            WorkflowUtil.invoke(getLogger(), authoringDocument, getEvent());
             success = true;
         } catch (Exception e) {
             throw new RuntimeException(e);
         } finally {
             if (getLogger().isDebugEnabled()) {
-                getLogger().debug("Deactivate document [" + authoringDocument + "]. Success: ["
-                        + success + "]");
-            }
-            if (documentManager != null) {
-                this.manager.release(documentManager);
+                getLogger().debug(
+                        "Deactivate document [" + authoringDocument + "]. Success: [" + success
+                                + "]");
             }
         }
-
     }
 
     /**
@@ -124,4 +114,16 @@
     private String getEvent() {
         return "deactivate";
     }
+
+    protected DocumentManager getDocumentManager() {
+        return documentManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setDocumentManager(DocumentManager documentManager) {
+        this.documentManager = documentManager;
+    }
+    
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Delete.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Delete.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Delete.java (original)
+++ lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Delete.java Fri Feb  6 17:55:28 2009
@@ -34,6 +34,8 @@
  */
 public class Delete extends DocumentUsecase {
     
+    private DocumentManager documentManager;
+
     /**
      * Checks if the workflow event is supported and the parent of the document exists in the live
      * area.
@@ -53,10 +55,7 @@
                 return;
             }
             String event = getEvent();
-            if (!WorkflowUtil.canInvoke(this.manager,
-                    getLogger(),
-                    getSourceDocument(),
-                    event)) {
+            if (!WorkflowUtil.canInvoke(getLogger(), getSourceDocument(), event)) {
                 addInfoMessage("The document cannot be deactivated because the workflow event cannot be invoked.");
             }
         }
@@ -68,10 +67,11 @@
     protected org.apache.lenya.cms.repository.Node[] getNodesToLock() throws UsecaseException {
         try {
             List nodes = new ArrayList();
-            Document doc = getSourceDocument();           
-            nodes.add(doc.getRepositoryNode());            
-            nodes.add(doc.area().getSite().getRepositoryNode());            
-            return (org.apache.lenya.cms.repository.Node[]) nodes.toArray(new org.apache.lenya.cms.repository.Node[nodes.size()]);            
+            Document doc = getSourceDocument();
+            nodes.add(doc.getRepositoryNode());
+            nodes.add(doc.area().getSite().getRepositoryNode());
+            return (org.apache.lenya.cms.repository.Node[]) nodes
+                    .toArray(new org.apache.lenya.cms.repository.Node[nodes.size()]);
         } catch (Exception e) {
             throw new UsecaseException(e);
         }
@@ -82,8 +82,9 @@
      */
     protected void doExecute() throws Exception {
         super.doExecute();
-        delete(getSourceDocument());        
-        setTargetDocument(getDocumentFactory().get(getSourceDocument().getPublication(), Publication.AUTHORING_AREA,"/feeds/all/index"));
+        delete(getSourceDocument());
+        setTargetDocument(getDocumentFactory().get(getSourceDocument().getPublication(),
+                Publication.AUTHORING_AREA, "/feeds/all/index"));
     }
 
     /**
@@ -91,26 +92,11 @@
      * @param document The document to delete.
      */
     protected void delete(Document document) {
-        DocumentManager documentManager = null;
-        boolean success = false;
         try {
-            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-            documentManager.delete(document);       
-            WorkflowUtil.invoke(this.manager,
-                    getLogger(),
-                    document,
-                    getEvent());
-            success = true;
+            getDocumentManager().delete(document);
+            WorkflowUtil.invoke(getLogger(), document, getEvent());
         } catch (Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("Delete document [" + getSourceDocument() + "]. Success: ["
-                        + success + "]");
-            }
-            if (documentManager != null) {
-                this.manager.release(documentManager);
-            }
         }
     }
 
@@ -120,4 +106,17 @@
     private String getEvent() {
         return "delete";
     }
+
+    public DocumentManager getDocumentManager() {
+        return documentManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setDocumentManager(DocumentManager documentManager) {
+        this.documentManager = documentManager;
+    }
+    
+    
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Publish.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Publish.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Publish.java (original)
+++ lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/blog/cms/usecases/Publish.java Fri Feb  6 17:55:28 2009
@@ -50,6 +50,8 @@
 
     protected static final String MISSING_DOCUMENTS = "missingDocuments";
 
+    private DocumentManager documentManager;
+
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
      */
@@ -59,7 +61,7 @@
             DocumentSet set = new DocumentSet();
 
             Document doc = getSourceDocument();
-            NodeSet subsite = SiteUtil.getSubSite(this.manager, doc.getLink().getNode());
+            NodeSet subsite = SiteUtil.getSubSite(doc.getLink().getNode());
             set.addAll(new DocumentSet(subsite.getDocuments()));
 
             Document[] documents = set.getDocuments();
@@ -77,8 +79,8 @@
     }
 
     /**
-     * Checks if the workflow event is supported and the parent of the document
-     * exists in the live area.
+     * Checks if the workflow event is supported and the parent of the document exists in the live
+     * area.
      * 
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckPreconditions()
      */
@@ -94,7 +96,7 @@
                 return;
             }
 
-            UsecaseWorkflowHelper.checkWorkflow(this.manager, this, event, document, getLogger());
+            UsecaseWorkflowHelper.checkWorkflow(this, event, document, getLogger());
         }
     }
 
@@ -102,23 +104,16 @@
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
-        DocumentManager documentManager = null;
         try {
             Document authoringDocument = getSourceDocument();
             if (authoringDocument.getResourceType().getName().equals("entry")) {
                 updateBlogEntry(authoringDocument);
             }
             updateFeed();
-            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
-            documentManager.copyToArea(authoringDocument, Publication.LIVE_AREA);
-            WorkflowUtil.invoke(this.manager, getLogger(), authoringDocument,
-                    getEvent());
+            getDocumentManager().copyToArea(authoringDocument, Publication.LIVE_AREA);
+            WorkflowUtil.invoke(getLogger(), authoringDocument, getEvent());
         } catch (Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (documentManager != null) {
-                this.manager.release(documentManager);
-            }
         }
     }
 
@@ -173,8 +168,7 @@
         DocumentHelper.setSimpleElementText(element, datestr);
 
         // set issued date on first time publish
-        Workflowable dw = WorkflowUtil.getWorkflowable(this.manager, this
-                .getLogger(), doc);
+        Workflowable dw = WorkflowUtil.getWorkflowable(this.getLogger(), doc);
         Version versions[] = dw.getVersions();
         boolean wasLive = false;
         for (int i = 0; i < versions.length; i++) {
@@ -199,4 +193,15 @@
         return "publish";
     }
 
+    public DocumentManager getDocumentManager() {
+        return documentManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setDocumentManager(DocumentManager documentManager) {
+        this.documentManager = documentManager;
+    }
+
 }
\ No newline at end of file

Modified: lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/cms/site/usecases/CreateBlogEntry.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/cms/site/usecases/CreateBlogEntry.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/cms/site/usecases/CreateBlogEntry.java (original)
+++ lenya/trunk/org.apache.lenya.module.blog/src/main/java/org/apache/lenya/cms/site/usecases/CreateBlogEntry.java Fri Feb  6 17:55:28 2009
@@ -20,13 +20,10 @@
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.Map;
 
-import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.ObjectModelHelper;
-import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.environment.Session;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
 import org.apache.lenya.ac.Identity;
 import org.apache.lenya.cms.metadata.dublincore.DublinCore;
 import org.apache.lenya.cms.publication.Document;
@@ -34,6 +31,7 @@
 import org.apache.lenya.cms.publication.DocumentFactory;
 import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.ResourceType;
+import org.apache.lenya.cms.publication.ResourceTypeResolver;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.site.SiteStructure;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
@@ -53,6 +51,9 @@
     protected static final String DOCUMENT_TYPE = "doctype";
     protected static final String DOCUMENT_ID = "documentId";
 
+    private DocumentManager documentManager;
+    private ResourceTypeResolver resourceTypeResolver;
+
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
      */
@@ -108,46 +109,21 @@
         // implementation note: since blog does not have a hierarchy,
         // document id (full path) and document id-name (this leaf's id)
         // are the same
-        DocumentManager documentManager = null;
-        ServiceSelector selector = null;
-        ResourceType resourceType = null;
+        ResourceType resourceType = getResourceTypeResolver()
+                .getResourceType(getDocumentTypeName());
 
-        try {
-            selector = (ServiceSelector) this.manager.lookup(ResourceType.ROLE + "Selector");
-            resourceType = (ResourceType) selector.select(getDocumentTypeName());
+        DocumentFactory map = getDocumentFactory();
 
-            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
+        String documentId = getDocumentID();
 
-            DocumentFactory map = getDocumentFactory();
+        String sampleName = resourceType.getSampleNames()[0];
+        String sampleUri = resourceType.getSample(sampleName).getUri();
 
-            String documentId = getDocumentID();
-            
-            String sampleName = resourceType.getSampleNames()[0];
-            String sampleUri = resourceType.getSample(sampleName).getUri();
-
-            Document document = documentManager.add(map,
-                    resourceType,
-                    sampleUri,
-                    getSourceDocument().getPublication(),
-                    getSourceDocument().getArea(),
-                    documentId,
-                    language,
-                    "xml",
-                    getParameterAsString(DublinCore.ELEMENT_TITLE),
-                    true);
-
-            transformXML(document);
-        } finally {
-            if (documentManager != null) {
-                this.manager.release(documentManager);
-            }
-            if (selector != null) {
-                if (resourceType != null) {
-                    selector.release(resourceType);
-                }
-                this.manager.release(selector);
-            }
-        }
+        Document document = documentManager.add(map, resourceType, sampleUri, getSourceDocument()
+                .getPublication(), getSourceDocument().getArea(), documentId, language, "xml",
+                getParameterAsString(DublinCore.ELEMENT_TITLE), true);
+
+        transformXML(document);
     }
 
     /**
@@ -169,9 +145,7 @@
      * <li>article-one</li>
      * <li>article-two</li>
      * </ul>
-     * </ul>
-     * </ul>
-     * </ul>
+     * </ul> </ul> </ul>
      * 
      * @return The document ID.
      */
@@ -208,9 +182,8 @@
 
     protected void transformXML(Document document) throws Exception {
 
-        Map objectModel = ContextHelper.getObjectModel(getContext());
-        Request request = ObjectModelHelper.getRequest(objectModel);
-        Session session = request.getCocoonSession(false);
+        HttpServletRequest request = getRequest();
+        HttpSession session = request.getSession(false);
         Identity identity = (Identity) session.getAttribute(Identity.class.getName());
         String title = getParameterAsString(DublinCore.ELEMENT_TITLE);
 
@@ -280,4 +253,27 @@
 
         DocumentHelper.writeDocument(xmlDoc, document.getOutputStream());
     }
+
+    protected DocumentManager getDocumentManager() {
+        return documentManager;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setDocumentManager(DocumentManager documentManager) {
+        this.documentManager = documentManager;
+    }
+
+    protected ResourceTypeResolver getResourceTypeResolver() {
+        return resourceTypeResolver;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setResourceTypeResolver(ResourceTypeResolver resourceTypeResolver) {
+        this.resourceTypeResolver = resourceTypeResolver;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.module.cforms/src/main/java/org/apache/lenya/cms/editors/cforms/CForms.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.cforms/src/main/java/org/apache/lenya/cms/editors/cforms/CForms.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.cforms/src/main/java/org/apache/lenya/cms/editors/cforms/CForms.java (original)
+++ lenya/trunk/org.apache.lenya.module.cforms/src/main/java/org/apache/lenya/cms/editors/cforms/CForms.java Fri Feb  6 17:55:28 2009
@@ -15,9 +15,8 @@
  */
 package org.apache.lenya.cms.editors.cforms;
 
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.workflow.usecases.InvokeWorkflow;
@@ -27,14 +26,21 @@
  * Dummy CForms usecase.
  */
 public class CForms extends InvokeWorkflow {
-    
+
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
      */
     protected void initParameters() {
         super.initParameters();
         try {
-            doPreparation(this.manager);
+            HttpServletRequest request = getRequest();
+            Document doc = getSourceDocument();
+            String sourceUri = doc.getSourceURI();
+            setParameter("sourceUri", sourceUri);
+            String pubId = doc.getPublication().getId();
+            setParameter("pubId", pubId);
+            String host = "http://" + request.getServerName() + ":" + request.getServerPort();
+            setParameter("host", host);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -42,13 +48,6 @@
     }
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
-     */
-    protected void doCheckExecutionConditions() throws Exception {
-        super.doCheckExecutionConditions();
-    }
-
-    /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
@@ -56,21 +55,10 @@
         org.w3c.dom.Document xml = (org.w3c.dom.Document) getParameter("xml");
         DocumentHelper.writeDocument(xml, getSourceDocument().getOutputStream());
     }
-    
+
     protected Node[] getNodesToLock() {
         Node[] nodes = { getSourceDocument().getRepositoryNode() };
         return nodes;
     }
-    
-    private void doPreparation(ServiceManager manager) {
-        Request request = ContextHelper.getRequest(this.context);
-        Document doc = getSourceDocument();
-        String sourceUri = doc.getSourceURI();
-        setParameter("sourceUri", sourceUri);
-        String pubId = doc.getPublication().getId();
-        setParameter("pubId", pubId);
-        String host="http://"+request.getServerName()+":"+request.getServerPort()  ;
-        setParameter("host", host);
-    }
 
 }

Modified: lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java (original)
+++ lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java Fri Feb  6 17:55:28 2009
@@ -17,14 +17,14 @@
  */
 package org.apache.lenya.cms.contactform;
 
-import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.lenya.ac.AccessController;
 import org.apache.lenya.ac.AccessControllerResolver;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.ac.UserManager;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
 import org.apache.lenya.notification.Message;
-import org.apache.lenya.notification.NotificationUtil;
+import org.apache.lenya.notification.Notifier;
 
 /**
  * Contact form. The recipient user ID is set using the "recipient" parameter. The sender user ID is
@@ -38,6 +38,8 @@
     protected static final String NAME = "name";
     protected static final String FROM = "email";
 
+    private Notifier notifier;
+
     protected void doCheckPreconditions() throws Exception {
         super.doCheckPreconditions();
         if (getParameterAsString(SENDER).equals("")) {
@@ -77,43 +79,32 @@
         String from = getParameterAsString(FROM);
 
         Message message = new Message("Contact form submitted by " + name + " (" + from + ")",
-                new String[0],
-                body,
-                new String[0],
-                sender,
-                recipients);
-        
-        NotificationUtil.notify(this.manager, message);
+                new String[0], body, new String[0], sender, recipients);
+
+        getNotifier().notify(message);
 
         setDefaultTargetURL(getSourceURL() + "?sent=true");
     }
 
     protected User getUser(String userId) throws Exception {
-        User user;
-        ServiceSelector selector = null;
-        AccessControllerResolver acResolver = null;
-        AccessController accessController = null;
-        try {
-            selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
-                    + "Selector");
-            acResolver = (AccessControllerResolver) selector.select(AccessControllerResolver.DEFAULT_RESOLVER);
-            accessController = acResolver.resolveAccessController(getSourceURL());
-
-            UserManager userManager = accessController.getAccreditableManager().getUserManager();
-            user = userManager.getUser(userId);
-
-        } finally {
-            if (selector != null) {
-                if (acResolver != null) {
-                    if (accessController != null) {
-                        acResolver.release(accessController);
-                    }
-                    selector.release(acResolver);
-                }
-                this.manager.release(selector);
-            }
-        }
-        return user;
+        AccessControllerResolver acResolver = (AccessControllerResolver) WebAppContextUtils
+                .getCurrentWebApplicationContext().getBean(
+                        AccessControllerResolver.ROLE + "/"
+                                + AccessControllerResolver.DEFAULT_RESOLVER);
+        AccessController accessController = acResolver.resolveAccessController(getSourceURL());
+        UserManager userManager = accessController.getAccreditableManager().getUserManager();
+        return userManager.getUser(userId);
+    }
+
+    protected Notifier getNotifier() {
+        return notifier;
+    }
+
+    /**
+     * TODO: Bean wiring
+     */
+    public void setNotifier(Notifier notifier) {
+        this.notifier = notifier;
     }
 
 }

Modified: lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/EditDocument.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/EditDocument.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/EditDocument.java (original)
+++ lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/EditDocument.java Fri Feb  6 17:55:28 2009
@@ -17,6 +17,7 @@
  */
 package org.apache.lenya.cms.editors;
 
+import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.ResourceType;
@@ -59,6 +60,8 @@
 
     protected static final String EVENT = "event";
     protected static final String DEFAULT_EVENT = "edit";
+    
+    private SourceResolver sourceResolver;
 
     /**
      * The URI to copy the document source from.
@@ -74,16 +77,16 @@
         Document sourceDoc = getSourceDocument();
 
         String sourceUri = getParameterAsString(SOURCE_URI);
-        org.w3c.dom.Document xmlDoc = SourceUtil.readDOM(sourceUri, this.manager);
+        org.w3c.dom.Document xmlDoc = SourceUtil.readDOM(sourceUri, getSourceResolver());
 
         ResourceType resourceType = sourceDoc.getResourceType();
         Schema schema = resourceType.getSchema();
-        ValidationUtil.validate(this.manager, xmlDoc, schema, new UsecaseErrorHandler(this));
+        ValidationUtil.validate(xmlDoc, schema, new UsecaseErrorHandler(this));
 
         if (!hasErrors()) {
             SourceUtil.writeDOM(xmlDoc, sourceDoc.getOutputStream());
             String event = getParameterAsString(EVENT, DEFAULT_EVENT);
-            WorkflowUtil.invoke(this.manager, getLogger(), getSourceDocument(), event);
+            WorkflowUtil.invoke(getLogger(), getSourceDocument(), event);
         }
     }
 
@@ -95,4 +98,15 @@
         return objects;
     }
 
+    /**
+     * TODO: Bean wiring
+     */
+    public void setSourceResolver(SourceResolver sourceResolver) {
+        this.sourceResolver = sourceResolver;
+    }
+
+    public SourceResolver getSourceResolver() {
+        return sourceResolver;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/InsertAsset.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/InsertAsset.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/InsertAsset.java (original)
+++ lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/InsertAsset.java Fri Feb  6 17:55:28 2009
@@ -23,18 +23,18 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.cocoon.environment.Request;
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.lenya.ac.User;
-import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
 import org.apache.lenya.cms.linking.LinkRewriter;
 import org.apache.lenya.cms.linking.OutgoingLinkRewriter;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
+import org.apache.lenya.cms.site.usecases.CreateResource;
 import org.apache.lenya.cms.usecase.UsecaseException;
 import org.apache.lenya.cms.usecase.UsecaseInvoker;
 import org.apache.lenya.cms.usecase.UsecaseMessage;
 import org.apache.lenya.util.ServletHelper;
-import org.apache.lenya.cms.site.usecases.CreateResource;
 
 /**
  * Usecase to insert an image into a document.
@@ -44,6 +44,8 @@
 public class InsertAsset extends CreateResource {
 
     protected static final String DOCUMENT = "document";
+    
+    private UsecaseInvoker usecaseInvoker;
 
     /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
@@ -66,7 +68,7 @@
     }
 
     protected void doCheckPreconditions() throws Exception {
-        if (!ServletHelper.isUploadEnabled(manager)) {
+        if (!ServletHelper.isUploadEnabled()) {
             addErrorMessage("Upload is not enabled please check local.build.properties!");
         }
     }
@@ -90,14 +92,12 @@
     }
 
     protected void loadResources() {
-        ContextUtility context = null;
         try {
-            context = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
-            Request request = context.getRequest();
+            HttpServletRequest request = getRequest();
             boolean ssl = request.isSecure();
 
-            LinkRewriter rewriter = new OutgoingLinkRewriter(this.manager, getSession(),
-                    getSourceURL(), ssl, false, false);
+            LinkRewriter rewriter = new OutgoingLinkRewriter(getSession(), getSourceURL(), ssl,
+                    false, false);
             Map asset2proxyUrl = new HashMap();
             setParameter("asset2proxyUrl", asset2proxyUrl);
 
@@ -118,25 +118,20 @@
             setParameter("assets", resources);
         } catch (final Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (context != null) {
-                this.manager.release(context);
-            }
         }
     }
 
     /**
-     * Delegates to the main assets usecase; the name of the usecase being
-     * delegated to is set in the configuration parameter "asset-usecase".
+     * Delegates to the main assets usecase; the name of the usecase being delegated to is set in
+     * the configuration parameter "asset-usecase".
      * 
      * @see org.apache.lenya.cms.usecase.Usecase#advance()
      */
     public void advance() throws UsecaseException {
         super.advance();
         if (getParameterAsBoolean("upload", false)) {
-            UsecaseInvoker invoker = null;
+            UsecaseInvoker invoker = getUsecaseInvoker();
             try {
-                invoker = (UsecaseInvoker) this.manager.lookup(UsecaseInvoker.ROLE);
                 String usecaseName = getParameterAsString("asset-usecase");
 
                 if (getLogger().isDebugEnabled())
@@ -157,19 +152,25 @@
                     }
                 }
                 /*
-                 * The <input type="file"/> value cannot be passed to the next
-                 * screen because the browser doesn't allow this for security
-                 * reasons.
+                 * The <input type="file"/> value cannot be passed to the next screen because the
+                 * browser doesn't allow this for security reasons.
                  */
                 deleteParameter("file");
             } catch (Exception e) {
                 throw new UsecaseException(e);
-            } finally {
-                if (invoker != null) {
-                    this.manager.release(invoker);
-                }
             }
         }
     }
 
+    /**
+     * TODO: Bean wiring
+     */
+    public void setUsecaseInvoker(UsecaseInvoker usecaseInvoker) {
+        this.usecaseInvoker = usecaseInvoker;
+    }
+
+    public UsecaseInvoker getUsecaseInvoker() {
+        return usecaseInvoker;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/SaveDocument.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/SaveDocument.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/SaveDocument.java (original)
+++ lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/SaveDocument.java Fri Feb  6 17:55:28 2009
@@ -29,10 +29,10 @@
 
 /**
  * <p>
- * This usecase saves the document from the request stream <em>before</em> the
- * view is displayed using the {@link EditDocument} usecase. That's kind of a
- * hack, since it violates the standard usecase principle, but it is very
- * convenient because you can save and re-load the document without a redirect.
+ * This usecase saves the document from the request stream <em>before</em> the view is displayed
+ * using the {@link EditDocument} usecase. That's kind of a hack, since it violates the standard
+ * usecase principle, but it is very convenient because you can save and re-load the document
+ * without a redirect.
  * </p>
  * 
  * @version $Id: EditDocument.java 495324 2007-01-11 18:44:04Z andreas $
@@ -40,6 +40,7 @@
 public class SaveDocument extends DocumentUsecase {
 
     protected static final String USECASE_NAME = "usecaseName";
+    private UsecaseInvoker usecaseInvoker;
 
     protected void doCheckPreconditions() throws Exception {
         super.doCheckPreconditions();
@@ -47,27 +48,31 @@
         String usecase = getParameterAsString(USECASE_NAME);
         Assert.notNull("usecase", usecase);
 
-        UsecaseInvoker invoker = null;
-        try {
-            invoker = (UsecaseInvoker) this.manager.lookup(UsecaseInvoker.ROLE);
-            Map params = new HashMap();
-            params.put(EditDocument.SOURCE_URI, getParameter(EditDocument.SOURCE_URI));
-            params.put(EditDocument.EVENT, getParameter(EditDocument.EVENT));
-            invoker.invoke(getSourceURL(), usecase, params);
-
-            if (invoker.getResult() != UsecaseInvoker.SUCCESS) {
-                List messages = invoker.getErrorMessages();
-                for (Iterator i = messages.iterator(); i.hasNext();) {
-                    UsecaseMessage message = (UsecaseMessage) i.next();
-                    addErrorMessage(message.getMessage(), message.getParameters());
-                }
-            }
-        } finally {
-            if (invoker != null) {
-                this.manager.release(invoker);
+        UsecaseInvoker invoker = getUsecaseInvoker();
+        Map params = new HashMap();
+        params.put(EditDocument.SOURCE_URI, getParameter(EditDocument.SOURCE_URI));
+        params.put(EditDocument.EVENT, getParameter(EditDocument.EVENT));
+        invoker.invoke(getSourceURL(), usecase, params);
+
+        if (invoker.getResult() != UsecaseInvoker.SUCCESS) {
+            List messages = invoker.getErrorMessages();
+            for (Iterator i = messages.iterator(); i.hasNext();) {
+                UsecaseMessage message = (UsecaseMessage) i.next();
+                addErrorMessage(message.getMessage(), message.getParameters());
             }
         }
 
     }
 
+    /**
+     * TODO: Bean wiring
+     */
+    public void setUsecaseInvoker(UsecaseInvoker usecaseInvoker) {
+        this.usecaseInvoker = usecaseInvoker;
+    }
+
+    public UsecaseInvoker getUsecaseInvoker() {
+        return usecaseInvoker;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/FormsEditor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/FormsEditor.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/FormsEditor.java (original)
+++ lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/FormsEditor.java Fri Feb  6 17:55:28 2009
@@ -29,6 +29,7 @@
 import java.util.List;
 import java.util.Set;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.FactoryConfigurationError;
@@ -43,8 +44,6 @@
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.cocoon.ProcessingException;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
 import org.apache.commons.lang.StringUtils;
 import org.apache.excalibur.source.ModifiableSource;
 import org.apache.excalibur.source.Source;
@@ -70,6 +69,7 @@
 import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
+import org.xmldb.common.xml.queries.XPathQueryConfigurationException;
 import org.xmldb.common.xml.queries.XPathQueryFactory;
 
 /**
@@ -81,6 +81,8 @@
 
     protected static final String VALIDATION_ERRORS = "private.validationErrors";
 
+    private SourceResolver sourceResolver;
+
     private static final class XUpdateAttributes {
         /**
          * <code>xupdateAttrExpr</code> The Xupdate expression
@@ -124,7 +126,7 @@
         super.doCheckPreconditions();
         if (!hasErrors()) {
             org.apache.lenya.cms.publication.Document doc = getSourceDocument();
-            UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc, getLogger());
+            UsecaseWorkflowHelper.checkWorkflow(this, getEvent(), doc, getLogger());
         }
     }
 
@@ -140,9 +142,8 @@
         Source unnumberTagsXslSource = null;
         Source numberTagsXslSource = null;
 
-        SourceResolver resolver = null;
+        SourceResolver resolver = getSourceResolver();
         try {
-            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
 
             unnumberTagsXslSource = resolver.resolveURI(unnumberTagsXslUri);
             numberTagsXslSource = resolver.resolveURI(numberTagsXslUri);
@@ -153,16 +154,15 @@
                 return;
             }
 
-            Request request = ContextHelper.getRequest(this.context);
+            HttpServletRequest request = getRequest();
             String encoding = request.getCharacterEncoding();
-            save(resolver, getSourceDocument(), unnumberTagsXslSource, numberTagsXslSource,
-                    encoding);
+            save(getSourceDocument(), unnumberTagsXslSource, numberTagsXslSource, encoding);
 
             if (hasErrors()) {
                 setParameter(VALIDATION_ERRORS, getErrorMessages());
             } else if (!getParameterAsBoolean(WORKFLOW_INVOKED, false)) {
                 deleteParameter(VALIDATION_ERRORS);
-                WorkflowUtil.invoke(this.manager, getLogger(), getSourceDocument(), getEvent());
+                WorkflowUtil.invoke(getLogger(), getSourceDocument(), getEvent());
                 setParameter(WORKFLOW_INVOKED, Boolean.valueOf(true));
             }
 
@@ -176,7 +176,6 @@
                 if (numberTagsXslSource != null) {
                     resolver.release(numberTagsXslSource);
                 }
-                this.manager.release(resolver);
             }
         }
     }
@@ -197,7 +196,6 @@
 
     /**
      * Save the Form
-     * @param resolver
      * @param lenyaDocument
      * @param unnumberTagsXslSource
      * @param numberTagsXslSource
@@ -212,9 +210,9 @@
      * @throws TransformerConfigurationException
      * @throws TransformerException
      */
-    private void save(SourceResolver resolver,
-            org.apache.lenya.cms.publication.Document lenyaDocument, Source unnumberTagsXslSource,
-            Source numberTagsXslSource, String encoding) throws Exception {
+    private void save(org.apache.lenya.cms.publication.Document lenyaDocument,
+            Source unnumberTagsXslSource, Source numberTagsXslSource, String encoding)
+            throws Exception {
         if (!lenyaDocument.exists()) {
             throw new ProcessingException("The document [" + lenyaDocument + "] does not exist.");
         }
@@ -246,7 +244,7 @@
 
         Source validationSource = null;
         Source unnumberTagsSource = null;
-
+        SourceResolver resolver = getSourceResolver();
         try {
             String validationUri = lenyaDocument.getSourceURI() + ".validate";
             validationSource = resolver.resolveURI(validationUri);
@@ -270,8 +268,8 @@
             ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
             doc = DocumentHelper.readDocument(in);
 
-            ValidationUtil.validate(this.manager, doc, getSourceDocument().getResourceType()
-                    .getSchema(), new UsecaseErrorHandler(this));
+            ValidationUtil.validate(doc, getSourceDocument().getResourceType().getSchema(),
+                    new UsecaseErrorHandler(this));
 
         } finally {
             if (validationSource != null) {
@@ -754,4 +752,15 @@
         return "edit";
     }
 
+    /**
+     * TODO: Bean wiring
+     */
+    public void setSourceResolver(SourceResolver sourceResolver) {
+        this.sourceResolver = sourceResolver;
+    }
+
+    public SourceResolver getSourceResolver() {
+        return sourceResolver;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java?rev=741654&r1=741653&r2=741654&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java (original)
+++ lenya/trunk/org.apache.lenya.module.editors/src/main/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java Fri Feb  6 17:55:28 2009
@@ -29,8 +29,6 @@
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.Request;
 import org.apache.commons.io.IOUtils;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
 import org.apache.lenya.cms.linking.LinkConverter;
@@ -88,9 +86,8 @@
     protected void doCheckPreconditions() throws Exception {
         super.doCheckPreconditions();
         if (!hasErrors()) {
-            UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(),
-                    getSourceDocument(), getLogger());
-            if (!ServletHelper.isUploadEnabled(this.manager)) {
+            UsecaseWorkflowHelper.checkWorkflow(this, getEvent(), getSourceDocument(), getLogger());
+            if (!ServletHelper.isUploadEnabled()) {
                 addErrorMessage("upload-disabled");
             }
         }
@@ -106,8 +103,7 @@
     }
 
     protected String getRequestEncoding() {
-        Request request = ContextHelper.getRequest(this.context);
-        return request.getCharacterEncoding();
+        return getRequest().getCharacterEncoding();
     }
 
     protected String getContent() {
@@ -156,7 +152,7 @@
             byte bytes[] = xmlString.getBytes(encoding);
             ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
             StreamSource source = new StreamSource(stream);
-            ValidationUtil.validate(this.manager, source, schema, this);
+            ValidationUtil.validate(source, schema, this);
             if (!getValidationErrors().isEmpty()) {
                 addErrorMessage("editors.validationFailed");
             }
@@ -183,8 +179,7 @@
      */
     protected void saveDocument(Document content) throws Exception {
         saveXMLFile(content, getSourceDocument());
-
-        WorkflowUtil.invoke(this.manager, getLogger(), getSourceDocument(), getEvent());
+        WorkflowUtil.invoke(getLogger(), getSourceDocument(), getEvent());
     }
 
     /**
@@ -196,7 +191,7 @@
     protected void saveXMLFile(Document content, org.apache.lenya.cms.publication.Document document) {
         try {
             SourceUtil.writeDOM(content, document.getOutputStream());
-            LinkConverter converter = new LinkConverter(this.manager, getLogger());
+            LinkConverter converter = new LinkConverter(getLogger());
             converter.convertUrlsToUuids(document, false);
         } catch (Exception e) {
             addErrorMessage(e.getMessage());
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.