hbase/build-webapps.xml

81 lines
3.2 KiB
XML

<?xml version="1.0"?>
<!--
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<!--
This is a script to compile the jsp for the hbase webapps. Currently,
generation of java classes from jsp is done manually and the produced
java classes are then checked in. We do it this way keeping all to do
with jsp in a separate build file because trying to build jsp inline
we trip over the 'famous' commons-logging classloader problem:
org.apache.commons.logging.LogConfigurationException: Invalid
class loader hierarchy. You have more than one version of
'org.apache.commons.logging.Log' visible, which is not allowed.
See http://www.qos.ch/logging/classloader.jsp. Its addressed
with later versions of jasper apparently (Using later versions of
jasper in this hbase subproject is not sufficent), so when hadoop
goes to jetty6 (HADOOP-1650), we should be able to integrate jsp compiling into
general compile (See http://issues.apache.org/bugzilla/show_bug.cgi?id=36968)
Meantime, if changes in jsps, just checkin the product of this script:
the generated java classes and the web.xml. To run, do following:
$ ant -f build-webapps.xml
-->
<project name="build.hbase.jsp" default="jspc">
<property name="lib.dir" value="${basedir}/lib" />
<property name="hadoop.root" location="${basedir}/../../../"/>
<property name="src.webapps" value="${basedir}/src/webapps" />
<property name="generated.webapps.src"
value="${basedir}/src/java"/>
<target name="jspc" >
<path id="jspc.classpath">
<fileset dir="${lib.dir}">
<include name="commons-el*jar" />
</fileset>
<fileset dir="${hadoop.root}/lib/jetty-ext/">
<include name="*jar" />
</fileset>
<fileset dir="${hadoop.root}/lib/">
<include name="servlet-api*jar" />
<include name="commons-logging*jar" />
</fileset>
</path>
<taskdef classname="org.apache.jasper.JspC" name="jspcompiler" >
<classpath refid="jspc.classpath"/>
</taskdef>
<jspcompiler
uriroot="${src.webapps}/master"
outputdir="${generated.webapps.src}"
package="org.apache.hadoop.hbase.generated.master"
webxml="${src.webapps}/master/WEB-INF/web.xml">
</jspcompiler>
<jspcompiler
uriroot="${src.webapps}/regionserver"
outputdir="${generated.webapps.src}"
package="org.apache.hadoop.hbase.generated.regionserver"
webxml="${src.webapps}/regionserver/WEB-INF/web.xml">
</jspcompiler>
</target>
</project>