Improve output: distinguish between failed assertions (failures) and unexpected exceptions (errors), and print a filtered stack trace for any exception.

This commit is contained in:
jeb228 2010-01-29 22:13:57 +00:00
commit 4f2e303079
1839 changed files with 235630 additions and 0 deletions

View file

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<!-- <!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "ant16.dtd" > this doesn't seem to work well. -->
<project name="imported-build" basedir="../../">
<!-- add the ant contrib tasks
see http://ant-contrib.sourceforge.net/ant-contrib/manual/tasks/index.html -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<fileset dir="${ant.lib}">
<include name="**/*.jar"/>
</fileset>
</classpath>
</taskdef>
</project>

Binary file not shown.

View file

@ -0,0 +1,49 @@
# these are ant build properties that all of the vitro and build.xml files might need.
#
# All of these paths must be absolute or relative to the vitro directory. Relative
# is preferred.
# Notice that the use of relative paths is facilitated by the basedir attribute of the
# ant project elements. All projects should use the same base directory so that the
# relative paths will point to the correct files.
# See the ant documentation for project element basedir attribute.
############## basic configuration ###############
java_api=/usr/local/java/java_home
############ tomcat stuff ####################
tomcat.home=/usr/local/tomcat
############# source directory #########################################
##### This parameter is used for referencing a "permanent" home #######
##### in the source directory of the project for uploaded files #######
##### so that if the Tomcat webapp context is wiped out, any #######
##### uploaded files (usually images) are not lost. #######
########################################################################
source.home=/usr/local/src/Vitro
########################################################################
##### Everything under this is used by the Vitro build.xml files #######
##### You should not need to customize it for you local install #######
########################################################################
########### ant contrib tasks ###############
ant.lib=./config/ant/lib
ant.contrib.jar=${ant.lib}/ant-contrib-1.0b2.jar
#### locations of files in the build #####
webapp.dir=./webapp
webapp.lib=${webapp.dir}/lib
webapp.build=${webapp.dir}/.build
webapp.dir.jar=${webapp.build}/vitro-webapp.jar
webapp.name=vitro
webapp.deploy.home=${tomcat.home}/webapps/${webapp.name}
ingest.dir=./ingestTool
ingest.lib=${ingest.dir}/lib
ingest.build=${ingest.dir}/build
ws.dir=./services
ws.lib=${ws.dir}/lib
ws.build=${webapp.dir}/build
ws.wsdd.dir=${ws.dir}/wsdd

4
config/test Normal file
View file

@ -0,0 +1,4 @@
osk
sk
dklsjf

25
doc/license.txt Normal file
View file

@ -0,0 +1,25 @@
Copyright (c) ${year}, Cornell University
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Cornell University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1,12 @@
bdc34:
This directory is here so that we can stick properties files
and other resources into a directory that will end up on
the java CLASSPATH.
Files for apache axis:
-rw-r--r-- 1 bdc34 bdc34 9355 Aug 14 12:13 i18n_ja.properties
-rw-r--r-- 1 bdc34 bdc34 4799 Aug 14 12:13 i18n.properties
-rw-rw-r-- 1 bdc34 bdc34 921 Aug 14 12:32 log4j.properties
It seems like the log4j.properties file may cause problems if
we start using log4j in other parts of the system.

View file

@ -0,0 +1,132 @@
############################################################
# i18n settings for the Axis Web-Application
#
#################### [i18n global setting] #################
#
locales=en ja
#################### [index.jsp] ###########################
#
### Header ###
#
language=Language
welcomeMessage=Hello! Welcome to Apache-Axis.
### Operation list ###
#
operationType=What do you want to do today?
# Validation
validation=Validation
validationURL=happyaxis.jsp
validationFootnote00=Validate the local installation's configuration
validationFootnote01=see below if this does not work.
# List
serviceList=List
serviceListURL=servlet/AxisServlet
serviceListFootnote=View the list of deployed Web services
# Call
callAnEndpoint=Call
callAnEndpointURL=EchoHeaders.jws?method=list
callAnEndpointFootnote00=Call a local endpoint that list's the caller's http headers
callAnEndpointFootnote01=(or see its <a href="EchoHeaders.jws?wsdl">WSDL</a>).
# Visit
visit=Visit
visitURL=http://ws.apache.org/axis/
visitFootnote=Visit the Apache-Axis Home Page
# Admin
admin=Administer Axis
adminURL=servlet/AdminServlet
adminFootnote=[disabled by default for security reasons]
# SOAPMonitor
soapMonitor=SOAPMonitor
soapMonitorURL=SOAPMonitor
soapMonitorFootnote=[disabled by default for security reasons]
# Sidenote
sideNote=To enable the disabled features, uncomment the appropriate declarations in WEB-INF/web.xml in the webapplication and restart it.
### Validating Axis ###
#
# Title
validatingAxis=Validating Axis
# Note 0
validationNote00=If the "happyaxis" validation page displays an exception instead of a status page, the likely cause is that you have multiple XML parsers in your classpath. Clean up your classpath by eliminating extraneous parsers.
# Note 1
validationNote01=If you have problems getting Axis to work, consult the Axis <a href="http://wiki.apache.org/ws/FrontPage/Axis">Wiki</a> and then try the Axis user mailing list.
#
#################### [index.jsp] ###########################
#################### [happyaxis.jsp] #######################
#
pageTitle=Axis Happiness Page
pageRole=Examining webapp configuration
### Needed Components ###
#
neededComponents=Needed Components
error=Error
warning=Warning
criticalErrorMessage=Axis will not work.
uncertainErrorMessage=Axis may not work.
# parameters = url, name
seeHomepage=<br> See <a href="{0}">{0}</a>
# parameters = category, classname, jarFile, errorText, url
couldNotFound=<p> {0}: could not find class {1} from file <b>{2}</b><br> {3} {4}<p>
# parameters = description, classname
foundClass00=Found {0} ( {1} )
# parameters = description, classname
foundClass01=Found {0} ( {1} ) at {2}
# parameters = category, classname, errorText, url
couldNotFoundDep=<p> {0}: could not find a dependency of class {1} from file <b>{2}</b><br> {3} {4}
# parameters = ncdfe.getMessage(), classname
theRootCause=<br>The root cause was: {0}<br>This can happen e.g. if {1} is in the 'common' classpath, but a dependency like activation.jar is only in the webapp classpath.<p>
# parameters = location
invalidSAAJ=<b>Error:</b> Invalid version of SAAJ API found in {0}. Make sure that Axis' saaj.jar precedes {0} in CLASSPATH.<br>
axisInstallation=Axis installation instructions
### Optional Components ###
#
optionalComponents=Optional Components
attachmentsError=Attachments will not work.
xmlSecurityError=XML Security is not supported.
httpsError=https is not supported.
happyResult00=<i>The core axis libraries are present.</i>
happyResult01=<i>The optional components are present.</i>
# parameters = needed(num of missing libraries)
unhappyResult00=<i>{0} core axis library(ies) are missing</i>
# parameters = wanted(num of missing libraries)
unhappyResult01=<i>{0} wanted optional axis librar(ies) are missing</i>
hintString=<B><I>Note:</I></B> On Tomcat 4.x and Java1.4, you may need to put libraries that contain java.* or javax.* packages into CATALINA_HOME/common/lib <br>jaxrpc.jar and saaj.jar are two such libraries.<p/>
noteString=<B><I>Note:</I></B> Even if everything this page probes for is present, there is no guarantee your web service will work, because there are many configuration options that we do not check for. These tests are <i>necessary</i> but not <i>sufficient</i><hr>
### Examining Application Server ###
#
apsExamining=Examining Application Server
recommendedParser=<b>We recommend <a href="http://xml.apache.org/xerces2-j/">Xerces 2</a> over Crimson as the XML parser for Axis</b>
couldNotCreateParser=Could not create an XML Parser
### Examining System Properties ###
#
sysExamining=Examining System Properties
sysPropError=System properties are not accessible.<p>
classFoundError=an unknown location
apsPlatform=Platform
#
#################### [happyaxis.jsp] #######################

View file

@ -0,0 +1,127 @@
############################################################
# Japanese settings for the Axis Web-Application
#
#################### [index.jsp] ###########################
#
### Header ###
#
language=\u8a00\u8a9e
welcomeMessage=\u3053\u3093\u306b\u3061\u306f\uff01 Apache-Axis\u3078\u3088\u3046\u3053\u305d
### Operation list ###
#
operationType=\u4eca\u65e5\u306f\u4f55\u3092\u3057\u305f\u3044\u3067\u3059\u304b\uff1f
# Validation
validation=\u691c\u8a3c
validationURL=happyaxis.jsp
validationFootnote00=\u30ed\u30fc\u30ab\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u72b6\u6cc1\u3092\u691c\u8a3c\u3059\u308b
validationFootnote01=\u3046\u307e\u304f\u6a5f\u80fd\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u4e0b\u8a18\u300cAxis\u306e\u691c\u8a3c\u300d\u3092\u53c2\u7167
# List
serviceList=\u30ea\u30b9\u30c8
serviceListURL=servlet/AxisServlet
serviceListFootnote=\u30c7\u30d7\u30ed\u30a4\u6e08\u307f\u306eWeb\u30b5\u30fc\u30d3\u30b9\u30ea\u30b9\u30c8\u3092\u898b\u308b
# Call
callAnEndpoint=\u547c\u51fa\u3057
callAnEndpointURL=EchoHeaders.jws?method=list
callAnEndpointFootnote00=HTTP\u30d8\u30c3\u30c0\u306e\u4e00\u89a7\u8868\u793a\u3092\u884c\u3046\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u8d77\u52d5\u3059\u308b
callAnEndpointFootnote01=(\u3082\u3057\u304f\u306f<a href="EchoHeaders.jws?wsdl">WSDL</a>\u306e\u53c2\u7167)
# Visit
visit=\u8a2a\u554f
visitURL=http://ws.apache.org/axis/ja/index.html
visitFootnote=Apache Axis\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u8a2a\u554f\u3059\u308b
# Admin
admin=Axis\u306e\u7ba1\u7406
adminURL=servlet/AdminServlet
adminFootnote=[\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u5229\u7528\u4e0d\u53ef]
# SOAPMonitor
soapMonitor=SOAP\u30e2\u30cb\u30bf
soapMonitorURL=SOAPMonitor
soapMonitorFootnote=[\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u5229\u7528\u4e0d\u53ef]
# Sidenote
sideNote=\u4e0a\u8a18\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5229\u7528\u3067\u304d\u306a\u3044\u6a5f\u80fd\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5185\u306eWEB-INF/web.xml\u30d5\u30a1\u30a4\u30eb\u306e\u8a72\u5f53\u3059\u308b\u5ba3\u8a00\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u5916\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u518d\u8d77\u52d5\u3057\u3066\u4e0b\u3055\u3044\u3002
### Validating Axis ###
#
# Title
validatingAxis=Axis\u306e\u691c\u8a3c
# Note 0
validationNote00="happyaxis"\u691c\u8a3c\u30da\u30fc\u30b8\u304c\u72b6\u614b\u8868\u793a\u3067\u306f\u306a\u304f\u4f8b\u5916\u3092\u8868\u793a\u3059\u308b\u5834\u5408\u3001\u539f\u56e0\u3068\u3057\u3066\u306f\u30af\u30e9\u30b9\u30d1\u30b9\u5185\u306b\u8907\u6570\u306eXML\u30d1\u30fc\u30b5\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002\u95a2\u4fc2\u306a\u3044\u30d1\u30fc\u30b5\u3092\u30af\u30e9\u30b9\u30d1\u30b9\u304b\u3089\u53d6\u308a\u9664\u3044\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002
# Note 1
validationNote01=Axis\u3092\u52d5\u4f5c\u3055\u305b\u308b\u4e0a\u3067\u554f\u984c\u3092\u62b1\u3048\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u307e\u305a<a href="http://wiki.apache.org/ws/ja/axis">Axis Wiki</a>\u3092\u53c2\u8003\u306b\u3057\u3001\u305d\u306e\u5f8c\u3067Axis\u30e6\u30fc\u30b6\u30e1\u30fc\u30ea\u30f3\u30b0\u30ea\u30b9\u30c8\u306b\u6295\u7a3f\u3057\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002
#
#################### [index.jsp] ###########################
#################### [happyaxis.jsp] #######################
#
pageTitle=Axis Happiness Page
pageRole=webapp\u306e\u69cb\u6210\u306b\u95a2\u3059\u308b\u8abf\u67fb
### Needed Components ###
#
neededComponents=\u5fc5\u9808\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8
error=\u30a8\u30e9\u30fc
warning=\u8b66\u544a
criticalErrorMessage=\u304a\u305d\u3089\u304fAxis\u306f\u52d5\u304d\u307e\u305b\u3093\u3002
uncertainErrorMessage=Axis\u306f\u52d5\u304b\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
# parameters = url, name
seeHomepage=<br> <a href="{0}">{0}</a>\u3092\u898b\u3066\u4e0b\u3055\u3044\u3002
# parameters = category, classname, jarFile, errorText, url
couldNotFound=<p> {0}: <b>{2}</b>\u30d5\u30a1\u30a4\u30eb\u304c\u63d0\u4f9b\u3059\u308b{1}\u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002<br> {3} {4}<p>
# parameters = description, classname
foundClass00={0} ( {1} ) \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002
# parameters = description, classname, location
foundClass01={0} ( {1} ) \u304c{2}\u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002
# parameters = category, classname, errorText, url
couldNotFoundDep=<p> {0}: <b>{2}</b>\u30d5\u30a1\u30a4\u30eb\u304c\u63d0\u4f9b\u3059\u308b{1}\u30af\u30e9\u30b9\u306e\u4f9d\u5b58\u95a2\u4fc2\u304c\u89e3\u6c7a\u3067\u304d\u307e\u305b\u3093\u3002<br> {3} {4}
# parameters = ncdfe.getMessage(), classname
theRootCause=<br>\u6839\u672c\u539f\u56e0: {0}<br>\u3053\u306e\u30a8\u30e9\u30fc\u306f\u6b21\u306e\u3088\u3046\u306a\u5834\u5408\u306b\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u300c\u5171\u901a\u306e\u300d\u30af\u30e9\u30b9\u30d1\u30b9\u306b{1}\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001activation.jar \u306e\u3088\u3046\u306a\u4f9d\u5b58\u3059\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u304cwebapp\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u3060\u3051\u306b\u3057\u304b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u306a\u5834\u5408\u3067\u3059\u3002<p>
# parameters = location
invalidSAAJ=<b>\u30a8\u30e9\u30fc:</b> {0}\u306b\u9069\u5207\u3067\u306a\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u306eSAAJ API\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002Axis\u306esaaj.jar\u3092\u3001CLASSPATH\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b{0} \u3088\u308a\u3082\u524d\u65b9\u306b\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br>
axisInstallation=Axis\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806
### Optional Components ###
#
optionalComponents=\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff65\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8
attachmentsError=\u304a\u305d\u3089\u304fAttachments\u306f\u6a5f\u80fd\u3057\u307e\u305b\u3093\u3002
xmlSecurityError=XML Security\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
httpsError=https\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
happyResult00=<i>axis\u306e\u30b3\u30a2\uff65\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u5168\u3066\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002</i>
happyResult01=<i>\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff65\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002</i>
# parameters = needed(num of missing libraries)
unhappyResult00=<i>axis\u306e\u30b3\u30a2\uff65\u30e9\u30a4\u30d6\u30e9\u30ea\u304c{0}\u3064\u6b20\u3051\u3066\u3044\u307e\u3059\u3002</i>
# parameters = wanted(num of missing libraries)
unhappyResult01=<i>axis\u306e\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff65\u30e9\u30a4\u30d6\u30e9\u30ea\u304c{0}\u3064\u6b20\u3051\u3066\u3044\u307e\u3059\u3002</i>
hintString=<B><I>\u6ce8\u610f:</I></B> Tomcat 4.x \u3068 Java1.4 \u4e0a\u3067\u306f\u3001CATALINA_HOME/common/lib \u306b\u3001java.* \u3082\u3057\u304f\u306f javax.* \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u542b\u3080\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u914d\u7f6e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<br>\u4f8b\u3048\u3070 jaxrpc.jar \u3068 saaj.jar \u306f\u3001\u305d\u306e\u3088\u3046\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002<p/>
noteString=<B><I>\u6ce8\u610f:</I></B> \u30da\u30fc\u30b8\u306b\u5168\u3066\u306e\u8abf\u67fb\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u305f\u3068\u3057\u3066\u3082\u3001\u30c1\u30a7\u30c3\u30af\u3067\u304d\u306a\u3044\u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u3082\u591a\u3044\u305f\u3081\u3001\u3042\u306a\u305f\u306eWeb\u30b5\u30fc\u30d3\u30b9\u304c\u6b63\u5e38\u306b\u6a5f\u80fd\u3059\u308b\u4fdd\u969c\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u3053\u308c\u3089\u306e\u30c6\u30b9\u30c8\u306f<i>\u5fc5\u8981</i>\u306a\u3082\u306e\u3067\u3059\u304c\u3001<i>\u5341\u5206</i>\u306a\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
### Examining Application Server ###
#
apsExamining=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\uff65\u30b5\u30fc\u30d0\u30fc\u306b\u95a2\u3059\u308b\u8abf\u67fb
recommendedParser=<b>Axis\u3067\u4f7f\u7528\u3059\u308bXML\u30d1\u30fc\u30b5\u30fc\u306b\u306f Crimson \u3067\u306f\u306a\u304f\u3001<a href="http://xml.apache.org/xerces2-j/">Xerces 2</a> \u3092\u63a8\u5968\u3057\u3066\u3044\u307e\u3059\u3002</b>
couldNotCreateParser=XML Parser\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
### Examining System Properties ###
#
sysExamining=\u30b7\u30b9\u30c6\u30e0\uff65\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u95a2\u3059\u308b\u8abf\u67fb
sysPropError=\u30b7\u30b9\u30c6\u30e0\uff65\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002<p>
classFoundError=\u4e0d\u660e\u306a\u5834\u6240
apsPlatform=\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0
#
#################### [happyaxis.jsp] #######################

View file

@ -0,0 +1,20 @@
# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,114 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<html>
<%@ page contentType="text/html; charset=utf-8" %>
<%
/*
* Copyright 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.
*/
%>
<%@ include file="i18nLib.jsp" %>
<%
// initialize a private HttpServletRequest
setRequest(request);
// set a resouce base
setResouceBase("i18n");
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Apache-Axis</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">Apache-AXIS</h1>
<%= getLocaleChoice() %>
<%
out.print(getMessage("welcomeMessage")+"<p/>");
out.print(getMessage("operationType"));
%>
<ul>
<li>
<%
out.print("<a href=\""+ getMessage("validationURL") +"\">");
out.print(getMessage("validation") +"</a> - ");
out.print(getMessage("validationFootnote00") +"<br>");
out.print("<i>"+ getMessage("validationFootnote01") +"</i>");
%>
</li>
<li>
<%
out.print("<a href=\""+ getMessage("serviceListURL") +"\">");
out.print(getMessage("serviceList") +"</a> - ");
out.print(getMessage("serviceListFootnote"));
%>
</li>
<li>
<%
out.print("<a href=\""+ getMessage("callAnEndpointURL") +"\">");
out.print(getMessage("callAnEndpoint") +"</a> - ");
out.print(getMessage("callAnEndpointFootnote00") +" ");
out.print(getMessage("callAnEndpointFootnote01"));
%>
</li>
<li>
<%
out.print("<a href=\""+ getMessage("visitURL") +"\">");
out.print(getMessage("visit") +"</a> - ");
out.print(getMessage("visitFootnote"));
%>
</li>
<li>
<%
out.print("<a href=\""+ getMessage("adminURL") +"\">");
out.print(getMessage("admin") +"</a> - ");
out.print(getMessage("adminFootnote"));
%>
</li>
<li>
<%
out.print("<a href=\""+ getMessage("soapMonitorURL") +"\">");
out.print(getMessage("soapMonitor") +"</a> - ");
out.print(getMessage("soapMonitorFootnote"));
%>
</li>
</ul>
<%
out.print(getMessage("sideNote") +"<p/>");
%>
<%
out.print("<h3>"+ getMessage("validatingAxis") +"</h3>");
out.print(getMessage("validationNote00") +"<p/>");
out.print(getMessage("validationNote01"));
%>
</body>
</html>

View file

