Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 1877 invoked from network); 17 Nov 2006 17:10:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Nov 2006 17:10:07 -0000 Received: (qmail 40979 invoked by uid 500); 17 Nov 2006 17:10:10 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 40871 invoked by uid 500); 17 Nov 2006 17:10:09 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@cocoon.apache.org List-Id: Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 40766 invoked by uid 99); 17 Nov 2006 17:10:08 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Nov 2006 09:10:08 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Nov 2006 09:09:57 -0800 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 28F0A714329 for ; Fri, 17 Nov 2006 09:09:37 -0800 (PST) Message-ID: <29891702.1163783377165.JavaMail.jira@brutus> Date: Fri, 17 Nov 2006 09:09:37 -0800 (PST) From: "Alexander Klimetschek (JIRA)" To: dev@cocoon.apache.org Subject: [jira] Created: (COCOON-1955) [Patch] Allow shielded class loading for a single block MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [Patch] Allow shielded class loading for a single block ------------------------------------------------------- Key: COCOON-1955 URL: http://issues.apache.org/jira/browse/COCOON-1955 Project: Cocoon Issue Type: New Feature Components: * Cocoon Core, - Blocks Framework Affects Versions: 2.2-dev (Current SVN) Reporter: Alexander Klimetschek == Problem == When trying to integrate Apache Solr in our Cocoon webapplication, we got a problem with conflicting versions of jars. Our jackrabbit block needs an old lucene, whereas Solr wants a fresh new lucene nightly build. == Solution == Since we integrate the SolrServlet (and the other servlets from solar) inside a BlockServlet to have them all inside our cocoon webapp with consistent URLs, we considered adding a ShieldingServlet. Thus the BlockServlet wraps the ShieldingServlet which in turn wraps the SolrServlet. The configuration for the BlockServlet bean looks like this: The directory structure of the solr-block: src/main/resources/ COB-INF/ paranoid-classpath.txt paranoid-lib/ .jar (including the jar which contains the solr servlet) META-INF/ cocoon/ spring/ solr-blockservlet.xml The paranoid-classpath.txt contains the following single line: lib-dir: context:paranoid-lib == The Patch == To get the ShieldingServlet work with the blocks-fw and the basic shielding that is done in the Cocoon webapp anyway (via a ShieldingListener in the web.xml), two things must be done: a) The BootstrapClassLoaderManager in cocoon-bootstrap must not store the classloader it creates in a static variable so that in each call of getClassLoader() a new ClassLoader is created. That method is exactly called 2 times in our situation: first by the cocoon webapp shielding listener and then by the ShieldingServlet in our block. b) The method BlockContext.getResourcePaths() must be implemented to list the resources in that block context (stuff under COB-INF of that block). Lots of the work was done by my colleague Alexander Saar. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira