You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by je...@apache.org on 2006/03/27 16:52:16 UTC
svn commit: r389160 - in /lucene/nutch/trunk: conf/
src/java/org/apache/nutch/util/ src/web/jsp/
Author: jerome
Date: Mon Mar 27 06:52:14 2006
New Revision: 389160
URL: http://svn.apache.org/viewcvs?rev=389160&view=rev
Log:
NUTCH-210, Add an xsl that generates a basic ServletContext XML file for the nutch webapp and make use of the
ServletContext init parameters to override the properties in nutch-default and nutch-site properties.
Contributed by Chris Mattmann.
Added:
lucene/nutch/trunk/conf/context.xsl (with props)
Modified:
lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfiguration.java
lucene/nutch/trunk/src/web/jsp/anchors.jsp
lucene/nutch/trunk/src/web/jsp/cached.jsp
lucene/nutch/trunk/src/web/jsp/explain.jsp
lucene/nutch/trunk/src/web/jsp/refine-query-init.jsp
lucene/nutch/trunk/src/web/jsp/search.jsp
lucene/nutch/trunk/src/web/jsp/text.jsp
Added: lucene/nutch/trunk/conf/context.xsl
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/conf/context.xsl?rev=389160&view=auto
==============================================================================
--- lucene/nutch/trunk/conf/context.xsl (added)
+++ lucene/nutch/trunk/conf/context.xsl Mon Mar 27 06:52:14 2006
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Copyright 2006 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.
+
+ Author : Chris Mattmann
+ Auhtor : Jérôme Charron
+ Description: This xsl file is used to transform dynamic properties out of the
+ nutch-default.xml file into a deployable Context.xml file for configuring
+ the Nutch war file in a servlet container.
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+<Context path="/nutch" docBase="nutch-0.8-dev.war"
+ debug="5" reloadable="true" crossContext="true">
+
+<xsl:for-each select="configuration/property">
+
+<!-- "searcher." properties -->
+<xsl:call-template name="parameter">
+ <xsl:with-param name="property" select="current()"/>
+ <xsl:with-param name="filter" select="'searcher.'"/>
+</xsl:call-template>
+
+<!-- "plugin." properties -->
+<xsl:call-template name="parameter">
+ <xsl:with-param name="property" select="current()"/>
+ <xsl:with-param name="filter" select="'plugin.'"/>
+</xsl:call-template>
+
+<!-- "extension.clustering." properties -->
+<xsl:call-template name="parameter">
+ <xsl:with-param name="property" select="current()"/>
+ <xsl:with-param name="filter" select="'extension.clustering.'"/>
+</xsl:call-template>
+
+<!-- "extension.ontology." properties -->
+<xsl:call-template name="parameter">
+ <xsl:with-param name="property" select="current()"/>
+ <xsl:with-param name="filter" select="'extension.ontology.'"/>
+</xsl:call-template>
+
+<!-- "query." properties -->
+<xsl:call-template name="parameter">
+ <xsl:with-param name="property" select="current()"/>
+ <xsl:with-param name="filter" select="'query.'"/>
+</xsl:call-template>
+
+</xsl:for-each>
+
+</Context>
+</xsl:template>
+
+
+<!--
+ ! Template used to write out a parameter if the property's
+ ! name contains the specified filter string.
+ !-->
+<xsl:template name="parameter">
+ <xsl:param name="property"/>
+ <xsl:param name="filter"/>
+ <xsl:if test="contains(name, $filter)">
+ <Parameter override="false">
+ <xsl:attribute name="name">
+ <xsl:value-of select="name"/>
+ </xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="value"/>
+ </xsl:attribute>
+ </Parameter>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
Propchange: lucene/nutch/trunk/conf/context.xsl
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfiguration.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfiguration.java?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfiguration.java (original)
+++ lucene/nutch/trunk/src/java/org/apache/nutch/util/NutchConfiguration.java Mon Mar 27 06:52:14 2006
@@ -16,12 +16,23 @@
package org.apache.nutch.util;
+// JDK imports
+import java.util.Enumeration;
+
+// Servlet imports
+import javax.servlet.ServletContext;
+
+// Hadoop imports
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.WritableName;
+
/** Utility to create Hadoop {@link Configuration}s that include Nutch-specific
* resources. */
public class NutchConfiguration {
+
+ private final static String KEY = NutchConfiguration.class.getName();
+
private NutchConfiguration() {} // singleton
// for back-compatibility, add old aliases for these Writable classes
@@ -41,11 +52,40 @@
return conf;
}
+ /**
+ * Create a {@link Configuration} for Nutch front-end.
+ *
+ * If a {@link Configuration} is found in the
+ * {@link javax.servlet.ServletContext} it is simply returned, otherwise,
+ * a new {@link Configuration} is created using the {@link #create()} method,
+ * and then all the init parameters found in the
+ * {@link javax.servlet.ServletContext} are added to the {@link Configuration}
+ * (the created {@link Configuration} is then saved into the
+ * {@link javax.servlet.ServletContext}).
+ *
+ * @param application is the ServletContext whose init parameters
+ * must override those of Nutch.
+ */
+ public static Configuration get(ServletContext application) {
+ Configuration conf = (Configuration) application.getAttribute(KEY);
+ if (conf == null) {
+ conf = create();
+ Enumeration e = application.getInitParameterNames();
+ while (e.hasMoreElements()) {
+ String name = (String) e.nextElement();
+ conf.set(name, application.getInitParameter(name));
+ }
+ application.setAttribute(KEY, conf);
+ }
+ return conf;
+ }
+
/** Add the standard Nutch resources to {@link Configuration}. */
public static Configuration addNutchResources(Configuration conf) {
conf.addDefaultResource("nutch-default.xml");
conf.addFinalResource("nutch-site.xml");
return conf;
}
+
}
Modified: lucene/nutch/trunk/src/web/jsp/anchors.jsp
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/web/jsp/anchors.jsp?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/web/jsp/anchors.jsp (original)
+++ lucene/nutch/trunk/src/web/jsp/anchors.jsp Mon Mar 27 06:52:14 2006
@@ -11,11 +11,7 @@
import="org.apache.hadoop.conf.Configuration"
import="org.apache.nutch.util.NutchConfiguration"
%><%
- Configuration nutchConf = (Configuration) application.getAttribute(Configuration.class.getName());
- if (nutchConf == null) {
- nutchConf = NutchConfiguration.create();
- application.setAttribute(Configuration.class.getName(), nutchConf);
- }
+ Configuration nutchConf = NutchConfiguration.get(application);
NutchBean bean = NutchBean.get(application, nutchConf);
// set the character encoding to use when interpreting request values
request.setCharacterEncoding("UTF-8");
Modified: lucene/nutch/trunk/src/web/jsp/cached.jsp
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/web/jsp/cached.jsp?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/web/jsp/cached.jsp (original)
+++ lucene/nutch/trunk/src/web/jsp/cached.jsp Mon Mar 27 06:52:14 2006
@@ -10,11 +10,7 @@
import="org.apache.hadoop.conf.Configuration"
import="org.apache.nutch.util.NutchConfiguration"
%><%
- Configuration nutchConf = (Configuration) application.getAttribute(Configuration.class.getName());
- if (nutchConf == null) {
- nutchConf = NutchConfiguration.create();
- application.setAttribute(Configuration.class.getName(), nutchConf);
- }
+ Configuration nutchConf = NutchConfiguration.get(application);
NutchBean bean = NutchBean.get(application, nutchConf);
bean.LOG.info("cache request from " + request.getRemoteAddr());
Hit hit = new Hit(Integer.parseInt(request.getParameter("idx")),
Modified: lucene/nutch/trunk/src/web/jsp/explain.jsp
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/web/jsp/explain.jsp?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/web/jsp/explain.jsp (original)
+++ lucene/nutch/trunk/src/web/jsp/explain.jsp Mon Mar 27 06:52:14 2006
@@ -9,11 +9,7 @@
import="org.apache.hadoop.conf.Configuration"
import="org.apache.nutch.util.NutchConfiguration"
%><%
- Configuration nutchConf = (Configuration) application.getAttribute(Configuration.class.getName());
- if (nutchConf == null) {
- nutchConf = NutchConfiguration.create();
- application.setAttribute(Configuration.class.getName(), nutchConf);
- }
+ Configuration nutchConf = NutchConfiguration.get(application);
NutchBean bean = NutchBean.get(application, nutchConf);
// set the character encoding to use when interpreting request values
request.setCharacterEncoding("UTF-8");
Modified: lucene/nutch/trunk/src/web/jsp/refine-query-init.jsp
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/web/jsp/refine-query-init.jsp?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/web/jsp/refine-query-init.jsp (original)
+++ lucene/nutch/trunk/src/web/jsp/refine-query-init.jsp Mon Mar 27 06:52:14 2006
@@ -13,11 +13,7 @@
// being loaded into the JVM. Need improvement in future.
try {
- Configuration nutchConf = (Configuration) application.getAttribute(Configuration.class.getName());
- if (nutchConf == null) {
- nutchConf = NutchConfiguration.create();
- application.setAttribute(Configuration.class.getName(), nutchConf);
- }
+ Configuration nutchConf = NutchConfiguration.get(application);
String urls = nutchConf.get("extension.ontology.urls");
ontology = new org.apache.nutch.ontology.OntologyFactory(nutchConf).getOntology();
if (urls==null || urls.trim().equals("")) {
Modified: lucene/nutch/trunk/src/web/jsp/search.jsp
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/web/jsp/search.jsp?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/web/jsp/search.jsp (original)
+++ lucene/nutch/trunk/src/web/jsp/search.jsp Mon Mar 27 06:52:14 2006
@@ -15,11 +15,8 @@
import="org.apache.nutch.util.NutchConfiguration"
%><%
- Configuration nutchConf = (Configuration) application.getAttribute(Configuration.class.getName());
- if (nutchConf == null) {
- nutchConf = NutchConfiguration.create();
- application.setAttribute(Configuration.class.getName(), nutchConf);
- }
+ Configuration nutchConf = NutchConfiguration.get(application);
+
/**
* Number of hits to retrieve and cluster if clustering extension is available
* and clustering is on. By default, 100. Configurable via nutch-conf.xml.
Modified: lucene/nutch/trunk/src/web/jsp/text.jsp
URL: http://svn.apache.org/viewcvs/lucene/nutch/trunk/src/web/jsp/text.jsp?rev=389160&r1=389159&r2=389160&view=diff
==============================================================================
--- lucene/nutch/trunk/src/web/jsp/text.jsp (original)
+++ lucene/nutch/trunk/src/web/jsp/text.jsp Mon Mar 27 06:52:14 2006
@@ -12,11 +12,7 @@
%><%
// show the content of a hit as plain text
- Configuration nutchConf = (Configuration) application.getAttribute(Configuration.class.getName());
- if (nutchConf == null) {
- nutchConf = NutchConfiguration.create();
- application.setAttribute(Configuration.class.getName(), nutchConf);
- }
+ Configuration nutchConf = NutchConfiguration.get(application);
NutchBean bean = NutchBean.get(application, nutchConf);
bean.LOG.info("text request from " + request.getRemoteAddr());