@ -0,0 +1,274 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ page import="java.io.File,
java.io.IOException,
java.util.Date"
session="false" %>
<html>
<head>
<title>System Fingerprint</title>
</head>
<body bgcolor=#ffffff>
<%!
/*
* Fingerprint the users system. This is mainly for use in
* diagnosing classpath problems. It is intended to dump out
* a copy of the environment this webapp is running in,
* and additionally attempt to identify versions of each jar
* in the classpath.
*
* @author Brian Ewins
*/
private java.util.Properties versionProps=new java.util.Properties();
/**
* Identify the version of a jar file. This uses a properties file
* containing known names and sizes in the format
* 'name(size)=version'. Version strings should be like 'xerces-1.4'
* ie they should include the name of the library.
*/
public String getFileVersion(File file) throws IOException {
String key="<td>"+file.getName()+"</td>";
key+= "<td>"+file.length()+"</td>";
Date timestamp=new Date(file.lastModified());
key+= "<td>"+timestamp.toString()+"</td>";
return key;
/* TODO: implement
String value=versionProps.getProperty(key);
if (value==null) {
// make it possible to have jars without version nos
value=versionProps.getProperty(file.getName());
}
if (value==null) {
// fall back on something obvious
value=key;
Date timestamp=new Date(file.lastModified());
value+=" / "+timestamp.toString();
}
return value;
*/
}
/**
* Split up a classpath-like variable. Returns a list of files.
* TODO: this can't cope with relative paths. I think theres code in BCEL that
* can be used for this?
*/
File[] splitClasspath(String path) throws IOException {
java.util.StringTokenizer st=
new java.util.StringTokenizer(path,
System.getProperty("path.separator"));
int toks=st.countTokens();
File[] files=new File[toks];
for(int i=0;i<toks;i++) {
files[i]=new File(st.nextToken());
}
return files;
}
/** given a list of files, return a list of jars which actually exist */
File[] scanFiles(File[] files) throws IOException {
File[] jars=new File[files.length];
int found=0;
for (int i=0; i<files.length; i++) {
if (files[i].getName().toLowerCase().endsWith(".jar")
&& files[i].exists()) {
jars[found]=files[i];
found++;
}
}
if (found<files.length) {
File[] temp=new File[found];
System.arraycopy(jars,0,temp,0,found);
jars=temp;
}
return jars;
}
private static final File[] NO_FILES=new File[0];
/** scan a directory for jars */
public File[] scanDir(String dir) throws IOException
{
if(dir==null) {
return NO_FILES;
}
return scanDir(new File(dir));
}
public File[] scanDir(File dir) throws IOException {
if (!dir.exists() || !dir.isDirectory()) {
return NO_FILES;
}
return scanFiles(dir.listFiles());
}
/** scan a classpath for jars */
public File[] scanClasspath(String path) throws IOException {
if (path==null) {
return NO_FILES;
}
return scanFiles(splitClasspath(path));
}
/**
* scan a 'dirpath' (like the java.ext.dirs system property) for jars
*/
public File[] scanDirpath(String path) throws IOException {
if (path==null) {
return NO_FILES;
}
File[] current=new File[0];
File[] dirs=splitClasspath(path);
for(int i=0; i<dirs.length; i++) {
File[] jars=scanDir(dirs[i]);
File[] temp=new File[current.length+jars.length];
System.arraycopy(current,0,temp,0,current.length);
System.arraycopy(jars,0,temp,current.length,jars.length);
current=temp;
}
return scanFiles(current);
}
/** print out the jar versions for a directory */
public void listDirectory(String title, JspWriter out,String dir, String comment) throws IOException {
listVersions(title, out,scanDir(dir), comment);
}
/** print out the jar versions for a directory-like system property */
public void listDirProperty(String title, JspWriter out,String key, String comment) throws IOException {
listVersions(title, out,scanDir(System.getProperty(key)), comment);
}
/** print out the jar versions for a classpath-like system property */
public void listClasspathProperty(String title, JspWriter out,String key, String comment) throws IOException {
listVersions(title, out,scanClasspath(System.getProperty(key)), comment);
}
/** print out the jar versions for a 'java.ext.dirs'-like system property */
public void listDirpathProperty(String title, JspWriter out,String key, String comment) throws IOException {
listVersions(title, out,scanDirpath(System.getProperty(key)), comment);
}
/** print out the jar versions for a context-relative directory */
public void listContextPath(String title, JspWriter out, String path, String comment) throws IOException {
listVersions(title, out,scanDir(getServletConfig().getServletContext().getRealPath(path)), comment);
}
/** print out the jar versions for a given list of files */
public void listVersions(String title, JspWriter out,File[] jars, String comment) throws IOException {
out.print("<h2>");
out.print(title);
out.println("</h2>");
out.println("<table>");
for (int i=0; i<jars.length; i++) {
out.println("<tr>"+getFileVersion(jars[i])+"</tr>");
}
out.println("</table>");
if(comment!=null && comment.length()>0) {
out.println("<p>");
out.println(comment);
out.println("<p>");
}
}
%>
<h1>System Fingerprint</h1>
<h2>JVM and Server Version</h2>
<table>
<tr>
<td>Servlet Engine</td>
<td><%= getServletConfig().getServletContext().getServerInfo() %></td>
<td><%= getServletConfig().getServletContext().getMajorVersion() %></td>
<td><%= getServletConfig().getServletContext().getMinorVersion() %></td>
</tr>
<tr>
<td>Java VM</td>
<td><%= System.getProperty("java.vm.vendor") %></td>
<td><%= System.getProperty("java.vm.name") %></td>
<td><%= System.getProperty("java.vm.version") %></td>
</tr>
<tr>
<td>Java RE</td>
<td><%= System.getProperty("java.vendor") %></td>
<td><%= System.getProperty("java.version") %></td>
<td> </td>
</tr>
<tr>
<td>Platform</td>
<td><%= System.getProperty("os.name") %></td>
<td><%= System.getProperty("os.arch") %></td>
<td><%= System.getProperty("os.version") %></td>
</tr>
</table>
<%
listClasspathProperty("Boot jars", out,"sun.boot.class.path", "Only valid on a sun jvm");
listClasspathProperty("System jars", out,"java.class.path", null);
listDirpathProperty("Extra system jars", out,"java.ext.dirs", null);
listContextPath("Webapp jars", out, "/WEB-INF/lib", null);
// identify the container...
String container=getServletConfig().getServletContext().getServerInfo();
if (container.startsWith("Tomcat Web Server/3.2")) {
String home=System.getProperty("tomcat.home");
if(home!=null) {
listDirectory("Tomcat 3.2 Common Jars", out,
home+File.separator
+"lib",
null);
}
} else if (container.startsWith("Tomcat Web Server/3.3")) {
String home=System.getProperty("tomcat.home");
if(home!=null) {
listDirectory("Tomcat 3.3 Container Jars", out,
home+File.separator
+"lib"+File.separator
+"container",
null);
listDirectory("Tomcat 3.3 Common Jars", out,
home+File.separator
+"lib"+File.separator
+"common",
null);
}
} else if (container.startsWith("Apache Tomcat/4.0")) {
//handle catalina common dir
String home=System.getProperty("catalina.home");
if(home!=null) {
listDirectory("Tomcat 4.0 Common Jars", out,
home+File.separator
+"common"+File.separator
+"lib",
null);
}
} else if (container.startsWith("Apache Tomcat/4.1")) {
//handle catalina common dir
String home=System.getProperty("catalina.home");
if(home!=null) {
listDirectory("Tomcat 4.1 Common Jars", out,
home+File.separator
+"shared"+File.separator
+"lib",
null);
}
} else if (System.getProperty("resin.home")!=null) {
String home=System.getProperty("resin.home");
if(home!=null) {
listDirectory("Resin Common Jars", out,
home+File.separator
+"lib",
null);
}
} else if (System.getProperty("weblogic.httpd.servlet.classpath")!=null) {
listClasspathProperty("Weblogic Servlet Jars", out,
"weblogic.httpd.servlet.classpath",
null);
} else {
//TODO: identify more servlet engine classpaths.
}
%>
</body>
</html>

View file

@ -0,0 +1,493 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<html>
<%@ page contentType="text/html; charset=utf-8"
import="java.io.InputStream,
java.io.IOException,
javax.xml.parsers.SAXParser,
java.lang.reflect.*,
javax.xml.parsers.SAXParserFactory"
session="false" %>
<%
/*
* Copyright 2002,2004,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.
*/
%>
<%!
/*
* Happiness tests for axis. These look at the classpath and warn if things
* are missing. Normally addng this much code in a JSP page is mad
* but here we want to validate JSP compilation too, and have a drop-in
* page for easy re-use
* @author Steve 'configuration problems' Loughran
* @author dims
* @author Brian Ewins
*/
/**
* test for a class existing
* @param classname
* @return class iff present
*/
Class classExists(String classname) {
try {
return Class.forName(classname);
} catch (ClassNotFoundException e) {
return null;
}
}
/**
* test for resource on the classpath
* @param resource
* @return true iff present
*/
boolean resourceExists(String resource) {
boolean found;
InputStream instream=this.getClass().getResourceAsStream(resource);
found=instream!=null;
if(instream!=null) {
try {
instream.close();
} catch (IOException e) {
}
}
return found;
}
/**
* probe for a class, print an error message is missing
* @param out stream to print stuff
* @param category text like "warning" or "error"
* @param classname class to look for
* @param jarFile where this class comes from
* @param errorText extra error text
* @param homePage where to d/l the library
* @return the number of missing classes
* @throws IOException
*/
int probeClass(JspWriter out,
String category,
String classname,
String jarFile,
String description,
String errorText,
String homePage) throws IOException {
try {
Class clazz = classExists(classname);
if(clazz == null) {
String url="";
if(homePage!=null) {
url=getMessage("seeHomepage",homePage,homePage);
}
out.write(getMessage("couldNotFound",category,classname,jarFile,errorText,url));
return 1;
} else {
String location = getLocation(out, clazz);
if(location == null) {
out.write("<li>"+getMessage("foundClass00",description,classname)+"</li><br>");
}
else {
out.write("<li>"+getMessage("foundClass01",description,classname,location)+"</li><br>");
}
return 0;
}
} catch(NoClassDefFoundError ncdfe) {
String url="";
if(homePage!=null) {
url=getMessage("seeHomepage",homePage,homePage);
}
out.write(getMessage("couldNotFoundDep",category, classname, errorText, url));
out.write(getMessage("theRootCause",ncdfe.getMessage(), classname));
return 1;
}
}
/**
* get the location of a class
* @param out
* @param clazz
* @return the jar file or path where a class was found
*/
String getLocation(JspWriter out,
Class clazz) {
try {
java.net.URL url = clazz.getProtectionDomain().getCodeSource().getLocation();
String location = url.toString();
if(location.startsWith("jar")) {
url = ((java.net.JarURLConnection)url.openConnection()).getJarFileURL();
location = url.toString();
}
if(location.startsWith("file")) {
java.io.File file = new java.io.File(url.getFile());
return file.getAbsolutePath();
} else {
return url.toString();
}
} catch (Throwable t){
}
return getMessage("classFoundError");
}
/**
* a class we need if a class is missing
* @param out stream to print stuff
* @param classname class to look for
* @param jarFile where this class comes from
* @param errorText extra error text
* @param homePage where to d/l the library
* @throws IOException when needed
* @return the number of missing libraries (0 or 1)
*/
int needClass(JspWriter out,
String classname,
String jarFile,
String description,
String errorText,
String homePage) throws IOException {
return probeClass(out,
"<b>"+getMessage("error")+"</b>",
classname,
jarFile,
description,
errorText,
homePage);
}
/**
* print warning message if a class is missing
* @param out stream to print stuff
* @param classname class to look for
* @param jarFile where this class comes from
* @param errorText extra error text
* @param homePage where to d/l the library
* @throws IOException when needed
* @return the number of missing libraries (0 or 1)
*/
int wantClass(JspWriter out,
String classname,
String jarFile,
String description,
String errorText,
String homePage) throws IOException {
return probeClass(out,
"<b>"+getMessage("warning")+"</b>",
classname,
jarFile,
description,
errorText,
homePage);
}
/**
* get servlet version string
*
*/
public String getServletVersion() {
ServletContext context=getServletConfig().getServletContext();
int major = context.getMajorVersion();
int minor = context.getMinorVersion();
return Integer.toString(major) + '.' + Integer.toString(minor);
}
/**
* what parser are we using.
* @return the classname of the parser
*/
private String getParserName() {
SAXParser saxParser = getSAXParser();
if (saxParser == null) {
return getMessage("couldNotCreateParser");
}
// check to what is in the classname
String saxParserName = saxParser.getClass().getName();
return saxParserName;
}
/**
* Create a JAXP SAXParser
* @return parser or null for trouble
*/
private SAXParser getSAXParser() {
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
if (saxParserFactory == null) {
return null;
}
SAXParser saxParser = null;
try {
saxParser = saxParserFactory.newSAXParser();
} catch (Exception e) {
}
return saxParser;
}
/**
* get the location of the parser
* @return path or null for trouble in tracking it down
*/
private String getParserLocation(JspWriter out) {
SAXParser saxParser = getSAXParser();
if (saxParser == null) {
return null;
}
String location = getLocation(out,saxParser.getClass());
return location;
}
/**
* Check if class implements specified interface.
* @param Class clazz
* @param String interface name
* @return boolean
*/
private boolean implementsInterface(Class clazz, String interfaceName) {
if (clazz == null) {
return false;
}
Class[] interfaces = clazz.getInterfaces();
if (interfaces.length != 0) {
for (int i = 0; i < interfaces.length; i++) {
if (interfaces[i].getName().equals(interfaceName)) {
return true;
}
}
}
return false;
}
%>
<%@ include file="i18nLib.jsp" %>
<%
// initialize a private HttpServletRequest
setRequest(request);
// set a resouce base
setResouceBase("i18n");
%>
<head>
<title><%= getMessage("pageTitle") %></title>
</head>
<body bgcolor='#ffffff'>
<%
out.print("<h1>"+ getMessage("pageTitle") +"</h1>");
out.print("<h2>"+ getMessage("pageRole") +"</h2><p/>");
%>
<%= getLocaleChoice() %>
<%
out.print("<h3>"+ getMessage("neededComponents") +"</h3>");
%>
<UL>
<%
int needed=0,wanted=0;
/**
* the essentials, without these Axis is not going to work
*/
// need to check if the available version of SAAJ API meets requirements
String className = "javax.xml.soap.SOAPPart";
String interfaceName = "org.w3c.dom.Document";
Class clazz = classExists(className);
if (clazz == null || implementsInterface(clazz, interfaceName)) {
needed = needClass(out, "javax.xml.soap.SOAPMessage",
"saaj.jar",
"SAAJ API",
getMessage("criticalErrorMessage"),
"http://ws.apache.org/axis/");
} else {
String location = getLocation(out, clazz);
out.print(getMessage("invalidSAAJ",location));
out.print(getMessage("criticalErrorMessage"));
out.print(getMessage("seeHomepage","http://ws.apache.org/axis/java/install.html",getMessage("axisInstallation")));
out.print("<br>");
}
needed+=needClass(out, "javax.xml.rpc.Service",
"jaxrpc.jar",
"JAX-RPC API",
getMessage("criticalErrorMessage"),
"http://ws.apache.org/axis/");
needed+=needClass(out, "org.apache.axis.transport.http.AxisServlet",
"axis.jar",
"Apache-Axis",
getMessage("criticalErrorMessage"),
"http://ws.apache.org/axis/");
needed+=needClass(out, "org.apache.commons.discovery.Resource",
"commons-discovery.jar",
"Jakarta-Commons Discovery",
getMessage("criticalErrorMessage"),
"http://jakarta.apache.org/commons/discovery/");
needed+=needClass(out, "org.apache.commons.logging.Log",
"commons-logging.jar",
"Jakarta-Commons Logging",
getMessage("criticalErrorMessage"),
"http://jakarta.apache.org/commons/logging/");
needed+=needClass(out, "org.apache.log4j.Layout",
"log4j-1.2.8.jar",
"Log4j",
getMessage("uncertainErrorMessage"),
"http://jakarta.apache.org/log4j");
//should we search for a javax.wsdl file here, to hint that it needs
//to go into an approved directory? because we dont seem to need to do that.
needed+=needClass(out, "com.ibm.wsdl.factory.WSDLFactoryImpl",
"wsdl4j.jar",
"IBM's WSDL4Java",
getMessage("criticalErrorMessage"),
null);
needed+=needClass(out, "javax.xml.parsers.SAXParserFactory",
"xerces.jar",
"JAXP implementation",
getMessage("criticalErrorMessage"),
"http://xml.apache.org/xerces-j/");
needed+=needClass(out,"javax.activation.DataHandler",
"activation.jar",
"Activation API",
getMessage("criticalErrorMessage"),
"http://java.sun.com/products/javabeans/glasgow/jaf.html");
%>
</UL>
<%
out.print("<h3>"+ getMessage("optionalComponents") +"</h3>");
%>
<UL>
<%
/*
* now the stuff we can live without
*/
wanted+=wantClass(out,"javax.mail.internet.MimeMessage",
"mail.jar",
"Mail API",
getMessage("attachmentsError"),
"http://java.sun.com/products/javamail/");
wanted+=wantClass(out,"org.apache.xml.security.Init",
"xmlsec.jar",
"XML Security API",
getMessage("xmlSecurityError"),
"http://xml.apache.org/security/");
wanted += wantClass(out, "javax.net.ssl.SSLSocketFactory",
"jsse.jar or java1.4+ runtime",
"Java Secure Socket Extension",
getMessage("httpsError"),
"http://java.sun.com/products/jsse/");
/*
* resources on the classpath path
*/
/* add more libraries here */
%>
</UL>
<%
out.write("<h3>");
//is everythng we need here
if(needed==0) {
//yes, be happy
out.write(getMessage("happyResult00"));
} else {
//no, be very unhappy
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
out.write(getMessage("unhappyResult00",Integer.toString(needed)));
}
//now look at wanted stuff
if(wanted>0) {
out.write(getMessage("unhappyResult01",Integer.toString(wanted)));
} else {
out.write(getMessage("happyResult01"));
}
out.write("</h3>");
%>
<UL>
<%
//hint if anything is missing
if(needed>0 || wanted>0 ) {
out.write(getMessage("hintString"));
}
out.write(getMessage("noteString"));
%>
</UL>
<h2><%= getMessage("apsExamining") %></h2>
<UL>
<%
String servletVersion=getServletVersion();
String xmlParser=getParserName();
String xmlParserLocation = getParserLocation(out);
%>
<table border="1" cellpadding="10">
<tr><td>Servlet version</td><td><%= servletVersion %></td></tr>
<tr><td>XML Parser</td><td><%= xmlParser %></td></tr>
<tr><td>XML ParserLocation</td><td><%= xmlParserLocation %></td></tr>
</table>
</UL>
<% if(xmlParser.indexOf("crimson")>=0) { %>
<p>
<%= getMessage("recommendedParser") %>
</p>
<% } %>
<h2><%= getMessage("sysExamining") %></h2>
<UL>
<%
/**
* Dump the system properties
*/
java.util.Enumeration e=null;
try {
e= System.getProperties().propertyNames();
} catch (SecurityException se) {
}
if(e!=null) {
out.write("<pre>");
for (;e.hasMoreElements();) {
String key = (String) e.nextElement();
out.write(key + "=" + System.getProperty(key)+"\n");
}
out.write("</pre><p>");
} else {
out.write(getMessage("sysPropError"));
}
%>
</UL>
<hr>
<%= getMessage("apsPlatform") %>:
<%= getServletConfig().getServletContext().getServerInfo() %>
</body>
</html>

View file

