From 5c9f2567c36a0ce2555f568ecf8477433bf181dc Mon Sep 17 00:00:00 2001
From: j2blake
Date: Wed, 7 Sep 2011 15:55:11 +0000
Subject: [PATCH 01/21] Create branch for re-structuring the build and
product-build scripts
From b0a58797b4eba02304268cd6929389f3a127a796 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Wed, 7 Sep 2011 21:34:24 +0000
Subject: [PATCH 02/21] NIHVIVO-2811 remove obsolete config files.
---
config/example.globalbuild.properties | 49 ---------------------------
config/test | 4 ---
2 files changed, 53 deletions(-)
delete mode 100644 config/example.globalbuild.properties
delete mode 100644 config/test
diff --git a/config/example.globalbuild.properties b/config/example.globalbuild.properties
deleted file mode 100644
index d3ca3158c..000000000
--- a/config/example.globalbuild.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-# 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
diff --git a/config/test b/config/test
deleted file mode 100644
index a6b65f3ad..000000000
--- a/config/test
+++ /dev/null
@@ -1,4 +0,0 @@
-
-osk
-sk
-dklsjf
From 0d064c222f3c5baf0bae53f113dfda9966d5d5b8 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Thu, 8 Sep 2011 16:49:42 +0000
Subject: [PATCH 03/21] NIHVIVO-2811 remove obsolete config files.
From e94e3b362bc64a4eb90e9369a9673a6edd49cc79 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Thu, 8 Sep 2011 17:02:55 +0000
Subject: [PATCH 04/21] NIHVIVO-2811 Make the webapp directory more closely
resemble the product base directory - move tlds, filegraph, ontologies,
dwr.xml and web.xml into web/WEB-INF. Adjust the build script accordingly.
---
webapp/config/tlds/ListSparqlTag.tld | 51 --
webapp/config/tlds/StringProcessorTag.tld | 28 -
webapp/config/tlds/VitroUtils.tld | 40 --
webapp/config/tlds/c.tld | 563 ----------------
webapp/config/tlds/database.tld | 185 ------
webapp/config/tlds/fn.tld | 207 ------
webapp/config/tlds/form.tld | 66 --
webapp/config/tlds/sparqltag.tld | 279 --------
webapp/config/tlds/taglibs-mailer.tld | 254 --------
webapp/config/tlds/taglibs-random.tld | 88 ---
webapp/config/tlds/taglibs-string.tld | 743 ----------------------
webapp/config/tlds/vitroForm.tld | 222 -------
12 files changed, 2726 deletions(-)
delete mode 100644 webapp/config/tlds/ListSparqlTag.tld
delete mode 100644 webapp/config/tlds/StringProcessorTag.tld
delete mode 100644 webapp/config/tlds/VitroUtils.tld
delete mode 100644 webapp/config/tlds/c.tld
delete mode 100644 webapp/config/tlds/database.tld
delete mode 100644 webapp/config/tlds/fn.tld
delete mode 100644 webapp/config/tlds/form.tld
delete mode 100644 webapp/config/tlds/sparqltag.tld
delete mode 100644 webapp/config/tlds/taglibs-mailer.tld
delete mode 100644 webapp/config/tlds/taglibs-random.tld
delete mode 100644 webapp/config/tlds/taglibs-string.tld
delete mode 100644 webapp/config/tlds/vitroForm.tld
diff --git a/webapp/config/tlds/ListSparqlTag.tld b/webapp/config/tlds/ListSparqlTag.tld
deleted file mode 100644
index d9cdcf6e5..000000000
--- a/webapp/config/tlds/ListSparqlTag.tld
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- List SPARQL JSP taglib
- 1.0
- sparql
- http://mannlib.cornell.edu/vitro/ListSparqlTag/0.1/
-
-
- SPARQL select tag. (Must be nested inside sparql:sparql)
- SPARQL select tag
- select
- edu.cornell.mannlib.vitro.webapp.web.jsptags.ListSparqlTag
- tagdependent
-
-
- var
- java.util.List
- AT_BEGIN
-
-
-
-
- model
- true
- true
- com.hp.hpl.jena.rdf.model.Model
-
-
-
-
- var
- true
- true
- java.lang.String
-
-
- true
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webapp/config/tlds/StringProcessorTag.tld b/webapp/config/tlds/StringProcessorTag.tld
deleted file mode 100644
index 6a6bff18b..000000000
--- a/webapp/config/tlds/StringProcessorTag.tld
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- 1.0
- http://vitro.mannlib.cornell.edu/vitro/tags/StringProcessorTag
-
-
-
-
- process
- edu.cornell.mannlib.vitro.webapp.web.jsptags.StringProcessorTag
- String Processor
-
- Processes output using "StringProcessor" from request.
-
-
- scriptless
-
-
-
\ No newline at end of file
diff --git a/webapp/config/tlds/VitroUtils.tld b/webapp/config/tlds/VitroUtils.tld
deleted file mode 100644
index 1cfd4a585..000000000
--- a/webapp/config/tlds/VitroUtils.tld
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
- Vitro Utilities taglib
- 1.0
-
- Library of JSP utility tags for Vitro
-
-
-
- confirmAuthorization
- Confirm that the user is authorized for the actions that this page requires.
-
- Confirm that the user is authorized to perform all of the RequestedActions that
- this page requires. If any of the actions is not authorized, the user will be
- redirected to the appropriate page.
-
- The actions must be found in the "requestedActions" attribute of the request.
- The attribute may be a RequestedAction or an array of RequestedActions.
-
- If the user is not authorized because he is not logged in, he will be directed
- to the login page, with the current request stored as a post-login destination.
-
- If the user is logged in but without sufficient authorization, he will be
- directed to the home page, which will display an "insufficient authorization"
- message.
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.ConfirmAuthorization
- empty
-
-
-
\ No newline at end of file
diff --git a/webapp/config/tlds/c.tld b/webapp/config/tlds/c.tld
deleted file mode 100644
index 22698c97d..000000000
--- a/webapp/config/tlds/c.tld
+++ /dev/null
@@ -1,563 +0,0 @@
-
-
-
-
- JSTL 1.1 core library
- JSTL core
- 1.1
- c
- http://java.sun.com/jsp/jstl/core
-
-
-
- Provides core validation features for JSTL tags.
-
-
- org.apache.taglibs.standard.tlv.JstlCoreTLV
-
-
-
-
-
- Catches any Throwable that occurs in its body and optionally
- exposes it.
-
- catch
- org.apache.taglibs.standard.tag.common.core.CatchTag
- JSP
-
-
-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.
-
- var
- false
- false
-
-
-
-
-
- Simple conditional tag that establishes a context for
- mutually exclusive conditional operations, marked by
- <when> and <otherwise>
-
- choose
- org.apache.taglibs.standard.tag.common.core.ChooseTag
- JSP
-
-
-
-
- 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
-
- if
- org.apache.taglibs.standard.tag.rt.core.IfTag
- JSP
-
-
-The test condition that determines whether or
-not the body content should be processed.
-
- test
- true
- true
- boolean
-
-
-
-Name of the exported scoped variable for the
-resulting value of the test condition. The type
-of the scoped variable is Boolean.
-
- var
- false
- false
-
-
-
-Scope for var.
-
- scope
- false
- false
-
-
-
-
-
- Retrieves an absolute or relative URL and exposes its contents
- to either the page, a String in 'var', or a Reader in 'varReader'.
-
- import
- org.apache.taglibs.standard.tag.rt.core.ImportTag
- org.apache.taglibs.standard.tei.ImportTEI
- JSP
-
-
-The URL of the resource to import.
-
- url
- true
- true
-
-
-
-Name of the exported scoped variable for the
-resource's content. The type of the scoped
-variable is String.
-
- var
- false
- false
-
-
-
-Scope for var.
-
- scope
- false
- false
-
-
-
-Name of the exported scoped variable for the
-resource's content. The type of the scoped
-variable is Reader.
-
- varReader
- false
- false
-
-
-
-Name of the context when accessing a relative
-URL resource that belongs to a foreign
-context.
-
- context
- false
- true
-
-
-
-Character encoding of the content at the input
-resource.
-
- charEncoding
- false
- true
-
-
-
-
-
- The basic iteration tag, accepting many different
- collection types and supporting subsetting and other
- functionality
-
- forEach
- org.apache.taglibs.standard.tag.rt.core.ForEachTag
- org.apache.taglibs.standard.tei.ForEachTEI
- JSP
-
-
-Collection of items to iterate over.
-
- items
- false
- true
- java.lang.Object
-
-
-
-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.
-
- begin
- false
- true
- int
-
-
-
-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.
-
- end
- false
- true
- int
-
-
-
-Iteration will only process every step items of
-the collection, starting with the first one.
-
- step
- false
- true
- int
-
-
-
-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.
-
- var
- false
- false
-
-
-
-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.
-
- varStatus
- false
- false
-
-
-
-
-
- Iterates over tokens, separated by the supplied delimeters
-
- forTokens
- org.apache.taglibs.standard.tag.rt.core.ForTokensTag
- JSP
-
-
-String of tokens to iterate over.
-
- items
- true
- true
- java.lang.String
-
-
-
-The set of delimiters (the characters that
-separate the tokens in the string).
-
- delims
- true
- true
- java.lang.String
-
-
-
-Iteration begins at the token located at the
-specified index. First token has index 0.
-
- begin
- false
- true
- int
-
-
-
-Iteration ends at the token located at the
-specified index (inclusive).
-
- end
- false
- true
- int
-
-
-
-Iteration will only process every step tokens
-of the string, starting with the first one.
-
- step
- false
- true
- int
-
-
-
-Name of the exported scoped variable for the
-current item of the iteration. This scoped
-variable has nested visibility.
-
- var
- false
- false
-
-
-
-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.
-
- varStatus
- false
- false
-
-
-
-
-
- Like <%= ... >, but for expressions.
-
- out
- org.apache.taglibs.standard.tag.rt.core.OutTag
- JSP
-
-
-Expression to be evaluated.
-
- value
- true
- true
-
-
-
-Default value if the resulting value is null.
-
- default
- false
- true
-
-
-
-Determines whether characters <,>,&,'," in the
-resulting string should be converted to their
-corresponding character entity codes. Default value is
-true.
-
- escapeXml
- false
- true
-
-
-
-
-
-
- Subtag of <choose> that follows <when> tags
- and runs only if all of the prior conditions evaluated to
- 'false'
-
- otherwise
- org.apache.taglibs.standard.tag.common.core.OtherwiseTag
- JSP
-
-
-
-
- Adds a parameter to a containing 'import' tag's URL.
-
- param
- org.apache.taglibs.standard.tag.rt.core.ParamTag
- JSP
-
-
-Name of the query string parameter.
-
- name
- true
- true
-
-
-
-Value of the parameter.
-
- value
- false
- true
-
-
-
-
-
- Redirects to a new URL.
-
- redirect
- org.apache.taglibs.standard.tag.rt.core.RedirectTag
- JSP
-
-
-The URL of the resource to redirect to.
-
- url
- false
- true
-
-
-
-Name of the context when redirecting to a relative URL
-resource that belongs to a foreign context.
-
- context
- false
- true
-
-
-
-
-
- Removes a scoped variable (from a particular scope, if specified).
-
- remove
- org.apache.taglibs.standard.tag.common.core.RemoveTag
- empty
-
-
-Name of the scoped variable to be removed.
-
- var
- true
- false
-
-
-
-Scope for var.
-
- scope
- false
- false
-
-
-
-
-
- Sets the result of an expression evaluation in a 'scope'
-
- set
- org.apache.taglibs.standard.tag.rt.core.SetTag
- JSP
-
-
-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.
-
- var
- false
- false
-
-
-
-Expression to be evaluated.
-
- value
- false
- true
-
-
-
-Target object whose property will be set. Must evaluate to
-a JavaBeans object with setter property property, or to a
-java.util.Map object.
-
- target
- false
- true
-
-
-
-Name of the property to be set in the target object.
-
- property
- false
- true
-
-
-
-Scope for var.
-
- scope
- false
- false
-
-
-
-
-
- Creates a URL with optional query parameters.
-
- url
- org.apache.taglibs.standard.tag.rt.core.UrlTag
- JSP
-
-
-Name of the exported scoped variable for the
-processed url. The type of the scoped variable is
-String.
-
- var
- false
- false
-
-
-
-Scope for var.
-
- scope
- false
- false
-
-
-
-URL to be processed.
-
- value
- false
- true
-
-
-
-Name of the context when specifying a relative URL
-resource that belongs to a foreign context.
-
- context
- false
- true
-
-
-
-
-
- Subtag of <choose> that includes its body if its
- condition evalutes to 'true'
-
- when
- org.apache.taglibs.standard.tag.rt.core.WhenTag
- JSP
-
-
-The test condition that determines whether or not the
-body content should be processed.
-
- test
- true
- true
- boolean
-
-
-
-
diff --git a/webapp/config/tlds/database.tld b/webapp/config/tlds/database.tld
deleted file mode 100644
index c21eb69d3..000000000
--- a/webapp/config/tlds/database.tld
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
-
- 1.0
- 1.1
- Sun Microsystems Press Tag library modified for Mann Library, Cornell
-
-
- query
- tags.jdbc.QueryTag
-
- JSP
-
- id
- true
- true
-
-
- scope
- false
- true
-
-
- update
- false
- true
-
-
-
- rows
- tags.jdbc.RowsTag
- JSP
-
- query
- true
- true
-
-
- startRow
- false
- true
-
-
- endRow
- false
- true
-
-
-
- columnNames
- tags.jdbc.ColumnNamesTag
- tags.jdbc.ColumnNamesTagInfo
- JSP
-
- query
- true
- true
-
-
- id
- true
- true
-
-
-
- columns
- tags.jdbc.ColumnsTag
- tags.jdbc.ColumnsTagInfo
- JSP
-
- query
- true
- true
-
-
- id
- true
- true
-
-
-
- select_columns
- tags.jdbc.SelectColumnsTag
- tags.jdbc.SelectColumnsTagInfo
- JSP
-
- query
- true
- true
-
-
- id
- true
- true
-
-
- selectValue
- true
- true
-
-
-
- release
- tags.jdbc.ReleaseTag
- JSP
-
- query
- true
- true
-
-
-
diff --git a/webapp/config/tlds/fn.tld b/webapp/config/tlds/fn.tld
deleted file mode 100644
index 12d4ca8e8..000000000
--- a/webapp/config/tlds/fn.tld
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
-
-
- JSTL 1.1 functions library
- JSTL functions
- 1.1
- fn
- http://java.sun.com/jsp/jstl/functions
-
-
-
- Tests if an input string contains the specified substring.
-
- contains
- org.apache.taglibs.standard.functions.Functions
- boolean contains(java.lang.String, java.lang.String)
-
- <c:if test="${fn:contains(name, searchString)}">
-
-
-
-
-
- Tests if an input string contains the specified substring in a case insensitive way.
-
- containsIgnoreCase
- org.apache.taglibs.standard.functions.Functions
- boolean containsIgnoreCase(java.lang.String, java.lang.String)
-
- <c:if test="${fn:containsIgnoreCase(name, searchString)}">
-
-
-
-
-
- Tests if an input string ends with the specified suffix.
-
- endsWith
- org.apache.taglibs.standard.functions.Functions
- boolean endsWith(java.lang.String, java.lang.String)
-
- <c:if test="${fn:endsWith(filename, ".txt")}">
-
-
-
-
-
- Escapes characters that could be interpreted as XML markup.
-
- escapeXml
- org.apache.taglibs.standard.functions.Functions
- java.lang.String escapeXml(java.lang.String)
-
- ${fn:escapeXml(param:info)}
-
-
-
-
-
- Returns the index withing a string of the first occurrence of a specified substring.
-
- indexOf
- org.apache.taglibs.standard.functions.Functions
- int indexOf(java.lang.String, java.lang.String)
-
- ${fn:indexOf(name, "-")}
-
-
-
-
-
- Joins all elements of an array into a string.
-
- join
- org.apache.taglibs.standard.functions.Functions
- java.lang.String join(java.lang.String[], java.lang.String)
-
- ${fn:join(array, ";")}
-
-
-
-
-
- Returns the number of items in a collection, or the number of characters in a string.
-
- length
- org.apache.taglibs.standard.functions.Functions
- int length(java.lang.Object)
-
- You have ${fn:length(shoppingCart.products)} in your shopping cart.
-
-
-
-
-
- Returns a string resulting from replacing in an input string all occurrences
- of a "before" string into an "after" substring.
-
- replace
- org.apache.taglibs.standard.functions.Functions
- java.lang.String replace(java.lang.String, java.lang.String, java.lang.String)
-
- ${fn:replace(text, "-", "")}
-
-
-
-
-
- Splits a string into an array of substrings.
-
- split
- org.apache.taglibs.standard.functions.Functions
- java.lang.String[] split(java.lang.String, java.lang.String)
-
- ${fn:split(customerNames, ";")}
-
-
-
-
-
- Tests if an input string starts with the specified prefix.
-
- startsWith
- org.apache.taglibs.standard.functions.Functions
- boolean startsWith(java.lang.String, java.lang.String)
-
- <c:if test="${fn:startsWith(product.id, "100-")}">
-
-
-
-
-
- Returns a subset of a string.
-
- substring
- org.apache.taglibs.standard.functions.Functions
- java.lang.String substring(java.lang.String, int, int)
-
- P.O. Box: ${fn:substring(zip, 6, -1)}
-
-
-
-
-
- Returns a subset of a string following a specific substring.
-
- substringAfter
- org.apache.taglibs.standard.functions.Functions
- java.lang.String substringAfter(java.lang.String, java.lang.String)
-
- P.O. Box: ${fn:substringAfter(zip, "-")}
-
-
-
-
-
- Returns a subset of a string before a specific substring.
-
- substringBefore
- org.apache.taglibs.standard.functions.Functions
- java.lang.String substringBefore(java.lang.String, java.lang.String)
-
- Zip (without P.O. Box): ${fn:substringBefore(zip, "-")}
-
-
-
-
-
- Converts all of the characters of a string to lower case.
-
- toLowerCase
- org.apache.taglibs.standard.functions.Functions
- java.lang.String toLowerCase(java.lang.String)
-
- Product name: ${fn.toLowerCase(product.name)}
-
-
-
-
-
- Converts all of the characters of a string to upper case.
-
- toUpperCase
- org.apache.taglibs.standard.functions.Functions
- java.lang.String toUpperCase(java.lang.String)
-
- Product name: ${fn.UpperCase(product.name)}
-
-
-
-
-
- Removes white spaces from both ends of a string.
-
- trim
- org.apache.taglibs.standard.functions.Functions
- java.lang.String trim(java.lang.String)
-
- Name: ${fn.trim(name)}
-
-
-
-
diff --git a/webapp/config/tlds/form.tld b/webapp/config/tlds/form.tld
deleted file mode 100644
index 666c487aa..000000000
--- a/webapp/config/tlds/form.tld
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
- 1.0
- 1.1
- Vitro Editing Form Library
-
- 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.
-
-
-
- option
- edu.cornell.mannlib.vedit.tags.OptionTag
- empty
-
- name
- false
- true
-
-
-
-
- value
- edu.cornell.mannlib.vedit.tags.ValueTag
- empty
-
- name
- false
- true
-
-
-
-
- dynamicFields
- edu.cornell.mannlib.vedit.tags.DynamicFieldsTag
- empty
-
- type
- true
- true
-
-
- usePage
- true
- true
-
-
-
-
- error
- edu.cornell.mannlib.vedit.tags.ErrorTag
- empty
-
- name
- false
- true
-
-
-
-
diff --git a/webapp/config/tlds/sparqltag.tld b/webapp/config/tlds/sparqltag.tld
deleted file mode 100644
index 5683802fb..000000000
--- a/webapp/config/tlds/sparqltag.tld
+++ /dev/null
@@ -1,279 +0,0 @@
-
-
-
-
-
-
- SPARQL JSP taglib
- 1.0
- sparql
- http://djpowell.net/tmp/sparql-tag/0.1/
-
-
-
-
-
- SPARQL container tag.
- 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.
- ]]>
-
- SPARQL container tag
- sparql
- net.djpowell.sparqltag.SparqlTag
- scriptless
-
-
-
-
-
-
- Obtains a lock or transaction on a model until the tag is closed.
-
- SPARQL lock tag
- lock
- net.djpowell.sparqltag.LockTag
- net.djpowell.sparqltag.LockTagInfo
- scriptless
-
-
- The model to lock, or execute in a transaction
- model
- true
- true
- com.hp.hpl.jena.rdf.model.Model
-
-
-
-
- Indicates whether transactions should be used instead of
- critical sections.
-
- transactions
-
- false
- true
- java.lang.String
-
-
-
-
- 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.
-
- readonly
-
- false
- true
- java.lang.String
-
-
-
-
-
-
-
- SPARQL load tag. Convenience tag for creating a new model from an RDF/XML URI.
- SPARQL load tag
- load
- net.djpowell.sparqltag.LoadTag
- net.djpowell.sparqltag.LoadTagInfo
- empty
-
-
- var
- com.hp.hpl.jena.rdf.model.Model
- AT_END
-
-
-
-
- var
- true
- true
- java.lang.String
-
-
-
-
- uri
- true
- true
- java.lang.String
-
-
-
-
-
-
-
- SPARQL ask tag. (Must be nested inside sparql:sparql)
- SPARQL ask tag
- ask
- net.djpowell.sparqltag.AskTag
- tagdependent
-
-
-
- var
- java.lang.Boolean
- AT_END
-
-
-
-
- model
- true
- true
- com.hp.hpl.jena.rdf.model.Model
-
-
-
-
- var
- true
- false
- java.lang.String
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
- SPARQL construct tag. (Must be nested inside sparql:sparql)
- SPARQL construct tag
- construct
- net.djpowell.sparqltag.ConstructTag
- tagdependent
-
-
- var
- com.hp.hpl.jena.rdf.model.Model
- AT_END
-
-
-
-
- model
- true
- false
- com.hp.hpl.jena.rdf.model.Model
-
-
-
-
- var
- true
- true
- java.lang.String
-
-
- true
-
-
-
-
-
-
-
-
-
-
- SPARQL describe tag. (Must be nested inside sparql:sparql)
- SPARQL describe tag
- describe
- net.djpowell.sparqltag.DescribeTag
- tagdependent
-
-
- var
- com.hp.hpl.jena.rdf.model.Model
- AT_END
-
-
-
-
- model
- true
- true
- com.hp.hpl.jena.rdf.model.Model
-
-
-
-
- var
- true
- false
- java.lang.String
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
- SPARQL select tag. (Must be nested inside sparql:sparql)
- SPARQL select tag
- select
- net.djpowell.sparqltag.SelectTag
- tagdependent
-
-
- var
- net.djpowell.sparqltag.SelectTag.RSWrapper
-
- AT_END
-
-
-
-
- model
- true
- true
- com.hp.hpl.jena.rdf.model.Model
-
-
-
-
- var
- true
- true
- java.lang.String
-
-
- true
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/config/tlds/taglibs-mailer.tld b/webapp/config/tlds/taglibs-mailer.tld
deleted file mode 100644
index 68d74d4f7..000000000
--- a/webapp/config/tlds/taglibs-mailer.tld
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
-
- 1.1
- 1.1
- mailer
- http://jakarta.apache.org/taglibs/mailer-1.1
- 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.
-
-<!-- Create a message by entering the name of the SMTP host. -->
-<!-- The default for this attribute is localhost; for a host other -->
-<!-- than localhost supply it's name with the server attribute -->
-<!-- as in the example below. The body of the e-mail is supplied in the -->
-<!-- message tag. The send tag is necessary to send the message. -->
-<mt:mail server="home.net" to="foo@home.net"
-from="bar@home.net" subject="mail taglib">
- <mt:message>[body of message]</mt:message>
- <mt:send/>
-</mt:mail>
-
-<!-- Using a JNDI named JavaMail Session object defined by the -->
-<!-- session attribute. -->
-<mt:mail session="java:/comp/env/session" to="foo@home.net"
-from="bar@home.net" subject="mail taglib">
- <mt:message>[body of message]</mt:message>
- <mt:send/>
-</mt:mail>
-
-<!-- Or using a JNDI named JavaMail MimePartDataSource object -->
-<!-- defined by mimeMessage attribute. -->
-<mt:mail mimeMessage="java:/comp/env/message" to="foo@home.net"
-from="bar@home.net" subject="mail taglib">
- <mt:message>[body of message]</mt:message>
- <mt:send/>
-</mt:mail>
-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.
-
-
- mail
- org.apache.taglibs.mailer.MailTag
- JSP
-
- server
- no
- yes
-
-
- session
- no
- no
-
-
- mimeMessage
- no
- no
-
-
- authenticate
- no
- no
-
-
- user
- no
- yes
-
-
- password
- no
- yes
-
-
- to
- no
- no
-
-
- replyTo
- no
- no
-
-
- from
- no
- no
-
-
- cc
- no
- no
-
-
- bcc
- no
- no
-
-
- subject
- no
- no
-
-
-
- server
- org.apache.taglibs.mailer.ServerTag
- JSP
-
-
- message
- org.apache.taglibs.mailer.MessageTag
- JSP
-
- type
- no
- no
-
-
-
- header
- org.apache.taglibs.mailer.HeaderTag
- JSP
-
- name
- yes
- no
-
-
- value
- no
- no
-
-
-
- setrecipient
- org.apache.taglibs.mailer.SetRecipientTag
- JSP
-
- type
- yes
- no
-
-
- address
- no
- no
-
-
-
- addrecipient
- org.apache.taglibs.mailer.AddRecipientTag
- JSP
-
- type
- yes
- no
-
-
- address
- no
- no
-
-
-
- replyto
- org.apache.taglibs.mailer.ReplyToTag
- JSP
-
-
- from
- org.apache.taglibs.mailer.FromTag
- JSP
-
-
- attach
- org.apache.taglibs.mailer.AttachTag
- JSP
-
- file
- no
- no
-
-
- url
- no
- no
-
-
- type
- no
- no
-
-
-
- subject
- org.apache.taglibs.mailer.SubjectTag
- JSP
-
-
- send
- org.apache.taglibs.mailer.SendTag
- JSP
-
-
- error
- org.apache.taglibs.mailer.ErrorTag
- org.apache.taglibs.mailer.ErrorTEI
- JSP
-
- id
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/config/tlds/taglibs-random.tld b/webapp/config/tlds/taglibs-random.tld
deleted file mode 100644
index bf0a52297..000000000
--- a/webapp/config/tlds/taglibs-random.tld
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
- 1.0.2
- 1.1
- random
- http://jakarta.apache.org/taglibs/random-1.0
-
- 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.
-
- string
- org.apache.taglibs.random.RandomStrgTag
- org.apache.taglibs.random.RandomStrgTEI
- Empty
-
- id
- yes
- no
-
-
- length
- no
- no
-
-
- map
- no
- no
-
-
- charset
- no
- no
-
-
- algorithm
- no
- no
-
-
- provider
- no
- no
-
-
-
- number
- org.apache.taglibs.random.RandomNumTag
- org.apache.taglibs.random.RandomNumTEI
- Empty
-
- id
- yes
- no
-
-
- range
- no
- no
-
-
- algorithm
- no
- no
-
-
- provider
- no
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/config/tlds/taglibs-string.tld b/webapp/config/tlds/taglibs-string.tld
deleted file mode 100644
index f22ea31f8..000000000
--- a/webapp/config/tlds/taglibs-string.tld
+++ /dev/null
@@ -1,743 +0,0 @@
-
-
-
-
- 1.1.0
- 1.1
- string
- http://jakarta.apache.org/taglibs/string-1.1
-
- 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.
-
-
- length
- org.apache.taglibs.string.LengthTag
- JSP
-
- var
- false
- true
-
-
-
- capitalize
- org.apache.taglibs.string.CapitalizeTag
- JSP
-
- var
- false
- true
-
-
-
- uncapitalize
- org.apache.taglibs.string.UncapitalizeTag
- JSP
-
- var
- false
- true
-
-
-
- upperCase
- org.apache.taglibs.string.UpperCaseTag
- JSP
-
- var
- false
- true
-
-
-
- lowerCase
- org.apache.taglibs.string.LowerCaseTag
- JSP
-
- var
- false
- true
-
-
-
- trim
- org.apache.taglibs.string.TrimTag
- JSP
-
- var
- false
- true
-
-
-
- chop
- org.apache.taglibs.string.ChopTag
- JSP
-
- var
- false
- true
-
-
-
- chopNewline
- org.apache.taglibs.string.ChopNewlineTag
- JSP
-
- var
- false
- true
-
-
-
- escape
- org.apache.taglibs.string.EscapeTag
- JSP
-
- var
- false
- true
-
-
-
- reverse
- org.apache.taglibs.string.ReverseTag
- JSP
-
- var
- false
- true
-
-
-
- swapCase
- org.apache.taglibs.string.SwapCaseTag
- JSP
-
- var
- false
- true
-
-
-
- soundex
- org.apache.taglibs.string.SoundexTag
- JSP
-
- var
- false
- true
-
-
-
- metaphone
- org.apache.taglibs.string.MetaphoneTag
- JSP
-
- var
- false
- true
-
-
-
- quoteRegexp
- org.apache.taglibs.string.QuoteRegexpTag
- JSP
-
- var
- false
- true
-
-
-
- capitalizeAllWords
- org.apache.taglibs.string.CapitalizeAllWordsTag
- JSP
-
- var
- false
- true
-
-
-
- removeXml
- org.apache.taglibs.string.RemoveXmlTag
- JSP
-
- var
- false
- true
-
-
-
- encodeUrl
- org.apache.taglibs.string.EncodeUrlTag
- JSP
-
- var
- false
- true
-
-
-
- decodeUrl
- org.apache.taglibs.string.DecodeUrlTag
- JSP
-
- var
- false
- true
-
-
-
- count
- org.apache.taglibs.string.CountTag
- JSP
-
- var
- false
- true
-
-
- set
- true
- true
-
-
-
- delete
- org.apache.taglibs.string.DeleteTag
- JSP
-
- var
- false
- true
-
-
- set
- true
- true
-
-
-
- squeeze
- org.apache.taglibs.string.SqueezeTag
- JSP
-
- var
- false
- true
-
-
- set
- true
- true
-
-
-
- center
- org.apache.taglibs.string.CenterTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
- width
- true
- true
-
-
-
- rightPad
- org.apache.taglibs.string.RightPadTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
- width
- true
- true
-
-
-
- leftPad
- org.apache.taglibs.string.LeftPadTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
- width
- true
- true
-
-
-
- chomp
- org.apache.taglibs.string.ChompTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- getChomp
- org.apache.taglibs.string.GetChompTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- prechomp
- org.apache.taglibs.string.PrechompTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- getPrechomp
- org.apache.taglibs.string.GetPrechompTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- strip
- org.apache.taglibs.string.StripTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- stripEnd
- org.apache.taglibs.string.StripEndTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- stripStart
- org.apache.taglibs.string.StripStartTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- reverseDelimitedString
- org.apache.taglibs.string.ReverseDelimitedStringTag
- JSP
-
- var
- false
- true
-
-
- delimiter
- false
- true
-
-
-
- overlay
- org.apache.taglibs.string.OverlayTag
- JSP
-
- var
- false
- true
-
-
- with
- true
- true
-
-
- start
- true
- true
-
-
- end
- true
- true
-
-
-
- substring
- org.apache.taglibs.string.SubstringTag
- JSP
-
- var
- false
- true
-
-
- start
- false
- true
-
-
- end
- false
- true
-
-
-
- repeat
- org.apache.taglibs.string.RepeatTag
- JSP
-
- var
- false
- true
-
-
- count
- true
- true
-
-
-
- wordWrap
- org.apache.taglibs.string.WordWrapTag
- JSP
-
- var
- false
- true
-
-
- width
- false
- true
-
-
- delimiter
- false
- true
-
-
- split
- false
- true
-
-
- delimiterInside
- false
- false
-
-
-
- nestedString
- org.apache.taglibs.string.NestedStringTag
- JSP
-
- var
- false
- true
-
-
- open
- true
- true
-
-
- close
- false
- true
-
-
-
- countMatches
- org.apache.taglibs.string.CountMatchesTag
- JSP
-
- var
- false
- true
-
-
- substring
- true
- true
-
-
-
- default
- org.apache.taglibs.string.DefaultTag
- JSP
-
- var
- false
- true
-
-
- value
- false
- true
-
-
- default
- false
- true
-
-
-
- replace
- org.apache.taglibs.string.ReplaceTag
- JSP
-
- var
- false
- true
-
-
- replace
- true
- true
-
-
- with
- true
- true
-
-
- count
- false
- true
-
-
- newlineToken
- false
- true
-
-
- carriageToken
- false
- true
-
-
-
- randomString
- org.apache.taglibs.string.RandomStringTag
- JSP
-
- var
- false
- true
-
-
- count
- true
- true
-
-
- start
- false
- true
-
-
- end
- false
- true
-
-
- type
- false
- true
-
-
-
- left
- org.apache.taglibs.string.LeftTag
- JSP
-
- var
- false
- true
-
-
- count
- true
- true
-
-
-
- right
- org.apache.taglibs.string.RightTag
- JSP
-
- var
- false
- true
-
-
- count
- true
- true
-
-
-
- mid
- org.apache.taglibs.string.MidTag
- JSP
-
- var
- false
- true
-
-
- start
- false
- true
-
-
- count
- true
- true
-
-
-
- truncateNicely
- org.apache.taglibs.string.TruncateNicelyTag
- JSP
-
- var
- false
- true
-
-
- lower
- false
- true
-
-
- upper
- false
- true
-
-
- appendToEnd
- false
- true
-
-
-
- join
- org.apache.taglibs.string.JoinTag
- EMPTY
-
- items
- true
- true
-
-
- separator
- false
- true
-
-
-
- split
- org.apache.taglibs.string.SplitTag
- JSP
-
- separator
- true
- true
-
-
- var
- true
- true
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/config/tlds/vitroForm.tld b/webapp/config/tlds/vitroForm.tld
deleted file mode 100644
index 7df1377f0..000000000
--- a/webapp/config/tlds/vitroForm.tld
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
-
-
-
-
- SPARQL JSP taglib
- 1.0
-
- Vitro DAO access Form Library
-
-
-
- optionsForProperty
- Options For Property
-
- Create the option elements for a specified subject and predicate.
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.OptionsForPropertyTag
- empty
-
- subjectUri
- true
- true
-
-
- predicateUri
- true
- true
-
-
- selectedUri
- false
- true
-
-
-
-
-
- optionsForVClass
- Options For VClass
-
- Create the option elements for a specified vitro class.
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.OptionsForClassTag
- empty
-
- classUri
- true
- true
-
-
- selectedUri
- false
- true
-
-
-
-
-
- option
- Options for Form Field
-
- 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.
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.Options
- empty
-
- name
- true
- true
-
-
-
-
- jsonset
- edu.cornell.mannlib.vitro.webapp.web.jsptags.JsonSet
- scriptless
-
- var
- true
- true
-
-
-
-
- value
- value for a Form Field
-
- If there is a value in a edit submission object that matches the name,
- Then output that value. otherwise, output nothing
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.Value
- empty
-
- name
- true
- true
-
-
-
-
-
- errorMessage
- errorMessage value for a Form Field
-
- If there is a value in a edit submission.validation object that matches the name,
- Then output that value. otherwise, output nothing
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.ErrorMessage
- empty
-
- name
- true
- true
-
-
-
-
- input
- Input Element Formatting
-
- Format a form input element of a specified element type
-
- edu.cornell.mannlib.vitro.webapp.web.jsptags.InputElementFormattingTag
- empty
-
- type
- false
- true
-
-
- id
- true
- true
-
-
- name
- false
- true
-
-
- label
- false
- true
-
-
- labelClass
- false
- true
-
-
- cssClass
- false
- true
-
-
- value
- false
- true
-
-
- error
- false
- true
-
-
- size
- false
- true
-
-
- rows
- false
- true
-
-
- cols
- false
- true
-
-
- multiple
- false
- true
-
-
- listMarkup
- false
- true
-
-
- cancel
- false
- true
-
-
- cancelLabel
- false
- true
-
-
- cancelUrl
- false
- true
-
-
- disabled
- false
- true
-
-
-
-
\ No newline at end of file
From 104d8e0b4991858400fe492cdedd7ecf8689e0a1 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Thu, 8 Sep 2011 17:05:37 +0000
Subject: [PATCH 05/21] NIHVIVO-2811 Make the webapp directory more closely
resemble the product base directory - move tlds, filegraph, ontologies,
dwr.xml and web.xml into web/WEB-INF. Adjust the build script accordingly.
---
webapp/{config => web/WEB-INF}/dwr.xml | 0
webapp/{config => web/WEB-INF}/web.xml | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename webapp/{config => web/WEB-INF}/dwr.xml (100%)
rename webapp/{config => web/WEB-INF}/web.xml (100%)
diff --git a/webapp/config/dwr.xml b/webapp/web/WEB-INF/dwr.xml
similarity index 100%
rename from webapp/config/dwr.xml
rename to webapp/web/WEB-INF/dwr.xml
diff --git a/webapp/config/web.xml b/webapp/web/WEB-INF/web.xml
similarity index 100%
rename from webapp/config/web.xml
rename to webapp/web/WEB-INF/web.xml
From ffe163c59ce72d0d2d103968e886fd5782c5a056 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Thu, 8 Sep 2011 17:07:18 +0000
Subject: [PATCH 06/21] NIHVIVO-2811 Make the webapp directory more closely
resemble the product base directory - move tlds, filegraph, ontologies,
dwr.xml and web.xml into web/WEB-INF. Adjust the build script accordingly.
---
.../WEB-INF/ontologies/app/application.owl | 134 ++++
.../loadedAtStartup/displayModelListViews.rdf | 23 +
webapp/web/WEB-INF/ontologies/app/menu.n3 | 35 +
.../ontologies/app/menuload/displayDisplay.n3 | 96 +++
.../ontologies/app/menuload/displayTBOX.n3 | 176 +++++
.../search/vitroSearchProhibited.n3 | 27 +
.../WEB-INF/ontologies/system/vitro-0.7.owl | 155 ++++
.../WEB-INF/ontologies/system/vitroPublic.owl | 69 ++
webapp/web/WEB-INF/tlds/ListSparqlTag.tld | 51 ++
.../web/WEB-INF/tlds/StringProcessorTag.tld | 28 +
webapp/web/WEB-INF/tlds/VitroUtils.tld | 40 +
webapp/web/WEB-INF/tlds/c.tld | 563 +++++++++++++
webapp/web/WEB-INF/tlds/database.tld | 185 +++++
webapp/web/WEB-INF/tlds/fn.tld | 207 +++++
webapp/web/WEB-INF/tlds/form.tld | 66 ++
webapp/web/WEB-INF/tlds/sparqltag.tld | 279 +++++++
webapp/web/WEB-INF/tlds/taglibs-mailer.tld | 254 ++++++
webapp/web/WEB-INF/tlds/taglibs-random.tld | 88 +++
webapp/web/WEB-INF/tlds/taglibs-string.tld | 743 ++++++++++++++++++
webapp/web/WEB-INF/tlds/vitroForm.tld | 222 ++++++
20 files changed, 3441 insertions(+)
create mode 100644 webapp/web/WEB-INF/ontologies/app/application.owl
create mode 100644 webapp/web/WEB-INF/ontologies/app/loadedAtStartup/displayModelListViews.rdf
create mode 100644 webapp/web/WEB-INF/ontologies/app/menu.n3
create mode 100644 webapp/web/WEB-INF/ontologies/app/menuload/displayDisplay.n3
create mode 100644 webapp/web/WEB-INF/ontologies/app/menuload/displayTBOX.n3
create mode 100644 webapp/web/WEB-INF/ontologies/search/vitroSearchProhibited.n3
create mode 100644 webapp/web/WEB-INF/ontologies/system/vitro-0.7.owl
create mode 100644 webapp/web/WEB-INF/ontologies/system/vitroPublic.owl
create mode 100644 webapp/web/WEB-INF/tlds/ListSparqlTag.tld
create mode 100644 webapp/web/WEB-INF/tlds/StringProcessorTag.tld
create mode 100644 webapp/web/WEB-INF/tlds/VitroUtils.tld
create mode 100644 webapp/web/WEB-INF/tlds/c.tld
create mode 100644 webapp/web/WEB-INF/tlds/database.tld
create mode 100644 webapp/web/WEB-INF/tlds/fn.tld
create mode 100644 webapp/web/WEB-INF/tlds/form.tld
create mode 100644 webapp/web/WEB-INF/tlds/sparqltag.tld
create mode 100644 webapp/web/WEB-INF/tlds/taglibs-mailer.tld
create mode 100644 webapp/web/WEB-INF/tlds/taglibs-random.tld
create mode 100644 webapp/web/WEB-INF/tlds/taglibs-string.tld
create mode 100644 webapp/web/WEB-INF/tlds/vitroForm.tld
diff --git a/webapp/web/WEB-INF/ontologies/app/application.owl b/webapp/web/WEB-INF/ontologies/app/application.owl
new file mode 100644
index 000000000..18f1d8b90
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/app/application.owl
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+ This represents a menu item or other general navigation item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ individual-menu.ftl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates that a page requires a body template.
+
+
+
+
+
+
+
+
+ Values from HttpRequest.getPathInfo() will be mapped to values from urlMapping.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/web/WEB-INF/ontologies/app/loadedAtStartup/displayModelListViews.rdf b/webapp/web/WEB-INF/ontologies/app/loadedAtStartup/displayModelListViews.rdf
new file mode 100644
index 000000000..4a17524f5
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/app/loadedAtStartup/displayModelListViews.rdf
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+ listViewConfig-hasElement.xml
+
+
+
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/ontologies/app/menu.n3 b/webapp/web/WEB-INF/ontologies/app/menu.n3
new file mode 100644
index 000000000..098fc8a74
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/app/menu.n3
@@ -0,0 +1,35 @@
+# $This file is distributed under the terms of the license in /doc/license.txt$
+
+@prefix owl: .
+@prefix display: .
+@prefix rdf: .
+
+### This file defines the default menu for vitro. ###
+
+#### Default Menu ####
+
+display:DefaultMenu
+ a display:MainMenu ;
+ display:hasElement display:HomeMenuItem .
+
+#### Menu Items for Default Menu ####
+
+display:HomeMenuItem
+ a display:NavigationElement ;
+ display:menuPosition 1;
+ display:linkText "Home";
+ display:toPage display:Home .
+
+########## Pages ############
+
+display:Home
+ a display:HomePage ;
+ a display:Page ;
+ display:title "Home" ;
+ display:urlMapping "/" ;
+ display:hasDataGetter display:homeDataGetter .
+
+########## Data Getter ############
+
+
+ a .
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/ontologies/app/menuload/displayDisplay.n3 b/webapp/web/WEB-INF/ontologies/app/menuload/displayDisplay.n3
new file mode 100644
index 000000000..bda8b4566
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/app/menuload/displayDisplay.n3
@@ -0,0 +1,96 @@
+@prefix rdfs: .
+@prefix xsd: .
+@prefix owl: .
+@prefix rdf: .
+
+
+
+ """# $This file is distributed under the terms of the license in /doc/license.txt$
+
+@prefix owl: .
+@prefix display: .
+@prefix rdf: .
+@prefix core: .
+@prefix vivoweb: .
+
+### This file defines the default menu for vivo. ###
+
+#### Default Menu ####
+
+display:DefaultMenu
+ a display:MainMenu ;
+ display:hasElement display:EventsMenuItem ;
+ display:hasElement display:HomeMenuItem ;
+ display:hasElement display:OrganizationsMenuItem ;
+ display:hasElement display:PeopleMenuItem ;
+ display:hasElement display:ResearchMenuItem .
+
+#### Menu Items for Default Menu ####
+
+display:HomeMenuItem
+ a display:NavigationElement ;
+ display:menuPosition 1;
+ display:linkText \"Home\";
+ display:toPage display:Home .
+
+display:PeopleMenuItem
+ a display:NavigationElement ;
+ display:menuPosition 2;
+ display:linkText \"People\";
+ display:toPage display:People .
+
+display:OrganizationsMenuItem
+ a display:NavigationElement ;
+ display:menuPosition 3;
+ display:linkText \"Organizations\";
+ display:toPage display:Organizations .
+
+display:ResearchMenuItem
+ a display:NavigationElement ;
+ display:menuPosition 4;
+ display:linkText \"Research\";
+ display:toPage display:Research .
+
+display:EventsMenuItem
+ a display:NavigationElement ;
+ display:menuPosition 5;
+ display:linkText \"Events\";
+ display:toPage display:Events .
+
+########## Pages ############
+
+display:Home
+ a display:HomePage ;
+ a display:Page ;
+ display:title \"Home\" ;
+ display:urlMapping \"/\" .
+
+display:Events
+ a display:Page ;
+ a display:ClassGroupPage;
+ display:forClassGroup vivoweb:vitroClassGroupevents ;
+ display:title \"Events\" ;
+ display:urlMapping \"/events\" .
+
+display:Organizations
+ a display:Page ;
+ a display:ClassGroupPage;
+ display:forClassGroup vivoweb:vitroClassGrouporganizations ;
+ display:title \"Organizations\" ;
+ display:urlMapping \"/organizations\" .
+
+display:People
+ a display:Page ;
+ a display:ClassGroupPage;
+ display:forClassGroup vivoweb:vitroClassGrouppeople ;
+ display:requiresBodyTemplate \"menupage--classgroup-people.ftl\" ;
+ display:title \"People\" ;
+ display:urlMapping \"/people\" .
+
+display:Research
+ a display:Page ;
+ a display:ClassGroupPage;
+ display:forClassGroup vivoweb:vitroClassGrouppublications ;
+ display:title \"Research\" ;
+ display:urlMapping \"/research\" .
+""" .
diff --git a/webapp/web/WEB-INF/ontologies/app/menuload/displayTBOX.n3 b/webapp/web/WEB-INF/ontologies/app/menuload/displayTBOX.n3
new file mode 100644
index 000000000..14d647f80
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/app/menuload/displayTBOX.n3
@@ -0,0 +1,176 @@
+# $This file is distributed under the terms of the license in /doc/license.txt$
+
+@prefix rdfs: .
+@prefix xsd: .
+@prefix owl: .
+@prefix rdf: .
+
+
+#########Classes#########
+###Basic
+owl:Class
+ a owl:Class .
+
+owl:Ontology
+ a owl:Class .
+
+owl:AnnotationProperty
+ a owl:Class .
+
+owl:DatatypeProperty
+ a owl:Class .
+
+owl:ObjectProperty
+ a owl:Class .
+
+###Display Model
+
+ a owl:Class ;
+
+ "individual-menu.ftl"^^xsd:string .
+
+
+ a owl:Class .
+
+
+ a owl:Class .
+
+
+ a owl:Class .
+
+
+ a owl:Class .
+
+
+ a owl:Class .
+
+
+ a owl:Class .
+
+
+ a owl:Class .
+
+
+
+########Data Properties#########
+
+###Basic
+
+rdfs:comment
+ a owl:DatatypeProperty .
+
+rdfs:label
+ a owl:DatatypeProperty .
+
+owl:versionInfo
+ a owl:DatatypeProperty .
+
+###Vitro model
+
+
+ a owl:DatatypeProperty .
+
+ a owl:DatatypeProperty .
+
+
+ a owl:DatatypeProperty .
+
+###Display model
+
+
+ a owl:DatatypeProperty .
+
+ a owl:DatatypeProperty .
+
+
+ a owl:DatatypeProperty .
+
+
+ a owl:DatatypeProperty .
+
+
+ a owl:DatatypeProperty ;
+
+ "1"^^xsd:int .
+
+
+ a owl:DatatypeProperty .
+
+
+ a owl:DatatypeProperty .
+
+
+ a owl:DatatypeProperty .
+
+
+######### Object Properties#########
+###Basic
+rdfs:range
+ a owl:ObjectProperty .
+rdfs:domain
+ a owl:ObjectProperty .
+owl:topObjectProperty
+ a owl:ObjectProperty .
+
+###Vitro properties without which individual templates throw errors as are required
+
+
+ a owl:ObjectProperty ;
+ rdfs:range ;
+ rdfs:subPropertyOf , owl:topObjectProperty .
+
+
+ a owl:ObjectProperty ;
+ rdfs:label "Primary Link"@en-US ;
+ rdfs:range ;
+ rdfs:subPropertyOf , owl:topObjectProperty ;
+
+ "defaultLinkForm.jsp"^^xsd:string ;
+
+ "true"^^xsd:boolean ;
+
+ "true"^^xsd:boolean ;
+
+ "false"^^xsd:boolean ;
+
+ "true"^^xsd:boolean .
+
+
+ a owl:ObjectProperty ;
+ rdfs:label "Additional Link"@en-US ;
+ rdfs:range ;
+ rdfs:subPropertyOf , owl:topObjectProperty ;
+
+ "defaultLinkForm.jsp"^^xsd:string ;
+
+ "true"^^xsd:boolean ;
+
+ "true"^^xsd:boolean ;
+
+ "false"^^xsd:boolean ;
+
+ "true"^^xsd:boolean .
+
+###Display model
+
+ a owl:ObjectProperty .
+
+
+ a owl:ObjectProperty .
+
+
+ a owl:ObjectProperty .
+
+
+ a owl:ObjectProperty .
+
+
+ a owl:ObjectProperty .
+
+
+ a owl:ObjectProperty .
+
+
+ a owl:ObjectProperty .
+
+
diff --git a/webapp/web/WEB-INF/ontologies/search/vitroSearchProhibited.n3 b/webapp/web/WEB-INF/ontologies/search/vitroSearchProhibited.n3
new file mode 100644
index 000000000..ba3ed6838
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/search/vitroSearchProhibited.n3
@@ -0,0 +1,27 @@
+# $This file is distributed under the terms of the license in /doc/license.txt$
+
+# All instances of a class can be excluded from the search index
+# by adding a vitroDisplay:excludeClass property between
+# vitroDisplay:SearchIndex and the URI of the class
+# that you would like to exclude.
+
+# All .n3 or .rdf files in this directory will be used to configure
+# the search exclusions. Each file must be a valid file in the format
+# specified by its extension. Each file will be loaded individually and
+# must be a complete stand alone example of its format. Each file must contain all
+# the necessary prefixes, namespaces and preambles required by the format
+# specified by its extension.
+
+# If you would like to add classes to the
+# exclusions, add a file to this directory ending in .n3 with
+# N3 statements similar to this example.
+
+#
+# @prefix owl: .
+# @prefix vitroDisplay: .
+# @prefix rdf: .
+# @prefix example: .
+#
+# vitroDisplay:SearchIndex
+# rdf:type owl:Thing ;
+# vitroDisplay:excludeClass example:classToExclude ;
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/ontologies/system/vitro-0.7.owl b/webapp/web/WEB-INF/ontologies/system/vitro-0.7.owl
new file mode 100644
index 000000000..67db4843e
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/system/vitro-0.7.owl
@@ -0,0 +1,155 @@
+
+
+
+ ]>
+
+
+
+
+
+
+
+
+
+ Vitro internals
+ 0.7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/web/WEB-INF/ontologies/system/vitroPublic.owl b/webapp/web/WEB-INF/ontologies/system/vitroPublic.owl
new file mode 100644
index 000000000..d1f51520a
--- /dev/null
+++ b/webapp/web/WEB-INF/ontologies/system/vitroPublic.owl
@@ -0,0 +1,69 @@
+
+
+
+]>
+
+
+
+
+
+
+ Vitro public constructs
+ 0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/tlds/ListSparqlTag.tld b/webapp/web/WEB-INF/tlds/ListSparqlTag.tld
new file mode 100644
index 000000000..d9cdcf6e5
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/ListSparqlTag.tld
@@ -0,0 +1,51 @@
+
+
+
+
+ List SPARQL JSP taglib
+ 1.0
+ sparql
+ http://mannlib.cornell.edu/vitro/ListSparqlTag/0.1/
+
+
+ SPARQL select tag. (Must be nested inside sparql:sparql)
+ SPARQL select tag
+ select
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.ListSparqlTag
+ tagdependent
+
+
+ var
+ java.util.List
+ AT_BEGIN
+
+
+
+
+ model
+ true
+ true
+ com.hp.hpl.jena.rdf.model.Model
+
+
+
+
+ var
+ true
+ true
+ java.lang.String
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/tlds/StringProcessorTag.tld b/webapp/web/WEB-INF/tlds/StringProcessorTag.tld
new file mode 100644
index 000000000..6a6bff18b
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/StringProcessorTag.tld
@@ -0,0 +1,28 @@
+
+
+
+
+ 1.0
+ http://vitro.mannlib.cornell.edu/vitro/tags/StringProcessorTag
+
+
+
+
+ process
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.StringProcessorTag
+ String Processor
+
+ Processes output using "StringProcessor" from request.
+
+
+ scriptless
+
+
+
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/tlds/VitroUtils.tld b/webapp/web/WEB-INF/tlds/VitroUtils.tld
new file mode 100644
index 000000000..1cfd4a585
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/VitroUtils.tld
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Vitro Utilities taglib
+ 1.0
+
+ Library of JSP utility tags for Vitro
+
+
+
+ confirmAuthorization
+ Confirm that the user is authorized for the actions that this page requires.
+
+ Confirm that the user is authorized to perform all of the RequestedActions that
+ this page requires. If any of the actions is not authorized, the user will be
+ redirected to the appropriate page.
+
+ The actions must be found in the "requestedActions" attribute of the request.
+ The attribute may be a RequestedAction or an array of RequestedActions.
+
+ If the user is not authorized because he is not logged in, he will be directed
+ to the login page, with the current request stored as a post-login destination.
+
+ If the user is logged in but without sufficient authorization, he will be
+ directed to the home page, which will display an "insufficient authorization"
+ message.
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.ConfirmAuthorization
+ empty
+
+
+
\ No newline at end of file
diff --git a/webapp/web/WEB-INF/tlds/c.tld b/webapp/web/WEB-INF/tlds/c.tld
new file mode 100644
index 000000000..22698c97d
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/c.tld
@@ -0,0 +1,563 @@
+
+
+
+
+ JSTL 1.1 core library
+ JSTL core
+ 1.1
+ c
+ http://java.sun.com/jsp/jstl/core
+
+
+
+ Provides core validation features for JSTL tags.
+
+
+ org.apache.taglibs.standard.tlv.JstlCoreTLV
+
+
+
+
+
+ Catches any Throwable that occurs in its body and optionally
+ exposes it.
+
+ catch
+ org.apache.taglibs.standard.tag.common.core.CatchTag
+ JSP
+
+
+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.
+
+ var
+ false
+ false
+
+
+
+
+
+ Simple conditional tag that establishes a context for
+ mutually exclusive conditional operations, marked by
+ <when> and <otherwise>
+
+ choose
+ org.apache.taglibs.standard.tag.common.core.ChooseTag
+ JSP
+
+
+
+
+ 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
+
+ if
+ org.apache.taglibs.standard.tag.rt.core.IfTag
+ JSP
+
+
+The test condition that determines whether or
+not the body content should be processed.
+
+ test
+ true
+ true
+ boolean
+
+
+
+Name of the exported scoped variable for the
+resulting value of the test condition. The type
+of the scoped variable is Boolean.
+
+ var
+ false
+ false
+
+
+
+Scope for var.
+
+ scope
+ false
+ false
+
+
+
+
+
+ Retrieves an absolute or relative URL and exposes its contents
+ to either the page, a String in 'var', or a Reader in 'varReader'.
+
+ import
+ org.apache.taglibs.standard.tag.rt.core.ImportTag
+ org.apache.taglibs.standard.tei.ImportTEI
+ JSP
+
+
+The URL of the resource to import.
+
+ url
+ true
+ true
+
+
+
+Name of the exported scoped variable for the
+resource's content. The type of the scoped
+variable is String.
+
+ var
+ false
+ false
+
+
+
+Scope for var.
+
+ scope
+ false
+ false
+
+
+
+Name of the exported scoped variable for the
+resource's content. The type of the scoped
+variable is Reader.
+
+ varReader
+ false
+ false
+
+
+
+Name of the context when accessing a relative
+URL resource that belongs to a foreign
+context.
+
+ context
+ false
+ true
+
+
+
+Character encoding of the content at the input
+resource.
+
+ charEncoding
+ false
+ true
+
+
+
+
+
+ The basic iteration tag, accepting many different
+ collection types and supporting subsetting and other
+ functionality
+
+ forEach
+ org.apache.taglibs.standard.tag.rt.core.ForEachTag
+ org.apache.taglibs.standard.tei.ForEachTEI
+ JSP
+
+
+Collection of items to iterate over.
+
+ items
+ false
+ true
+ java.lang.Object
+
+
+
+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.
+
+ begin
+ false
+ true
+ int
+
+
+
+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.
+
+ end
+ false
+ true
+ int
+
+
+
+Iteration will only process every step items of
+the collection, starting with the first one.
+
+ step
+ false
+ true
+ int
+
+
+
+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.
+
+ var
+ false
+ false
+
+
+
+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.
+
+ varStatus
+ false
+ false
+
+
+
+
+
+ Iterates over tokens, separated by the supplied delimeters
+
+ forTokens
+ org.apache.taglibs.standard.tag.rt.core.ForTokensTag
+ JSP
+
+
+String of tokens to iterate over.
+
+ items
+ true
+ true
+ java.lang.String
+
+
+
+The set of delimiters (the characters that
+separate the tokens in the string).
+
+ delims
+ true
+ true
+ java.lang.String
+
+
+
+Iteration begins at the token located at the
+specified index. First token has index 0.
+
+ begin
+ false
+ true
+ int
+
+
+
+Iteration ends at the token located at the
+specified index (inclusive).
+
+ end
+ false
+ true
+ int
+
+
+
+Iteration will only process every step tokens
+of the string, starting with the first one.
+
+ step
+ false
+ true
+ int
+
+
+
+Name of the exported scoped variable for the
+current item of the iteration. This scoped
+variable has nested visibility.
+
+ var
+ false
+ false
+
+
+
+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.
+
+ varStatus
+ false
+ false
+
+
+
+
+
+ Like <%= ... >, but for expressions.
+
+ out
+ org.apache.taglibs.standard.tag.rt.core.OutTag
+ JSP
+
+
+Expression to be evaluated.
+
+ value
+ true
+ true
+
+
+
+Default value if the resulting value is null.
+
+ default
+ false
+ true
+
+
+
+Determines whether characters <,>,&,'," in the
+resulting string should be converted to their
+corresponding character entity codes. Default value is
+true.
+
+ escapeXml
+ false
+ true
+
+
+
+
+
+
+ Subtag of <choose> that follows <when> tags
+ and runs only if all of the prior conditions evaluated to
+ 'false'
+
+ otherwise
+ org.apache.taglibs.standard.tag.common.core.OtherwiseTag
+ JSP
+
+
+
+
+ Adds a parameter to a containing 'import' tag's URL.
+
+ param
+ org.apache.taglibs.standard.tag.rt.core.ParamTag
+ JSP
+
+
+Name of the query string parameter.
+
+ name
+ true
+ true
+
+
+
+Value of the parameter.
+
+ value
+ false
+ true
+
+
+
+
+
+ Redirects to a new URL.
+
+ redirect
+ org.apache.taglibs.standard.tag.rt.core.RedirectTag
+ JSP
+
+
+The URL of the resource to redirect to.
+
+ url
+ false
+ true
+
+
+
+Name of the context when redirecting to a relative URL
+resource that belongs to a foreign context.
+
+ context
+ false
+ true
+
+
+
+
+
+ Removes a scoped variable (from a particular scope, if specified).
+
+ remove
+ org.apache.taglibs.standard.tag.common.core.RemoveTag
+ empty
+
+
+Name of the scoped variable to be removed.
+
+ var
+ true
+ false
+
+
+
+Scope for var.
+
+ scope
+ false
+ false
+
+
+
+
+
+ Sets the result of an expression evaluation in a 'scope'
+
+ set
+ org.apache.taglibs.standard.tag.rt.core.SetTag
+ JSP
+
+
+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.
+
+ var
+ false
+ false
+
+
+
+Expression to be evaluated.
+
+ value
+ false
+ true
+
+
+
+Target object whose property will be set. Must evaluate to
+a JavaBeans object with setter property property, or to a
+java.util.Map object.
+
+ target
+ false
+ true
+
+
+
+Name of the property to be set in the target object.
+
+ property
+ false
+ true
+
+
+
+Scope for var.
+
+ scope
+ false
+ false
+
+
+
+
+
+ Creates a URL with optional query parameters.
+
+ url
+ org.apache.taglibs.standard.tag.rt.core.UrlTag
+ JSP
+
+
+Name of the exported scoped variable for the
+processed url. The type of the scoped variable is
+String.
+
+ var
+ false
+ false
+
+
+
+Scope for var.
+
+ scope
+ false
+ false
+
+
+
+URL to be processed.
+
+ value
+ false
+ true
+
+
+
+Name of the context when specifying a relative URL
+resource that belongs to a foreign context.
+
+ context
+ false
+ true
+
+
+
+
+
+ Subtag of <choose> that includes its body if its
+ condition evalutes to 'true'
+
+ when
+ org.apache.taglibs.standard.tag.rt.core.WhenTag
+ JSP
+
+
+The test condition that determines whether or not the
+body content should be processed.
+
+ test
+ true
+ true
+ boolean
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/database.tld b/webapp/web/WEB-INF/tlds/database.tld
new file mode 100644
index 000000000..c21eb69d3
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/database.tld
@@ -0,0 +1,185 @@
+
+
+
+
+ 1.0
+ 1.1
+ Sun Microsystems Press Tag library modified for Mann Library, Cornell
+
+
+ query
+ tags.jdbc.QueryTag
+
+ JSP
+
+ id
+ true
+ true
+
+
+ scope
+ false
+ true
+
+
+ update
+ false
+ true
+
+
+
+ rows
+ tags.jdbc.RowsTag
+ JSP
+
+ query
+ true
+ true
+
+
+ startRow
+ false
+ true
+
+
+ endRow
+ false
+ true
+
+
+
+ columnNames
+ tags.jdbc.ColumnNamesTag
+ tags.jdbc.ColumnNamesTagInfo
+ JSP
+
+ query
+ true
+ true
+
+
+ id
+ true
+ true
+
+
+
+ columns
+ tags.jdbc.ColumnsTag
+ tags.jdbc.ColumnsTagInfo
+ JSP
+
+ query
+ true
+ true
+
+
+ id
+ true
+ true
+
+
+
+ select_columns
+ tags.jdbc.SelectColumnsTag
+ tags.jdbc.SelectColumnsTagInfo
+ JSP
+
+ query
+ true
+ true
+
+
+ id
+ true
+ true
+
+
+ selectValue
+ true
+ true
+
+
+
+ release
+ tags.jdbc.ReleaseTag
+ JSP
+
+ query
+ true
+ true
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/fn.tld b/webapp/web/WEB-INF/tlds/fn.tld
new file mode 100644
index 000000000..12d4ca8e8
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/fn.tld
@@ -0,0 +1,207 @@
+
+
+
+
+ JSTL 1.1 functions library
+ JSTL functions
+ 1.1
+ fn
+ http://java.sun.com/jsp/jstl/functions
+
+
+
+ Tests if an input string contains the specified substring.
+
+ contains
+ org.apache.taglibs.standard.functions.Functions
+ boolean contains(java.lang.String, java.lang.String)
+
+ <c:if test="${fn:contains(name, searchString)}">
+
+
+
+
+
+ Tests if an input string contains the specified substring in a case insensitive way.
+
+ containsIgnoreCase
+ org.apache.taglibs.standard.functions.Functions
+ boolean containsIgnoreCase(java.lang.String, java.lang.String)
+
+ <c:if test="${fn:containsIgnoreCase(name, searchString)}">
+
+
+
+
+
+ Tests if an input string ends with the specified suffix.
+
+ endsWith
+ org.apache.taglibs.standard.functions.Functions
+ boolean endsWith(java.lang.String, java.lang.String)
+
+ <c:if test="${fn:endsWith(filename, ".txt")}">
+
+
+
+
+
+ Escapes characters that could be interpreted as XML markup.
+
+ escapeXml
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String escapeXml(java.lang.String)
+
+ ${fn:escapeXml(param:info)}
+
+
+
+
+
+ Returns the index withing a string of the first occurrence of a specified substring.
+
+ indexOf
+ org.apache.taglibs.standard.functions.Functions
+ int indexOf(java.lang.String, java.lang.String)
+
+ ${fn:indexOf(name, "-")}
+
+
+
+
+
+ Joins all elements of an array into a string.
+
+ join
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String join(java.lang.String[], java.lang.String)
+
+ ${fn:join(array, ";")}
+
+
+
+
+
+ Returns the number of items in a collection, or the number of characters in a string.
+
+ length
+ org.apache.taglibs.standard.functions.Functions
+ int length(java.lang.Object)
+
+ You have ${fn:length(shoppingCart.products)} in your shopping cart.
+
+
+
+
+
+ Returns a string resulting from replacing in an input string all occurrences
+ of a "before" string into an "after" substring.
+
+ replace
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String replace(java.lang.String, java.lang.String, java.lang.String)
+
+ ${fn:replace(text, "-", "")}
+
+
+
+
+
+ Splits a string into an array of substrings.
+
+ split
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String[] split(java.lang.String, java.lang.String)
+
+ ${fn:split(customerNames, ";")}
+
+
+
+
+
+ Tests if an input string starts with the specified prefix.
+
+ startsWith
+ org.apache.taglibs.standard.functions.Functions
+ boolean startsWith(java.lang.String, java.lang.String)
+
+ <c:if test="${fn:startsWith(product.id, "100-")}">
+
+
+
+
+
+ Returns a subset of a string.
+
+ substring
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String substring(java.lang.String, int, int)
+
+ P.O. Box: ${fn:substring(zip, 6, -1)}
+
+
+
+
+
+ Returns a subset of a string following a specific substring.
+
+ substringAfter
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String substringAfter(java.lang.String, java.lang.String)
+
+ P.O. Box: ${fn:substringAfter(zip, "-")}
+
+
+
+
+
+ Returns a subset of a string before a specific substring.
+
+ substringBefore
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String substringBefore(java.lang.String, java.lang.String)
+
+ Zip (without P.O. Box): ${fn:substringBefore(zip, "-")}
+
+
+
+
+
+ Converts all of the characters of a string to lower case.
+
+ toLowerCase
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String toLowerCase(java.lang.String)
+
+ Product name: ${fn.toLowerCase(product.name)}
+
+
+
+
+
+ Converts all of the characters of a string to upper case.
+
+ toUpperCase
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String toUpperCase(java.lang.String)
+
+ Product name: ${fn.UpperCase(product.name)}
+
+
+
+
+
+ Removes white spaces from both ends of a string.
+
+ trim
+ org.apache.taglibs.standard.functions.Functions
+ java.lang.String trim(java.lang.String)
+
+ Name: ${fn.trim(name)}
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/form.tld b/webapp/web/WEB-INF/tlds/form.tld
new file mode 100644
index 000000000..666c487aa
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/form.tld
@@ -0,0 +1,66 @@
+
+
+
+
+ 1.0
+ 1.1
+ Vitro Editing Form Library
+
+ 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.
+
+
+
+ option
+ edu.cornell.mannlib.vedit.tags.OptionTag
+ empty
+
+ name
+ false
+ true
+
+
+
+
+ value
+ edu.cornell.mannlib.vedit.tags.ValueTag
+ empty
+
+ name
+ false
+ true
+
+
+
+
+ dynamicFields
+ edu.cornell.mannlib.vedit.tags.DynamicFieldsTag
+ empty
+
+ type
+ true
+ true
+
+
+ usePage
+ true
+ true
+
+
+
+
+ error
+ edu.cornell.mannlib.vedit.tags.ErrorTag
+ empty
+
+ name
+ false
+ true
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/sparqltag.tld b/webapp/web/WEB-INF/tlds/sparqltag.tld
new file mode 100644
index 000000000..5683802fb
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/sparqltag.tld
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+ SPARQL JSP taglib
+ 1.0
+ sparql
+ http://djpowell.net/tmp/sparql-tag/0.1/
+
+
+
+
+
+ SPARQL container tag.
+ 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.
+ ]]>
+
+ SPARQL container tag
+ sparql
+ net.djpowell.sparqltag.SparqlTag
+ scriptless
+
+
+
+
+
+
+ Obtains a lock or transaction on a model until the tag is closed.
+
+ SPARQL lock tag
+ lock
+ net.djpowell.sparqltag.LockTag
+ net.djpowell.sparqltag.LockTagInfo
+ scriptless
+
+
+ The model to lock, or execute in a transaction
+ model
+ true
+ true
+ com.hp.hpl.jena.rdf.model.Model
+
+
+
+
+ Indicates whether transactions should be used instead of
+ critical sections.
+
+ transactions
+
+ false
+ true
+ java.lang.String
+
+
+
+
+ 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.
+
+ readonly
+
+ false
+ true
+ java.lang.String
+
+
+
+
+
+
+
+ SPARQL load tag. Convenience tag for creating a new model from an RDF/XML URI.
+ SPARQL load tag
+ load
+ net.djpowell.sparqltag.LoadTag
+ net.djpowell.sparqltag.LoadTagInfo
+ empty
+
+
+ var
+ com.hp.hpl.jena.rdf.model.Model
+ AT_END
+
+
+
+
+ var
+ true
+ true
+ java.lang.String
+
+
+
+
+ uri
+ true
+ true
+ java.lang.String
+
+
+
+
+
+
+
+ SPARQL ask tag. (Must be nested inside sparql:sparql)
+ SPARQL ask tag
+ ask
+ net.djpowell.sparqltag.AskTag
+ tagdependent
+
+
+
+ var
+ java.lang.Boolean
+ AT_END
+
+
+
+
+ model
+ true
+ true
+ com.hp.hpl.jena.rdf.model.Model
+
+
+
+
+ var
+ true
+ false
+ java.lang.String
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ SPARQL construct tag. (Must be nested inside sparql:sparql)
+ SPARQL construct tag
+ construct
+ net.djpowell.sparqltag.ConstructTag
+ tagdependent
+
+
+ var
+ com.hp.hpl.jena.rdf.model.Model
+ AT_END
+
+
+
+
+ model
+ true
+ false
+ com.hp.hpl.jena.rdf.model.Model
+
+
+
+
+ var
+ true
+ true
+ java.lang.String
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ SPARQL describe tag. (Must be nested inside sparql:sparql)
+ SPARQL describe tag
+ describe
+ net.djpowell.sparqltag.DescribeTag
+ tagdependent
+
+
+ var
+ com.hp.hpl.jena.rdf.model.Model
+ AT_END
+
+
+
+
+ model
+ true
+ true
+ com.hp.hpl.jena.rdf.model.Model
+
+
+
+
+ var
+ true
+ false
+ java.lang.String
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ SPARQL select tag. (Must be nested inside sparql:sparql)
+ SPARQL select tag
+ select
+ net.djpowell.sparqltag.SelectTag
+ tagdependent
+
+
+ var
+ net.djpowell.sparqltag.SelectTag.RSWrapper
+
+ AT_END
+
+
+
+
+ model
+ true
+ true
+ com.hp.hpl.jena.rdf.model.Model
+
+
+
+
+ var
+ true
+ true
+ java.lang.String
+
+
+ true
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/taglibs-mailer.tld b/webapp/web/WEB-INF/tlds/taglibs-mailer.tld
new file mode 100644
index 000000000..68d74d4f7
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/taglibs-mailer.tld
@@ -0,0 +1,254 @@
+
+
+
+
+ 1.1
+ 1.1
+ mailer
+ http://jakarta.apache.org/taglibs/mailer-1.1
+ 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.
+
+<!-- Create a message by entering the name of the SMTP host. -->
+<!-- The default for this attribute is localhost; for a host other -->
+<!-- than localhost supply it's name with the server attribute -->
+<!-- as in the example below. The body of the e-mail is supplied in the -->
+<!-- message tag. The send tag is necessary to send the message. -->
+<mt:mail server="home.net" to="foo@home.net"
+from="bar@home.net" subject="mail taglib">
+ <mt:message>[body of message]</mt:message>
+ <mt:send/>
+</mt:mail>
+
+<!-- Using a JNDI named JavaMail Session object defined by the -->
+<!-- session attribute. -->
+<mt:mail session="java:/comp/env/session" to="foo@home.net"
+from="bar@home.net" subject="mail taglib">
+ <mt:message>[body of message]</mt:message>
+ <mt:send/>
+</mt:mail>
+
+<!-- Or using a JNDI named JavaMail MimePartDataSource object -->
+<!-- defined by mimeMessage attribute. -->
+<mt:mail mimeMessage="java:/comp/env/message" to="foo@home.net"
+from="bar@home.net" subject="mail taglib">
+ <mt:message>[body of message]</mt:message>
+ <mt:send/>
+</mt:mail>
+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.
+
+
+ mail
+ org.apache.taglibs.mailer.MailTag
+ JSP
+
+ server
+ no
+ yes
+
+
+ session
+ no
+ no
+
+
+ mimeMessage
+ no
+ no
+
+
+ authenticate
+ no
+ no
+
+
+ user
+ no
+ yes
+
+
+ password
+ no
+ yes
+
+
+ to
+ no
+ no
+
+
+ replyTo
+ no
+ no
+
+
+ from
+ no
+ no
+
+
+ cc
+ no
+ no
+
+
+ bcc
+ no
+ no
+
+
+ subject
+ no
+ no
+
+
+
+ server
+ org.apache.taglibs.mailer.ServerTag
+ JSP
+
+
+ message
+ org.apache.taglibs.mailer.MessageTag
+ JSP
+
+ type
+ no
+ no
+
+
+
+ header
+ org.apache.taglibs.mailer.HeaderTag
+ JSP
+
+ name
+ yes
+ no
+
+
+ value
+ no
+ no
+
+
+
+ setrecipient
+ org.apache.taglibs.mailer.SetRecipientTag
+ JSP
+
+ type
+ yes
+ no
+
+
+ address
+ no
+ no
+
+
+
+ addrecipient
+ org.apache.taglibs.mailer.AddRecipientTag
+ JSP
+
+ type
+ yes
+ no
+
+
+ address
+ no
+ no
+
+
+
+ replyto
+ org.apache.taglibs.mailer.ReplyToTag
+ JSP
+
+
+ from
+ org.apache.taglibs.mailer.FromTag
+ JSP
+
+
+ attach
+ org.apache.taglibs.mailer.AttachTag
+ JSP
+
+ file
+ no
+ no
+
+
+ url
+ no
+ no
+
+
+ type
+ no
+ no
+
+
+
+ subject
+ org.apache.taglibs.mailer.SubjectTag
+ JSP
+
+
+ send
+ org.apache.taglibs.mailer.SendTag
+ JSP
+
+
+ error
+ org.apache.taglibs.mailer.ErrorTag
+ org.apache.taglibs.mailer.ErrorTEI
+ JSP
+
+ id
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/taglibs-random.tld b/webapp/web/WEB-INF/tlds/taglibs-random.tld
new file mode 100644
index 000000000..bf0a52297
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/taglibs-random.tld
@@ -0,0 +1,88 @@
+
+
+
+
+ 1.0.2
+ 1.1
+ random
+ http://jakarta.apache.org/taglibs/random-1.0
+
+ 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.
+
+ string
+ org.apache.taglibs.random.RandomStrgTag
+ org.apache.taglibs.random.RandomStrgTEI
+ Empty
+
+ id
+ yes
+ no
+
+
+ length
+ no
+ no
+
+
+ map
+ no
+ no
+
+
+ charset
+ no
+ no
+
+
+ algorithm
+ no
+ no
+
+
+ provider
+ no
+ no
+
+
+
+ number
+ org.apache.taglibs.random.RandomNumTag
+ org.apache.taglibs.random.RandomNumTEI
+ Empty
+
+ id
+ yes
+ no
+
+
+ range
+ no
+ no
+
+
+ algorithm
+ no
+ no
+
+
+ provider
+ no
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/taglibs-string.tld b/webapp/web/WEB-INF/tlds/taglibs-string.tld
new file mode 100644
index 000000000..f22ea31f8
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/taglibs-string.tld
@@ -0,0 +1,743 @@
+
+
+
+
+ 1.1.0
+ 1.1
+ string
+ http://jakarta.apache.org/taglibs/string-1.1
+
+ 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.
+
+
+ length
+ org.apache.taglibs.string.LengthTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ capitalize
+ org.apache.taglibs.string.CapitalizeTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ uncapitalize
+ org.apache.taglibs.string.UncapitalizeTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ upperCase
+ org.apache.taglibs.string.UpperCaseTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ lowerCase
+ org.apache.taglibs.string.LowerCaseTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ trim
+ org.apache.taglibs.string.TrimTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ chop
+ org.apache.taglibs.string.ChopTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ chopNewline
+ org.apache.taglibs.string.ChopNewlineTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ escape
+ org.apache.taglibs.string.EscapeTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ reverse
+ org.apache.taglibs.string.ReverseTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ swapCase
+ org.apache.taglibs.string.SwapCaseTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ soundex
+ org.apache.taglibs.string.SoundexTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ metaphone
+ org.apache.taglibs.string.MetaphoneTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ quoteRegexp
+ org.apache.taglibs.string.QuoteRegexpTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ capitalizeAllWords
+ org.apache.taglibs.string.CapitalizeAllWordsTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ removeXml
+ org.apache.taglibs.string.RemoveXmlTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ encodeUrl
+ org.apache.taglibs.string.EncodeUrlTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ decodeUrl
+ org.apache.taglibs.string.DecodeUrlTag
+ JSP
+
+ var
+ false
+ true
+
+
+
+ count
+ org.apache.taglibs.string.CountTag
+ JSP
+
+ var
+ false
+ true
+
+
+ set
+ true
+ true
+
+
+
+ delete
+ org.apache.taglibs.string.DeleteTag
+ JSP
+
+ var
+ false
+ true
+
+
+ set
+ true
+ true
+
+
+
+ squeeze
+ org.apache.taglibs.string.SqueezeTag
+ JSP
+
+ var
+ false
+ true
+
+
+ set
+ true
+ true
+
+
+
+ center
+ org.apache.taglibs.string.CenterTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+ width
+ true
+ true
+
+
+
+ rightPad
+ org.apache.taglibs.string.RightPadTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+ width
+ true
+ true
+
+
+
+ leftPad
+ org.apache.taglibs.string.LeftPadTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+ width
+ true
+ true
+
+
+
+ chomp
+ org.apache.taglibs.string.ChompTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ getChomp
+ org.apache.taglibs.string.GetChompTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ prechomp
+ org.apache.taglibs.string.PrechompTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ getPrechomp
+ org.apache.taglibs.string.GetPrechompTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ strip
+ org.apache.taglibs.string.StripTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ stripEnd
+ org.apache.taglibs.string.StripEndTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ stripStart
+ org.apache.taglibs.string.StripStartTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ reverseDelimitedString
+ org.apache.taglibs.string.ReverseDelimitedStringTag
+ JSP
+
+ var
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+
+ overlay
+ org.apache.taglibs.string.OverlayTag
+ JSP
+
+ var
+ false
+ true
+
+
+ with
+ true
+ true
+
+
+ start
+ true
+ true
+
+
+ end
+ true
+ true
+
+
+
+ substring
+ org.apache.taglibs.string.SubstringTag
+ JSP
+
+ var
+ false
+ true
+
+
+ start
+ false
+ true
+
+
+ end
+ false
+ true
+
+
+
+ repeat
+ org.apache.taglibs.string.RepeatTag
+ JSP
+
+ var
+ false
+ true
+
+
+ count
+ true
+ true
+
+
+
+ wordWrap
+ org.apache.taglibs.string.WordWrapTag
+ JSP
+
+ var
+ false
+ true
+
+
+ width
+ false
+ true
+
+
+ delimiter
+ false
+ true
+
+
+ split
+ false
+ true
+
+
+ delimiterInside
+ false
+ false
+
+
+
+ nestedString
+ org.apache.taglibs.string.NestedStringTag
+ JSP
+
+ var
+ false
+ true
+
+
+ open
+ true
+ true
+
+
+ close
+ false
+ true
+
+
+
+ countMatches
+ org.apache.taglibs.string.CountMatchesTag
+ JSP
+
+ var
+ false
+ true
+
+
+ substring
+ true
+ true
+
+
+
+ default
+ org.apache.taglibs.string.DefaultTag
+ JSP
+
+ var
+ false
+ true
+
+
+ value
+ false
+ true
+
+
+ default
+ false
+ true
+
+
+
+ replace
+ org.apache.taglibs.string.ReplaceTag
+ JSP
+
+ var
+ false
+ true
+
+
+ replace
+ true
+ true
+
+
+ with
+ true
+ true
+
+
+ count
+ false
+ true
+
+
+ newlineToken
+ false
+ true
+
+
+ carriageToken
+ false
+ true
+
+
+
+ randomString
+ org.apache.taglibs.string.RandomStringTag
+ JSP
+
+ var
+ false
+ true
+
+
+ count
+ true
+ true
+
+
+ start
+ false
+ true
+
+
+ end
+ false
+ true
+
+
+ type
+ false
+ true
+
+
+
+ left
+ org.apache.taglibs.string.LeftTag
+ JSP
+
+ var
+ false
+ true
+
+
+ count
+ true
+ true
+
+
+
+ right
+ org.apache.taglibs.string.RightTag
+ JSP
+
+ var
+ false
+ true
+
+
+ count
+ true
+ true
+
+
+
+ mid
+ org.apache.taglibs.string.MidTag
+ JSP
+
+ var
+ false
+ true
+
+
+ start
+ false
+ true
+
+
+ count
+ true
+ true
+
+
+
+ truncateNicely
+ org.apache.taglibs.string.TruncateNicelyTag
+ JSP
+
+ var
+ false
+ true
+
+
+ lower
+ false
+ true
+
+
+ upper
+ false
+ true
+
+
+ appendToEnd
+ false
+ true
+
+
+
+ join
+ org.apache.taglibs.string.JoinTag
+ EMPTY
+
+ items
+ true
+ true
+
+
+ separator
+ false
+ true
+
+
+
+ split
+ org.apache.taglibs.string.SplitTag
+ JSP
+
+ separator
+ true
+ true
+
+
+ var
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/web/WEB-INF/tlds/vitroForm.tld b/webapp/web/WEB-INF/tlds/vitroForm.tld
new file mode 100644
index 000000000..7df1377f0
--- /dev/null
+++ b/webapp/web/WEB-INF/tlds/vitroForm.tld
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+ SPARQL JSP taglib
+ 1.0
+
+ Vitro DAO access Form Library
+
+
+
+ optionsForProperty
+ Options For Property
+
+ Create the option elements for a specified subject and predicate.
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.OptionsForPropertyTag
+ empty
+
+ subjectUri
+ true
+ true
+
+
+ predicateUri
+ true
+ true
+
+
+ selectedUri
+ false
+ true
+
+
+
+
+
+ optionsForVClass
+ Options For VClass
+
+ Create the option elements for a specified vitro class.
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.OptionsForClassTag
+ empty
+
+ classUri
+ true
+ true
+
+
+ selectedUri
+ false
+ true
+
+
+
+
+
+ option
+ Options for Form Field
+
+ 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.
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.Options
+ empty
+
+ name
+ true
+ true
+
+
+
+
+ jsonset
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.JsonSet
+ scriptless
+
+ var
+ true
+ true
+
+
+
+
+ value
+ value for a Form Field
+
+ If there is a value in a edit submission object that matches the name,
+ Then output that value. otherwise, output nothing
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.Value
+ empty
+
+ name
+ true
+ true
+
+
+
+
+
+ errorMessage
+ errorMessage value for a Form Field
+
+ If there is a value in a edit submission.validation object that matches the name,
+ Then output that value. otherwise, output nothing
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.ErrorMessage
+ empty
+
+ name
+ true
+ true
+
+
+
+
+ input
+ Input Element Formatting
+
+ Format a form input element of a specified element type
+
+ edu.cornell.mannlib.vitro.webapp.web.jsptags.InputElementFormattingTag
+ empty
+
+ type
+ false
+ true
+
+
+ id
+ true
+ true
+
+
+ name
+ false
+ true
+
+
+ label
+ false
+ true
+
+
+ labelClass
+ false
+ true
+
+
+ cssClass
+ false
+ true
+
+
+ value
+ false
+ true
+
+
+ error
+ false
+ true
+
+
+ size
+ false
+ true
+
+
+ rows
+ false
+ true
+
+
+ cols
+ false
+ true
+
+
+ multiple
+ false
+ true
+
+
+ listMarkup
+ false
+ true
+
+
+ cancel
+ false
+ true
+
+
+ cancelLabel
+ false
+ true
+
+
+ cancelUrl
+ false
+ true
+
+
+ disabled
+ false
+ true
+
+
+
+
\ No newline at end of file
From d7f361c418d12e59e934a04bf0d6bcd6d139f2c3 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Thu, 8 Sep 2011 17:07:43 +0000
Subject: [PATCH 07/21] NIHVIVO-2811 Make the webapp directory more closely
resemble the product base directory - move tlds, filegraph, ontologies,
dwr.xml and web.xml into web/WEB-INF. Adjust the build script accordingly.
---
webapp/ontologies/app/application.owl | 134 -------------
.../loadedAtStartup/displayModelListViews.rdf | 23 ---
webapp/ontologies/app/menu.n3 | 35 ----
.../ontologies/app/menuload/displayDisplay.n3 | 96 ----------
webapp/ontologies/app/menuload/displayTBOX.n3 | 176 ------------------
.../search/vitroSearchProhibited.n3 | 27 ---
webapp/ontologies/system/vitro-0.7.owl | 155 ---------------
webapp/ontologies/system/vitroPublic.owl | 69 -------
8 files changed, 715 deletions(-)
delete mode 100644 webapp/ontologies/app/application.owl
delete mode 100644 webapp/ontologies/app/loadedAtStartup/displayModelListViews.rdf
delete mode 100644 webapp/ontologies/app/menu.n3
delete mode 100644 webapp/ontologies/app/menuload/displayDisplay.n3
delete mode 100644 webapp/ontologies/app/menuload/displayTBOX.n3
delete mode 100644 webapp/ontologies/search/vitroSearchProhibited.n3
delete mode 100644 webapp/ontologies/system/vitro-0.7.owl
delete mode 100644 webapp/ontologies/system/vitroPublic.owl
diff --git a/webapp/ontologies/app/application.owl b/webapp/ontologies/app/application.owl
deleted file mode 100644
index 18f1d8b90..000000000
--- a/webapp/ontologies/app/application.owl
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
-
-
-
-
-
-]>
-
-
-
-
-
-
-
-
-
-
- This represents a menu item or other general navigation item.
-
-
-
-
-
-
-
-
-
-
-
-
-
- individual-menu.ftl
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Indicates that a page requires a body template.
-
-
-
-
-
-
-
-
- Values from HttpRequest.getPathInfo() will be mapped to values from urlMapping.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/ontologies/app/loadedAtStartup/displayModelListViews.rdf b/webapp/ontologies/app/loadedAtStartup/displayModelListViews.rdf
deleted file mode 100644
index 4a17524f5..000000000
--- a/webapp/ontologies/app/loadedAtStartup/displayModelListViews.rdf
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-]>
-
-
-
-
-
- listViewConfig-hasElement.xml
-
-
-
\ No newline at end of file
diff --git a/webapp/ontologies/app/menu.n3 b/webapp/ontologies/app/menu.n3
deleted file mode 100644
index 098fc8a74..000000000
--- a/webapp/ontologies/app/menu.n3
+++ /dev/null
@@ -1,35 +0,0 @@
-# $This file is distributed under the terms of the license in /doc/license.txt$
-
-@prefix owl: .
-@prefix display: .
-@prefix rdf: .
-
-### This file defines the default menu for vitro. ###
-
-#### Default Menu ####
-
-display:DefaultMenu
- a display:MainMenu ;
- display:hasElement display:HomeMenuItem .
-
-#### Menu Items for Default Menu ####
-
-display:HomeMenuItem
- a display:NavigationElement ;
- display:menuPosition 1;
- display:linkText "Home";
- display:toPage display:Home .
-
-########## Pages ############
-
-display:Home
- a display:HomePage ;
- a display:Page ;
- display:title "Home" ;
- display:urlMapping "/" ;
- display:hasDataGetter display:homeDataGetter .
-
-########## Data Getter ############
-
-
- a .
\ No newline at end of file
diff --git a/webapp/ontologies/app/menuload/displayDisplay.n3 b/webapp/ontologies/app/menuload/displayDisplay.n3
deleted file mode 100644
index bda8b4566..000000000
--- a/webapp/ontologies/app/menuload/displayDisplay.n3
+++ /dev/null
@@ -1,96 +0,0 @@
-@prefix rdfs: .
-@prefix xsd: .
-@prefix owl: .
-@prefix rdf: .
-
-
-
- """# $This file is distributed under the terms of the license in /doc/license.txt$
-
-@prefix owl: .
-@prefix display: .
-@prefix rdf: .
-@prefix core: .
-@prefix vivoweb: .
-
-### This file defines the default menu for vivo. ###
-
-#### Default Menu ####
-
-display:DefaultMenu
- a display:MainMenu ;
- display:hasElement display:EventsMenuItem ;
- display:hasElement display:HomeMenuItem ;
- display:hasElement display:OrganizationsMenuItem ;
- display:hasElement display:PeopleMenuItem ;
- display:hasElement display:ResearchMenuItem .
-
-#### Menu Items for Default Menu ####
-
-display:HomeMenuItem
- a display:NavigationElement ;
- display:menuPosition 1;
- display:linkText \"Home\";
- display:toPage display:Home .
-
-display:PeopleMenuItem
- a display:NavigationElement ;
- display:menuPosition 2;
- display:linkText \"People\";
- display:toPage display:People .
-
-display:OrganizationsMenuItem
- a display:NavigationElement ;
- display:menuPosition 3;
- display:linkText \"Organizations\";
- display:toPage display:Organizations .
-
-display:ResearchMenuItem
- a display:NavigationElement ;
- display:menuPosition 4;
- display:linkText \"Research\";
- display:toPage display:Research .
-
-display:EventsMenuItem
- a display:NavigationElement ;
- display:menuPosition 5;
- display:linkText \"Events\";
- display:toPage display:Events .
-
-########## Pages ############
-
-display:Home
- a display:HomePage ;
- a display:Page ;
- display:title \"Home\" ;
- display:urlMapping \"/\" .
-
-display:Events
- a display:Page ;
- a display:ClassGroupPage;
- display:forClassGroup vivoweb:vitroClassGroupevents ;
- display:title \"Events\" ;
- display:urlMapping \"/events\" .
-
-display:Organizations
- a display:Page ;
- a display:ClassGroupPage;
- display:forClassGroup vivoweb:vitroClassGrouporganizations ;
- display:title \"Organizations\" ;
- display:urlMapping \"/organizations\" .
-
-display:People
- a display:Page ;
- a display:ClassGroupPage;
- display:forClassGroup vivoweb:vitroClassGrouppeople ;
- display:requiresBodyTemplate \"menupage--classgroup-people.ftl\" ;
- display:title \"People\" ;
- display:urlMapping \"/people\" .
-
-display:Research
- a display:Page ;
- a display:ClassGroupPage;
- display:forClassGroup vivoweb:vitroClassGrouppublications ;
- display:title \"Research\" ;
- display:urlMapping \"/research\" .
-""" .
diff --git a/webapp/ontologies/app/menuload/displayTBOX.n3 b/webapp/ontologies/app/menuload/displayTBOX.n3
deleted file mode 100644
index 14d647f80..000000000
--- a/webapp/ontologies/app/menuload/displayTBOX.n3
+++ /dev/null
@@ -1,176 +0,0 @@
-# $This file is distributed under the terms of the license in /doc/license.txt$
-
-@prefix rdfs: .
-@prefix xsd: .
-@prefix owl: .
-@prefix rdf: .
-
-
-#########Classes#########
-###Basic
-owl:Class
- a owl:Class .
-
-owl:Ontology
- a owl:Class .
-
-owl:AnnotationProperty
- a owl:Class .
-
-owl:DatatypeProperty
- a owl:Class .
-
-owl:ObjectProperty
- a owl:Class .
-
-###Display Model
-
- a owl:Class ;
-
- "individual-menu.ftl"^^xsd:string .
-
-
- a owl:Class .
-
-
- a owl:Class .
-
-
- a owl:Class .
-
-
- a owl:Class .
-
-
- a owl:Class .
-
-
- a owl:Class .
-
-
- a owl:Class .
-
-
-
-########Data Properties#########
-
-###Basic
-
-rdfs:comment
- a owl:DatatypeProperty .
-
-rdfs:label
- a owl:DatatypeProperty .
-
-owl:versionInfo
- a owl:DatatypeProperty .
-
-###Vitro model
-
-
- a owl:DatatypeProperty .
-
- a owl:DatatypeProperty .
-
-
- a owl:DatatypeProperty .
-
-###Display model
-
-
- a owl:DatatypeProperty .
-
- a owl:DatatypeProperty .
-
-
- a owl:DatatypeProperty .
-
-
- a owl:DatatypeProperty .
-
-
- a owl:DatatypeProperty ;
-
- "1"^^xsd:int .
-
-
- a owl:DatatypeProperty .
-
-
- a owl:DatatypeProperty .
-
-
- a owl:DatatypeProperty .
-
-
-######### Object Properties#########
-###Basic
-rdfs:range
- a owl:ObjectProperty .
-rdfs:domain
- a owl:ObjectProperty .
-owl:topObjectProperty
- a owl:ObjectProperty .
-
-###Vitro properties without which individual templates throw errors as are required
-
-
- a owl:ObjectProperty ;
- rdfs:range ;
- rdfs:subPropertyOf , owl:topObjectProperty .
-
-
- a owl:ObjectProperty ;
- rdfs:label "Primary Link"@en-US ;
- rdfs:range ;
- rdfs:subPropertyOf , owl:topObjectProperty ;
-
- "defaultLinkForm.jsp"^^xsd:string ;
-
- "true"^^xsd:boolean ;
-
- "true"^^xsd:boolean ;
-
- "false"^^xsd:boolean ;
-
- "true"^^xsd:boolean .
-
-
- a owl:ObjectProperty ;
- rdfs:label "Additional Link"@en-US ;
- rdfs:range ;
- rdfs:subPropertyOf , owl:topObjectProperty ;
-
- "defaultLinkForm.jsp"^^xsd:string ;
-
- "true"^^xsd:boolean ;
-
- "true"^^xsd:boolean ;
-
- "false"^^xsd:boolean ;
-
- "true"^^xsd:boolean .
-
-###Display model
-
- a owl:ObjectProperty .
-
-
- a owl:ObjectProperty .
-
-
- a owl:ObjectProperty .
-
-
- a owl:ObjectProperty .
-
-
- a owl:ObjectProperty .
-
-
- a owl:ObjectProperty .
-
-
- a owl:ObjectProperty .
-
-
diff --git a/webapp/ontologies/search/vitroSearchProhibited.n3 b/webapp/ontologies/search/vitroSearchProhibited.n3
deleted file mode 100644
index ba3ed6838..000000000
--- a/webapp/ontologies/search/vitroSearchProhibited.n3
+++ /dev/null
@@ -1,27 +0,0 @@
-# $This file is distributed under the terms of the license in /doc/license.txt$
-
-# All instances of a class can be excluded from the search index
-# by adding a vitroDisplay:excludeClass property between
-# vitroDisplay:SearchIndex and the URI of the class
-# that you would like to exclude.
-
-# All .n3 or .rdf files in this directory will be used to configure
-# the search exclusions. Each file must be a valid file in the format
-# specified by its extension. Each file will be loaded individually and
-# must be a complete stand alone example of its format. Each file must contain all
-# the necessary prefixes, namespaces and preambles required by the format
-# specified by its extension.
-
-# If you would like to add classes to the
-# exclusions, add a file to this directory ending in .n3 with
-# N3 statements similar to this example.
-
-#
-# @prefix owl: .
-# @prefix vitroDisplay: .
-# @prefix rdf: .
-# @prefix example: .
-#
-# vitroDisplay:SearchIndex
-# rdf:type owl:Thing ;
-# vitroDisplay:excludeClass example:classToExclude ;
\ No newline at end of file
diff --git a/webapp/ontologies/system/vitro-0.7.owl b/webapp/ontologies/system/vitro-0.7.owl
deleted file mode 100644
index 67db4843e..000000000
--- a/webapp/ontologies/system/vitro-0.7.owl
+++ /dev/null
@@ -1,155 +0,0 @@
-
-
-
- ]>
-
-
-
-
-
-
-
-
-
- Vitro internals
- 0.7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/ontologies/system/vitroPublic.owl b/webapp/ontologies/system/vitroPublic.owl
deleted file mode 100644
index d1f51520a..000000000
--- a/webapp/ontologies/system/vitroPublic.owl
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-]>
-
-
-
-
-
-
- Vitro public constructs
- 0.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
From def608dcdade86db78f18942083ddda09633c088 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Thu, 8 Sep 2011 17:17:16 +0000
Subject: [PATCH 08/21] NIHVIVO-2811 Make the webapp directory more closely
resemble the product base directory - move tlds, filegraph, ontologies,
dwr.xml and web.xml into web/WEB-INF. Adjust the build script accordingly.
---
webapp/build.xml | 46 +++++++++++++---------------------------------
1 file changed, 13 insertions(+), 33 deletions(-)
diff --git a/webapp/build.xml b/webapp/build.xml
index 89ff0a0d6..83db044bf 100644
--- a/webapp/build.xml
+++ b/webapp/build.xml
@@ -117,7 +117,7 @@ deploy - Deploy the application directly into the Tomcat webapps directory.
-
+
@@ -138,7 +138,7 @@ deploy - Deploy the application directly into the Tomcat webapps directory.
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -176,30 +172,14 @@ deploy - Deploy the application directly into the Tomcat webapps directory.
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
@@ -328,7 +308,7 @@ deploy - Deploy the application directly into the Tomcat webapps directory.
-
+
@@ -343,7 +323,7 @@ deploy - Deploy the application directly into the Tomcat webapps directory.
- - - - - - - - - - - - - - - - - -->
-
+
From 11239bf04096e555b45776494725fae48a943bc3 Mon Sep 17 00:00:00 2001
From: j2blake
Date: Fri, 9 Sep 2011 17:13:35 +0000
Subject: [PATCH 09/21] NIHVIVO-2811 getting closer - need a way of "copying" a
directory that may not exist.
---
utilities/anttasks/build.xml | 46 +++
...ceResourceCollection$DirectoryFilter.class | Bin 0 -> 966 bytes
...esourceCollection$NonDirectoryFilter.class | Bin 0 -> 1010 bytes
.../DirDifferenceResourceCollection.class | Bin 0 -> 5320 bytes
utilities/anttasks/lib/ant.jar | Bin 0 -> 1323005 bytes
.../AbstractDirResourceCollection.java | 126 +++++++
.../DirDifferenceResourceCollection.java | 196 ++++++++++
webapp/build.xml | 79 ++--
webapp/product-build.xml | 344 +++++++++---------
9 files changed, 565 insertions(+), 226 deletions(-)
create mode 100644 utilities/anttasks/build.xml
create mode 100644 utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$DirectoryFilter.class
create mode 100644 utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$NonDirectoryFilter.class
create mode 100644 utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.class
create mode 100644 utilities/anttasks/lib/ant.jar
create mode 100644 utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/AbstractDirResourceCollection.java
create mode 100644 utilities/anttasks/src/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.java
diff --git a/utilities/anttasks/build.xml b/utilities/anttasks/build.xml
new file mode 100644
index 000000000..ab1cf855a
--- /dev/null
+++ b/utilities/anttasks/build.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$DirectoryFilter.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection$DirectoryFilter.class
new file mode 100644
index 0000000000000000000000000000000000000000..610bbcfa7d0abc6777b11473f4844576993f2f8f
GIT binary patch
literal 966
zcmb_b%W70X5Ir@S@j5rxWD+&LjnN5A60k+wNW{$qK^P)F$U-F0b5o-oJKfT^C*VK1
zaiM`M`~W{ntiDbpX5nf!_2@ozy6P1D^VjhY01vU+MiWa?2-^eR8>`X>$JVL??VL43b!cMnY8;I<(Qu`-i&0k}E45|9mKlvWuq*i$SAHBy
z?t5#wjK;f7VSZwqiBAbHd()*}+aWajevb+B1LJsmd@$tjMh~r=EDn6B?T!v6<&(o^
z8dA{Gw6y2L=V!)74us;la~%3sR}~9jcdCtc&pekj(Phb>B4MF7*w=?z8Ly-l-duYt
zGmRu7%>8>q$Y0muCLAG={!jS(iMBw7^99w
z!+jB2wsCsM6VYdSX@kY-E5fX){>nuVhzK&(ZD2+IKnt=1P^XgwlCRN_yp3G!tYnWQ
zZ-~#=H@<<^kI?v9V+yfSCH4px#1?g&V-5?F$&|P_VR$S)F|;Yx15PjZkShCr)DIYE0PzWe(r5Yh_MF=Ss64DX`t$N^soUH?HUAyu+mHJos
z16;UpXpuNn>a{^
zoh7D8_b
zr$RhV#(^Z=^{t_~X+rDvUn=dTW5`|^BVA96vXoRKCOT{9?-#>nL{Z3H&oI-?x5S>{
z%5oY2#k^^+9md7nv9>jr7F^H&T_RsPnDfl6pc6V(Xw^f~Gv
zS-{%uup|025ycIpWSbN{r8pv=E-oE_Eq+Jzt*Xh$QWx1Hw8&=FImHxaC?b})JVwaL
z2ZYwrA!?tI#9t8CzEYw_O=lp-70B$b!Z8T7;0mr%`z+Pf5j9@~q&W&ATtl0Dm@>v~
HOoROdQfn4)
literal 0
HcmV?d00001
diff --git a/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.class b/utilities/anttasks/classes/edu/cornell/mannlib/vitro/utilities/anttasks/DirDifferenceResourceCollection.class
new file mode 100644
index 0000000000000000000000000000000000000000..25048a6839b8ec15389fb8df2ca9a945d3b3b2e4
GIT binary patch
literal 5320
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
SM%k<517{rpS;Frpp!^?2I|JAN
literal 0
HcmV?d00001
diff --git a/utilities/anttasks/lib/ant.jar b/utilities/anttasks/lib/ant.jar
new file mode 100644
index 0000000000000000000000000000000000000000..704717779f6d0d7eb026dc7af78a35e51adeec8b
GIT binary patch
literal 1323005
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