Author: cziegeler Date: Wed Feb 23 10:39:34 2005 New Revision: 155047 URL: http://svn.apache.org/viewcvs?view=rev&rev=155047 Log: Rewrite lucene xsp samples
Added: cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/ cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java (with props) cocoon/trunk/src/blocks/lucene/samples/create-index.jx (with props) cocoon/trunk/src/blocks/lucene/samples/flow.js (with props) cocoon/trunk/src/blocks/lucene/samples/welcome-index.xml - copied, changed from r155003, cocoon/trunk/src/blocks/lucene/samples/welcome-index.xsp Removed: cocoon/trunk/src/blocks/lucene/samples/create-index.xsp cocoon/trunk/src/blocks/lucene/samples/document-files.xsp cocoon/trunk/src/blocks/lucene/samples/search-index.xsp cocoon/trunk/src/blocks/lucene/samples/statistic-index.xsp cocoon/trunk/src/blocks/lucene/samples/welcome-index.xsp Modified: cocoon/trunk/blocks.properties cocoon/trunk/gump.xml cocoon/trunk/src/blocks/lucene/samples/sitemap.xmap cocoon/trunk/src/blocks/portal/samples/coplets/basket/basket.js Modified: cocoon/trunk/blocks.properties URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks.properties?view=diff&r1=155046&r2=155047 ============================================================================== --- cocoon/trunk/blocks.properties (original) +++ cocoon/trunk/blocks.properties Wed Feb 23 10:39:34 2005 @@ -64,7 +64,6 @@ #include.block.jfor=false #include.block.jsp=false #include.block.linkrewriter=false -#-----[dependency]: "lucene" depends on "forms" (for samples), "xsp" (for samples). #-----[dependency]: "lucene" is needed by "querybean". #include.block.lucene=false #include.block.naming=false @@ -84,7 +83,7 @@ #-----[dependency]: "xmldb" depends on "databases". #include.block.xmldb=false #-----[dependency]: "xsp" depends on "databases", "session-fw". -#-----[dependency]: "xsp" is needed by "lucene", "python", "scratchpad". +#-----[dependency]: "xsp" is needed by "python", "scratchpad". #include.block.xsp=false # Unstable blocks -------------------------------------------------------------- @@ -112,7 +111,7 @@ #-----[dependency]: "faces" depends on "portal", "taglib". #-----[dependency]: "faces" is needed by "scratchpad". #include.block.faces=false -#-----[dependency]: "forms" is needed by "apples", "lucene", "ojb", "petstore", "portal", "querybean", "tour". +#-----[dependency]: "forms" is needed by "apples", "ojb", "petstore", "portal", "querybean", "tour". #include.block.forms=false #-----[dependency]: "javaflow" is needed by "scratchpad". #include.block.javaflow=false Modified: cocoon/trunk/gump.xml URL: http://svn.apache.org/viewcvs/cocoon/trunk/gump.xml?view=diff&r1=155046&r2=155047 ============================================================================== --- cocoon/trunk/gump.xml (original) +++ cocoon/trunk/gump.xml Wed Feb 23 10:39:34 2005 @@ -441,8 +441,6 @@ <depend project="cocoon" inherit="all"/> <depend project="jakarta-lucene"/> - <depend project="cocoon-block-xsp" type="samples"/> - <depend project="cocoon-block-forms" type="samples"/> <library name="lucene"/> Added: cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java?view=auto&rev=155047 ============================================================================== --- cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java (added) +++ cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java Wed Feb 23 10:39:34 2005 @@ -0,0 +1,86 @@ +/* + * Copyright 1999-2005 The Apache Software Foundation. + * + * Licensed 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. + */ +package org.apache.cocoon.samples; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.apache.avalon.framework.context.Context; +import org.apache.avalon.framework.context.ContextException; +import org.apache.avalon.framework.context.Contextualizable; +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.Constants; +import org.apache.cocoon.ProcessingException; +import org.apache.cocoon.components.search.LuceneCocoonHelper; +import org.apache.cocoon.components.search.LuceneCocoonIndexer; +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.store.Directory; + +/** + * This is a sample helper class that can be used from flow to + * create an index. + * @version $Id:$ + */ +public class LuceneUtil + implements Contextualizable, Serviceable { + + private File workDir; + private ServiceManager manager; + + /* (non-Javadoc) + * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context) + */ + public void contextualize(Context context) throws ContextException { + this.workDir = (File) context.get(Constants.CONTEXT_WORK_DIR); + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) + */ + public void service(ServiceManager manager) throws ServiceException { + this.manager = manager; + } + + public void createIndex(String baseURL, boolean create) + throws ProcessingException { + LuceneCocoonIndexer lcii = null; + Analyzer analyzer = LuceneCocoonHelper.getAnalyzer( "org.apache.lucene.analysis.standard.StandardAnalyzer" ); + + try { + + lcii = (LuceneCocoonIndexer)this.manager.lookup( LuceneCocoonIndexer.ROLE ); + Directory directory = LuceneCocoonHelper.getDirectory( new File( workDir, "index" ), create ); + lcii.setAnalyzer( analyzer ); + URL base_url = new URL( baseURL ); + lcii.index( directory, create, base_url ); + } catch (MalformedURLException mue) { + throw new ProcessingException( "MalformedURLException in createIndex()!", mue ); + } catch (IOException ioe) { + // ignore ?? + throw new ProcessingException( "IOException in createIndex()!", ioe ); + } catch (ServiceException ce) { + // ignore ?? + throw new ProcessingException( "ServiceException in createIndex()!", ce ); + } finally { + this.manager.release( lcii ); + } + } + +} Propchange: cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/samples/LuceneUtil.java ------------------------------------------------------------------------------ svn:keywords = Id Added: cocoon/trunk/src/blocks/lucene/samples/create-index.jx URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/samples/create-index.jx?view=auto&rev=155047 ============================================================================== --- cocoon/trunk/src/blocks/lucene/samples/create-index.jx (added) +++ cocoon/trunk/src/blocks/lucene/samples/create-index.jx Wed Feb 23 10:39:34 2005 @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<!-- + Copyright 1999-2005 The Apache Software Foundation + + Licensed 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. +--> +<!-- @version $Id:$ --> +<page> + <content> + <h1>Create a Lucene search index</h1> + <para> + <font size="-1"> + <a href="welcome">Welcome</a> + </font> + </para> + <para> + This process might take some time (follow the tail of your logfiles + to see the indexer in progress). + <ul> + <li>LuceneCocoonIndexer.ROLE org.apache.cocoon.components.search.LuceneCocoonIndexer + </li> + <li>context-path ${cocoon.request.getContextPath()} + </li> + <li>baseURL ${url} + </li> + <li>create ${cocoon.request.getParameter("create")}, ${create} + </li> + <li>get-uri ${cocoon.request.getRequestURI()} + </li> + <li>get-sitemap-uri ${cocoon.request.getSitemapURI()} + </li> + </ul> + + <form action="create"> + <table> + <tr> + <td>BaseURL</td> + <td> + <input type="text" name="baseURL" size="60" value="${url}"/> + </td> + </tr> + <tr> + <td colspan="2"> + <input type="radio" name="create" value="true" checked="checked"/> + Create/Overwrite the Index, or + <input type="radio" name="create" value="false"/> + Update the existing Index + </td> + </tr> + <tr> + <td colspan="2"> + <input type="submit" name="find" value="Create"/> + </td> + </tr> + </table> + </form> + + </para> + </content> +</page> Propchange: cocoon/trunk/src/blocks/lucene/samples/create-index.jx ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/src/blocks/lucene/samples/create-index.jx ------------------------------------------------------------------------------ svn:keywords = Id Added: cocoon/trunk/src/blocks/lucene/samples/flow.js URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/samples/flow.js?view=auto&rev=155047 ============================================================================== --- cocoon/trunk/src/blocks/lucene/samples/flow.js (added) +++ cocoon/trunk/src/blocks/lucene/samples/flow.js Wed Feb 23 10:39:34 2005 @@ -0,0 +1,40 @@ +/* + * Copyright 1999-2004 The Apache Software Foundation. + * + * Licensed 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. + */ +// +// @version $Id:$ +// +function create() { + var create; + var createParam = cocoon.request.getParameter("create"); + if (createParam == null) { + create = false; + } else { + create = true; + } + + var baseURL = cocoon.request.getParameter("baseURL"); + if (baseURL != null && baseURL.length() > 0) { + var util = cocoon.createObject("org.apache.cocoon.samples.LuceneUtil"); + util.createIndex(baseURL, create ); + } + if (baseURL == null || baseURL.length() < 1) { + baseURL = "http://" + cocoon.request.getServerName() + + ":" + cocoon.request.getServerPort() + + cocoon.request.getContextPath() + + "/docs/index.html"; + } + cocoon.sendPage("create-index.jx", {"url" : baseURL, "create" : create}); +} Propchange: cocoon/trunk/src/blocks/lucene/samples/flow.js ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/src/blocks/lucene/samples/flow.js ------------------------------------------------------------------------------ svn:keywords = Id Modified: cocoon/trunk/src/blocks/lucene/samples/sitemap.xmap URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/samples/sitemap.xmap?view=diff&r1=155046&r2=155047 ============================================================================== --- cocoon/trunk/src/blocks/lucene/samples/sitemap.xmap (original) +++ cocoon/trunk/src/blocks/lucene/samples/sitemap.xmap Wed Feb 23 10:39:34 2005 @@ -55,16 +55,21 @@ </map:views> + <map:flow language="javascript"> + <map:script src="flow.js"/> + </map:flow> + <!-- =========================== Pipelines ================================= --> <map:pipelines> <map:pipeline> - <!-- mount query bean pipelines - <map:match pattern="query/**"> - <map:mount check-reload="yes" src="query/sitemap.xmap" uri-prefix="query"/> - </map:match> --> + <!-- mount query bean pipelines + <map:match pattern="query/**"> + <map:mount check-reload="yes" src="query/sitemap.xmap" uri-prefix="query"/> + </map:match> + --> <map:match pattern="images/*.gif"> <map:read src="images/{1}.gif" mime-type="image/gif"> @@ -88,39 +93,22 @@ <map:serialize/> </map:match> - <map:match pattern="document-files.xsp"> - <map:generate type="serverpages" src="document-files.xsp"> - </map:generate> - - <map:transform src="stylesheets/all-files2content.xsl"/> - <map:transform type="cinclude"/> - <map:transform src="stylesheets/content2lucene.xsl"/> - <map:transform type="index"/> - - <map:transform src="stylesheets/lucene-index2html.xsl"/> - + <map:match pattern="welcome"> + <map:generate src="welcome-index.xml"/> + <map:transform src="context://samples/stylesheets/dynamic-page2html.xsl"> + <map:parameter name="contextPath" value="{request:contextPath}"/> + </map:transform> <map:serialize/> </map:match> - <map:match pattern="*.xsp"> - <map:generate type="serverpages" src="{1}.xsp"> - <map:parameter name="p1" value="context://docs/xdocs"/> - </map:generate> - - <map:serialize type="xml"/> + <map:match pattern="create"> + <map:call function="create"/> </map:match> - - <map:match pattern="*"> - <map:generate type="serverpages" src="{1}-index.xsp"/> - <!-- - Run-time configuration is done through these - <map:parameter/> elements. Again, let's have a look at the - javadocs: - "[...] All <map:parameter> declarations will be made - available in the XSLT stylesheet as xsl:variables. [...]" - --> + + <map:match pattern="create-index.jx"> + <map:generate type="jx" src="create-index.jx"/> <map:transform src="context://samples/stylesheets/dynamic-page2html.xsl"> - <map:parameter name="contextPath" value="{request:contextPath}"/> + <map:parameter name="contextPath" value="{request:contextPath}"/> </map:transform> <map:serialize/> </map:match> Copied: cocoon/trunk/src/blocks/lucene/samples/welcome-index.xml (from r155003, cocoon/trunk/src/blocks/lucene/samples/welcome-index.xsp) URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/samples/welcome-index.xml?view=diff&rev=155047&p1=cocoon/trunk/src/blocks/lucene/samples/welcome-index.xsp&r1=155003&p2=cocoon/trunk/src/blocks/lucene/samples/welcome-index.xml&r2=155047 ============================================================================== --- cocoon/trunk/src/blocks/lucene/samples/welcome-index.xsp (original) +++ cocoon/trunk/src/blocks/lucene/samples/welcome-index.xml Wed Feb 23 10:39:34 2005 @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!-- - Copyright 1999-2004 The Apache Software Foundation + Copyright 1999-2005 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,10 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. --> -<!-- CVS $Id: welcome-index.xsp,v 1.9 2004/07/11 15:45:25 antonio Exp $ --> -<xsp:page language="java" xmlns:xsp="http://apache.org/xsp"> - - <page> +<!-- @version $Id:$ --> +<page> <title>Welcome to Cocoon XML Search using Lucene</title> <content> <a href="http://jakarta.apache.org/lucene/"><img border="0" alt="Lucene Logo" src="images/lucene_green_300.gif"/></a> @@ -33,8 +31,6 @@ </li> <li>Searching through a once created Lucene index using various means: </li> - <li>Searching a Lucene index using <em>XSP</em> - </li> <li>Searching a Lucene index using <em>SearchGenerator</em> </li> </ul> @@ -62,18 +58,6 @@ index, named index. </p> - <h3>Creating Index2 By Transforming</h3> - <p> - Create an index by using LuceneIndexTransformer. - An XSP Page gathers all files of directory docs/xdocs, includes all - the files and pipes it through LuceneIndexTransformer, creating an - index, named index2. - </p> - <p> - This following page allows you to <a href="document-files.xsp">create</a> an - index, named index2. - </p> - <h2>Searching</h2> <p> If you have created a Lucene index, you can search the created index. @@ -81,10 +65,6 @@ <h3>Searching Index</h3> <p> Enter a query and search the Lucene index that you have created - - using <a href="search?queryString=lucene">XSP</a>. - </p> - <p> - Enter a query and search the Lucene index that you have created - using <a href="findIt?queryString=lucene">Cocoon Generators</a>. </p> @@ -147,6 +127,5 @@ </form> </center--> </content> - </page> -</xsp:page> +</page> Modified: cocoon/trunk/src/blocks/portal/samples/coplets/basket/basket.js URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/samples/coplets/basket/basket.js?view=diff&r1=155046&r2=155047 ============================================================================== --- cocoon/trunk/src/blocks/portal/samples/coplets/basket/basket.js (original) +++ cocoon/trunk/src/blocks/portal/samples/coplets/basket/basket.js Wed Feb 23 10:39:34 2005 @@ -1,5 +1,20 @@ +/* + * Copyright 1999-2004 The Apache Software Foundation. + * + * Licensed 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. + */ // -// SVN $Id:$ +// @version $Id$ // cocoon.load("resource://org/apache/cocoon/forms/flow/javascript/Form.js");