@ -0,0 +1,223 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ page import="java.util.*" %>
<%
/*
* Copyright 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.
*/
%>
<%!
/*
* A library file to produce i18n web applications. This can be easily
* reused from your jsp(s) - just include and call any methods.
* @author toshi
*/
// private variable
HttpServletRequest _req = null;
// private variable
String _strResourceName = null;
/**
* Set a HttpServletRequest to a private variable.
* @param request HttpServletRequest
*/
void setRequest(HttpServletRequest request) {
_req = request;
}
/**
* Get the private variable of the HttpServletRequest.
* @return HttpServletRequest
*/
HttpServletRequest getRequest() {
return _req;
}
/**
* Set a resouce base name to a private variable.
* @param resouce The resouce base name
*/
void setResouceBase(String resource) {
_strResourceName = resource;
}
/**
* Get the private variable of the resouce base name.
* @return resouce The resouce base name
*/
String getResouceBase() {
return _strResourceName;
}
/**
* Get a ResourceBundle object.
* @return a ResourceBundle object
*/
ResourceBundle getRB() {
String strLocale = getRequest().getParameter("locale");
ResourceBundle objRb = null;
Locale objLcl = null;
if (strLocale!=null) {
objLcl=new Locale(strLocale,"");
} else {
objLcl=getRequest().getLocale();
}
Locale.setDefault(objLcl);
objRb = ResourceBundle.getBundle(getResouceBase(),objLcl);
return objRb;
}
/**
* Get a list of locale choice
* @return a list of supported locales
*/
String getLocaleChoice() {
String choice = getMessage("locales");
StringBuffer buf = new StringBuffer();
buf.append("<div align=\"right\">\n");
buf.append(getMessage("language"));
buf.append(": ");
StringTokenizer st = new StringTokenizer(choice);
String locale = null;
while (st.hasMoreTokens()) {
locale = st.nextToken();
buf.append("[<a href=\"?locale="+ locale +"\">"+ locale +"</a>] ");
}
buf.append("\n</div>\n");
return buf.toString();
}
/**
* Get a message from i18n.properties with several arguments.
* @param key The resource key
* @return The formatted message
*/
String getMessage(String key) {
return getMessage(key, null, null, null, null, null);
}
/**
* Get a message from i18n.properties with several arguments.
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @return The formatted message
*/
String getMessage(String key, String arg0) {
return getMessage(key, arg0, null, null, null, null);
}
/**
* Get a message from i18n.properties with several arguments.
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @return The formatted message
*/
String getMessage(String key, String arg0, String arg1) {
return getMessage(key, arg0, arg1, null, null, null);
}
/**
* Get a message from i18n.properties with several arguments.
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @param arg2 The argument to place in variable {2}
* @return The formatted message
*/
String getMessage(String key, String arg0, String arg1, String arg2) {
return getMessage(key, arg0, arg1, arg2, null, null);
}
/**
* Get a message from i18n.properties with several arguments.
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @param arg2 The argument to place in variable {2}
* @param arg3 The argument to place in variable {3}
* @return The formatted message
*/
String getMessage(String key, String arg0, String arg1,
String arg2, String arg3) {
return getMessage(key, arg0, arg1, arg2, arg3, null);
}
/**
* Get a message from i18n.properties with several arguments.
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @param arg2 The argument to place in variable {2}
* @param arg3 The argument to place in variable {3}
* @param arg4 The argument to place in variable {4}
* @return The formatted message
*/
String getMessage(String key, String arg0, String arg1,
String arg2, String arg3, String arg4) {
String strPattern = getRB().getString(key);
String [] params = { arg0, arg1, arg2, arg3, arg4 };
for (int i=0; i<5; i++) {
if (params[i]!=null) params[i]=replaceAll(params[i],"%20"," ");
}
if (arg0!=null) strPattern = replaceAll(strPattern,"{0}",params[0]);
if (arg1!=null) strPattern = replaceAll(strPattern,"{1}",params[1]);
if (arg2!=null) strPattern = replaceAll(strPattern,"{2}",params[2]);
if (arg3!=null) strPattern = replaceAll(strPattern,"{3}",params[3]);
if (arg4!=null) strPattern = replaceAll(strPattern,"{4}",params[4]);
return strPattern;
}
/**
* Get a replaced string by the specified message.
* @param source The original message
* @param pattern The key message for replacing
* @param replace The message to place in the key variable - 'pattern'
* @return The replaced message
*/
String replaceAll(String source, String pattern, String replace)
{
int i=0;
boolean ret = false;
StringBuffer buf = new StringBuffer();
int lenSource = source.length();
int lenPattern = pattern.length();
for (i=0; i<lenSource; i++) {
ret = source.regionMatches(i, pattern, 0, lenPattern);
if (ret) {
buf.append(source.substring(0,i));
buf.append(replace);
buf.append(source.substring(i+lenPattern));
source = replaceAll(buf.toString(), pattern, replace);
break;
}
}
return source;
}
%>

107
services/build.xml Normal file
View file

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<project name="vitroWebServices" basedir="../">
<property file="./config/globalbuild.properties"/>
<property name="axis.port" value="8080"/>
<property name="axis.server" value="localhost"/>
<property name="ws.dir" value="./services/"/>
<property name="ws.lib" value="${ws.dir}/lib"/>
<!-- notice this builds to the ${webapp.build} directory -->
<property name="ws.build" value="${webapp.build}"/>
<property name="compile.debug" value="true"/>
<property name="compile.deprecation" value="true" />
<property name="compile.optimize" value="true" />
<path id="axis.classpath">
<!-- need to include the classes directory so that axis can
find the necessary compiled classes -->
<pathelement path="${ws.build}/WEB-INF/classes"/>
<fileset dir="${ws.lib}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- ==================== Compilation Classpath =========================== -->
<path id="webservices-compile.classpath">
<pathelement location="${core.build.jar}"/>
<fileset dir="${ws.lib}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${webapp.lib}">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- ================== set up the ant axis tasks ================ -->
<taskdef resource="axis-tasks.properties" classpathref="axis.classpath" />
<!-- ==================== Compile task ==================== -->
<target name="compile"
description="compiles code for webservices into webapp build dir" >
<depend srcdir="${ws.dir}/src" destdir="${ws.build}/WEB-INF/classes" cache=".depcache"/>
<ant antfile="${webapp.dir}/build.xml" target="compile"/>
<echo>Compile webservices</echo>
<javac srcdir="${ws.dir}/src" destdir="${ws.build}/WEB-INF/classes"
debug="${compile.debug}" deprecation="${compile.deprecation}"
optimize="${compile.optimize}" source="1.5">
<classpath refid="webservices-compile.classpath"/>
<!--<compilerarg value="-Xlint:unchecked"/> -->
</javac>
<antcall target="copyFiles"/>
</target>
<!-- ==================== copyFiles task ==================== -->
<target name="copyFiles" description="add files to the webapp build">
<copy todir="${ws.build}/WEB-INF/lib">
<fileset dir="${ws.lib}">
<exclude name="*.LCK"/>
<exclude name=".svn"/>
</fileset>
</copy>
<copy todir="${ws.build}">
<fileset dir="${ws.dir}/additions" >
<exclude name="*.LCK"/>
<exclude name="**/.svn"/>
<exclude name=".svn"/>
<exclude name="log4j.properties"/>
<exclude name="README.txt"/>
</fileset>
</copy>
</target>
<!-- ==================== setupWs task ==================== -->
<target name="setupWs"
description="invoke axis admin to deploy and expose VitroWs">
<!-- Notice that this can be run from the command line too:
$ java org.apache.axis.client.AdminClient \
-lhttp://localhost:8080/vivo/services/AdminService deploy.wsdd -->
<axis-admin
port="${axis.port}"
hostname="${axis.server}"
failonerror="true"
servletpath="${webapp.name}/services/AdminService"
debug="true"
xmlfile="${ws.wsdd.dir}/VitroWs3.wsdd" />
</target>
<!-- ==================== java2wsdl task ==================== -->
<target name="java2wsdl" description="turn java classes into wsdl">
<axis-java2wsdl
classname="edu.cornell.mannlib.vitro.webapp.dao.VitroFacade"
location="http://localhost:8080/"
methods="entityById"
namespace="info:edu.cornell.mannlib.vitro"
output="./xml/wsdl/output.txt" >
<mapping namespace="info:db" package="edu.cornell.mannlib.vitro.db"/>
<mapping namespace="info:dao" package="edu.cornell.mannlib.vitro.db.dao"/>
</axis-java2wsdl>
</target>
</project>

BIN
services/lib/axis-ant.jar Normal file

Binary file not shown.

BIN
services/lib/axis.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
services/lib/jaxrpc.jar Normal file

Binary file not shown.

BIN
services/lib/saaj.jar Normal file

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,184 @@
package edu.cornell.mannlib.vitro.webservices;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
import edu.cornell.mannlib.vitro.webapp.beans.Tab;
import edu.cornell.mannlib.vitro.webapp.dao.TabDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.filtering.VitroFilters;
import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
import edu.cornell.mannlib.vitro.webapp.utils.VitroFilterFactory;
import org.apache.axis.MessageContext;
import org.apache.axis.transport.http.HTTPConstants;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Date;
import java.util.ListIterator;
/**
* This is exposed by apache axis to provide a web service where folks can
* get tabs and simple entities. Jim doesn't seem to be using the properties so
* they are commented out.
*
*
* Created: Wed Aug 16 11:36:15 2006
* @version 1.0
*/
public class VitroWs {
//private VitroFacade vf;
private WebappDaoFactory webDaoFactory;
private ApplicationBean appBean;
public VitroWs() {
//System.out.println("is this even getting deployed?");
//wow, this is how to get a servlet context in axis.
HttpServlet srv =
(HttpServlet)MessageContext.getCurrentContext().getProperty(HTTPConstants.MC_HTTP_SERVLET);
ServletContext context = srv.getServletContext();
//vf = VitroDataSourceSetup.getFacade(context);
webDaoFactory = (WebappDaoFactory)context.getAttribute("webappDaoFactory");
appBean = new ApplicationBean(); //is this the correct way to get one of these?
}
/**
Gets a tab with related entities. The returned Tab does not have
child tab list filled.
*/
public Tab getFullTab(int tabid, int portalid, int depth, boolean withEntities){
Tab tab = null;
//System.out.println("is this even getting deployed?");
VitroFilters dateFilter = VitroFilterFactory.getSunsetWindowFilter(new Date());
WebappDaoFactory wdf = new WebappDaoFactoryFiltering(webDaoFactory, dateFilter);
TabDao tabdao= wdf.getTabDao();
tab = tabdao.getTab(tabid, PUBLIC_AUTH_LEVEL,appBean, depth);
if( withEntities )
tab.setRelatedEntityList(tab.getRelatedEntityList(null));//null indicates no alpha filtering
else
tab.setRelatedEntityList(Collections.EMPTY_LIST);
strip(tab);
tab.placeEntityFactory(null);
return tab;
}
/** Gets Entity with properties filled out. */
public Individual getFullEntityById(String entityUri, int portalid){
//System.out.println("is this even getting deployed?");
//IndividualWebapp entity = vf.entityById(entityId);
Individual entity = webDaoFactory.getIndividualDao().getIndividualByURI( entityUri );
setUpEntity(entity);
setUpDescription(entity);
return entity;
}
public List getTabsForPortal( int portalid ){
//System.out.println("is this even getting deployed?");
//return vf.getTabsForPortal(portalid);
return webDaoFactory.getTabDao().getTabsForPortal(portalid);
}
private void setUpEntity(Individual entity){
// //webDaoFactory.getCoreDaoFactory().getEnts2EntsDao().fillExistingEnts2Ents( entity ); //this may filter entitys in the ents2ents list
// //webDaoFactory.getPropertyWebappDao().fillEntityProperties( entity );
//webDaoFactory.getDataPropertyStatementDao().fillExistingDataPropertyStatementsForIndividual( entity );
webDaoFactory.getObjectPropertyStatementDao().fillExistingObjectPropertyStatements(entity);
webDaoFactory.getIndividualDao().fillVClassForIndividual( entity );
webDaoFactory.getLinksDao().addLinksToIndividual( entity );
entity.setKeywords(webDaoFactory.getIndividualDao().getKeywordsForIndividual(entity.getURI()));
// jc55 causes problems with web services if populated
entity.setHiddenFromDisplayBelowRoleLevel(null);
entity.setProhibitedFromUpdateBelowRoleLevel(null);
// //entity.sortForDisplay();
}
/**
* Set entity up with a description from data props if there is none.
*
* @param entity
*/
private void setUpDescription(Individual entity) {
if( entity != null &&
(entity.getDescription() == null || entity.getDescription().length() == 0)){
//if there is nothing in the desc then try to get a dataprop and stick that in the desc
List e2d = entity.getDataPropertyStatements();
if( e2d != null && e2d.size() > 0 ){
Iterator it = e2d.iterator();
while(it.hasNext()){
DataPropertyStatement data = (DataPropertyStatement) it.next();
if( RESEARCH_FOCUS_DATAPROP_URI.equals( data.getDatapropURI() )
&& data.getData() != null && data.getData().length() > 0 ){
entity.setDescription(data.getData());
break;
}
}
}
}
}
private void strip(Tab tab){
if( tab == null ) return;
if( tab.getChildTabs() != null ){
for( Tab childTab : tab.getChildTabs()){
childTab.setChildTabs(null);
childTab.setRelatedEntityList(Collections.EMPTY_LIST);
}
}
if( tab.getRelatedEntities() != null ){
for( Individual ind : tab.getRelatedEntities()){
strip(ind);
}
}
}
private void strip(Individual ind){
webDaoFactory.getObjectPropertyDao().fillObjectPropertiesForIndividual(ind);
List<ObjectProperty> props = ind.getObjectPropertyList();
if( props != null && props.size() > 0 ){
ListIterator<ObjectProperty> iterator = props.listIterator();
while(iterator.hasNext()){
ObjectProperty prop= iterator.next();
// jc55 unlikely to be the source of the problem, but try anyway
prop.setProhibitedFromUpdateBelowRoleLevel(null);
prop.setHiddenFromDisplayBelowRoleLevel(null);
if(! ( HAS_TEACHER.equals( prop.getURI() )
|| IN_SEMESTER.equals( prop.getURI()) )){
iterator.remove();
}
}
}
ind.setDatatypePropertyList(Collections.EMPTY_LIST);
ind.setDataPropertyStatements(Collections.EMPTY_LIST);
ind.setKeywords(Collections.EMPTY_LIST);
}
final int PUBLIC_AUTH_LEVEL = 0;
final String RESEARCH_FOCUS_DATAPROP_URI = "http://vivo.library.cornell.edu/ns/0.1#researchFocus";
final String HAS_TEACHER = "http://vivo.library.cornell.edu/ns/0.1#SemesterCourseHasTeacherPerson";
final String IN_SEMESTER = "http://vivo.library.cornell.edu/ns/0.1#SemesterCourseOccursInSemester";
}

View file

@ -0,0 +1,15 @@
;; Object webservices/
;; SEMANTICDB Tags save file
(semanticdb-project-database-file "webservices/"
:tables (list
(semanticdb-table "VitroWs.java"
:major-mode 'jde-mode
:tags '(("edu.cornell.mannlib.vitro.webservices" package nil nil [1 47]) ("edu.cornell.mannlib.vitro.db.dao.VitroFacade" include nil nil [49 101]) ("edu.cornell.mannlib.vitro.beans.Tab" include nil nil [102 145]) ("edu.cornell.mannlib.vitro.flags.PortalFlag" include nil nil [146 196]) ("formbeans.ApplicationBean" include nil nil [197 230]) ("edu.cornell.mannlib.vitro.beans.Entity" include nil nil [231 277]) ("java.util.List" include nil nil [278 300]) ("VitroWs" type (:typemodifiers ("public") :members (("VitroWs" function (:constructor-flag t :typemodifiers ("public")) (reparse-symbol class_member_declaration) [394 413]) ("getFullTab" function (:typemodifiers ("public") :arguments (("tabid" variable (:type "int") (reparse-symbol formal_parameters) [559 568]) ("portalid" variable (:type "int") (reparse-symbol formal_parameters) [570 582])) :type "Tab") (reparse-symbol class_member_declaration) [537 848]) ("getFullEntityById" function (:typemodifiers ("public") :arguments (("entityId" variable (:type "int") (reparse-symbol formal_parameters) [948 960]) ("portalid" variable (:type "int") (reparse-symbol formal_parameters) [962 974])) :type "Entity") (reparse-symbol class_member_declaration) [916 1175]) ("getTabsForPortal" function (:typemodifiers ("public") :arguments (("portalid" variable (:type "int") (reparse-symbol formal_parameters) [1211 1223])) :type "List") (reparse-symbol class_member_declaration) [1181 1330])) :type "class") nil [366 1532]))
:file "VitroWs.java"
:pointmax 1533
)
)
:file "semantic.cache"
:semantic-tag-version "2.0pre3"
:semanticdb-version "2.0pre3"
)

View file

@ -0,0 +1,29 @@
package edu.cornell.mannlib.vitro.webservices.serializers;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializerFactory;
import java.util.Iterator;
import java.util.Vector;
/**
* * This is used to by the axis webservices. see vitro/webservices/wsdd/VitroWs.wsdd
*/
public class EntitySerFactory implements SerializerFactory {
private Vector mechanisms;
public EntitySerFactory() {
}
public javax.xml.rpc.encoding.Serializer getSerializerAs(String mechanismType) {
return new EntitySerializer();
}
public Iterator getSupportedMechanismTypes() {
if (mechanisms == null) {
mechanisms = new Vector();
mechanisms.add(Constants.AXIS_SAX);
}
return mechanisms.iterator();
}
}

View file

@ -0,0 +1,152 @@
package edu.cornell.mannlib.vitro.webservices.serializers;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.encoding.Serializer;
import org.apache.axis.wsdl.fromJava.Types;
import org.w3c.dom.Element;
import org.xml.sax.Attributes;
import javax.xml.namespace.QName;
import java.io.IOException;
import java.util.Collections;
import java.util.Iterator;
/**
* WARNING: SUPER AWFUL, OBJECT ORIENTED NO-NO'S AHEAD
* -- !serializing an entity will change it! --
* * This is used to by the axis webservices. see vitro/webservices/wsdd/VitroWs.wsdd
*/
public class EntitySerializer implements Serializer {
public static final QName myTypeQName = new QName("typeNS", "VitroEntity");
public static final String ID_MBER = "id";
public static final String NAME_MBER= "name";
public static final String MONIKER_MBER= "moniker";
public static final String VCLASS_MBER= "vClass";
public static final String URL_MBER= "url";
public static final String DESCRIPTION_MBER= "description";
public static final String SUNRISE_MBER= "sunrise";
public static final String SUNSET_MBER= "sunset";
public static final String TIMEKEY_MBER= "timekey";
//public static final String MODTIME_MBER= "modTime";
public static final String IMAGEFILE_MBER= "imageFile";
public static final String ANCHOR_MBER= "anchor";
public static final String BLURB_MBER= "blurb";
public static final String IMAGETHUMB_MBER= "imageThumb";
public static final String CITATION_MBER= "citation";
public static final String STATUS_MBER= "status";
public static final String PROPERTYLIST_MBER= "propertyList";
public static final String LINKSLIST_MBER= "linksList";
public static final String KEYWORDS_MBER="keywords";
public static final String VCLASSID_MBER= "vClassId";
/** this is not on the original Entity object */
public static final String RELATED_ENTITIES_MBER ="relatedEntities";
/**
* Serialize an element named name, with the indicated attributes
* and value.
* @param name is the element name
* @param attributes are the attributes...serialize is free to add more.
* @param value is the value
* @param context is the SerializationContext
*/
public void serialize(QName name, Attributes attributes,
Object value, SerializationContext context)
throws IOException
{
if (!(value instanceof Individual))
throw new IOException("Can't serialize a " + value.getClass().getName() + " with a EntitySerializer.");
Individual ent = (Individual)value;
// jc55 causes problems with web services if populated
ent.setHiddenFromDisplayBelowRoleLevel(null);
ent.setProhibitedFromUpdateBelowRoleLevel(null);
context.startElement(name, attributes);
prepareForSerialization( ent );
context.serialize(new QName("", ID_MBER), null, ent.getURI());
context.serialize(new QName("", NAME_MBER), null, ent.getName());
context.serialize(new QName("", MONIKER_MBER), null, ent.getMoniker());
context.serialize(new QName("", VCLASS_MBER), null, ent.getVClass());
context.serialize(new QName("", URL_MBER), null, ent.getUrl());
context.serialize(new QName("", DESCRIPTION_MBER), null, ent.getDescription());
context.serialize(new QName("", SUNRISE_MBER), null, ent.getSunrise());
context.serialize(new QName("", SUNSET_MBER), null, ent.getSunset());
context.serialize(new QName("", TIMEKEY_MBER), null, ent.getTimekey());
context.serialize(new QName("", IMAGEFILE_MBER), null, ent.getImageFile());
context.serialize(new QName("", ANCHOR_MBER), null, ent.getAnchor());
context.serialize(new QName("", BLURB_MBER), null, ent.getBlurb());
context.serialize(new QName("", IMAGETHUMB_MBER), null, ent.getImageThumb());
context.serialize(new QName("", CITATION_MBER), null, ent.getCitation());
context.serialize(new QName("", STATUS_MBER), null, ent.getStatus());
context.serialize(new QName("", LINKSLIST_MBER), null, ent.getLinksList());
context.serialize(new QName("", KEYWORDS_MBER), null, ent.getKeywords());
context.serialize(new QName("", VCLASSID_MBER), null, ent.getVClassURI());
//after the minimize this should only have property->ents2ent with no Entity objs.
context.serialize(new QName("", PROPERTYLIST_MBER), null, ent.getObjectPropertyList());
context.endElement();
}
public String getMechanismType() { return Constants.AXIS_SAX; }
public Element writeSchema(Class javaType, Types types) throws Exception {
return null;
}
/**
* 1) reflects props and ents2ents domainside,
* 2) sorts
* 3) removed domain Entity object from all ents2ents
*
*/
private final void prepareForSerialization(final Individual ent){
if( ent == null || ent.getObjectPropertyList() == null) return;
ent.sortForDisplay();
//ent.forceAllPropertiesDomainSide();
Iterator it = ent.getObjectPropertyList().iterator();
while(it.hasNext()){
ObjectProperty prop = (ObjectProperty)it.next();
prepareProperty(prop);
}
}
/**
* calls prepareEnts2Ents on each ents2ents of Property
*/
private final void prepareProperty(final ObjectProperty prop){
if( prop == null || prop.getObjectPropertyStatements() == null ) return;
Iterator it = prop.getObjectPropertyStatements().iterator();
while(it.hasNext()){
prepareEnts2Ents((ObjectPropertyStatement)it.next());
}
}
private final void prepareEnts2Ents(final ObjectPropertyStatement e2e ){
if( e2e != null){
e2e.setSubject(null);
e2e.setProperty(null);
//we don't want to serialize any deeper
Individual objInd = e2e.getObject();
objInd.setObjectPropertyStatements(Collections.EMPTY_LIST);
objInd.setDataPropertyStatements(Collections.EMPTY_LIST);
objInd.setPropertyList(Collections.EMPTY_LIST);
objInd.setDatatypePropertyList(Collections.EMPTY_LIST);
}
}
}

View file

@ -0,0 +1,29 @@
package edu.cornell.mannlib.vitro.webservices.serializers;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializerFactory;
import java.util.Iterator;
import java.util.Vector;
/**
* * This is used to by the axis webservices. see vitro/webservices/wsdd/VitroWs.wsdd
*/
public class Ents2EntsSerFactory implements SerializerFactory {
private Vector mechanisms;
public Ents2EntsSerFactory() {
}
public javax.xml.rpc.encoding.Serializer getSerializerAs(String mechanismType) {
return new Ents2EntsSerializer();
}
public Iterator getSupportedMechanismTypes() {
if (mechanisms == null) {
mechanisms = new Vector();
mechanisms.add(Constants.AXIS_SAX);
}
return mechanisms.iterator();
}
}

View file

@ -0,0 +1,111 @@
package edu.cornell.mannlib.vitro.webservices.serializers;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.encoding.Serializer;
import org.apache.axis.wsdl.fromJava.Types;
import org.w3c.dom.Element;
import org.xml.sax.Attributes;
import javax.xml.namespace.QName;
import java.io.IOException;
/**
* This is used to by the axis webservices. see vitro/webservices/wsdd/VitroWs.wsdd
*/
public class Ents2EntsSerializer implements Serializer {
public static final QName myTypeQName = new QName("typeNS", "VitroEntity");
public static final String ENTS2ENTSID_MBER = "ents2entsId";
public static final String DOMAINID_MBER = "domainId";
public static final String DOMAIN_MBER = "domain";
public static final String RANGEID_MBER = "rangeId";
public static final String RANGE_MBER = "range";
public static final String PROPERTYID_MBER = "propertyId";
public static final String PROPERTY_MBER = "property";
public static final String QUALIFIER_MBER = "qualifier";
public static final String DOMAINORIENTED_MBER = "domainOriented";
/**
* Serialize an element named name, with the indicated attributes
* and value.
* @param name is the element name
* @param attributes are the attributes...serialize is free to add more.
* @param value is the value
* @param context is the SerializationContext
*/
public void serialize(QName name, Attributes attributes,
Object value, SerializationContext context)
throws IOException
{
if (!(value instanceof ObjectPropertyStatement))
throw new IOException("Can't serialize a " + value.getClass().getName() + " with a Ents2EntsSerializer.");
ObjectPropertyStatement e2e = (ObjectPropertyStatement)value;
context.startElement(name, attributes);
//context.serialize(new QName("", ENTS2ENTSID_MBER), null, e2e.getEnts2entsId());
//context.serialize(new QName("", DOMAINID_MBER), null, e2e.getDomainId());
//context.serialize(new QName("", DOMAIN_MBER), null, e2e.getDomain());
context.serialize(new QName("", RANGEID_MBER), null, e2e.getObjectURI());
//we don't want to serialize any further.
Individual object = e2e.getObject();
object.setObjectPropertyStatements(null);
context.serialize(new QName("", RANGE_MBER), null, object);
//context.serialize(new QName("", PROPERTYID_MBER), null, e2e.getPropertyId());
//context.serialize(new QName("", PROPERTY_MBER), null, e2e.getProperty());
context.serialize(new QName("", QUALIFIER_MBER), null, e2e.getQualifier());
context.endElement();
}
public String getMechanismType() { return Constants.AXIS_SAX; }
public Element writeSchema(Class javaType, Types types) throws Exception {
return null;
}
// /**
// * 1) reflects props and ents2ents domainside,
// * 2) sorts
// * 3) removed domain Entity object from all ents2ents
// *
// */
// private final void prepareForSerialization(final Entity ent){
// if( ent == null || ent.getPropertyList() == null) return;
// ent.sortForDisplay();
// ent.forceAllPropertiesDomainSide();
// Iterator it = ent.getPropertyList().iterator();
// while(it.hasNext()){
// Property prop = (Property)it.next();
// prepareProperty(prop);
// }
// }
// /**
// * calls prepareEnts2Ents on each ents2ents of Property
// */
// private final void prepareProperty(final Property prop){
// if( prop == null || prop.getEnts2Ents() == null ) return;
// Iterator it = prop.getEnts2Ents().iterator();
// while(it.hasNext()){
// prepareEnts2Ents((Ents2Ents)it.next());
// }
// }
// private final void prepareEnts2Ents(final Ents2Ents e2e ){
// if( e2e != null){
// e2e.setDomain(null);
// e2e.setProperty(null);
// }
// }
}

View file

@ -0,0 +1,29 @@
package edu.cornell.mannlib.vitro.webservices.serializers;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializerFactory;
import java.util.Iterator;
import java.util.Vector;
/**
* * This is used to by the axis webservices. see vitro/webservices/wsdd/VitroWs.wsdd
*/
public class EshipRetroObjectPropertySerFactory implements SerializerFactory {
private Vector mechanisms;
public EshipRetroObjectPropertySerFactory () {
}
public javax.xml.rpc.encoding.Serializer getSerializerAs(String mechanismType) {
return new EshipRetroObjectPropertySerializer();
}
public Iterator getSupportedMechanismTypes() {
if (mechanisms == null) {
mechanisms = new Vector();
mechanisms.add(Constants.AXIS_SAX);
}
return mechanisms.iterator();
}
}

View file

@ -0,0 +1,78 @@
package edu.cornell.mannlib.vitro.webservices.serializers;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import org.apache.axis.Constants;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.encoding.Serializer;
import org.apache.axis.wsdl.fromJava.Types;
import org.w3c.dom.Element;
import org.xml.sax.Attributes;
import javax.xml.namespace.QName;
import java.io.IOException;
import java.util.List;
/**
* This is used to by the axis webservices. see vitro/webservices/wsdd/VitroWs.wsdd
*/
public class EshipRetroObjectPropertySerializer implements Serializer {
public static final QName myTypeQName = new QName("typeNS", "VitroEntity");
public static final String ENTS2ENTSID_MBER = "ents2entsId";
public static final String DOMAINID_MBER = "domainId";
public static final String DOMAIN_MBER = "domain";
public static final String RANGEID_MBER = "rangeId";
public static final String RANGE_MBER = "range";
public static final String PROPERTYID_MBER = "propertyId";
public static final String PROPERTY_MBER = "property";
public static final String QUALIFIER_MBER = "qualifier";
public static final String DOMAINORIENTED_MBER = "domainOriented";
/**
* Serialize an element named name, with the indicated attributes
* and value.
* @param name is the element name
* @param attributes are the attributes...serialize is free to add more.
* @param value is the value
* @param context is the SerializationContext
*/
public void serialize(QName name, Attributes attributes,
Object value, SerializationContext context)
throws IOException
{
if (!(value instanceof ObjectProperty ))
throw new IOException("Can't serialize a " + value.getClass().getName() + " with a EshipRetroObjectPropertySerializer.");
ObjectProperty e2e = (ObjectProperty)value;
//jc55 trouble with RoleLevel objects
e2e.setProhibitedFromUpdateBelowRoleLevel(null);
e2e.setHiddenFromDisplayBelowRoleLevel(null);
context.startElement(name, attributes);
//context.serialize(new QName("", ENTS2ENTSID_MBER), null, e2e.getEnts2entsId());
//context.serialize(new QName("", DOMAINID_MBER), null, e2e.getDomainId());
//context.serialize(new QName("", DOMAIN_MBER), null, e2e.getDomain());
context.serialize(new QName("", "URI" ), null, e2e.getURI());
context.serialize(new QName("", "domainPublic"), null, e2e.getDomainPublic());
context.serialize(new QName("", "domainSide" ), null, e2e.getDomainSide());
List stmts = e2e.getObjectPropertyStatements();
context.serialize(new QName("", "ents2Ents" ), null, stmts);
context.endElement();
}
public String getMechanismType() { return Constants.AXIS_SAX; }
public Element writeSchema(Class javaType, Types types) throws Exception {
return null;
}
}

View file

@ -0,0 +1,337 @@
package edu.cornell.mannlib.vitro.webservices.xml.convert.test;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import junit.framework.TestCase;
import org.dom4j.Element;
import org.dom4j.io.HTMLWriter;
import edu.cornell.mannlib.vitro.beans.Entity;
import edu.cornell.mannlib.vitro.webapp.dao.VitroFacade;
import edu.cornell.mannlib.vitro.webservices.xml.convert.EntityXml;
public class EntityXmlTest extends TestCase {
public void testEntityProperties(){
String resultXml = null;
VitroFacade facade = new VitroFacade();
Entity ent = facade.entityById(1);
ent = facade.fillExistingEnts2Ents(ent);
// assertTrue(ent.getDomainEnts2ents() != null &&
// ent.getDomainEnts2ents().size() > 0);
// assertTrue(ent.getRangeEnts2ents() != null &&
// ent.getRangeEnts2ents().size() > 0);
Element elem = EntityXml.toXmlElem(ent,EntityXml.FULL);
assertTrue( elem != null );
try{
resultXml = HTMLWriter.prettyPrintXHTML( elem.asXML() );
}catch(Exception ex){
fail("exception: " + ex.toString());
}
assertTrue(resultXml != null && resultXml.length() > 0);
}
public static void main(String[] args) {
junit.textui.TestRunner.run( EntityXmlTest.class );
}
}
//
//<entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// <moniker>library</moniker>
// <url>
// <a href="http://www.mannlib.cornell.edu">Mann Library web page</a>
// </url>
// <domainProperties>
// <Ents2Ents ents2entsId="8949" etypes2RelationsId="562" rangeId="9036" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9036</id>
// <name>PRESERVING THE HISTORY OF UNITED STATES AGRICULTURE AND RURAL LIFE: STATE AND LOCAL LITERATURE, 1820-1945, PHASE IV</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="9866" etypes2RelationsId="562" rangeId="9390" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9390</id>
// <name>AGORA: ACCESS TO GLOBAL ONLINE RESEARCH IN AGRICULTURE</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="10078" etypes2RelationsId="562" rangeId="9461" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9461</id>
// <name>COORDINATED COLLECTION DEVELOPMENT AID</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="10187" etypes2RelationsId="562" rangeId="9500" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9500</id>
// <name>PRESERVING THE HISTORY OF UNITED STATES AGRICULTURE AND RURAL LIFE: STATE AND LOCAL LITERATURE, 1820-1945: PHASE V, 2004-2006</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="10369" etypes2RelationsId="562" rangeId="9561" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9561</id>
// <name>TEEAL(THE ESSENTIAL ELECTRONIC AGRICULTURAL LIBRARY)</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="11014" etypes2RelationsId="562" rangeId="9774" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9774</id>
// <name>PLANNING INFORMATION INFRASTRUCTURE THROUGH A NEW LIBRARY-RESEARCH PARTNERSHIP</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="11174" etypes2RelationsId="562" rangeId="9833" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9833</id>
// <name>DISSEMINATION AND PRESERVAITON OF DIGITAL AGRICULTURAL ECONOMIC DATA ON THE INTERNET</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="11212" etypes2RelationsId="562" rangeId="9848" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9848</id>
// <name>BUILDING A SERVICE ORIENTED ARCHITECTURE FOR AGNIC</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="11245" etypes2RelationsId="562" rangeId="9859" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>9859</id>
// <name>THE ESSENTIAL ELECTRONIC AGRICULTURAL LIBRARY</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass id="1">
// <typename>CUL unit library</typename>
// </VClass>
// </domainEtype>
// <rangeEtype>
// <VClass id="117">
// <typename>research grant</typename>
// </VClass>
// </rangeEtype>
// </Property>
// </property>
// </Ents2Ents>
// <Ents2Ents ents2entsId="15023" etypes2RelationsId="562" rangeId="11579" domainId="1">
// <domain>
// <entity>
// <id>1</id>
// <name>Albert R. Mann Library</name>
// </entity>
// </domain>
// <range>
// <entity>
// <id>11579</id>
// <name>COORDINATED COLLECTION DEVELOPMENT AID</name>
// </entity>
// </range>
// <property>
// <Property id="562" parentId="-1" minCardinality="-1" maxCardinality="-1" domainEtypeId="1" rangeEtypeId="117">
// <domainPublic>administers sponsored project</domainPublic>
// <rangePublic>administered by</rangePublic>
// <domainEtype>
// <VClass ...

View file

@ -0,0 +1,47 @@
package edu.cornell.mannlib.vitro.webservices.xml.convert.test;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import org.dom4j.Element;
import edu.cornell.mannlib.vitro.beans.Ents2Ents;
import edu.cornell.mannlib.vitro.webservices.xml.convert.Ents2EntsXml;
import junit.framework.TestCase;
public class Ents2EntsTest extends TestCase {
public void testNull(){
Ents2EntsXml xmler = new Ents2EntsXml();
assertEquals(xmler.toXmlElem(null), null);
}
public Ents2Ents makeObj(){
Ents2Ents obj = new Ents2Ents();
obj.setEnts2entsId(12);
obj.setDomainId(223);
obj.setRangeId(2255);
obj.setPropertyId(605);
obj.setQualifier("This is the super(){}[]';\":.,><");
return obj;
}
public void testAttributes(){
Ents2Ents ent = makeObj();
Ents2EntsXml xmler = new Ents2EntsXml();
Element elem = xmler.toXmlElem(ent);
assertEquals(elem.valueOf("@ents2entsId"),
Integer.toString(ent.getEnts2entsId()));
assertEquals(elem.valueOf("@domainId"),
Integer.toString(ent.getDomainId()));
assertEquals(elem.valueOf("@rangeId"),
Integer.toString(ent.getRangeId()));
assertEquals(elem.valueOf("@etypes2RelationsId"),
Integer.toString(ent.getPropertyId()));
assertEquals(elem.valueOf("@qualifier"),ent.getQualifier());
}
public static void main(String[] args) {
junit.textui.TestRunner.run( Ents2EntsTest.class );
}
}

View file

@ -0,0 +1,26 @@
package edu.cornell.mannlib.vitro.webservices.xml.convert.test;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import edu.cornell.mannlib.vitro.beans.VClass;
import edu.cornell.mannlib.vitro.webservices.xml.convert.*;
import edu.cornell.mannlib.vitro.dao.db.test.EntityDaoTest;
import junit.framework.TestCase;
public class EtypeXmlTest extends TestCase {
public void testXml1(){
String result = "<VClass id=\"2132\" quickEditJsp=\"bleck/editjsp.bla\">"+
"<typename>testtype</typename></VClass>";
VClass etype = new VClass();
etype.setId(2132);
// etype.setTypename("testtype");
etype.setQuickEditJsp("bleck/editjsp.bla");
EtypeXml xmler = new EtypeXml();
assertEquals(result, xmler.toXmlStr(etype));
}
public static void main(String[] args) {
junit.textui.TestRunner.run( EtypeXmlTest.class );
}
//this is a test change
}

View file

@ -0,0 +1,48 @@
package edu.cornell.mannlib.vitro.webservices.xml.convert.test;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import junit.framework.TestCase;
import edu.cornell.mannlib.vitro.webservices.xml.convert.*;
import edu.cornell.mannlib.vitro.beans.*;
public class PropertyXmlTest extends TestCase {
public void testXml1(){
String expected =
"<Property id=\"12\" parentId=\"1\" minCardinality=\"0\" "+
"maxCardinality=\"23\" domainEtypeId=\"2323\" "+
"rangeEtypeId=\"2443\"/>";
Property prop = new Property();
prop.setId(12);
prop.setParentId(1);
prop.setMinCardinality(0);
prop.setMaxCardinality(23);
// prop.setDomainEtypeId(2323);
// prop.setRangeEtypeId(2443);
PropertyXml xmler = new PropertyXml();
assertEquals(expected,xmler.toXmlStr(prop));
}
public void testXml2(){
String expected =
"<Property id=\"12\" parentId=\"1\" minCardinality=\"0\" "+
"maxCardinality=\"23\" domainEtypeId=\"2323\" "+
"rangeEtypeId=\"2443\"/>";
Property prop = new Property();
prop.setId(12);
prop.setParentId(1);
prop.setMinCardinality(0);
prop.setMaxCardinality(23);
// prop.setDomainEtypeId(2323);
// prop.setRangeEtypeId(2443);
PropertyXml xmler = new PropertyXml();
assertEquals(expected,xmler.toXmlStr(prop));
}
public static void main(String[] args) {
junit.textui.TestRunner.run( PropertyXmlTest.class );
}
}

View file

@ -0,0 +1,43 @@
package edu.cornell.mannlib.vitro.webservices.xml.convert.test;
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
import org.dom4j.Element;
import org.dom4j.io.HTMLWriter;
import junit.framework.TestCase;
import edu.cornell.mannlib.vitro.beans.*;
import edu.cornell.mannlib.vitro.dao.db.*;
import edu.cornell.mannlib.vitro.webservices.xml.convert.TabXml;
public class TabXmlTest extends TestCase {
private void doTabXmlTest(int tabId){
// Tab tab = TabDao.getTab(tabId, 1,"now()",10,60,0,null,null,null);
// Element elem = TabXml.toXmlElem(tab, 10);
// assertTrue( elem != null );
// String resultXml = null;
// try{
// resultXml = HTMLWriter.prettyPrintXHTML( elem.asXML() );
// }catch(Exception ex){
// fail("exception: " + ex.toString());
// }
// assertTrue(resultXml != null && resultXml.length() > 0);
}
public void testTabs(){
doTabXmlTest(63);
doTabXmlTest(18);
doTabXmlTest(19);
//bad xhtml doTabXmlTest(23);
doTabXmlTest(25);
doTabXmlTest(35);
doTabXmlTest(64);
doTabXmlTest(42);
}
public static void main(String[] args){
junit.textui.TestRunner.run( TabXmlTest.class );
}
}

24
services/wsdd/TabWs.wsdd Normal file
View file

@ -0,0 +1,24 @@
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="VitroWs" provider="java:RPC">
<parameter name="className" value="edu.cornell.mannlib.vitro.webservices.VitroWs"/>
<parameter name="allowedMethods" value="getFullTab,getTabsForPortal,getFullEntityById"/>
<beanMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Entity"/>
<beanMapping qname="myNS:VClass" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.VClass"/>
<beanMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Tab"/>
<beanMapping qname="myNS:Ents2Ents" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Ents2Ents"/>
<beanMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Property"/>
<beanMapping qname="myNS:Link" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Link"/>
<beanMapping qname="myNS:PropertyInstance" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.PropertyInstance"/>
</service>
</deployment>

View file

@ -0,0 +1,16 @@
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="VitroFacade" provider="java:RPC">
<parameter name="className" value="edu.cornell.mannlib.vitro.db.dao.VitroFacade"/>
<parameter name="allowedMethods" value="entityById,getTab,getTabHierarcy,getTabsForPortal,getEntsForTab,getAlphaEntsForTab"/>
<beanMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Entity"/>
<beanMapping qname="myNS:VClass" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.VClass"/>
<beanMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Tab"/>
</service>
</deployment>

View file

@ -0,0 +1,24 @@
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="VitroWs" provider="java:RPC">
<parameter name="className" value="edu.cornell.mannlib.vitro.webservices.VitroWs"/>
<parameter name="allowedMethods" value="getFullTab,getTabsForPortal,getFullEntityById"/>
<beanMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Entity"/>
<beanMapping qname="myNS:VClass" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.VClass"/>
<beanMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Tab"/>
<beanMapping qname="myNS:Ents2Ents" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Ents2Ents"/>
<beanMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Property"/>
<beanMapping qname="myNS:Link" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Link"/>
<beanMapping qname="myNS:PropertyInstance" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.beans.PropertyInstance"/>
</service>
</deployment>

View file

@ -0,0 +1,44 @@
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:myNS="http://vivo.cornell.edu/vitro/webservices/axis1/1.0"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="VitroWs2" provider="java:RPC">
<parameter name="scope" value="application"/>
<parameter name="sendMultiRefs" value="false"/>
<parameter name="className" value="edu.cornell.mannlib.vitro.webservices.VitroWs"/>
<parameter name="allowedMethods" value="getFullTab,getTabsForPortal,getFullEntityById"/>
<!-- <beanMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro" -->
<!-- languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Entity"/> -->
<typeMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Individual"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.EntitySerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<typeMapping qname="myNS:Ents2Ents" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.Ents2EntsSerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<beanMapping qname="myNS:VClass" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.VClass"/>
<beanMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty"/>
<beanMapping qname="myNS:PropertyInstance" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance"/>
<beanMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Tab"/>
<beanMapping qname="myNS:Link" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Link"/>
</service>
</deployment>

View file

@ -0,0 +1,52 @@
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:myNS="http://vivo.cornell.edu/vitro/webservices/axis1/1.0"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="VitroWs3" provider="java:RPC">
<parameter name="scope" value="application"/>
<parameter name="sendMultiRefs" value="false"/>
<parameter name="className" value="edu.cornell.mannlib.vitro.webservices.VitroWs"/>
<parameter name="allowedMethods" value="getFullTab,getTabsForPortal,getFullEntityById"/>
<!-- <beanMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro" -->
<!-- languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Entity"/> -->
<typeMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Individual"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.EntitySerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<typeMapping qname="myNS:Ents2Ents" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.Ents2EntsSerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<beanMapping qname="myNS:VClass" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.VClass"/>
<typeMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.EshipRetroObjectPropertySerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<!--
<beanMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty"/>
-->
<beanMapping qname="myNS:PropertyInstance" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance"/>
<beanMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Tab"/>
<beanMapping qname="myNS:Link" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Link"/>
</service>
</deployment>

View file

@ -0,0 +1,9 @@
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>VitroWs</name>
<namespace>http://vitro.mannlib.cornell.edu/VitroWs2</namespace>
<serviceClass>edu.cornell.mannlib.vitro.webservices.VitroWs2</serviceClass>
<implementationClass>edu.cornell.mannlib.vitro.webservices.VitroWs2</implementationClass>
</service>
</beans>

View file

@ -0,0 +1,47 @@
<?xml version="1.0"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- bdc34: -->
<!-- For converting an Entity to be displayed using the cals css -->
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/entity">
<div class="entity">
<p>
<h4><xsl:value-of select="name"/> | <xsl:value-of select="moniker"/>
<xsl:if test="url"> | <i><xsl:copy-of select="url"/></i> </xsl:if></h4>
<xsl:if test="campus_address"><br/>address: <xsl:value-of select="campus_address"/></xsl:if>
<xsl:if test="campus_phone"><br/>phone: <xsl:value-of select="campus_phone"/></xsl:if>
<xsl:if test="email_address"><br/>email: <xsl:value-of select="email_address"/></xsl:if>
</p>
<xsl:if test="imageThumb">
<p class="thumbnail"><img src="images/people/{imageThumb}" width="150"/></p>
</xsl:if>
<xsl:apply-templates select="PropertyInstances"/>
<div class="entityBody">
<h5><xsl:value-of select="blurb"/></h5>
<xsl:copy-of select="description"/>
</div>
</div>
</xsl:template>
<xsl:template match="PropertyInstances">
<!--p class="entityRelations"><xsl:value-of select="entity"/>:</p-->
<ul class="entityListElements">
<xsl:apply-templates select="entity"/>
</ul>
</xsl:template>
<xsl:template match="entity" >
<li>
<!--a class="entityLink" href="entityxml?id={@id}&amp;dir=eng"><xsl:value-of select="name"/></a-->
<xsl:if test="name"><xsl:copy-of select="name"/></xsl:if>
<xsl:if test="moniker"> | <xsl:value-of select="moniker"/></xsl:if>
<xsl:if test="url"> | <i><xsl:copy-of select="url"/></i></xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>

323
webapp/build.xml Normal file
View file

@ -0,0 +1,323 @@
<?xml version="1.0"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- <!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "ant16.dtd" > this doesn't seem to work well. -->
<project name="vivoWebApp" default="test" basedir="../">
<!-- Load user property definition overrides -->
<property file="./config/globalbuild.properties"/>
<!-- defined in globalbuild.properties -->
<!-- <property name="webapp.dir" value="./webapp"/> -->
<!-- <property name="webapp.build" value="${webapp.dir}/.build"/> -->
<!-- Property Definitions -->
<property name="app.name" value="vitro-webapp"/>
<property name="app.version" value="3.0"/>
<!-- default lucene index dir:: -->
<property name="luceneIndexDir" value="/usr/local/lucene/vitroAntdefault"/>
<!-- defined in globalbuild.properties -->
<property name="source.dir" value="${source.home}"/>
<!-- The clones/build.xml file modifies this default upload directory, now used for images -->
<property name="uploadDir" value="${source.dir}/webapp/web" />
<property name="compile.debug" value="true"/>
<property name="compile.deprecation" value="true" />
<property name="compile.optimize" value="true" />
<property name="dist.home" value="${webapp.dir}/dist"/>
<!-- directory for local modifications -->
<property name="modDir" value="modifications"/>
<property name="axis.port" value="8080"/>
<property name="axis.server" value="localhost"/>
<!-- ==================== Compilation Classpath =========================== -->
<path id="webapp-compile.classpath">
<!-- Include all JAR files that will be included in /WEB-INF/lib -->
<fileset dir="webapp/lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- ==================== Runtime Classpath =========================== -->
<path id="webapp-run.classpath">
<!-- some other jars we need -->
<!-- build dir -->
<pathelement path="${webapp.build}"/>
</path>
<!-- =================== Axis Classpath ============================== -->
<!-- need to include the classes directory so that axis can
find the necessary compiled classes -->
<path id="axis.classpath">
<pathelement path="${webapp.build}/WEB-INF/classes"/>
<fileset dir="webapp/lib">
<include name="**/*.jar" />
</fileset>
</path>
<!-- ================== set up the ant axis tasks ================ -->
<taskdef resource="axis-tasks.properties" classpathref="axis.classpath" />
<!-- ==================== All Target ====================================== -->
<!-- The "all" target is a shortcut for running the "clean" target followed
by the "compile" target, to force a complete recompile. -->
<target name="all" depends="clean,compile" description="Clean build and dist, then compile"/>
<!-- ==================== Clean Target ==================================== -->
<!-- The "clean" target deletes any previous "build" and "dist" directory,
so that you can be ensured the application can be built from scratch.
do not delete the ${deploy.home}/images directory !!! that's where images
are uploaded to-->
<target name="clean" description="Delete old build and dist directories">
<delete failonerror="false" dir="${webapp.build}"/>
</target>
<!-- ==================== Compile Target ================================== -->
<!--
The "compile" target transforms source files (from your "src" directory)
into object files in the appropriate location in the build directory.
This example assumes that you will be including your classes in an
unpacked directory hierarchy under "/WEB-INF/classes".
-->
<target name="compile" depends="prepare" description="Compile Java sources">
<!-- deletes all files that depend on changes .java files -->
<depend srcdir="${webapp.dir}/src"
destdir="${webapp.build}/WEB-INF/classes"
closure="false"
cache=".depcache">
<classpath refid="webapp-compile.classpath"/>
</depend>
<echo>Compile webapp</echo>
<javac srcdir="${webapp.dir}/src"
destdir="${webapp.build}/WEB-INF/classes"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}"
source="1.5">
<classpath refid="webapp-compile.classpath"/>
<!-- <compilerarg value="-Xlint:unchecked"/> -->
</javac>
<echo>Compile unit tests</echo>
<javac srcdir="${webapp.dir}/test"
destdir="${webapp.build}/WEB-INF/classes"
debug="yes"
source="1.5">
<classpath refid="webapp-compile.classpath"/>
</javac>
</target>
<!-- ==================== Test Target ================================== -->
<!--
The "test" target runs JUnit tests against the compiled classes.
-->
<target name="test" depends="prepare,compile" description="Run JUnit tests" unless="skiptests">
<java classname="edu.cornell.mannlib.vitro.testing.VitroTestRunner" fork="yes" failonerror="true">
<classpath>
<!-- The classes and their supporting JARs -->
<pathelement location="${webapp.build}/WEB-INF/classes" />
<path refid="webapp-compile.classpath" />
<!-- Test data files are stored with the test source -->
<pathelement location="${webapp.dir}/test" />
</classpath>
<arg file="${webapp.dir}/test" />
<arg value="${testlevel}" />
</java>
</target>
<!-- ============================== Copy Etc ============================== -->
<!-- There are configuration files under dream/etc that need to go in different -->
<!-- places in the build. This target copies them to the correct places. -->
<target name="copyEtc"
description="copies the files from the dream/etc dir to correct places in build">
<echo> ${tomcat.home}</echo>
<copy todir="${webapp.build}/WEB-INF">
<fileset file="${webapp.dir}/config/web.xml"/>
<fileset file="${webapp.dir}/config/dwr.xml"/>
</copy>
<!-- copy the default log4j config and then copy the override if it exists -->
<copy file="${webapp.dir}/config/default.log4j.properties"
tofile="${webapp.build}/WEB-INF/classes/log4j.properties"
filtering="true">
<filterchain><expandproperties/></filterchain>
</copy>
<copy file="${webapp.dir}/config/debugging.log4j.properties"
tofile="${webapp.build}/WEB-INF/classes/log4j.properties"
filtering="true"
failonerror="false">
<filterchain><expandproperties/></filterchain>
</copy>
<!-- copy properties files -->
<copy todir="${webapp.build}/WEB-INF/classes">
<fileset dir="${webapp.dir}/config" includes="connection.properties" />
<fileset file="${webapp.dir}/config/upload.properties" />
<fileset file="${webapp.dir}/config/LuceneSetup.properties" />
</copy>
<copy todir="${webapp.build}/WEB-INF/tlds">
<fileset dir="${webapp.dir}/config/tlds" includes="**/*" excludes="*.LCK"/></copy>
<!-- copy the webservices files -->
<copy todir="${webapp.build}/WEB-INF/lib">
<fileset dir="${ws.lib}"
includes="**/*"
excludes="*.LCK"/>
</copy>
<copy todir="${webapp.build}">
<fileset dir="${ws.dir}/additions"
includes="**/*"
excludes=".svn"/>
</copy>
<!-- copy the ontology files -->
<copy todir="${webapp.build}/WEB-INF/ontologies">
<fileset dir="${webapp.dir}/ontologies"/>
</copy>
<!-- copy the model files -->
<copy todir="${webapp.build}/WEB-INF/submodels" failonerror="false">
<fileset dir="${webapp.dir}/model/submodels"/>
</copy>
<!-- copy the init-data files -->
<copy todir="${webapp.build}/WEB-INF/init-data" failonerror="false">
<fileset dir="${webapp.dir}/model/init-data"/>
</copy>
<!-- xml files from src tree -->
<copy todir="${webapp.build}/WEB-INF/classes">
<fileset dir="${webapp.dir}/src" includes="**/*.xml" excludes="*.svn"/>
</copy>
<copy todir="${webapp.build}/WEB-INF/lib">
<fileset dir="${webapp.lib}">
<!-- these are already in Tomcat: we shouldn't conflict. -->
<exclude name="jsp-api.jar"/>
<exclude name="servlet-api.jar"/>
</fileset>
</copy>
</target>
<!-- ==================== Local Modifications ============================ -->
<!-- The localMods target will copy local modifications into the build directory
so that a user can who is not using the clone system can have a way to
apply simple chages to the deployed web application. In many cases
there will be no modifications directory so this will do nothing. -->
<target name="localMods" depends="compile,test,copyEtc"
description="Adds local modifications to build">
<copy todir="${webapp.build}" overwrite="true" preservelastmodified="true" failonerror="false">
<fileset dir="${modDir}" />
</copy>
</target>
<!-- ==================== Deploy Target =================================== -->
<!--
The "deploy" target copies the contents of the build directory into a
location required by our servlet container, and picks up any external
dependencies along the way. After restarting the servlet container, you
can now test your web application. -->
<target name="deploy" depends="compile,test,copyEtc, localMods"
description="Deploy application to servlet container">
<!-- Copy the contents of the build directory -->
<mkdir dir="${webapp.deploy.home}"/>
<copy todir="${webapp.deploy.home}">
<fileset dir="${webapp.build}"/>
</copy>
</target>
<!-- ==================== Jar Target ==================== -->
<target name="jar" depends="compile,test" description="Makes a jar file">
<jar jarfile="${webapp.dir.jar}" basedir="${webapp.build}/WEB-INF/classes"/>
</target>
<!-- ==================== Javadoc Target ================================== -->
<!--
The "javadoc" target creates Javadoc API documentation for the Java
classes included in your application. Normally, this is only required
when preparing a distribution release, but is available as a separate
target in case the developer wants to create Javadocs independently.
-->
<target name="javadoc" depends="compile" description="Create Javadoc API documentation">
<mkdir dir="${dist.home}/docs"/>
<javadoc sourcepath="src" classpathref="compile.classpath" destdir="${dist.home}/docs"
packagenames="*"/>
</target>
<!-- ==================== Prepare Target ================================== -->
<!--
The "prepare" target is used to create the "build" destination directory,
and copy the static contents of your web application to it.
Normally, this task is executed indirectly when needed. -->
<target name="prepare">
<!-- Create build directory and copy static content -->
<mkdir dir="${webapp.build}"/>
<mkdir dir="${webapp.build}/WEB-INF/classes"/>
<mkdir dir="${webapp.build}/WEB-INF/classes/properties"/>
<mkdir dir="${webapp.build}/WEB-INF/tlds"/>
<!--mkdir dir="${webapp.build}/jsp"/-->
<copy todir="${webapp.build}">
<fileset dir="${webapp.dir}/web"/>
</copy>
</target>
<!-- ==================== setupWs task ==================== -->
<target name="setupWs"
description="invoke axis admin to deploy and expose VitroWs">
<!-- Notice that this can be run from the command line too:
$ java org.apache.axis.client.AdminClient \
-lhttp://localhost:8080/vivo/services/AdminService deploy.wsdd -->
<axis-admin
port="${axis.port}"
hostname="${axis.server}"
failonerror="true"
servletpath="${webapp.name}/services/AdminService"
debug="true"
xmlfile="${webapp.dir}/config/VitroWs3.wsdd" />
</target>
<!-- ==================== axis prepare Target ======================== -->
<!--
The "axis" target is used to fill the "build" directory with files needed
for axis web services.
Normally, this task is executed indirectly when needed. -->
<target name="axisPrepare">
<copy todir="${webapp.build}/WEB-INF/classes">
<fileset dir="${webapp.dir}/config/axisproperties"
includes="**/*"
excludes=".svn"/>
</copy>
<copy file="${webapp.dir}/config/VitroWs3.wsdd"
todir="${webapp.build}/WEB-INF" />
</target>
<!-- =================== Create modifications directory ============== -->
<target name="prepareModDir"
description="create a directory structure to hold
local modifications"
depends="compile,test,copyEtc">
<mkdir dir="${modDir}"/>
<copy todir="${modDir}" >
<fileset dir="${webapp.build}">
<type type="dir"/>
<exclude name="WEB-INF/classes/"/>
<exclude name="jenaIngest"/>
<exclude name="src"/>
</fileset>
</copy>
</target>
</project>

View file

@ -0,0 +1,62 @@
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:myNS="http://vivo.cornell.edu/vitro/webservices/axis1/1.0"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="VitroWs3" provider="java:RPC">
<parameter name="scope" value="application"/>
<parameter name="sendMultiRefs" value="false"/>
<parameter name="className" value="edu.cornell.mannlib.vitro.webservices.VitroWs"/>
<parameter name="allowedMethods" value="getFullTab,getTabsForPortal,getFullEntityById"/>
<!-- <beanMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro" -->
<!-- languageSpecificType="java:edu.cornell.mannlib.vitro.beans.Entity"/> -->
<typeMapping qname="myNS:Entity" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Individual"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.EntitySerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<typeMapping qname="myNS:Ents2Ents" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.Ents2EntsSerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<typeMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Tab"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.TabSerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<beanMapping qname="myNS:VClass" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.VClass"/>
<typeMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty"
serializer="edu.cornell.mannlib.vitro.webservices.serializers.EshipRetroObjectPropertySerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<!--
<beanMapping qname="myNS:Property" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty"/>
-->
<beanMapping qname="myNS:PropertyInstance" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance"/>
<!-- <beanMapping qname="myNS:Tab" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Tab"/> -->
<beanMapping qname="myNS:Link" xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="java:edu.cornell.mannlib.vitro.webapp.beans.Link"/>
<beanMapping qname="myNS:role"
xmlns:myNS="urn:edu.cornell.mannlib.vitro"
languageSpecificType="urn:edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean$RoleLevel"/>
</service>
</deployment>

View file

@ -0,0 +1,132 @@
############################################################
# i18n settings for the Axis Web-Application
#
#################### [i18n global setting] #################
#
locales=en ja
#################### [index.jsp] ###########################
#
### Header ###
#
language=Language
welcomeMessage=Hello! Welcome to Apache-Axis.
### Operation list ###
#
operationType=What do you want to do today?
# Validation
validation=Validation
validationURL=happyaxis.jsp
validationFootnote00=Validate the local installation's configuration
validationFootnote01=see below if this does not work.
# List
serviceList=List
serviceListURL=servlet/AxisServlet
serviceListFootnote=View the list of deployed Web services
# Call
callAnEndpoint=Call
callAnEndpointURL=EchoHeaders.jws?method=list
callAnEndpointFootnote00=Call a local endpoint that list's the caller's http headers
callAnEndpointFootnote01=(or see its <a href="EchoHeaders.jws?wsdl">WSDL</a>).
# Visit
visit=Visit
visitURL=http://ws.apache.org/axis/
visitFootnote=Visit the Apache-Axis Home Page
# Admin
admin=Administer Axis
adminURL=servlet/AdminServlet
adminFootnote=[disabled by default for security reasons]
# SOAPMonitor
soapMonitor=SOAPMonitor
soapMonitorURL=SOAPMonitor
soapMonitorFootnote=[disabled by default for security reasons]
# Sidenote
sideNote=To enable the disabled features, uncomment the appropriate declarations in WEB-INF/web.xml in the webapplication and restart it.
### Validating Axis ###
#
# Title
validatingAxis=Validating Axis
# Note 0
validationNote00=If the "happyaxis" validation page displays an exception instead of a status page, the likely cause is that you have multiple XML parsers in your classpath. Clean up your classpath by eliminating extraneous parsers.
# Note 1
validationNote01=If you have problems getting Axis to work, consult the Axis <a href="http://wiki.apache.org/ws/FrontPage/Axis">Wiki</a> and then try the Axis user mailing list.
#
#################### [index.jsp] ###########################
#################### [happyaxis.jsp] #######################
#
pageTitle=Axis Happiness Page
pageRole=Examining webapp configuration
### Needed Components ###
#
neededComponents=Needed Components
error=Error
warning=Warning
criticalErrorMessage=Axis will not work.
uncertainErrorMessage=Axis may not work.
# parameters = url, name
seeHomepage=<br> See <a href="{0}">{0}</a>
# parameters = category, classname, jarFile, errorText, url
couldNotFound=<p> {0}: could not find class {1} from file <b>{2}</b><br> {3} {4}<p>
# parameters = description, classname
foundClass00=Found {0} ( {1} )
# parameters = description, classname
foundClass01=Found {0} ( {1} ) at {2}
# parameters = category, classname, errorText, url
couldNotFoundDep=<p> {0}: could not find a dependency of class {1} from file <b>{2}</b><br> {3} {4}
# parameters = ncdfe.getMessage(), classname
theRootCause=<br>The root cause was: {0}<br>This can happen e.g. if {1} is in the 'common' classpath, but a dependency like activation.jar is only in the webapp classpath.<p>
# parameters = location
invalidSAAJ=<b>Error:</b> Invalid version of SAAJ API found in {0}. Make sure that Axis' saaj.jar precedes {0} in CLASSPATH.<br>
axisInstallation=Axis installation instructions
### Optional Components ###
#
optionalComponents=Optional Components
attachmentsError=Attachments will not work.
xmlSecurityError=XML Security is not supported.
httpsError=https is not supported.
happyResult00=<i>The core axis libraries are present.</i>
happyResult01=<i>The optional components are present.</i>
# parameters = needed(num of missing libraries)
unhappyResult00=<i>{0} core axis library(ies) are missing</i>
# parameters = wanted(num of missing libraries)
unhappyResult01=<i>{0} wanted optional axis librar(ies) are missing</i>
hintString=<B><I>Note:</I></B> On Tomcat 4.x and Java1.4, you may need to put libraries that contain java.* or javax.* packages into CATALINA_HOME/common/lib <br>jaxrpc.jar and saaj.jar are two such libraries.<p/>
noteString=<B><I>Note:</I></B> Even if everything this page probes for is present, there is no guarantee your web service will work, because there are many configuration options that we do not check for. These tests are <i>necessary</i> but not <i>sufficient</i><hr>
### Examining Application Server ###
#
apsExamining=Examining Application Server
recommendedParser=<b>We recommend <a href="http://xml.apache.org/xerces2-j/">Xerces 2</a> over Crimson as the XML parser for Axis</b>
couldNotCreateParser=Could not create an XML Parser
### Examining System Properties ###
#
sysExamining=Examining System Properties
sysPropError=System properties are not accessible.<p>
classFoundError=an unknown location
apsPlatform=Platform
#
#################### [happyaxis.jsp] #######################

View file

@ -0,0 +1,127 @@
############################################################
# Japanese settings for the Axis Web-Application
#
#################### [index.jsp] ###########################
#
### Header ###
#
language=\u8a00\u8a9e
welcomeMessage=\u3053\u3093\u306b\u3061\u306f\uff01 Apache-Axis\u3078\u3088\u3046\u3053\u305d
### Operation list ###
#
operationType=\u4eca\u65e5\u306f\u4f55\u3092\u3057\u305f\u3044\u3067\u3059\u304b\uff1f
# Validation
validation=\u691c\u8a3c
validationURL=happyaxis.jsp
validationFootnote00=\u30ed\u30fc\u30ab\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u72b6\u6cc1\u3092\u691c\u8a3c\u3059\u308b
validationFootnote01=\u3046\u307e\u304f\u6a5f\u80fd\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u4e0b\u8a18\u300cAxis\u306e\u691c\u8a3c\u300d\u3092\u53c2\u7167
# List
serviceList=\u30ea\u30b9\u30c8
serviceListURL=servlet/AxisServlet
serviceListFootnote=\u30c7\u30d7\u30ed\u30a4\u6e08\u307f\u306eWeb\u30b5\u30fc\u30d3\u30b9\u30ea\u30b9\u30c8\u3092\u898b\u308b
# Call
callAnEndpoint=\u547c\u51fa\u3057
callAnEndpointURL=EchoHeaders.jws?method=list
callAnEndpointFootnote00=HTTP\u30d8\u30c3\u30c0\u306e\u4e00\u89a7\u8868\u793a\u3092\u884c\u3046\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u8d77\u52d5\u3059\u308b
callAnEndpointFootnote01=(\u3082\u3057\u304f\u306f<a href="EchoHeaders.jws?wsdl">WSDL</a>\u306e\u53c2\u7167)
# Visit
visit=\u8a2a\u554f
visitURL=http://ws.apache.org/axis/ja/index.html
visitFootnote=Apache Axis\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u8a2a\u554f\u3059\u308b
# Admin
admin=Axis\u306e\u7ba1\u7406
adminURL=servlet/AdminServlet
adminFootnote=[\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u5229\u7528\u4e0d\u53ef]
# SOAPMonitor
soapMonitor=SOAP\u30e2\u30cb\u30bf
soapMonitorURL=SOAPMonitor
soapMonitorFootnote=[\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u5229\u7528\u4e0d\u53ef]
# Sidenote
sideNote=\u4e0a\u8a18\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5229\u7528\u3067\u304d\u306a\u3044\u6a5f\u80fd\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5185\u306eWEB-INF/web.xml\u30d5\u30a1\u30a4\u30eb\u306e\u8a72\u5f53\u3059\u308b\u5ba3\u8a00\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u5916\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u518d\u8d77\u52d5\u3057\u3066\u4e0b\u3055\u3044\u3002
### Validating Axis ###
#
# Title
validatingAxis=Axis\u306e\u691c\u8a3c
# Note 0
validationNote00="happyaxis"\u691c\u8a3c\u30da\u30fc\u30b8\u304c\u72b6\u614b\u8868\u793a\u3067\u306f\u306a\u304f\u4f8b\u5916\u3092\u8868\u793a\u3059\u308b\u5834\u5408\u3001\u539f\u56e0\u3068\u3057\u3066\u306f\u30af\u30e9\u30b9\u30d1\u30b9\u5185\u306b\u8907\u6570\u306eXML\u30d1\u30fc\u30b5\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002\u95a2\u4fc2\u306a\u3044\u30d1\u30fc\u30b5\u3092\u30af\u30e9\u30b9\u30d1\u30b9\u304b\u3089\u53d6\u308a\u9664\u3044\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002
# Note 1
validationNote01=Axis\u3092\u52d5\u4f5c\u3055\u305b\u308b\u4e0a\u3067\u554f\u984c\u3092\u62b1\u3048\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u307e\u305a<a href="http://wiki.apache.org/ws/ja/axis">Axis Wiki</a>\u3092\u53c2\u8003\u306b\u3057\u3001\u305d\u306e\u5f8c\u3067Axis\u30e6\u30fc\u30b6\u30e1\u30fc\u30ea\u30f3\u30b0\u30ea\u30b9\u30c8\u306b\u6295\u7a3f\u3057\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002
#
#################### [index.jsp] ###########################
#################### [happyaxis.jsp] #######################
#
pageTitle=Axis Happiness Page
pageRole=webapp\u306e\u69cb\u6210\u306b\u95a2\u3059\u308b\u8abf\u67fb
### Needed Components ###
#
neededComponents=\u5fc5\u9808\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8
error=\u30a8\u30e9\u30fc
warning=\u8b66\u544a
criticalErrorMessage=\u304a\u305d\u3089\u304fAxis\u306f\u52d5\u304d\u307e\u305b\u3093\u3002
uncertainErrorMessage=Axis\u306f\u52d5\u304b\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
# parameters = url, name
seeHomepage=<br> <a href="{0}">{0}</a>\u3092\u898b\u3066\u4e0b\u3055\u3044\u3002
# parameters = category, classname, jarFile, errorText, url
couldNotFound=<p> {0}: <b>{2}</b>\u30d5\u30a1\u30a4\u30eb\u304c\u63d0\u4f9b\u3059\u308b{1}\u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002<br> {3} {4}<p>
# parameters = description, classname
foundClass00={0} ( {1} ) \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002
# parameters = description, classname, location
foundClass01={0} ( {1} ) \u304c{2}\u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002
# parameters = category, classname, errorText, url
couldNotFoundDep=<p> {0}: <b>{2}</b>\u30d5\u30a1\u30a4\u30eb\u304c\u63d0\u4f9b\u3059\u308b{1}\u30af\u30e9\u30b9\u306e\u4f9d\u5b58\u95a2\u4fc2\u304c\u89e3\u6c7a\u3067\u304d\u307e\u305b\u3093\u3002<br> {3} {4}
# parameters = ncdfe.getMessage(), classname
theRootCause=<br>\u6839\u672c\u539f\u56e0: {0}<br>\u3053\u306e\u30a8\u30e9\u30fc\u306f\u6b21\u306e\u3088\u3046\u306a\u5834\u5408\u306b\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u300c\u5171\u901a\u306e\u300d\u30af\u30e9\u30b9\u30d1\u30b9\u306b{1}\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001activation.jar \u306e\u3088\u3046\u306a\u4f9d\u5b58\u3059\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u304cwebapp\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u3060\u3051\u306b\u3057\u304b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u306a\u5834\u5408\u3067\u3059\u3002<p>
# parameters = location
invalidSAAJ=<b>\u30a8\u30e9\u30fc:</b> {0}\u306b\u9069\u5207\u3067\u306a\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u306eSAAJ API\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002Axis\u306esaaj.jar\u3092\u3001CLASSPATH\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b{0} \u3088\u308a\u3082\u524d\u65b9\u306b\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br>
axisInstallation=Axis\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806
### Optional Components ###
#
optionalComponents=\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff65\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8
attachmentsError=\u304a\u305d\u3089\u304fAttachments\u306f\u6a5f\u80fd\u3057\u307e\u305b\u3093\u3002
xmlSecurityError=XML Security\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
httpsError=https\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
happyResult00=<i>axis\u306e\u30b3\u30a2\uff65\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u5168\u3066\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002</i>
happyResult01=<i>\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff65\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002</i>
# parameters = needed(num of missing libraries)
unhappyResult00=<i>axis\u306e\u30b3\u30a2\uff65\u30e9\u30a4\u30d6\u30e9\u30ea\u304c{0}\u3064\u6b20\u3051\u3066\u3044\u307e\u3059\u3002</i>
# parameters = wanted(num of missing libraries)
unhappyResult01=<i>axis\u306e\u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\uff65\u30e9\u30a4\u30d6\u30e9\u30ea\u304c{0}\u3064\u6b20\u3051\u3066\u3044\u307e\u3059\u3002</i>
hintString=<B><I>\u6ce8\u610f:</I></B> Tomcat 4.x \u3068 Java1.4 \u4e0a\u3067\u306f\u3001CATALINA_HOME/common/lib \u306b\u3001java.* \u3082\u3057\u304f\u306f javax.* \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u542b\u3080\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u914d\u7f6e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<br>\u4f8b\u3048\u3070 jaxrpc.jar \u3068 saaj.jar \u306f\u3001\u305d\u306e\u3088\u3046\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002<p/>
noteString=<B><I>\u6ce8\u610f:</I></B> \u30da\u30fc\u30b8\u306b\u5168\u3066\u306e\u8abf\u67fb\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u305f\u3068\u3057\u3066\u3082\u3001\u30c1\u30a7\u30c3\u30af\u3067\u304d\u306a\u3044\u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u3082\u591a\u3044\u305f\u3081\u3001\u3042\u306a\u305f\u306eWeb\u30b5\u30fc\u30d3\u30b9\u304c\u6b63\u5e38\u306b\u6a5f\u80fd\u3059\u308b\u4fdd\u969c\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u3053\u308c\u3089\u306e\u30c6\u30b9\u30c8\u306f<i>\u5fc5\u8981</i>\u306a\u3082\u306e\u3067\u3059\u304c\u3001<i>\u5341\u5206</i>\u306a\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
### Examining Application Server ###
#
apsExamining=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\uff65\u30b5\u30fc\u30d0\u30fc\u306b\u95a2\u3059\u308b\u8abf\u67fb
recommendedParser=<b>Axis\u3067\u4f7f\u7528\u3059\u308bXML\u30d1\u30fc\u30b5\u30fc\u306b\u306f Crimson \u3067\u306f\u306a\u304f\u3001<a href="http://xml.apache.org/xerces2-j/">Xerces 2</a> \u3092\u63a8\u5968\u3057\u3066\u3044\u307e\u3059\u3002</b>
couldNotCreateParser=XML Parser\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
### Examining System Properties ###
#
sysExamining=\u30b7\u30b9\u30c6\u30e0\uff65\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u95a2\u3059\u308b\u8abf\u67fb
sysPropError=\u30b7\u30b9\u30c6\u30e0\uff65\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002<p>
classFoundError=\u4e0d\u660e\u306a\u5834\u6240
apsPlatform=\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0
#
#################### [happyaxis.jsp] #######################

View file

@ -0,0 +1,68 @@
LuceneSetup.indexDir=${luceneIndexDir}
# The default.log4j.properties file will only get used if there is no
# debugging.log4j.properties file in the directory otherwise, the debugging.log4j.properties will
# be deployed and used.
# If you want to have a logging config for debugging
# and testing copy the default.log4j.properties file to debugging.log4j.properties,
# make your modifications and deploy. debugging.log4j.properties
# will be used instead of the default.log4j.properties file.
# levels: <-- more messages ALL DEBUG INFO WARN ERROR FATAL OFF fewer messages -->
log4j.rootLogger=WARN, AllAppender
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
log4j.appender.AllAppender.File= ${tomcat.home}/logs/${clone}.all.log
log4j.appender.AllAppender.MaxFileSize=10MB
log4j.appender.AllAppender.MaxBackupIndex=10
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AllAppender.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.org.apache.catalina=INFO, AllAppender
log4j.logger.org.diretwebremoting=ERROR, AllAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.auth=INFO, AllAppender
#### setup a debugging logger
log4j.appender.DebuggingAppender=org.apache.log4j.FileAppender
log4j.appender.DebuggingAppender.File=${tomcat.home}/logs/${clone}.debugging.log
log4j.appender.DebuggingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebuggingAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
#log4j.logger.edu.cornell.mannlib.vitro.webapp=DEBUG, DebuggingAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.auth=DEBUG, DebuggingAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.dao.jena=DEBUG, DebuggingAppender
#### setup a debugging logger for the JSPs
#JSPs need to have a line like:
#<% org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("edu.cornell.mannlib.vitro.webapp.jsp.SOMEIDFORYOURJSP"); %>
log4j.appender.JspAppender=org.apache.log4j.FileAppender
log4j.appender.JspAppender.File=${tomcat.home}/logs/${clone}.jsp.log
log4j.appender.JspAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.JspAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
log4j.logger.edu.cornell.mannlib.vitro.webapp.jsp=INFO, JspAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.jsp.edit=DEBUG, JspAppender
#### setup a pellet logger
log4j.appender.PelletAppender=org.apache.log4j.FileAppender
log4j.appender.PelletAppender.File=${tomcat.home}/logs/${clone}.pellet.log
log4j.appender.PelletAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.PelletAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
log4j.logger.org.mindswap=WARN, PelletAppender
#### setup a jena logger
log4j.appender.JenaAppender=org.apache.log4j.FileAppender
log4j.appender.JenaAppender.File=${tomcat.home}/logs/${clone}.jena.log
log4j.appender.JenaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.JenaAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
log4j.logger.com.hp.hpl=WARN, JenaAppender
# documentation for this file can be found here:
# http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#doConfigure(java.lang.String,%20org.apache.log4j.spi.LoggerRepository)

View file

@ -0,0 +1,68 @@
LuceneSetup.indexDir=${luceneIndexDir}
# The default.log4j.properties file will only get used if there is no
# debugging.log4j.properties file in the directory otherwise, the debugging.log4j.properties will
# be deployed and used.
# If you want to have a logging config for debugging
# and testing copy the default.log4j.properties file to debugging.log4j.properties,
# make your modifications and deploy. debugging.log4j.properties
# will be used instead of the default.log4j.properties file.
# levels: <-- more messages ALL DEBUG INFO WARN ERROR FATAL OFF fewer messages -->
log4j.rootLogger=WARN, AllAppender
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
log4j.appender.AllAppender.File= ${tomcat.home}/logs/vitro.all.log
log4j.appender.AllAppender.MaxFileSize=10MB
log4j.appender.AllAppender.MaxBackupIndex=10
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AllAppender.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.org.apache.catalina=INFO, AllAppender
log4j.logger.org.diretwebremoting=ERROR, AllAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.auth=INFO, AllAppender
#### setup a debugging logger
log4j.appender.DebuggingAppender=org.apache.log4j.FileAppender
log4j.appender.DebuggingAppender.File=${tomcat.home}/logs/vitro.debugging.log
log4j.appender.DebuggingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebuggingAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
#log4j.logger.edu.cornell.mannlib.vitro.webapp=DEBUG, DebuggingAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.auth=DEBUG, DebuggingAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.dao.jena=DEBUG, DebuggingAppender
#### setup a debugging logger for the JSPs
#JSPs need to have a line like:
#<% org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("edu.cornell.mannlib.vitro.webapp.jsp.SOMEIDFORYOURJSP"); %>
log4j.appender.JspAppender=org.apache.log4j.FileAppender
log4j.appender.JspAppender.File=${tomcat.home}/logs/vitro.jsp.log
log4j.appender.JspAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.JspAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
log4j.logger.edu.cornell.mannlib.vitro.webapp.jsp=INFO, JspAppender
#log4j.logger.edu.cornell.mannlib.vitro.webapp.jsp.edit=DEBUG, JspAppender
#### setup a pellet logger
log4j.appender.PelletAppender=org.apache.log4j.FileAppender
log4j.appender.PelletAppender.File=${tomcat.home}/logs/vitro.pellet.log
log4j.appender.PelletAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.PelletAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
log4j.logger.org.mindswap=WARN, PelletAppender
#### setup a jena logger
log4j.appender.JenaAppender=org.apache.log4j.FileAppender
log4j.appender.JenaAppender.File=${tomcat.home}/logs/vitro.jena.log
log4j.appender.JenaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.JenaAppender.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n
log4j.logger.com.hp.hpl=WARN, JenaAppender
# documentation for this file can be found here:
# http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#doConfigure(java.lang.String,%20org.apache.log4j.spi.LoggerRepository)

51
webapp/config/dwr.xml Executable file
View file

@ -0,0 +1,51 @@
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr//dwr20.dtd">
<dwr>
<allow>
<!-- create blocks define how the java object on the server gets created, -->
<!-- long it lives, what java class and what name in javascript. -->
<!-- creator: "new" "scripted" "spring" -->
<!-- scope: "application" "session" "request" "page" -->
<!-- that the "request" scope is only useful for static methods -->
<create creator="new" javascript="PropertyDWR" scope="page">
<param name="class" value="edu.cornell.mannlib.vitro.webapp.dwr.PropertyDWR"/>
</create>
<create creator="new" javascript="EntityDWR" scope="page">
<param name="class" value="edu.cornell.mannlib.vitro.webapp.dwr.EntityDWR" />
</create>
<create creator="new" javascript="VClassDWR" scope="page">
<param name="class" value="edu.cornell.mannlib.vitro.webapp.dwr.VClassDWR"/>
</create>
<!-- Convert blocks define how a types are moved between java
land and java script land -->
<convert converter="bean" match="edu.cornell.mannlib.vitro.webapp.beans.VClass">
<param name="include" value="name,URI,groupURI,hidden,shortDef,hiddenFromPublicDisplay,hiddenFromEditDisplay"/>
</convert>
<convert converter="bean" match="edu.cornell.mannlib.vitro.webapp.beans.Individual">
<param name="include" value="name,moniker,URI,vClassURI"/>
</convert>
<convert converter="bean" match="edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance"/>
<!--<convert converter="object" match="edu.cornell.mannlib.vitro.beans.Entity">-->
<!--<param name="include" value="id, name, moniker, vClassId"/>-->
<!--</convert>-->
<!--<convert converter="object" match="edu.cornell.mannlib.vitro.webapp.beans.IndividualWebapp">-->
<!--<param name="force" value="true"/>-->
<!--<param name="include" value="URI, namespace, localName, name, moniker, vclassURI"/>-->
<!--</convert>-->
<convert converter="bean" match="Date"/>
</allow>
</dwr>

View file

@ -0,0 +1,11 @@
#this is an example of what needs to be in this
#file to setup the lucene index directory
#
# The default location is /usr/local/lucene/vitrodefault
#You could hard code the location like this:
#LuceneSetup.indexDir=/usr/local/lucene/example
#this line will be setup by ant to work for clones
#if you hardcode the dir, this line should be commented out
LuceneSetup.indexDir=${luceneIndexDir}

View file

@ -0,0 +1,80 @@
################################################################################
# DataSource properties file
################################################################################
######################### DataSource Properties ################################
VitroConnection.DataSource.url=jdbc:mysql://localhost/vitro
VitroConnection.DataSource.username=vitroweb
VitroConnection.DataSource.password=vitrovitro
####################### Other Important Properties #############################
# CHANGE the following property unless you're using Cornell's VIVO ontology
Vitro.defaultNamespace=http://vivo.library.cornell.edu/ns/0.1#
# Uncomment this next line and specify an SMTP host to activate the Contact Us form
#Vitro.smtpHost=
################################################################################
# maximum number of connections to the db server
# This must not be greater than the mysql max_connection parameter.
# defaults to 40
#VitroConnection.DataSource.MaxActive=40
# maximum number of connections to the db server to keep
# around when nothing is happening.
# defaults to 10
#VitroConnection.DataSource.MaxIdle=10
# Time to wait in msec for a result from the sql server
# defaults to 10000
#VitroConnection.DataSource.MaxWait=10000
# query to use to test to see if a connection to the db server is live.
# defaults to SELECT 1
#VitroConnection.DataSource.ValidationQuery=SELECT 1
# should the connection pool test the connections it gets from the pool?
#defaults to true
#VitroConnection.DataSource.TestOnBorrow=true
# should the connection pool test connections it puts back in pool?
#defaults to true
#VitroConnection.DataSource.TestOnReturn=true
# Nnumber of milliseconds to sleep between runs of the idle object
# evictor thread. When non-positive, no idle object evictor thread will
# be run. defaults to 30min
#VitroConnection.DataSource.TimeBetweenEvictions=
# The number of objects to examine during each
# run of the idle object evictor thread (if any).
# defaults to 3
#VitroConnection.DataSource.TestsPerEviction=3
# The minimum amount of time
# an object may sit idle in the pool before it is eligable for eviction
# by the idle object evictor (if any).
# defaults to 30min
#VitroConnection.DataSource.MinEvictionIdleTime=
################################################ # other notes:
# The file checked into source control is example.connection.properties so
# that if you have a connection.properties on your machine it will not be
# under source control. This is useful so that your customizations for your
# database setup are less likely to be checked into source control and then
# overwrite other folks' customizations.

View file

@ -0,0 +1,26 @@
# The UploadImagesServlet will upload the images to a directory
# that is under tomcat and serve them from there.
# This causes a problem when the tomcat/webapps dir is deleted
# or deployed because you will lose all the images that the
# curators have uploaded. We deal with this by copying
# the files to another directory, one that is under version control.
# This property indicates which non-tomcat directory to save the images in.
# ${uploadDir} is defined in the main build.xml via the following statements:
#
# <!-- defined in globalbuild.properties -->
# <property name="source.dir" value="{source.home}"/>
# <property name="uploadDir" value="{source.dir}/webapp/web" />
#
# But, this value will be replaced by the Vitro/clones/build.xml
# to point to the clones/{clone}/modifications directory based on the following
# <property file="./config/globalbuild.properties"/>
# <property name="source.dir" value="{source.home}"/>
# <property name="uploadDir" value="${source.dir}/clones/${clone}/modifications"/>
#
# The UploadImagesServlet.getSourceDirName() method then looks at this parameter
# in the upload.properties file, which file is stuck by the clones/build.xml file
# into the clone's modifications/WEB-INF/classes directory:
UploadImagesServlet.sourceDirName=${uploadDir}

149
webapp/config/setenv.sh Executable file
View file

@ -0,0 +1,149 @@
JAVA_HOME=/usr/local/java/jdk1.5.0_06
TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
#these are for options that are only set at start time
# useful for jmx or remote debugging.
START_OPTS=""
# the gc log and the jvm options are saved in the logs directory
DATESTR=`date +%Y%m%d.%H%M`
GCFILE=$CATALINA_HOME/logs/gc$DATESTR.txt
OPT_FILE=$CATALINA_HOME/logs/opts$DATESTR.txt
# This is an example of the setenv.sh file from
# cugir-tng.mannlib.cornell.edu
# To use this file copy it to /usr/local/tomcat/bin/setenv.sh
# When catalina.sh is called this file will be used to
# set the environmental variables that are
# in effect when starting the JVM for tomcat.
# java memory tools:
# jconsole is useful to watch the survivor, Edan, tenured and
# perm spaces. gcviewer is useful for statistics.
#An acceptable group of settings, use this as a starting point
# CATALINA_OPTS=" -Xms1024m -Xmx1024m -XX:MaxPermSize=128m \
# -XX:+UseParallelGC \
# -Dfile.encoding=UTF-8 \
# -Xloggc:$GCFILE -XX:+PrintGCDetails -XX:+PrintGCTimeStamps "
# attempting a low GCTimeRatio,
# GCTimeRatio indicates how much time to spend in gc vs. application
# app time / gc time = 1 / (1+ GCTimeRatio)
# GCTimeRatio of 11 is aprox %8 of the time in GC
#
# Result: best so far. After about 12 hours the heap is
# hovering around 100mb. This is the first group of settings
# that seem like they will be stable for a long period of time.
# throughput is 98.79%
# This is a log for these settings: /usr/local/tomcat/logs/gc20060809.1638.txt
CATALINA_OPTS=" -Xms1024m -Xmx1024m -XX:MaxPermSize=128m \
-XX:+UseParallelGC -XX:GCTimeRatio=11 -XX:+UseAdaptiveSizePolicy \
-Dfile.encoding=UTF-8 \
-Xloggc:$GCFILE -XX:+PrintGCDetails -XX:+PrintGCTimeStamps "
# bdc34 2006-08-08
# Trying adaptiveSizePolicy with parallel GC.
# Result: This did an out of memory when a crawler came along
# but even before that it looked bad.
# CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m \
# -XX:NewSize=512m \
# -XX:+UseParallelGC -XX:+UseAdaptiveSizePolicy \
# -Dfile.encoding=UTF-8 \
# -XX:+PrintGCDetails -XX:+PrintGCTimeStamps \
# -Xloggc:$GCFILE "
# bdc34 2006-08-08
# Trying the concurrent gc
# Result: after 10min it seems odd. The survivor space doesn't get
# used at all. It is always showing up in jconsole as zero mb. So
# objects are going directly from the edan space to the tenured space?
#
# Result: sort of rapid growth of heap with odd paterns of collection.
# doesn't seem useful
# CATALINA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256m \
# -XX:+UseConcMarkSweepGC \
# -XX:+UseAdaptiveSizePolicy \
# -XX:-TraceClassUnloading \
# -Dfile.encoding=UTF-8 \
# -XX:+PrintGCDetails -XX:+PrintGCTimeStamps \
# -Xloggc:/usr/local/tomcat/logs/gc.txt "
# bdc34 2006-08-07
# Attempting to increase the PermGen Size. Notice
# that PermGen size is in addition to the heap
# size specified in -Xmx.
#
# Also removing GCTimeRatio to allow for
# a lot of garbage collecting. I don't want
# any bound on GC, time or throughput. I don't
# know if not specifying a value will achieve this.
#
# Logging gc to /usr/local/tomcat/logs/gc.txt
# so I can look at it with http://www.tagtraum.com/gcviewer.html
#
# Setting max heap to initial heap to avoid growing the
# heap and associated gc cycles.
#
# Result: I ran this for two days and it seemed to work well.
# It would do minor collections for about 20h. The heap would
# get to around 1G and then the jvm would do
# a full colleciton that would drop the heap down to 50m.
# It seems that having the heap at 1G only buys time and
# that the application could live in 128-256mb.
# gcviewer was reporting 99.0% collection rates.
# It seems that these settings would work but might need to
# be restarted about once a week.
#
# Increasing the MaxPermSize seems to be important.
# The permGen includes things like classes and code. This is
# a problem since JSPs are classes and code so reloading a JSP
# adds to the permGen. The documentation weakly indicates that
# the permGen gets collected in full collections. I have not
# seen evidence that this it does when watching jconsole.
# Sun's JVM seperates the heap and classes but IBM and BEA do not.
#
# CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m \
# -XX:+UseParallelGC \
# -Dfile.encoding=UTF-8 \
# -XX:+PrintGCDetails -XX:+PrintGCTimeStamps \
# -Xloggc:/usr/local/tomcat/logs/gc.txt "
#bdc 2005-10-18
# CATALINA_OPTS="-server -Xms512m -Xmx1024m \
# -XX:+UseParallelGC \
# -XX:ParallelGCThreads=8 -XX:-PrintTenuringDistribution \
# -XX:MaxPermSize=256 \
# -XX:NewRatio=5 -XX:GCTimeRatio=19 -XX:SurvivorRatio=32 \
# -Dfile.encoding=UTF-8 \
# -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/usr/local/tomcat/log/gc.txt \
# -verbose:gc "
#These are the java command args needed to allow remote jmx
JMXREMOTE=" -Dcom.sun.management.jmxremote.port=8022 "
#we only what jmxremote when we start, not on stop since the
#port will be in use. This also could be done with jpda
START_OPTS="$JMXREMOTE"
# we want to allow access to files created by tomcat by the mannit group
umask 002
# this makes a link from the current gc log to a place were we can get it over http
# those '&& true' are just to force success so we don't exit
rm -f /usr/local/apache/htdocs/private/tmp/gc.txt && true
ln -f -s $GCFILE /usr/local/apache/htdocs/private/tmp/gc.txt && true
#We want a record of the JVM options to compare with the gc log.
echo "CATALINA_OPTS: $CATALINA_OPTS" > $OPT_FILE
echo "START_OPTS: $START_OPTS" >> $OPT_FILE
# We need to export any variables that are to be used outside of script:
export JAVA_HOME CATALINA_OPTS TOMCAT_HOME CATALINA_HOME
export START_OPTS
# displays a note about what parameters will be used:
#echo "Using CATALINA Opts from tomcat/bin/setenv.sh: "
#echo " $CATALINA_OPTS"

View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<taglib
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description></description>
<display-name>List SPARQL JSP taglib</display-name>
<tlib-version>1.0</tlib-version>
<short-name>sparql</short-name>
<uri>http://mannlib.cornell.edu/vitro/ListSparqlTag/0.1/</uri>
<tag>
<description>SPARQL select tag. (Must be nested inside sparql:sparql)</description>
<display-name>SPARQL select tag</display-name>
<name>select</name>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.ListSparqlTag</tag-class>
<body-content>tagdependent</body-content>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>java.util.List</variable-class>
<scope>AT_BEGIN</scope>
</variable>
<attribute>
<description></description>
<name>model</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>com.hp.hpl.jena.rdf.model.Model</type>
</attribute>
<attribute>
<description></description>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
<example>
</example>
</tag>
</taglib>

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<taglib
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<display-name>Property Edit Link taglib</display-name>
<tlib-version>1.0</tlib-version>
<short-name>Vitro Property Edit Link generator</short-name>
<!--
This library has tags that make A elements for editing
ObjectPropertyStatement and DataPropertyStatements.
-->
<tag>
<name>editLinks</name>
<display-name>Edit Links for Propery</display-name>
<description>
Create the A elements for a specified Property.
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.PropertyEditLinks</tag-class>
<body-content>empty</body-content>
<attribute>
<name>item</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>icons</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<taglib
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<uri>http://vitro.mannlib.cornell.edu/vitro/tags/StringProcessorTag</uri>
<!--
This taglib is for processing the output using a UnaryFunctor<String,String>
found in the request scope.
-->
<tag>
<name>process</name>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.StringProcessorTag</tag-class>
<display-name>String Processor</display-name>
<description>
Processes output using "StringProcessor" from request.
</description>
<body-content>scriptless</body-content>
</tag>
</taglib>

565
webapp/config/tlds/c.tld Normal file
View file

@ -0,0 +1,565 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>JSTL 1.1 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
<validator>
<description>
Provides core validation features for JSTL tags.
</description>
<validator-class>
org.apache.taglibs.standard.tlv.JstlCoreTLV
</validator-class>
</validator>
<tag>
<description>
Catches any Throwable that occurs in its body and optionally
exposes it.
</description>
<name>catch</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable for the
exception thrown from a nested action. The type of the
scoped variable is the type of the exception thrown.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Simple conditional tag that establishes a context for
mutually exclusive conditional operations, marked by
&lt;when&gt; and &lt;otherwise&gt;
</description>
<name>choose</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
<body-content>JSP</body-content>
</tag>
<tag>
<description>
Simple conditional tag, which evalutes its body if the
supplied condition is true and optionally exposes a Boolean
scripting variable representing the evaluation of this condition
</description>
<name>if</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.IfTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
The test condition that determines whether or
not the body content should be processed.
</description>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
resulting value of the test condition. The type
of the scoped variable is Boolean.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Retrieves an absolute or relative URL and exposes its contents
to either the page, a String in 'var', or a Reader in 'varReader'.
</description>
<name>import</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ImportTag</tag-class>
<tei-class>org.apache.taglibs.standard.tei.ImportTEI</tei-class>
<body-content>JSP</body-content>
<attribute>
<description>
The URL of the resource to import.
</description>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
resource's content. The type of the scoped
variable is String.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
resource's content. The type of the scoped
variable is Reader.
</description>
<name>varReader</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the context when accessing a relative
URL resource that belongs to a foreign
context.
</description>
<name>context</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Character encoding of the content at the input
resource.
</description>
<name>charEncoding</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
The basic iteration tag, accepting many different
collection types and supporting subsetting and other
functionality
</description>
<name>forEach</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ForEachTag</tag-class>
<tei-class>org.apache.taglibs.standard.tei.ForEachTEI</tei-class>
<body-content>JSP</body-content>
<attribute>
<description>
Collection of items to iterate over.
</description>
<name>items</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
If items specified:
Iteration begins at the item located at the
specified index. First item of the collection has
index 0.
If items not specified:
Iteration begins with index set at the value
specified.
</description>
<name>begin</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
If items specified:
Iteration ends at the item located at the
specified index (inclusive).
If items not specified:
Iteration ends when index reaches the value
specified.
</description>
<name>end</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Iteration will only process every step items of
the collection, starting with the first one.
</description>
<name>step</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
current item of the iteration. This scoped
variable has nested visibility. Its type depends
on the object of the underlying collection.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
status of the iteration. Object exported is of type
javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested
visibility.
</description>
<name>varStatus</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Iterates over tokens, separated by the supplied delimeters
</description>
<name>forTokens</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ForTokensTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
String of tokens to iterate over.
</description>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
The set of delimiters (the characters that
separate the tokens in the string).
</description>
<name>delims</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Iteration begins at the token located at the
specified index. First token has index 0.
</description>
<name>begin</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Iteration ends at the token located at the
specified index (inclusive).
</description>
<name>end</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Iteration will only process every step tokens
of the string, starting with the first one.
</description>
<name>step</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
current item of the iteration. This scoped
variable has nested visibility.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
status of the iteration. Object exported is of
type
javax.servlet.jsp.jstl.core.LoopTag
Status. This scoped variable has nested
visibility.
</description>
<name>varStatus</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Like &lt;%= ... &gt;, but for expressions.
</description>
<name>out</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Expression to be evaluated.
</description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Default value if the resulting value is null.
</description>
<name>default</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Determines whether characters &lt;,&gt;,&amp;,'," in the
resulting string should be converted to their
corresponding character entity codes. Default value is
true.
</description>
<name>escapeXml</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
and runs only if all of the prior conditions evaluated to
'false'
</description>
<name>otherwise</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
<body-content>JSP</body-content>
</tag>
<tag>
<description>
Adds a parameter to a containing 'import' tag's URL.
</description>
<name>param</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ParamTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the query string parameter.
</description>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Value of the parameter.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Redirects to a new URL.
</description>
<name>redirect</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.RedirectTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
The URL of the resource to redirect to.
</description>
<name>url</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the context when redirecting to a relative URL
resource that belongs to a foreign context.
</description>
<name>context</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Removes a scoped variable (from a particular scope, if specified).
</description>
<name>remove</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.RemoveTag</tag-class>
<body-content>empty</body-content>
<attribute>
<description>
Name of the scoped variable to be removed.
</description>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Sets the result of an expression evaluation in a 'scope'
</description>
<name>set</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.SetTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable to hold the value
specified in the action. The type of the scoped variable is
whatever type the value expression evaluates to.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Expression to be evaluated.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Target object whose property will be set. Must evaluate to
a JavaBeans object with setter property property, or to a
java.util.Map object.
</description>
<name>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the property to be set in the target object.
</description>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Creates a URL with optional query parameters.
</description>
<name>url</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.UrlTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable for the
processed url. The type of the scoped variable is
String.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
URL to be processed.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the context when specifying a relative URL
resource that belongs to a foreign context.
</description>
<name>context</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Subtag of &lt;choose&gt; that includes its body if its
condition evalutes to 'true'
</description>
<name>when</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.WhenTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
The test condition that determines whether or not the
body content should be processed.
</description>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,185 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>Sun Microsystems Press Tag library modified for Mann Library, Cornell</shortname>
<!--
<tag>
<name>show_table</name>
<tagclass>tags.jdbc.ShowTableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>query</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>database</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>border</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>cellPadding</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>transaction</name>
<tagclass>tags.jdbc.TransactionTag</tagclass>
<bodycontent>tagdependent</bodycontent>
<attribute>
<name>file</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>prepareStatement</name>
<tagclass>tags.jdbc.PrepareStatementTag</tagclass>
<bodycontent>tagdependent</bodycontent>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>executePreparedStatement</name>
<tagclass>tags.jdbc.ExecutePreparedStatementTag</tagclass>
<bodycontent>None</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>variables</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
-->
<tag>
<name>query</name>
<tagclass>tags.jdbc.QueryTag</tagclass>
<!--bodycontent>tagdependent</bodycontent-->
<bodycontent>JSP</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>update</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>rows</name>
<tagclass>tags.jdbc.RowsTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>query</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>startRow</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>endRow</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>columnNames</name>
<tagclass>tags.jdbc.ColumnNamesTag</tagclass>
<teiclass>tags.jdbc.ColumnNamesTagInfo</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>query</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>columns</name>
<tagclass>tags.jdbc.ColumnsTag</tagclass>
<teiclass>tags.jdbc.ColumnsTagInfo</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>query</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>select_columns</name>
<tagclass>tags.jdbc.SelectColumnsTag</tagclass>
<teiclass>tags.jdbc.SelectColumnsTagInfo</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>query</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>selectValue</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>release</name>
<tagclass>tags.jdbc.ReleaseTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>query</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

207
webapp/config/tlds/fn.tld Normal file
View file

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>JSTL 1.1 functions library</description>
<display-name>JSTL functions</display-name>
<tlib-version>1.1</tlib-version>
<short-name>fn</short-name>
<uri>http://java.sun.com/jsp/jstl/functions</uri>
<function>
<description>
Tests if an input string contains the specified substring.
</description>
<name>contains</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>boolean contains(java.lang.String, java.lang.String)</function-signature>
<example>
&lt;c:if test="${fn:contains(name, searchString)}">
</example>
</function>
<function>
<description>
Tests if an input string contains the specified substring in a case insensitive way.
</description>
<name>containsIgnoreCase</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>boolean containsIgnoreCase(java.lang.String, java.lang.String)</function-signature>
<example>
&lt;c:if test="${fn:containsIgnoreCase(name, searchString)}">
</example>
</function>
<function>
<description>
Tests if an input string ends with the specified suffix.
</description>
<name>endsWith</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>boolean endsWith(java.lang.String, java.lang.String)</function-signature>
<example>
&lt;c:if test="${fn:endsWith(filename, ".txt")}">
</example>
</function>
<function>
<description>
Escapes characters that could be interpreted as XML markup.
</description>
<name>escapeXml</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String escapeXml(java.lang.String)</function-signature>
<example>
${fn:escapeXml(param:info)}
</example>
</function>
<function>
<description>
Returns the index withing a string of the first occurrence of a specified substring.
</description>
<name>indexOf</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>int indexOf(java.lang.String, java.lang.String)</function-signature>
<example>
${fn:indexOf(name, "-")}
</example>
</function>
<function>
<description>
Joins all elements of an array into a string.
</description>
<name>join</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String join(java.lang.String[], java.lang.String)</function-signature>
<example>
${fn:join(array, ";")}
</example>
</function>
<function>
<description>
Returns the number of items in a collection, or the number of characters in a string.
</description>
<name>length</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>int length(java.lang.Object)</function-signature>
<example>
You have ${fn:length(shoppingCart.products)} in your shopping cart.
</example>
</function>
<function>
<description>
Returns a string resulting from replacing in an input string all occurrences
of a "before" string into an "after" substring.
</description>
<name>replace</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String replace(java.lang.String, java.lang.String, java.lang.String)</function-signature>
<example>
${fn:replace(text, "-", "&#149;")}
</example>
</function>
<function>
<description>
Splits a string into an array of substrings.
</description>
<name>split</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String[] split(java.lang.String, java.lang.String)</function-signature>
<example>
${fn:split(customerNames, ";")}
</example>
</function>
<function>
<description>
Tests if an input string starts with the specified prefix.
</description>
<name>startsWith</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>boolean startsWith(java.lang.String, java.lang.String)</function-signature>
<example>
&lt;c:if test="${fn:startsWith(product.id, "100-")}">
</example>
</function>
<function>
<description>
Returns a subset of a string.
</description>
<name>substring</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String substring(java.lang.String, int, int)</function-signature>
<example>
P.O. Box: ${fn:substring(zip, 6, -1)}
</example>
</function>
<function>
<description>
Returns a subset of a string following a specific substring.
</description>
<name>substringAfter</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String substringAfter(java.lang.String, java.lang.String)</function-signature>
<example>
P.O. Box: ${fn:substringAfter(zip, "-")}
</example>
</function>
<function>
<description>
Returns a subset of a string before a specific substring.
</description>
<name>substringBefore</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String substringBefore(java.lang.String, java.lang.String)</function-signature>
<example>
Zip (without P.O. Box): ${fn:substringBefore(zip, "-")}
</example>
</function>
<function>
<description>
Converts all of the characters of a string to lower case.
</description>
<name>toLowerCase</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String toLowerCase(java.lang.String)</function-signature>
<example>
Product name: ${fn.toLowerCase(product.name)}
</example>
</function>
<function>
<description>
Converts all of the characters of a string to upper case.
</description>
<name>toUpperCase</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String toUpperCase(java.lang.String)</function-signature>
<example>
Product name: ${fn.UpperCase(product.name)}
</example>
</function>
<function>
<description>
Removes white spaces from both ends of a string.
</description>
<name>trim</name>
<function-class>org.apache.taglibs.standard.functions.Functions</function-class>
<function-signature>java.lang.String trim(java.lang.String)</function-signature>
<example>
Name: ${fn.trim(name)}
</example>
</function>
</taglib>

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>Vitro Editing Form Library</shortname>
<info>
This tag library contains tags for constructing vitro
editing forms. The tag names shadow html elements
but provide additional attributes for specifying
how dynamic content should be retrieved from persistent
storage.
</info>
<tag>
<name>option</name>
<tagclass>edu.cornell.mannlib.vedit.tags.OptionTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>value</name>
<tagclass>edu.cornell.mannlib.vedit.tags.ValueTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>dynamicFields</name>
<tagclass>edu.cornell.mannlib.vedit.tags.DynamicFieldsTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>type</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>usePage</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>error</name>
<tagclass>edu.cornell.mannlib.vedit.tags.ErrorTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,280 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- $Id: sparql.tld,v 1.2 2006/08/06 19:50:30 Dave Exp $ -->
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
<description></description>
<display-name>SPARQL JSP taglib</display-name>
<tlib-version>1.0</tlib-version>
<short-name>sparql</short-name>
<uri>http://djpowell.net/tmp/sparql-tag/0.1/</uri>
<!-- <sparql:sparql> -->
<tag>
<description>
<![CDATA[
<p><b>SPARQL container tag.</b></p>
<p>This tag must be placed around sparql:select tags to
ensure that the live ResultSet's gets closed,
when this tag goes out of scope.
]]>
</description>
<display-name>SPARQL container tag</display-name>
<name>sparql</name>
<tag-class>net.djpowell.sparqltag.SparqlTag</tag-class>
<body-content>scriptless</body-content>
</tag>
<!-- <sparql:lock> -->
<tag>
<description>
Obtains a lock or transaction on a model until the tag is closed.
</description>
<display-name>SPARQL lock tag</display-name>
<name>lock</name>
<tag-class>net.djpowell.sparqltag.LockTag</tag-class>
<tei-class>net.djpowell.sparqltag.LockTagInfo</tei-class>
<body-content>scriptless</body-content>
<attribute>
<description>The model to lock, or execute in a transaction</description>
<name>model</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>com.hp.hpl.jena.rdf.model.Model</type>
</attribute>
<attribute>
<description>
Indicates whether transactions should be used instead of
critical sections.
</description>
<name>transactions</name>
<!-- default is false -->
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
If critical sections are being used, indicates whether a
read lock is sufficient, or whether a write-lock is required.
The default is true, meaning a read-lock.
</description>
<name>readonly</name>
<!-- default is true-->
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
<!-- <sparql:load> -->
<tag>
<description>SPARQL load tag. Convenience tag for creating a new model from an RDF/XML URI.</description>
<display-name>SPARQL load tag</display-name>
<name>load</name>
<tag-class>net.djpowell.sparqltag.LoadTag</tag-class>
<tei-class>net.djpowell.sparqltag.LoadTagInfo</tei-class>
<body-content>empty</body-content>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>com.hp.hpl.jena.rdf.model.Model</variable-class>
<scope>AT_END</scope>
</variable>
<attribute>
<description></description>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description></description>
<name>uri</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
</tag>
<!-- <sparql:ask> -->
<tag>
<description>SPARQL ask tag. (Must be nested inside sparql:sparql)</description>
<display-name>SPARQL ask tag</display-name>
<name>ask</name>
<tag-class>net.djpowell.sparqltag.AskTag</tag-class>
<body-content>tagdependent</body-content>
<variable>
<description></description>
<name-from-attribute>var</name-from-attribute>
<variable-class>java.lang.Boolean</variable-class>
<scope>AT_END</scope>
</variable>
<attribute>
<description></description>
<name>model</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>com.hp.hpl.jena.rdf.model.Model</type>
</attribute>
<attribute>
<description></description>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
<example>
</example>
</tag>
<!-- <sparql:construct> -->
<tag>
<description>SPARQL construct tag. (Must be nested inside sparql:sparql)</description>
<display-name>SPARQL construct tag</display-name>
<name>construct</name>
<tag-class>net.djpowell.sparqltag.ConstructTag</tag-class>
<body-content>tagdependent</body-content>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>com.hp.hpl.jena.rdf.model.Model</variable-class>
<scope>AT_END</scope>
</variable>
<attribute>
<description></description>
<name>model</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<type>com.hp.hpl.jena.rdf.model.Model</type>
</attribute>
<attribute>
<description></description>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
<example>
</example>
</tag>
<!-- <sparql:describe> -->
<tag>
<description>SPARQL describe tag. (Must be nested inside sparql:sparql)</description>
<display-name>SPARQL describe tag</display-name>
<name>describe</name>
<tag-class>net.djpowell.sparqltag.DescribeTag</tag-class>
<body-content>tagdependent</body-content>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>com.hp.hpl.jena.rdf.model.Model</variable-class>
<scope>AT_END</scope>
</variable>
<attribute>
<description></description>
<name>model</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>com.hp.hpl.jena.rdf.model.Model</type>
</attribute>
<attribute>
<description></description>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
<example>
</example>
</tag>
<!-- <sparql:select> -->
<tag>
<description>SPARQL select tag. (Must be nested inside sparql:sparql)</description>
<display-name>SPARQL select tag</display-name>
<name>select</name>
<tag-class>net.djpowell.sparqltag.SelectTag</tag-class>
<body-content>tagdependent</body-content>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>net.djpowell.sparqltag.SelectTag.RSWrapper</variable-class>
<!-- .rows = is an Iterator of QuerySolution -->
<scope>AT_END</scope>
</variable>
<attribute>
<description></description>
<name>model</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>com.hp.hpl.jena.rdf.model.Model</type>
</attribute>
<attribute>
<description></description>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
<example>
</example>
</tag>
</taglib>
<!--
Revision history
$Log: sparql.tld,v $
Revision 1.2 2006/08/06 19:50:30 Dave
Tidied up build
-->

View file

@ -0,0 +1,256 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.1</tlibversion>
<jspversion>1.1</jspversion>
<shortname>mailer</shortname>
<uri>http://jakarta.apache.org/taglibs/mailer-1.1</uri>
<info>This custom tag library is used to send e-mail.E-mail can be sent in three ways. The first way requires the name of the
SMTP host to use. The second requires the name of a JNDI Resource for a
JavaMail Session. The third requires the name of a JNDI Resource for a
JavaMail MimePartDataSource. Refer to your servlet container documentation
to determine which of these three methods you should use. During the
creation of an e-mail message, the addresses are checked for the correct
format. After the e-mail message has been created the send tag spawns a
thread to send the message in the background so that the user does not have
to wait for the SMTP host if it is busy.
&lt;!-- Create a message by entering the name of the SMTP host. --&gt;
&lt;!-- The default for this attribute is localhost; for a host other --&gt;
&lt;!-- than localhost supply it's name with the server attribute --&gt;
&lt;!-- as in the example below. The body of the e-mail is supplied in the --&gt;
&lt;!-- message tag. The send tag is necessary to send the message. --&gt;
&lt;mt:mail server="home.net" to="foo@home.net"
from="bar@home.net" subject="mail taglib"&gt;
&lt;mt:message&gt;[body of message]&lt;/mt:message&gt;
&lt;mt:send/&gt;
&lt;/mt:mail&gt;
&lt;!-- Using a JNDI named JavaMail Session object defined by the --&gt;
&lt;!-- session attribute. --&gt;
&lt;mt:mail session="java:/comp/env/session" to="foo@home.net"
from="bar@home.net" subject="mail taglib"&gt;
&lt;mt:message&gt;[body of message]&lt;/mt:message&gt;
&lt;mt:send/&gt;
&lt;/mt:mail&gt;
&lt;!-- Or using a JNDI named JavaMail MimePartDataSource object --&gt;
&lt;!-- defined by mimeMessage attribute. --&gt;
&lt;mt:mail mimeMessage="java:/comp/env/message" to="foo@home.net"
from="bar@home.net" subject="mail taglib"&gt;
&lt;mt:message&gt;[body of message]&lt;/mt:message&gt;
&lt;mt:send/&gt;
&lt;/mt:mail&gt;
How e-mail is delivered depends on the JavaMail SMTP host settings. The
JavaMail SMTP host can be configured by your Servlet Container so that
bounced or undeliverable e-mails are returned to the sender by setting the
folowing properties.NameTypeDescriptionmail.smtp.dsn.notifyStringProperty determines if the user will be notified of undeliverable mail.
Either NEVER, or some combination of SUCCESS, FAILURE, and DELAY
(separated by commas).
mail.smtp.dsn.retStringDetermines what part of the undeliverable message will be returned in
the message to the sender. Either FULL or HDRS.
mail.smtp.sendpartialboolean
If set to true, and a message has some valid and some invalid addresses,
send the message anyway, reporting the partial failure with a
SendFailedException. If set to false (the default), the message is not
sent to any of the recipients if there is an invalid recipient address.
</info>
<tag>
<name>mail</name>
<tagclass>org.apache.taglibs.mailer.MailTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>server</name>
<required>no</required>
<rtexprvalue>yes</rtexprvalue>
</attribute>
<attribute>
<name>session</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>mimeMessage</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>authenticate</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>user</name>
<required>no</required>
<rtexprvalue>yes</rtexprvalue>
</attribute>
<attribute>
<name>password</name>
<required>no</required>
<rtexprvalue>yes</rtexprvalue>
</attribute>
<attribute>
<name>to</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>replyTo</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>from</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>cc</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>bcc</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>subject</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>server</name>
<tagclass>org.apache.taglibs.mailer.ServerTag</tagclass>
<bodycontent>JSP</bodycontent>
</tag>
<tag>
<name>message</name>
<tagclass>org.apache.taglibs.mailer.MessageTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>type</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>header</name>
<tagclass>org.apache.taglibs.mailer.HeaderTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>yes</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>setrecipient</name>
<tagclass>org.apache.taglibs.mailer.SetRecipientTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>type</name>
<required>yes</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>address</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>addrecipient</name>
<tagclass>org.apache.taglibs.mailer.AddRecipientTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>type</name>
<required>yes</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>address</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>replyto</name>
<tagclass>org.apache.taglibs.mailer.ReplyToTag</tagclass>
<bodycontent>JSP</bodycontent>
</tag>
<tag>
<name>from</name>
<tagclass>org.apache.taglibs.mailer.FromTag</tagclass>
<bodycontent>JSP</bodycontent>
</tag>
<tag>
<name>attach</name>
<tagclass>org.apache.taglibs.mailer.AttachTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>file</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>url</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>subject</name>
<tagclass>org.apache.taglibs.mailer.SubjectTag</tagclass>
<bodycontent>JSP</bodycontent>
</tag>
<tag>
<name>send</name>
<tagclass>org.apache.taglibs.mailer.SendTag</tagclass>
<bodycontent>JSP</bodycontent>
</tag>
<tag>
<name>error</name>
<tagclass>org.apache.taglibs.mailer.ErrorTag</tagclass>
<teiclass>org.apache.taglibs.mailer.ErrorTEI</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>id</name>
<required>yes</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0.2</tlibversion>
<jspversion>1.1</jspversion>
<shortname>random</shortname>
<uri>http://jakarta.apache.org/taglibs/random-1.0</uri>
<info>
The Random tag library creates random strings and random numbers. You may
specify a set of allowable characters as well as the length for randomly
generated strings. You may specify a range of allowable integers or a
random floating point number between zero and one for randomly generated
numbers. </info>
<tag>
<name>string</name>
<tagclass>org.apache.taglibs.random.RandomStrgTag</tagclass>
<teiclass>org.apache.taglibs.random.RandomStrgTEI</teiclass>
<bodycontent>Empty</bodycontent>
<attribute>
<name>id</name>
<required>yes</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>length</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>map</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>charset</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>algorithm</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>provider</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
<tag>
<name>number</name>
<tagclass>org.apache.taglibs.random.RandomNumTag</tagclass>
<teiclass>org.apache.taglibs.random.RandomNumTEI</teiclass>
<bodycontent>Empty</bodycontent>
<attribute>
<name>id</name>
<required>yes</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>range</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>algorithm</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
<attribute>
<name>provider</name>
<required>no</required>
<rtexprvalue>no</rtexprvalue>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,745 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>string</shortname>
<uri>http://jakarta.apache.org/taglibs/string-1.1</uri>
<info>
The String taglibrary provides a host of tags for manipulating
java.lang.Strings. The style is that the String to act upon is the
body of the tag, and attributes are used as parameters for the
manipulation.
</info>
<tag>
<name>length</name>
<tagclass>org.apache.taglibs.string.LengthTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>capitalize</name>
<tagclass>org.apache.taglibs.string.CapitalizeTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>uncapitalize</name>
<tagclass>org.apache.taglibs.string.UncapitalizeTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>upperCase</name>
<tagclass>org.apache.taglibs.string.UpperCaseTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>lowerCase</name>
<tagclass>org.apache.taglibs.string.LowerCaseTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>trim</name>
<tagclass>org.apache.taglibs.string.TrimTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>chop</name>
<tagclass>org.apache.taglibs.string.ChopTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>chopNewline</name>
<tagclass>org.apache.taglibs.string.ChopNewlineTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>escape</name>
<tagclass>org.apache.taglibs.string.EscapeTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>reverse</name>
<tagclass>org.apache.taglibs.string.ReverseTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>swapCase</name>
<tagclass>org.apache.taglibs.string.SwapCaseTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>soundex</name>
<tagclass>org.apache.taglibs.string.SoundexTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>metaphone</name>
<tagclass>org.apache.taglibs.string.MetaphoneTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>quoteRegexp</name>
<tagclass>org.apache.taglibs.string.QuoteRegexpTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>capitalizeAllWords</name>
<tagclass>org.apache.taglibs.string.CapitalizeAllWordsTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>removeXml</name>
<tagclass>org.apache.taglibs.string.RemoveXmlTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>encodeUrl</name>
<tagclass>org.apache.taglibs.string.EncodeUrlTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>decodeUrl</name>
<tagclass>org.apache.taglibs.string.DecodeUrlTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>count</name>
<tagclass>org.apache.taglibs.string.CountTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>set</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>delete</name>
<tagclass>org.apache.taglibs.string.DeleteTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>set</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>squeeze</name>
<tagclass>org.apache.taglibs.string.SqueezeTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>set</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>center</name>
<tagclass>org.apache.taglibs.string.CenterTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>rightPad</name>
<tagclass>org.apache.taglibs.string.RightPadTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>leftPad</name>
<tagclass>org.apache.taglibs.string.LeftPadTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>chomp</name>
<tagclass>org.apache.taglibs.string.ChompTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>getChomp</name>
<tagclass>org.apache.taglibs.string.GetChompTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>prechomp</name>
<tagclass>org.apache.taglibs.string.PrechompTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>getPrechomp</name>
<tagclass>org.apache.taglibs.string.GetPrechompTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>strip</name>
<tagclass>org.apache.taglibs.string.StripTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>stripEnd</name>
<tagclass>org.apache.taglibs.string.StripEndTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>stripStart</name>
<tagclass>org.apache.taglibs.string.StripStartTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>reverseDelimitedString</name>
<tagclass>org.apache.taglibs.string.ReverseDelimitedStringTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>overlay</name>
<tagclass>org.apache.taglibs.string.OverlayTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>with</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>start</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>end</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>substring</name>
<tagclass>org.apache.taglibs.string.SubstringTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>start</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>end</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>repeat</name>
<tagclass>org.apache.taglibs.string.RepeatTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>count</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>wordWrap</name>
<tagclass>org.apache.taglibs.string.WordWrapTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>split</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>delimiterInside</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<name>nestedString</name>
<tagclass>org.apache.taglibs.string.NestedStringTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>open</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>close</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>countMatches</name>
<tagclass>org.apache.taglibs.string.CountMatchesTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>substring</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>default</name>
<tagclass>org.apache.taglibs.string.DefaultTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>default</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>replace</name>
<tagclass>org.apache.taglibs.string.ReplaceTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>replace</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>with</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>count</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>newlineToken</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>carriageToken</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>randomString</name>
<tagclass>org.apache.taglibs.string.RandomStringTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>count</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>start</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>end</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>left</name>
<tagclass>org.apache.taglibs.string.LeftTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>count</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>right</name>
<tagclass>org.apache.taglibs.string.RightTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>count</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>mid</name>
<tagclass>org.apache.taglibs.string.MidTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>start</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>count</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>truncateNicely</name>
<tagclass>org.apache.taglibs.string.TruncateNicelyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>var</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>lower</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>upper</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>appendToEnd</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>join</name>
<tagclass>org.apache.taglibs.string.JoinTag</tagclass>
<bodycontent>EMPTY</bodycontent>
<attribute>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>separator</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>split</name>
<tagclass>org.apache.taglibs.string.SplitTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>separator</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
<description></description>
<display-name>SPARQL JSP taglib</display-name>
<tlib-version>1.0</tlib-version>
<short-name>Vitro DAO access Form Library</short-name>
<!--
This library has tags for extracting information from
the vitro dao and formating it into commonly used html
structures.
It is unrelated to the vedit form.tld
-->
<tag>
<name>optionsForProperty</name>
<display-name>Options For Property</display-name>
<description>
Create the option elements for a specified subject and predicate.
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.OptionsForPropertyTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>subjectUri</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>predicateUri</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>selectedUri</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>optionsForVClass</name>
<display-name>Options For VClass</display-name>
<description>
Create the option elements for a specified vitro class.
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.OptionsForClassTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>classUri</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>selectedUri</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>option</name>
<display-name>Options for Form Field</display-name>
<description>
Create the option elements for a specified field using information in the
editConfiguration to build the list and the editSubmission to mark one
of the options as selected.
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.Options</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>jsonset</name>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.JsonSet</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>value</name>
<display-name>value for a Form Field</display-name>
<description>
If there is a value in a edit submission object that matches the name,
Then output that value. otherwise, output nothing
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.Value</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>errorMessage</name>
<display-name>errorMessage value for a Form Field</display-name>
<description>
If there is a value in a edit submission.validation object that matches the name,
Then output that value. otherwise, output nothing
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.ErrorMessage</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>input</name>
<display-name>Input Element Formatting</display-name>
<description>
Format a form input element of a specified element type
</description>
<tag-class>edu.cornell.mannlib.vitro.webapp.web.jsptags.InputElementFormattingTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>type</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>label</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>cssClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>error</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>rows</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>cols</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>multiple</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>listMarkup</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>cancel</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

View file

@ -0,0 +1,47 @@
# from tomcat documentation http://tomcat.apache.org/tomcat-5.5-doc/logging.html
# put commons-logging-1.1.jar, log4j-1.2.14.jar in tomcat/common/lib
# and this properties file in tomcat/common/classes
# This log4j configuration sets up a file called tomcat.log in your
# Tomcat logs folder with a maximum file size of 10MB and up to 10
# backups. DEBUG level is specified which will result in the most
# verbose output from Tomcat.
#
# You can (and should) be more picky about which packages to include in
# the logging. Tomcat 5.5 uses defines loggers by Engine and Host
# names. For example, for a default Catalina localhost log, add this to
# the end of the log4j.properties above. Note that there are known
# issues with using this naming convention (with square brackets) in
# log4j XML based configuration files, so we recommend you use a
# properties file as described until a future version of log4j allows
# this convention.
#
#* log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
#* log4j.logger.org.apache.catalina.core=DEBUG, R
#* log4j.logger.org.apache.catalina.session=DEBUG, R
#
# Be warned a level of DEBUG will produce megabytes of logging and slow
# startup of Tomcat. This level should be used sparingly when debugging
# of internal Tomcat operations is required.
#
# Your web applications should certainly use their own log4j
# configuration. This is valid with the above configuration. You would
# place a similar log4j.properties file in your web application's
# WEB-INF/classes folder, and log4j1.2.8.jar into WEB-INF/lib. Then
# specify your package level logging. This is a basic setup of log4j
# which does *not* require Commons-Logging, and you should consult the
# log4j documentation for more options.
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.server.log
log4j.appender.R.MaxFileSize=5MB
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.org.apache.catalina=INFO, R

1180
webapp/config/web.xml Normal file

File diff suppressed because it is too large Load diff

15
webapp/lib/README.txt Normal file
View file

@ -0,0 +1,15 @@
notes about jar files in lib dir:
commons-pool-1.2.jar - for connection pools and dbcp
commons-collections-3.1.jar - for commons-pool-1.2.jar
These previous two jars were not in the lib directory because
we had been putting them in tomcat/common/lib for the
server.xml database connection.
cos.jar
com.oreilly.servlet.* classes. Many different utilities for
servlets from http://servlets.com/cos/
There is a set of file upload tools, an email utility, a cache,
a base64 encode/decode, a parameter parser.
updated by bdc who need ServletUtils.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
webapp/lib/antlr-2.7.5.jar Normal file

Binary file not shown.

BIN
webapp/lib/arq-extra.jar Normal file

Binary file not shown.

BIN
webapp/lib/arq.jar Normal file

Binary file not shown.

Binary file not shown.

BIN
webapp/lib/axis-ant.jar Normal file

Binary file not shown.

BIN
webapp/lib/axis.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more