From e0105687fd275c82530a5d1b750b885c21269b4d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 10 Oct 2003 09:31:22 +0000 Subject: [PATCH 01/30] This commit was manufactured by cvs2git to create tag 'taglib1-0'. Sprout from master 2003-10-10 09:31:21 UTC Erik C. Thauvin 'Commit for 1.0 release.' Delete: CVSROOT/checkoutlist CVSROOT/commitinfo CVSROOT/config CVSROOT/cvswrappers CVSROOT/editinfo CVSROOT/loginfo CVSROOT/modules CVSROOT/notify CVSROOT/rcsinfo CVSROOT/taginfo CVSROOT/verifymsg --- CVSROOT/checkoutlist | 13 ------------- CVSROOT/commitinfo | 15 --------------- CVSROOT/config | 14 -------------- CVSROOT/cvswrappers | 23 ----------------------- CVSROOT/editinfo | 21 --------------------- CVSROOT/loginfo | 26 -------------------------- CVSROOT/modules | 26 -------------------------- CVSROOT/notify | 12 ------------ CVSROOT/rcsinfo | 13 ------------- CVSROOT/taginfo | 20 -------------------- CVSROOT/verifymsg | 21 --------------------- 11 files changed, 204 deletions(-) delete mode 100644 CVSROOT/checkoutlist delete mode 100644 CVSROOT/commitinfo delete mode 100644 CVSROOT/config delete mode 100644 CVSROOT/cvswrappers delete mode 100644 CVSROOT/editinfo delete mode 100644 CVSROOT/loginfo delete mode 100644 CVSROOT/modules delete mode 100644 CVSROOT/notify delete mode 100644 CVSROOT/rcsinfo delete mode 100644 CVSROOT/taginfo delete mode 100644 CVSROOT/verifymsg diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist deleted file mode 100644 index b04b350..0000000 --- a/CVSROOT/checkoutlist +++ /dev/null @@ -1,13 +0,0 @@ -# The "checkoutlist" file is used to support additional version controlled -# administrative files in $CVSROOT/CVSROOT, such as template files. -# -# The first entry on a line is a filename which will be checked out from -# the corresponding RCS file in the $CVSROOT/CVSROOT directory. -# The remainder of the line is an error message to use if the file cannot -# be checked out. -# -# File format: -# -# [] -# -# comment lines begin with '#' diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo deleted file mode 100644 index b19e7b7..0000000 --- a/CVSROOT/commitinfo +++ /dev/null @@ -1,15 +0,0 @@ -# The "commitinfo" file is used to control pre-commit checks. -# The filter on the right is invoked with the repository and a list -# of files to check. A non-zero exit of the filter program will -# cause the commit to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/config b/CVSROOT/config deleted file mode 100644 index ff43ec0..0000000 --- a/CVSROOT/config +++ /dev/null @@ -1,14 +0,0 @@ -# Set this to "no" if pserver shouldn't check system users/passwords -#SystemAuth=no - -# Put CVS lock files in this directory rather than directly in the repository. -#LockDir=/var/lock/cvs - -# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top -# level of the new working directory when using the `cvs checkout' -# command. -#TopLevelAdmin=no - -# Set `LogHistory' to `all' or `TOFEWGCMAR' to log all transactions to the -# history file, or a subset as needed (ie `TMAR' logs all write operations) -#LogHistory=TOFEWGCMAR diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers deleted file mode 100644 index 0accaf1..0000000 --- a/CVSROOT/cvswrappers +++ /dev/null @@ -1,23 +0,0 @@ -# This file affects handling of files based on their names. -# -# The -t/-f options allow one to treat directories of files -# as a single file, or to transform a file in other ways on -# its way in and out of CVS. -# -# The -m option specifies whether CVS attempts to merge files. -# -# The -k option specifies keyword expansion (e.g. -kb for binary). -# -# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) -# -# wildcard [option value][option value]... -# -# where option is one of -# -f from cvs filter value: path to filter -# -t to cvs filter value: path to filter -# -m update methodology value: MERGE or COPY -# -k expansion mode value: b, o, kkv, &c -# -# and value is a single-quote delimited value. -# For example: -#*.gif -k 'b' diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo deleted file mode 100644 index d78886c..0000000 --- a/CVSROOT/editinfo +++ /dev/null @@ -1,21 +0,0 @@ -# The "editinfo" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo deleted file mode 100644 index 5a59f0a..0000000 --- a/CVSROOT/loginfo +++ /dev/null @@ -1,26 +0,0 @@ -# The "loginfo" file controls where "cvs commit" log information -# is sent. The first entry on a line is a regular expression which must match -# the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is a filter -# program that should expect log information on its standard input. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. -# -# You may specify a format string as part of the -# filter. The string is composed of a `%' followed -# by a single format character, or followed by a set of format -# characters surrounded by `{' and `}' as separators. The format -# characters are: -# -# s = file name -# V = old version number (pre-checkin) -# v = new version number (post-checkin) -# -# For example: -#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog -# or -#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog diff --git a/CVSROOT/modules b/CVSROOT/modules deleted file mode 100644 index cb9e9ef..0000000 --- a/CVSROOT/modules +++ /dev/null @@ -1,26 +0,0 @@ -# Three different line formats are valid: -# key -a aliases... -# key [options] directory -# key [options] directory files... -# -# Where "options" are composed of: -# -i prog Run "prog" on "cvs commit" from top-level of module. -# -o prog Run "prog" on "cvs checkout" of module. -# -e prog Run "prog" on "cvs export" of module. -# -t prog Run "prog" on "cvs rtag" of module. -# -u prog Run "prog" on "cvs update" of module. -# -d dir Place module in directory "dir" instead of module name. -# -l Top-level directory only -- do not recurse. -# -# NOTE: If you change any of the "Run" options above, you'll have to -# release and re-checkout any working directories of these modules. -# -# And "directory" is a path to a directory relative to $CVSROOT. -# -# The "-a" option specifies an alias. An alias is interpreted as if -# everything on the right of the "-a" had been typed on the command line. -# -# You can encode a module within a module by using the special '&' -# character to interpose another module into the current module. This -# can be useful for creating a module that consists of many directories -# spread out over the entire source repository. diff --git a/CVSROOT/notify b/CVSROOT/notify deleted file mode 100644 index 34f0bc2..0000000 --- a/CVSROOT/notify +++ /dev/null @@ -1,12 +0,0 @@ -# The "notify" file controls where notifications from watches set by -# "cvs watch add" or "cvs edit" are sent. The first entry on a line is -# a regular expression which is tested against the directory that the -# change is being made to, relative to the $CVSROOT. If it matches, -# then the remainder of the line is a filter program that should contain -# one occurrence of %s for the user to notify, and information on its -# standard input. -# -# "ALL" or "DEFAULT" can be used in place of the regular expression. -# -# For example: -#ALL mail %s -s "CVS notification" diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo deleted file mode 100644 index 49e59f4..0000000 --- a/CVSROOT/rcsinfo +++ /dev/null @@ -1,13 +0,0 @@ -# The "rcsinfo" file is used to control templates with which the editor -# is invoked on commit and import. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being made to, relative to the -# $CVSROOT. For the first match that is found, then the remainder of the -# line is the name of the file that contains the template. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo deleted file mode 100644 index 274a46d..0000000 --- a/CVSROOT/taginfo +++ /dev/null @@ -1,20 +0,0 @@ -# The "taginfo" file is used to control pre-tag checks. -# The filter on the right is invoked with the following arguments: -# -# $1 -- tagname -# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d -# $3 -- repository -# $4-> file revision [file revision ...] -# -# A non-zero exit of the filter program will cause the tag to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg deleted file mode 100644 index 86f747c..0000000 --- a/CVSROOT/verifymsg +++ /dev/null @@ -1,21 +0,0 @@ -# The "verifymsg" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. From acb262f5d75d36f12f58bafd162b1c6b3f60bba7 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 10 Oct 2003 20:17:18 +0000 Subject: [PATCH 02/30] Typos fixed. --- google-taglib/htdocs/howto.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/google-taglib/htdocs/howto.html b/google-taglib/htdocs/howto.html index ca6ec0d..2947655 100644 --- a/google-taglib/htdocs/howto.html +++ b/google-taglib/htdocs/howto.html @@ -71,7 +71,7 @@ body,td,font,.p,a{font-family:arial,sans-serif}

    1. Search & Display the - Results of a Goggle Search + Results of a Google Search

1.1 Create a Search Form
1.2 Create a Result Page
@@ -79,7 +79,7 @@ body,td,font,.p,a{font-family:arial,sans-serif}

-     2. Display a Page Cached by Goggle +     2. Display a Page Cached by Google

2.1 Create a Search From
2.2 Create a Result Page
@@ -88,7 +88,7 @@ body,td,font,.p,a{font-family:arial,sans-serif}

-     3. Display a Goggle Spelling Suggestion
+     3. Display a Google Spelling Suggestion
3.1 Create a Search Form
3.2 Create a Result Page
From bed16e985b035b3f21842960388c7febb46063bd Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 13 Oct 2003 23:43:20 +0000 Subject: [PATCH 03/30] Added support for specifying a file type extension in the search tag. --- .../net/thauvin/google/GoogleSearchBean.java | 5 + .../src/net/thauvin/google/TagUtility.java | 5 + .../net/thauvin/google/taglibs/Search.java | 254 ++++++++++-------- google-taglib/tlds/google.tld | 5 + 4 files changed, 156 insertions(+), 113 deletions(-) diff --git a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java index eca459b..e120882 100644 --- a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java +++ b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java @@ -95,6 +95,11 @@ public class GoogleSearchBean */ public static final int DEFAULT_START = 0; + /** + * The default filetype. + */ + public static final String DEFAULT_TYPE = ""; + /** * The next keyword. */ diff --git a/google-taglib/src/net/thauvin/google/TagUtility.java b/google-taglib/src/net/thauvin/google/TagUtility.java index 20e56b2..8feadd2 100644 --- a/google-taglib/src/net/thauvin/google/TagUtility.java +++ b/google-taglib/src/net/thauvin/google/TagUtility.java @@ -147,6 +147,11 @@ public class TagUtility */ public static final String START_PARAM = "start"; + /** + * The name of the (file) type request parameter. + */ + public static final String TYPE_PARAM = "type"; + /** * Protected constructor to disable instantiation. */ diff --git a/google-taglib/src/net/thauvin/google/taglibs/Search.java b/google-taglib/src/net/thauvin/google/taglibs/Search.java index be161e5..49f1d1f 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/Search.java +++ b/google-taglib/src/net/thauvin/google/taglibs/Search.java @@ -42,7 +42,6 @@ import net.thauvin.google.TagUtility; import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; - /** * A custom tag used to perform Google searches. * @@ -54,14 +53,15 @@ import javax.servlet.jsp.PageContext; public class Search extends QuerySupport { private GoogleSearchBean bean = null; - private String lr = GoogleSearchBean.DEFAULT_LR; - private String restrict = GoogleSearchBean.DEFAULT_RESTRICT; - private String site = GoogleSearchBean.DEFAULT_SITE; private boolean cache = GoogleSearchBean.DEFAULT_CACHE; private boolean filter = GoogleSearchBean.DEFAULT_FILTER; - private boolean safeSearch = GoogleSearchBean.DEFAULT_SAFE_SEARCH; + private String lr = GoogleSearchBean.DEFAULT_LR; private int maxResults = GoogleSearchBean.DEFAULT_MAX_RESULTS; + private String restrict = GoogleSearchBean.DEFAULT_RESTRICT; + private boolean safeSearch = GoogleSearchBean.DEFAULT_SAFE_SEARCH; + private String site = GoogleSearchBean.DEFAULT_SITE; private int start = GoogleSearchBean.DEFAULT_START; + private String type = GoogleSearchBean.DEFAULT_TYPE; /** * Sets the cache attribute. @@ -106,7 +106,7 @@ public class Search extends QuerySupport } catch (NumberFormatException e) { - ; // Do nothing + ;// Do nothing } } @@ -153,116 +153,18 @@ public class Search extends QuerySupport } catch (NumberFormatException e) { - ; // Do nothing + ;// Do nothing } } /** - * doEndTag method. + * Sets the (file) type attribute * - * @return EVAL_PAGE - * @exception JspException + * @param type The new attribute value. */ - public int doEndTag() - throws JspException + public final void setType(String type) { - final String query = getQuery(); - - if (TagUtility.isValidString(query, true)) - { - try - { - bean.setProxyServer(pageContext.getServletContext() - .getInitParameter(TagUtility.GOOGLE_PROXY_HOST), - pageContext.getServletContext() - .getInitParameter(TagUtility.GOOGLE_PROXY_PORT), - pageContext.getServletContext() - .getInitParameter(TagUtility.GOOGLE_PROXY_USERNAME), - pageContext.getServletContext() - .getInitParameter(TagUtility.GOOGLE_PROXY_PASSWORD)); - - bean.getGoogleSearch(getKey(), getSite() + getQuery(), - getStart(), getMaxResults(), getFilter(), - getRestrict(), getSafeSearch(), getLr()); - } - catch (Exception e) - { - throw TagUtility.outputError("search", e); - } - } - else if (!getCache()) - { - bean.reset(); - } - - // Reset the values - reset(); - - return EVAL_PAGE; - } - - /** - * doStartTag method. - * - * @return EVAL_BODY_TAG. - * @exception JspException - */ - public int doStartTag() - throws JspException - { - // Get the Google bean - bean = TagUtility.getGoogleSearchBean(pageContext); - - // Create a new bean if it doesn't exists - if (bean == null) - { - try - { - bean = new GoogleSearchBean(); - - // Set the bean as named session attribute - pageContext.setAttribute(TagUtility.GOOGLE_SEARCH_BEAN, bean, - PageContext.SESSION_SCOPE); - } - catch (Exception e) - { - throw new JspException("An unknown error ocurred while creating the Google search bean."); - } - } - - return EVAL_BODY_TAG; - } - - /** - * Release method. - */ - public void release() - { - super.release(); - - // Reset all attributes - start = GoogleSearchBean.DEFAULT_START; - maxResults = GoogleSearchBean.DEFAULT_MAX_RESULTS; - filter = GoogleSearchBean.DEFAULT_FILTER; - safeSearch = GoogleSearchBean.DEFAULT_SAFE_SEARCH; - restrict = GoogleSearchBean.DEFAULT_RESTRICT; - lr = GoogleSearchBean.DEFAULT_LR; - site = GoogleSearchBean.DEFAULT_SITE; - cache = GoogleSearchBean.DEFAULT_CACHE; - - // Reset the bean - bean = null; - - // Reset the values - reset(); - } - - /** - * Reset the values. - */ - protected void reset() - { - super.reset(); + this.type = type; } /** @@ -352,6 +254,23 @@ public class Search extends QuerySupport return getIntParam(TagUtility.START_PARAM, start); } + /** + * Returns the (file) type attribute. + * + * @return The attribute value + */ + private final String getType() + { + String type = getStringParam(TagUtility.TYPE_PARAM, this.type); + + if (type.length() > 0) + { + return (" filetype:" + type); + } + + return ""; + } + /** * Converts a request parameter to a boolean. * @@ -362,7 +281,7 @@ public class Search extends QuerySupport private boolean getBoolParam(String paramName, boolean defaultValue) { String param = - TagUtility.getParameter(pageContext.getRequest(), paramName); + TagUtility.getParameter(pageContext.getRequest(), paramName); if (TagUtility.isValidString(param, true)) { @@ -382,7 +301,7 @@ public class Search extends QuerySupport private int getIntParam(String paramName, int defaultValue) { String param = - TagUtility.getParameter(pageContext.getRequest(), paramName); + TagUtility.getParameter(pageContext.getRequest(), paramName); if (TagUtility.isValidString(param, true)) { @@ -392,7 +311,7 @@ public class Search extends QuerySupport } catch (NumberFormatException e) { - ; // Do nothing + ;// Do nothing } } @@ -409,7 +328,7 @@ public class Search extends QuerySupport private String getStringParam(String paramName, String defaultValue) { String param = - TagUtility.getParameter(pageContext.getRequest(), paramName); + TagUtility.getParameter(pageContext.getRequest(), paramName); if (TagUtility.isValidString(param, true)) { @@ -418,4 +337,113 @@ public class Search extends QuerySupport return defaultValue; } + + /** + * doEndTag method. + * + * @return EVAL_PAGE + * @exception JspException + */ + public int doEndTag() + throws JspException + { + final String query = getQuery(); + + if (TagUtility.isValidString(query, true)) + { + try + { + bean.setProxyServer(pageContext.getServletContext() + .getInitParameter(TagUtility.GOOGLE_PROXY_HOST), + pageContext.getServletContext() + .getInitParameter(TagUtility.GOOGLE_PROXY_PORT), + pageContext.getServletContext() + .getInitParameter(TagUtility.GOOGLE_PROXY_USERNAME), + pageContext.getServletContext() + .getInitParameter(TagUtility.GOOGLE_PROXY_PASSWORD)); + + bean.getGoogleSearch(getKey(), getSite() + getQuery() + getType(), + getStart(), getMaxResults(), getFilter(), + getRestrict(), getSafeSearch(), getLr()); + } + catch (Exception e) + { + throw TagUtility.outputError("search", e); + } + } + else if (!getCache()) + { + bean.reset(); + } + + // Reset the values + reset(); + + return EVAL_PAGE; + } + + /** + * doStartTag method. + * + * @return EVAL_BODY_TAG. + * @exception JspException + */ + public int doStartTag() + throws JspException + { + // Get the Google bean + bean = TagUtility.getGoogleSearchBean(pageContext); + + // Create a new bean if it doesn't exists + if (bean == null) + { + try + { + bean = new GoogleSearchBean(); + + // Set the bean as named session attribute + pageContext.setAttribute(TagUtility.GOOGLE_SEARCH_BEAN, bean, + PageContext.SESSION_SCOPE); + } + catch (Exception e) + { + throw new JspException("An unknown error ocurred while creating the Google search bean."); + } + } + + return EVAL_BODY_TAG; + } + + /** + * Release method. + */ + public void release() + { + super.release(); + + // Reset all attributes + start = GoogleSearchBean.DEFAULT_START; + maxResults = GoogleSearchBean.DEFAULT_MAX_RESULTS; + filter = GoogleSearchBean.DEFAULT_FILTER; + safeSearch = GoogleSearchBean.DEFAULT_SAFE_SEARCH; + restrict = GoogleSearchBean.DEFAULT_RESTRICT; + lr = GoogleSearchBean.DEFAULT_LR; + site = GoogleSearchBean.DEFAULT_SITE; + cache = GoogleSearchBean.DEFAULT_CACHE; + type = GoogleSearchBean.DEFAULT_TYPE; + + // Reset the bean + bean = null; + + // Reset the values + reset(); + } + + /** + * Reset the values. + */ + protected void reset() + { + super.reset(); + } } diff --git a/google-taglib/tlds/google.tld b/google-taglib/tlds/google.tld index ae1569d..990665d 100644 --- a/google-taglib/tlds/google.tld +++ b/google-taglib/tlds/google.tld @@ -162,6 +162,11 @@ false true + + type + false + true + From 31797b7b7cfb2a3cb22ad929b080855c53e04a1b Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 13 Oct 2003 23:44:03 +0000 Subject: [PATCH 04/30] Added Diego's info. --- google-taglib/htdocs/about.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/google-taglib/htdocs/about.html b/google-taglib/htdocs/about.html index d274d20..0d80ec2 100644 --- a/google-taglib/htdocs/about.html +++ b/google-taglib/htdocs/about.html @@ -71,11 +71,9 @@ body,td,font,p,a{font-family:arial,sans-serif}
  • Matt Croydon
  • -

    From 489f08cb6276a2ef4cc909573144366bd1ebc457 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 14 Oct 2003 08:15:26 +0000 Subject: [PATCH 05/30] Added support for specifying a file type extension in the search tag. --- google-taglib/htdocs/docs.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index 3fd90bd..7290805 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -434,6 +434,15 @@ code {font-size:10pt} site.   + + +

    + type +
    + + Specifies the file type to be searched. (e.g.: pdf) +   +

    For detailed information on the above Google search options, From 2242eb2cb26a98d623f5003c3825e76473c58baf Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 14 Oct 2003 13:01:12 +0000 Subject: [PATCH 06/30] Changed the behavior of the SearchQuery tag. By default only the search keywords (or phrase) are returned. To return the full query (including preset site and file type options) the "type" attribute should be set to "full". --- google-taglib/htdocs/docs.html | 44 +++++++------------ .../net/thauvin/google/GoogleSearchBean.java | 25 +++++++++++ .../net/thauvin/google/taglibs/Search.java | 2 + .../thauvin/google/taglibs/SearchQuery.java | 37 ++++++++++++++-- google-taglib/tlds/google.tld | 7 ++- 5 files changed, 83 insertions(+), 32 deletions(-) diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index 7290805..8780f4a 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -427,7 +427,7 @@ code {font-size:10pt}

    - site + site
    Restricts the search to documents within the specfied @@ -437,7 +437,7 @@ code {font-size:10pt}
    - type + type
    Specifies the file type to be searched. (e.g.: pdf) @@ -675,12 +675,9 @@ code {font-size:10pt}

    The <google:next/> tag is used to - - used to display a link to more search results.
    The <google:previous/> tag is used to used to display a link to previous search results.
    -

    Tag Syntax

    @@ -739,11 +736,8 @@ code {font-size:10pt}

    - The <google:searchComments/> - tag is used to - - - display the comments (if any) included with the current result set. + The <google:searchComments/> + tag is used to display the comments (if any) included with the current result set.

    @@ -755,14 +749,15 @@ code {font-size:10pt}

    - The <google:searchQuery/> - tag is used to - - - display the text of the current query. - + The <google:searchQuery/> tag is used to display + the text of the current query.

    + The specified search keywords (or phrase) are returned by default. + To display the full query (including preset site and + file type options), set the type attribute + to full. +

    @@ -773,12 +768,9 @@ code {font-size:10pt}

    - The <google:searchTime/> - tag is used to - - - display the total server time used to return the search results, measured in - seconds. + The <google:searchTime/> + tag is used to display the total server time used to return the search results, + measured in seconds.

    @@ -790,11 +782,9 @@ code {font-size:10pt}

    - The <google:searchTips/> - tag is used to - - - display the tips (if any) included with the current result set. + The <google:searchTips/> + tag is used to display the tips (if any) included with the current result + set.

    diff --git a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java index e120882..32eb406 100644 --- a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java +++ b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java @@ -115,6 +115,7 @@ public class GoogleSearchBean "The authorization key has not been specified."; private GoogleSearch service = null; private GoogleSearchResult result = null; + private String keywords = null; private GoogleSearchResultElement elements[] = null; private boolean keySet = false; private int maxResults = 10; @@ -168,6 +169,26 @@ public class GoogleSearchBean return keySet; } + /** + * Sets the search keywords. + * + * @param keywords The keywords + */ + public final void setKeywords(String keywords) + { + this.keywords = keywords; + } + + /** + * Returns the keywords. + * + * @return The keywords value. + */ + public final String getKeywords() + { + return this.keywords; + } + /** * Sets the HTTP proxy host, port, user name and password. * @@ -578,6 +599,10 @@ public class GoogleSearchBean { return String.valueOf(result.getDocumentFiltering()); } + else if (property.equalsIgnoreCase("searchKeywords")) + { + return getKeywords(); + } else if (property.equalsIgnoreCase("searchQuery")) { return result.getSearchQuery(); diff --git a/google-taglib/src/net/thauvin/google/taglibs/Search.java b/google-taglib/src/net/thauvin/google/taglibs/Search.java index 49f1d1f..c8b1f43 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/Search.java +++ b/google-taglib/src/net/thauvin/google/taglibs/Search.java @@ -362,6 +362,8 @@ public class Search extends QuerySupport pageContext.getServletContext() .getInitParameter(TagUtility.GOOGLE_PROXY_PASSWORD)); + bean.setKeywords(getQuery()); + bean.getGoogleSearch(getKey(), getSite() + getQuery() + getType(), getStart(), getMaxResults(), getFilter(), getRestrict(), getSafeSearch(), getLr()); diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java b/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java index de530a7..47da919 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java +++ b/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java @@ -4,14 +4,14 @@ * Copyright (c) 2002-2003, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * - * Redistribution and use in source and binary forms, with or without + * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - * Redistributions in binary form must reproduce the above copyright notice, + * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * @@ -20,7 +20,7 @@ * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, @@ -36,6 +36,8 @@ */ package net.thauvin.google.taglibs; +import net.thauvin.google.TagUtility; + /** * A custom tag used to retrieve the query string of a Google search. @@ -47,6 +49,28 @@ package net.thauvin.google.taglibs; */ public class SearchQuery extends SearchResultSupport { + private String type = null; + + /** + * Sets the type attribute + * + * @param type The new attribute value. + */ + public final void setType(String type) + { + this.type = type; + } + + /** + * Release method. + */ + public void release() + { + super.release(); + + type = null; + } + /** * Returns the property provided by this tag. * @@ -54,7 +78,12 @@ public class SearchQuery extends SearchResultSupport */ protected String getPropertyName() { - return "searchQuery"; + if (TagUtility.isValidString(type) && type.equalsIgnoreCase("full")) + { + return "searchQuery"; + } + + return "searchKeywords"; } /** diff --git a/google-taglib/tlds/google.tld b/google-taglib/tlds/google.tld index 990665d..68b0b49 100644 --- a/google-taglib/tlds/google.tld +++ b/google-taglib/tlds/google.tld @@ -181,7 +181,12 @@ net.thauvin.google.taglibs.SearchQuery empty Displays the current search query. - + + type + false + true + + searchResult From 4dbc60af5a6d2574eab9f91ab4592baaf32fe0a0 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 16 Oct 2003 12:16:55 +0000 Subject: [PATCH 07/30] Added support for the src and tlddoc targets. --- google-taglib/.cvsignore | 1 + google-taglib/build.properties | 4 +++ google-taglib/build.xml | 53 +++++++++++++++++++++++------- google-taglib/htdocs/about.html | 1 + google-taglib/htdocs/docs.html | 6 ++-- google-taglib/htdocs/howto.html | 6 ++-- google-taglib/htdocs/index.html | 3 +- google-taglib/htdocs/license.html | 1 + google-taglib/lib/tlddoc.jar | Bin 0 -> 149902 bytes google-taglib/tlds/google.tld | 27 +++++++++++++-- 10 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 google-taglib/lib/tlddoc.jar diff --git a/google-taglib/.cvsignore b/google-taglib/.cvsignore index c92873e..ec05815 100644 --- a/google-taglib/.cvsignore +++ b/google-taglib/.cvsignore @@ -1,6 +1,7 @@ build dist javadoc +tlddoc *.bat key.txt ChangeLog \ No newline at end of file diff --git a/google-taglib/build.properties b/google-taglib/build.properties index ae81e9c..ea86013 100644 --- a/google-taglib/build.properties +++ b/google-taglib/build.properties @@ -19,6 +19,10 @@ javadoc.dir=javadoc javadoc.title=Google Tag Library javadoc.packages=net.thauvin.google.* +# TLDDoc +tlddoc.dir=tlddoc + # Docs +doc.dir=htdocs doc.license=LICENSE.txt doc.readme=README.txt \ No newline at end of file diff --git a/google-taglib/build.xml b/google-taglib/build.xml index c497ff0..0aa066a 100644 --- a/google-taglib/build.xml +++ b/google-taglib/build.xml @@ -27,6 +27,7 @@ + @@ -44,28 +45,33 @@ + + + + + + - + - - + - - + + - + @@ -78,14 +84,30 @@ - - + + - - + + + + + + + + + + + + + + + + + + @@ -96,12 +118,21 @@ + + + + + + + + + - + diff --git a/google-taglib/htdocs/about.html b/google-taglib/htdocs/about.html index 0d80ec2..416ad05 100644 --- a/google-taglib/htdocs/about.html +++ b/google-taglib/htdocs/about.html @@ -30,6 +30,7 @@ body,td,font,p,a{font-family:arial,sans-serif}   Documentation
      HowTo
      Javadoc
    +   TLD
    arrow About

    diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index 8780f4a..a7592ba 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -32,10 +32,10 @@ code {font-size:10pt}
      Overview
      Download
    - arrow Documentation -
    + arrow Documentation
      HowTo
      Javadoc
    +   TLD
      About

    @@ -430,7 +430,7 @@ code {font-size:10pt} site - Restricts the search to documents within the specfied + Restricts the search to documents within the specified site.   diff --git a/google-taglib/htdocs/howto.html b/google-taglib/htdocs/howto.html index 2947655..a3205eb 100644 --- a/google-taglib/htdocs/howto.html +++ b/google-taglib/htdocs/howto.html @@ -32,9 +32,9 @@ body,td,font,.p,a{font-family:arial,sans-serif}   Overview
      Download
      Documentation
    - arrow HowTo -
    -   Javadoc
    + arrow HowTo
    +   Javadoc
    +   TLD
      About

    diff --git a/google-taglib/htdocs/index.html b/google-taglib/htdocs/index.html index 4af3e52..ec419cb 100644 --- a/google-taglib/htdocs/index.html +++ b/google-taglib/htdocs/index.html @@ -29,7 +29,8 @@ body,td,font,p,a{font-family:arial,sans-serif}   Download
      Documentation
      HowTo
    -   Javadoc
    +   Javadoc
    +   TLD
      About

    diff --git a/google-taglib/htdocs/license.html b/google-taglib/htdocs/license.html index 64a9539..057c5e4 100644 --- a/google-taglib/htdocs/license.html +++ b/google-taglib/htdocs/license.html @@ -29,6 +29,7 @@ body,td,font,p,a{font-family:arial,sans-serif}   Documentation
      HowTo
      Javadoc
    +   TLD
    arrow About

    diff --git a/google-taglib/lib/tlddoc.jar b/google-taglib/lib/tlddoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..b82f56d2b7ec35729061ece05691ae6aed54a56d GIT binary patch literal 149902 zcma%j1C%DgvgWjH{%zZKPun)8ZQGc(ZQHhO+t##g@7#CqIs5j$-S@WYR8^j=FHdGh zMSW2j5vSy(KtQ2?{9_Xb3!wXt!oN;Xf3Gqk$^x_!vZD0ze_^OUAph?F4nzIVFc|?^ z2~iOxWjYyAxG_ff-vqEfdb0xgZ-B6HwO0|vwjw=2SmX5=(II?mTDJW&UE@vI+ey`2 zibG^8>`>SwUA(exF@^&okDqpabg9CaH0R}pGS_7jAP7-YEyua$HoFubwK}~R{2V-41oZ;?3vkgOEtEXNlBRQ!>Gkob6hx>ZxCK{H`d@0*}c5+3DeG-W(<_*6mVYd}u^fs^2@KnP!nR zqfT~ zY5yk)Dw$i`SsDK)IVx+}VvC@D4ZCzUH&{Eel1eNT$~bDQFv{dwi#s|?oX2xf!uui9 zZLMZF5$`nW5Z_JX3kZ(Gh|9A=0V_O~iSyhA{I+$$*l1NX)W}YA{F8aD-Q941ywlVD zgCS}Q@~sX>6hW0pTlI*NGNr@e^=F?Z=(8PvBq|=o3xhvo@=-lq75@0b00Z2-;%2BG zN(`zOs-Wn&7Bn9^WU})F#X7LsN<)!gz9KEzg%_RLIGL5V@6052XAPz*(XVm9J#gNI z5_3*LNbjnw79JlnIf0@L$r;%2&P7Ynb&W#4MYrY)XbQ8B3NPoh-U!} z_kK=dJK~X1x3WGoRSaNY`$3b(2fQ&M2t>=t`+CW{MkZS!R85e4OVy#RuuwuTKP%LR zRAVKDkax$Pt*a__s~Q_1u^b#wMQ}vekyuCD&`Li$@`3PB^C+xCe?_i+*|`wE(nt#z zU_7zP+!LqW(h7H24yHJ_106La!cT!wQCGfgz==oNQy(~d1peCTl)u5A2$z3@Iiim0eBT;V1a4H8<|tYN!)H@49& ze6o!xk0LOSGFA|%5O-rf?to&<^mdFa8H80%1KW` zF;4hrWu+NZ_A*I2V~!=H-ESDbjV|DJd*Z z&7Sbg%%p2og%IuM39y-?0z(q)jB_2NpsPRK zV;7h@ur(?5PLFvC$Q7Pw>QIIj zueJFn;V)@Ixhbn8f5{b5B`M?O)dLag!)TR~ko@)!mH`zeKqNtmbc!%m4D=^KqecTA zvB8+N$KCj)-8TnMMYT#&nk&$_wNa(A=#pk`)uiR=VGo#_d+^=%EK?RV$gkR&9946z zaJ=R{=0E;;-VUGfx}PQfF)US$jo?AxCLX~Xwi*$FvgR=uaBJpls0)nu*cXs!*e`r+xXl$?Jf|cv$!m!*;%=@V{sdfUSn~a4q?u* zJA94@I{<|1E~I5^aqg+}l+Ox8si+=51tDW*1a5eSj zjmCo*qD(L?rFF31#1Rrib?1kU-+n8G5Zw=S`5_Szv-z?bVE)qJ@--3F8Od-#&Dd?AFo>c5AsT-0$~W&r8C%w7E8~u9`tnNd>K(Ci1014a^ew@ykw#K)Y2> zz`d>KjRQVW;tFolt@pe2Yi zHMU^Xo}>-a?FM_DE5!KfQZ zG5^&g4)EFZW{5~^F+9f8RJ9 zN}GstNq@h>;?Rp-5lWh{4R3f{r0k%2yrgIlasd{VfSxp{{wL~Ev%#tKT(C~)5++Gh z6{5dE=&y9^Ud;R2^^Ah`x;ev}x6yww*b&<>+0jiqO8NVV zRx;Z$sba=c;Bn=}l*z!DV8)XK`{nGGXe+$|;%PqNv;*&9H>0^RCAJD%33Z?)!mn6c z58jKSoa6MYX@=c*fb@7b^QETXLWJ~%6iKIk{-|hd9qF|Ig;TbCHdwkwrmbGu2dA|e zbcapvwh!~8wof8FwRl^y+QZUb+Bh_;r;-N*!^Zjr!^TSsfuBRKnA>-uXE;}VTss7r zg|sn;VXGH_*NDg~RZYa1=YltZ3lfZ=dzDcCF3&OERc2TX@3y=^gp9pgr_wOJ_WXaLlnJcR-2 z;>ou95T9a}N>tM$kAS0RD@d%U#v{zFU?KB3)taK@#lSunV_QAhF2cy9(@Mx0E!?Y0 zDIwzh(rP!2N4>ib%b+%2rIM8uJGhf={9a9YcrjvGUdpe6{6B{rvRD4eNB3n1qXSTJ zu}w&)rSAz2-B8DaI!`FI5(KwUQs z$~=qfSC6@!)3%V=fLX^u zH1S|1IRw5%VFcg?lVG85VwqI$KXn>vX-z^JYn2sKTqI{DXq+_%RR%Rpw7_J;d+ty5;W!EmAop@=gNx5GZ_R6f zE0}rHrJ-{} zp~z00r-!eowI5M9QThkhw?)*C|UkwerMvkVFMCR7PWw-*$ z-U{B%$}a?ntrp7Wa@#oAEgG=O@QjcCZq7uATgc2Tl_9@104+8$iQhj%;dA$rCQc4# zW6_bSqN=nZs=6j)ZCZylzqniq!#x$`4exw_SEzC^JiCm)kmXso<77$=uh8}RGF(aP zs`FFyM^<8JTi^$WY|SU?ra3hCpjmx_DKx zx;5*=j$Xq617JY^t0l+%nFNQnhi`m6bLmCTN zCmIy-)Ve<<1Qg8-ne;JYu_I+u97$am^6|nkh91*_f()h&({iF23x;q3=L{R6>aEl| zn(L-)6E91*4qD80HT&QB|A8q>kD*KB|E!+B$v40(l%D@JyvEfWV4lXh0_#uSt1 zdCevxe-bl)l16lLmnXM;GV$a>iQ;(Pnx_d!t>Vhr^{0=|L$+O}x4WIt!6P2zYLjto zA@I)R?XGO;7Qj(!*r`3t!mes@uWIn8HP7J}u9h7{y4z4!$PwMPtLp(BkAKH4NArP3 zG+)g74VTLiDQ{uEsT-YBs$y@ucXY=O@#}^ zmR8M(1MUve?a6`L)Ls>Gh88m6F2-P=A38>_$X&NgMLK%|pHz;ItdYY&lHGo3Zp?p- zG!UnTH0HE3&50ROw>uICm(pabueR$0tCLB;A(KC|j|41U@QSueeDG)M5zN={DPNHu zzg}|cFVbBm3P+nS$eJcMg6uqU1A#LT6enTghZu>yw^4)gpbEUVohpn?x;io{zwy+I z7KWoXO^FX|4N)r$^L$NT5+h#$8mEqu-hCT`DXAefq2ntYeq!33r`M=^Ln>|nG;%D! znyEMs8&gB|?%cfJfec$T-f&}3K_5=7UFJx^wH;1P)ZJ4Sn=N}fN4qD%m0Je3cNYr# zH@2B$i-S%3)D{$*tL}`-U1A5sV^jz8r8BtJW|ld1d<_ZjB9S>fLNqR(KAh=!^EO}H zGina|xo<>ggK;b@sk^CE@(n4m(2;VL;h2`(`R_RWB;I(k)c9lM;aE+*w0Oh7$x__f^Kfr;6FP`!x z{@j~ZEJ7)~C`UT!iz%vIrbLw4C~-2;i&Kfp6gscyT;PogCw~%#M+5tf*CyE&}N84@In+h+iks_|8N-&|UCJ zz#iLspIsu9ks=1cmbV9E;r%1~X6Jhh(|IaJfVL2JO;Oa!-0&184ZB|JW~f&il+xjH zD#n0<0ycC$8_t&j;^*tmTbKa){Zs|BZb=4=mnTCu9hFsZ#1s)5ISccTPAE^_DNLhf zH2dwmA~acAZOW0{Mj}3AL@C#^!TIpOMTw$LutL1P`7943b7ry)$9;|fr1Q$3r7}1s`mw|yG$=@8QWplClgh~T0n=rG_y&aCrywkyJ0jm z!p#sXvC>R{50>*<^t=rG*b|wR^?Ts~c^aV5b@bODK^iT+!Uw5DC)9)y_OyMgeHbxP zPi%*Mgw+VI1H#yw4iC+9T&3&o?~6!*S7&Tv>#ay<;XC_$4;WQ@^1ZFC;beBV5=wqK zv=U0%)QM%9%ckAd0V@W%dUtQeA!z9AsQE}(bA5)3VKevNK(_=l`5|_h7hwvnI?7w_ z&Fu*Wi(PRu5#Q{2b{_};XoP2E=oki6O#t*eCUguF>Ju|6o*@O#wjqTTFAZw*119vn z@2I?6eBKSJ(4Kj4KQnBQDFAwg5!Giv-mQB?e$_*rV$&p~U${PP{Q8|A1KNFO;b`a$ zJGgT-VnVl{^^U1|)Yd+v)4$_TrE%Pn@#QjNza{4SE=kzZliYRVB@Kh>9wYPW@v_4+ zj`S2`*ciKFZ@lcCaZ7diJJObo04PUVJ63_@l~=wrjQ|h?89iy{>Wnq5!S>;`$Mn zW2{+E2=FUN4gIxYyH_vDn^59tj+>ybFoGA3;c$22}aVksO) z*Gyp}isEo5V;$e9IS8Td6A2%|HZ&GnS!I3w$Mu4H_2cyw=Isq};Z@3LT&?pScOT~9 zJk?TC0X3Is(;E12AE{>xbTrDoc;wMHA7&R%t3ieBr&!~FAQ(FT*t0W+_KBt{Nb~v2 z{u4acC(;n%$+ewc!Nfh(60Ie7k=vxELD+CBAq7{>2K+6x z$~xzMql`V@H+y;7fq4L}4Ou3X@Zj;P6>MRjj5|Yqbo!9+APX@4$iEXA*a=I1} zL_s;j%`@O$-r$v>#FV+cr?sJ@9LbvFl13eQlqr$HIC!kQt=T^&wa=7URG!))=dhPbH7kh~V;yVn_ zcM=%=F08{^GhtPUnHjYmEHcpQJ^j=vftSN5%L=?H+6*&mf1Fw(uMlcdsV}~4sOh{d23JRny=NS{_ za9Cp^jd`t6-d0TV`pHL?gomvikdTr*ZGHMA{XBWi&+h}I9&Ee|7;%ioz@g{VvG4rj zHgKD47-X1qfIEUU;sMU=W}9oK7vN`W+hOc!I%BM79Bf{J@mPdE*1iJ(g}MV1%I;os zaoOAtnVL_Y#}rCtsZgy-wo;>1f@LnKVVme6ouFNjl9Xkblo@rYHu>0Eo=NF-nn>Dm~b+}5v@YAIJam(5zW&!6sMtE0>q<#3M3~nKwk*7 zAPrXUoW#aEdjzxstb(A?wR?)TH#s0>$>wxbzhHyLm|)8soH$}(0j#(^O#mDQOx2nV zIHIy)QEP;QT*?9BJGv7N&5ro+_(?1fcbciQ`5VO8IExCC!h^avi@m@&x-874!xe(! zC<#qHJcOIrJ&A@D*7tzX#H`OxorOf7^WR){CnKK(Y~L#}N>!z->y3!cRPwpE(uP0{ zh)!n5i)Dj6w;EA1NI5Gnz_mMka&Q8+d4=aPGVvnp=`xM76=XmM=9t8PAsE2 zPL|K0j(O32{q8{S{Z=)zp!3tV&~@&KKY-FSxK8(rx#ziaV-5W4Ac`HUX`1v3Ee zz7r`?UB-SM1evVTy@=p>4SC%%)IMf6)3T-89P1U8R`XrM&?5sM!*M z&2X+{3TjSbzULt`qE6JwqZftok}Sj{$XfOTroBwa62)wq!~qoOGQyL%uvus@l;bv5 z#6^t}zhXy=I<#O~NwAp3E`s*UPU`vC48qM*@S0+7&kYSvdK($Oof!z@4EYz*Z%CLf zOfO1!mKc|-d1&Vt9MnsA9aS40*Bjo%hi JpfA5p8NO7r7j>aPYT0}yvUryb5rtE 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

    h+I4~I2m7?zw-VaB0PXTy zg+>y>Oe36s=|>(+@X6L(qOq zfCc**{_}yNNbJi>_zPS3OH0@nG5_lWQSfWPyWoq;#~fnMV!Vren-hC6{9K+^%;8rst-ZXE(;?Wgyg89KOpq6L{Q-?4tpR}I4(H|YypZ#k zqU>w*{#^Gkd7(I9vs9abQW$)(`k7j|e$@1<_-sGW5bd8Hgt7qkkibo@EXEfYrVIg| zEtlT%#Q100psMQyoxl${pA*iK`O8n&kJKSa{GOdpm9!@=A1ghfgV`&up|yPZ(-%#7 z{CUT=!s%0H(BGw1=i*)UBEUx;?WTzUbHM-#l<|~*zsZ`uvnN8z65D|9?ad+}7 ziaUmut_6x@5fDk&({r2%FUG-IXbA6g^|6k=(Gt}pX@b{f)kaB@@D`V@l&San?>!i8 zi!TE2e$Ij1JClLT9~eEPs-a4adEg172!hRmcO6na(7V2UcB@k;=i)S}2QK3nH@sn? zsn5GnAg0cm9l9n$&dGu?Hl6#PG|S@D8j`MRD7=|YJV+fYY2Aeuh;>1KrKBp=D_SmbK1%& z(p>B89BWe?=&HY~B#_}8NL(Le^o1uMX8SmaY&SlGY+O$G5ApwM4Aq`wo>0DNF)ix< zO=C#-A2fzW7P3~xPDV~1|4))C_iJ7d$$P!n5e5Kb=br=$aB%b-B|s`6BD4HKtkp=O zG~{aXYqRQN)3Ph%rh${#aR=(=4^jiU6-ha)OwMZd^Oo0YkI&Z&OkQjWLgl`X-{%iR ztTTor^((-D=L(NmDSo;rb0bO7VJLI1Bo9Vn6v=vgxR@Jt<=wMK?a{PaUoGJf`LS48 z+eE_Ppcn0&q+DgK0aT%E5fAc}7iHv1d6|kh%SA}niLe(2FDmyTsYSAU_&V7YC(chf z-6Lh55FyQ3bFUN&FKSz2yFSdDb7iye#z1{j+wmUWNDpCeT1Dw)AWNi~S{?KaWAC3I zP#^?QCy>B?hs1L4q+lvL*@1`t3jC=|)sUX$`8g%khz$w?wSt!MU-?aVE!U?yrAC29 z*K0+Ljj72o6qwA#QttFL_y%rMGq;Jat8i<5CyOQMrM|9A6v+b2Z?Z*2=s7JUz-}~7 z8W%@%+v$`~ zBAuE5eA|T0H5v^vYf~$t+W4~fLRu2vvl(1$EQsqHh*)(Sz zpa~06=Kt+aP(Gh9Z;;dA=$O0`zb$#dY>Y8j!$x3X{XX6~Jl$RHnbE>l>JmL7|2HnIAP_@}%Yyw2`9uZZbvE&Q+WUE#Y%s-^*= z$`v&y94f4o?!{6Kmy$wt&MD2lB~@n$SNLvwJJ>Cj0kbqJOE*17+!SG@iss@Z*ov&W z!X;SoA*F0W$_q`o=VrC*)$%Lrn7V81<{`#-SqQGQay6BR91~5p{$Xetyo%(hh2!h?=fq0vCX{v*!Js*V~P#IU>^_Vhj1+5OS z*BxeujEEH?86EoOSgLwgXX1-e2ZO*Ll$Sa_SBN3r6@Kdm1q&; znxirrwx1v6C_75I2RkstAKi)GV1cxAf6Vs6XQ4EHj_NBQ}i<~rvGyEs2O1OZH{dI^cZT+!D$NltRnT$=K};C3c``clzjaEI6P^Tb8N|Gd2jHFq-{Tk@`hU)Z}z*U_$F_jKLok1XIf zI|P(M?r$Tk{_fyi&-!cEliv~p8CK5QMqlX;mMoU-v!>$(stb`ekNA7RF zb(8ozaYoStu_pIDoN$d5dOun;6Z{OP905z1F$Rpb9HgagKd#@`kk%=|4s&%Q=l1h* zui=|TPzDxo(LCzq-6~h=CnFts2*)i(e(RS4nnt0=F0^pEGagB&N06k)71EwM`TC%t zJTQC(F6y|S0a+@@_pjJdM%X_rDd?IoQSx$ZlC-{#e|X?MqPzZ?rc?1hJfwl~l`=_J zb^`f`NJm2JMRYsV=n5P-RQ*#ZGFfh0!#qh_W_PXP7oZ87^~()p^eGdxYoixF_z+%#;v_h{c!N+ZGd;EJ&Ca7hIEmrBxh3s?|;|ZF#gS` z|3C+H6N7ru(|KlH2}D@8{;0*v7m8Zkg`sQ|u|7*iFax?I#02`dyOa=5xVWiWR_I&8 z&i{=CLpvgHSf~FvQPv3cAe_zA=w!l+C|F^zF^}qX$ zw2<<*^Y=ei8+98MR1GX2dC7X>Y9i#MM(apvgyls~E8H1S66%mhEaaIb`Z1Ig@{Ut| z?F)g^=jjC>8w=~SGM390pOe3*h$jzR9mJ55<%we+f4QzNJ#wG35{KT`qqOD@@)C>^mlzUb~-s~JvT!r=a*ON050Q?)6~Py zUJ9+!x9I%g(gSlOqC?do3R*4;h-b1{=uBp7Y;olEw`p;iTlHopD%wrPUA@ur+ z4XX_`SeIK^jj7fk?0h@{xtYmUcb-%h_T26F0h-EyfkZ_MgqEE&wZDyY{#%oZG#ew9 z9mcKA*Jx>$l=GnWe{$Z{7oS^gPS8EYD?o4^M;t!uDQ1?3<%x4q3VKgx`kyE3hvn?} zRcFZi4)G_P^`RdK*A9{8z%1h<#`#3Qb zmlYOX4Z5s&OC~&k%Z>_&DoOU|CirbVUdu84ZV^s@l}k`@**k*mV|M&+*B!k`2p&W^ z3; zJlzDZ>0%|%DyNoAG-+?*T-46&gLb0zhvjw(n8$i^^JK#H$z1i=?i()D-&s2M2{&qO zAK#@dhI@=2@_By|h%GkSz}pM+%$O)IyoDpEpyPxQFVFd=iEfJ^21VT(b%Y8^#hT=l+&aiICpqX} zzjo|hZx6+Od8&dp$|l}Eo2#ueR^&T&EK{pfuG5cQ{B2~7LxS4!T*W4zfz};s?3%LM zPEDjkG4boM`22{EycvkZn*^p({Xy!KKIZi4UF3e|q3j5KCJK?zCuZh-gT?QG{7L8} zI}3t!@Pf?k2%|U3$XN=v;Xr`tXGlIDW=M`I#@Qp;!#EXahydRy?&6JDx4Vs0Mywy0 zAnmYIA6O7FZGaQL?;nUkrXq6e$t*;fY6$@QlEh*f$2B%0ORoH;KAhl%FXbKS@4vLm zHiT9W)y3nqH+%=CF_4YSspe{8RpeVd$Ti z1l*>+zMW?w=iFA8-qAa3UvV%LW|FNl3CH^_pRfeW{WhH zZ`@{>M`vo!iEXuKLTC1IiCFtNCL0Q?Dr2IUhh|RMfWL{8fYCb9=hy%7fQh9&H)eiU zymXlVR`KZmcg6djs=g6VQg#luRwh<1|7*t5aQDJ}ME}a6J)NFgWs*R1O8Qooh1+Ry zn>2$34a$c_Rs{`CnU2k^@{`JlyGJ1CMY+uCok(gzXe(>G2?-Sznibhn&UA6;xm^3e zZf|GP(!_j7{hPUd-g@tP_WAWCukiJi@BIxtFo6DSEgeEBB%@iL`T1WR%s`ZxY z!w+yN3FtuEsM;a$->lf-hcHlg=m~%V#|1>dKB?LO6@{#DFv)of4Qm2wD1n-W?`U34 z8DBQ@VNnvMywv&hc837gr)csP3IrO9%4X&xW|+Qju)$##)oxe{SgbaO^o{%RTyYSW zxB8MS+A!qQhoBRqNW@aA41fhU(L-j(tY90v&K9Q1yKE!P2(vyUQL4n5%7ln(!{qSy z$S{lgxKr4pR^Y4YKjp1zgv{yoLY6s`wX#mOE6ujbpf?@_zawd8DmV+ZzCSTjO`&yhFgtr*b>5~?7On`?sY*kw zIF=K@DE~q>FmFD-HdUj^NoAjOiM342!_2Grv@qlEhOb_j}2}E2}ioz&X z6IR!8oufj;gQVIQ#s#S~j?8|)WVy^lltO(N1bHV;6NKvVw4Abdu%K~MVwS-{mO$s` zsY;Zw1R@m~5-xMk8E%fk=pb+zF;`BR7%N%u?x-=K?l3Cz)5J@A6h-@40^ZM;w=`O-RRTjxI4qN+d5NWSn^hB$j`GDT-{ ztzmOU3>=MG<$ww`ie|;0m96;;JoevGAjaP^AOS-u5P3T;PaR5Yw6k!}tdnH7^enL4 z8jbgO{G~YJ*X}xXci?sT3qiMnK$KjC`miTz1p>N2FJgMW@Y9~HJxRr$1TaR8nZ=C; zPDI39e<=1A6OWee-LU;AckB>G;^{IZ%y}U+*Clpw9yv&sljM?! zo}HS`Fbgf6q3s*@;Wk=cCMM)uPGb7I&DGgiqgGx>e0Tq9sm#Y!?ZjuGiL>u^$U+!b zN|ct?x|F#};|<{p1>6j3^QH*XOy{lh8Zo?m4kMJwpQl!fCds$pY)rR7ic8l0?#&9u znDuEO6fTh--^yCaSy6iZl-cf4zV6nL7-c3`;Z#y0Y5F6vG&_6M?F%q8!gqJu_C&gy zYBa=-_Xo!y)IN@Gw_C|5q<1j<=`I;IkSvMG6&(x@A{6FPNj zx5;SesQk}MAF5q;hx>88$dUu`wRxWOPN5YDMegJp{9+mtBg7Q_vJ-S0^^zD19`E{O z#zJbvQJD>L>@J@C2YR3zy^4eEuQ#?STN-3rigfo2xfIUW1J;nZ#QkBFudt*8Drj$~{@l zIULuV(pl;v5KLFnw$$ql&v0b7qiF4dCX_eOmUg;$KxKH`z7hk?Ez3=_prL6D5NtY} zqm*C+C8333KM%=b?xu-G_Fjq^`J#}Y`z1&AGRUJqDVX+`W%+SXJ@IOvz?-dNmU1LD2GLF#U3>_*O77A28j((9i$=t}MiVkR?1 zBYJY>BPvT|MsUpuGNS@hxL_O0QlG*iB;~J>&=;cKNxy3q&hD;5P-ukZ2cJmmF~?Ih zT@cS&Ty8lV?;kZ>1;*MV^Nbk!bzHs(N-3DK4;5d_4wBqVOWMMBr0b|5dX5+HLqVaBXQw&^?( z^;1rw7J7)`C0oYwg}v&5C}eM;SMq3WMW;R(ieAy~o#+8O;k(PiOd27ob37IcIli6u z9N$-)V!vV_GF+tPm2$a#HU^rz`(letq%<%RQ7_-kt`6!uORA$f$)OSvfOkAV&Q};J zqbXdfr*n2&+P+r3oa&*?OVAXg4g&F@2xA9Iz1?ILN_*P(2`ypD*Lr=loT^^rf^^?z zZNg&&t|G!Ek|s! z0a-ilyQocx<2Pe#RP++KX7XkS>y7gpyZ~dn!wnm~N#MeSCzsuXsIUnj>k2k&7qC?G zzTU_(fj0pWdd09y3#ueXV;pRGT-|GL8*5DyeieYT*skX(d5#Qqe6NWZCer*54^ewa z-l1$u5c(X%7d?2W;?$p;Pf*-f8_kx8dr>u@WXv+6%`mfhjfJ@sYW+cQb+kc`G!Rhf z_<8cEX{u)*nZmVo<}?b(BK136>p+>(wL+{mx!ml%bwp)xg$wPi(u`TJh3rT_UQhqa zqv`0rXT1?@b3;^JGObgK`D{YCEYZpzL2--a`~}|7o%>~zbKsj;a>JbyFAP+V*zvF; z);Hwqrp%5=EldV#ai{tYHsATClukYBPj7Mu!FiBU%hD@(^H;_n%>^he9hrTgKDr6} zti3V*-r-fh5zgw9#}bRnh&308s%Hm01>M}=aeSM*p`a0!lB)*4N5eyu|27`}2MD2t zkn(@qiPxRx)zS1u>gYyFK|o=cAl3xoVw{zzf|Wy?gUAE}P>En*^6A8y(ItdZqR2$@ zo`3uLGx&|T6?3wf74y0k3(Ow>6J2*L984R8BygesUDLo|LuhwerHM=HTEA-7r_~m)_1&i`xHCA1eomRl* zbX|bDDFl1tLu1zqt@6%{Od9Hmy%}S-QmCq5oI0;I+&!G?0Bj0+8mv0nhN>ach$1p` zXU$L%R)SF(5X=m{X4e(Hi?ehO=_hmA6oi0^o;I^CL^CWD7&Ub(fXGv=6>CRWWvA>$ zNzD=0UGu4!ExB7=ZDWWJ^070Z>;*no<^dD7TlF^i;f1YR>6Wg0KiWztFyLD4!;ety zBdET2H}yB$=sCIJAA60@H~mTjT>X(@Xmg2b_R^5%r8i~9Snj6;t@8HvK{h2@#isjf3s&6_+aOC1v2viY zNI^q3Sc@IPIb{h>LeGN8{~_$1gLLVmB;mIEwr$(CZQZtQyKmdJZQFMDZQHhOe*MmV zF*C6{`)))Lu_tyxHsfbeQ?Msm+h za=(FuIH|0jm_4Ly1zT1*mt&ytB+DZ_0_%``j#uheKGQg#hdnjjV0!RAlKdmU_6~SS zgYxuA{K#;`v0?%aCNT33)Wh@%zCr2|yv4n;xhRhDiNyAZpN=DF;Xl+;M|sw`J(Gqqp-CUSK(};xO;3 zWGsv^(-I*$syCpZy2xf4^jdz+v+9OhGc;m7)Af^G$Y|8zN_i`+k|Ljh*BV8HDH>1e zB;!4*J5LW96;WedWT5#RC3;YeF&ZR}os4Y8?Fqw))?<@do%%V2ieLzDBmw(SB7ROV5MV<pyH1a8t{UJg#?g99o@lQ4n{ z*a6)Iv}3C-tJdsOkGH$Kyl`VQ>6BM?8wK5!gk@;zvpdQbTe`}{gShUn%OB~^dhH@x zcry!&RffJ>mL;;KfjYsjYGV&eDrT)c-fDvRB3Z4oOdPf&HL*n&>#^fWyYiVyN>^_7 zBvyy|W~%N45{t^IgVjY7sP4j@aj0y?8x&Ao<1{%CGl*%cV=R7ad9aE-S?;R6EVq>K z&6NR%O0k)|v4_S}%9r%;8pE7$Q#%EIr;66VKSoZV+w!;6v=y!Xw)K**0)(5~C3~7L z&EeNO9Z=mRd+%;KLvVKLeQ+ut5PZMwVfYkolu-Bvrc;1d0f+t%3Em*!hhBK0!=!oDc?%9*@5;DDpH`Qn(#yEDBW6aUb)KzWz! zJ--BmFCSj{49)}nvHd!OGCNN^Uv93_sxhQ`_FWbcl-!#ql9j{m?6EPoBXWxYH=Lr7 z(HxQtt>O&m_zml|Ozu7(%~c{t>zJ`#WNV;Wverf0H((-Ruu-;bE;%k*w#25SBfIq& zpp>ctf37NJ0!Q3TYneW0xZmZ-{f zA|1nQRjIkm1I|dcY86xM)Xo;#q41orSzX-#b#lsi==fWm&oD{oa8kqNS!O-W3i+tt zLToc`t5JJc?L#BW#X9hk6ySQ433)ry4x7Tn5gRUh;PZ4?2NR{#9&T~2E8}TuDi~Uz zJmO1IPV1c?HzS?pUf_o~7`RGr&SFBE^uJBn{K=wJ8iDY znPLeMjk->aVtm*-4nb3?*r&zKI;kVbtPuN-w`AZ|G5%uGoj z1S8cQZ@SOcZLhK}xGu3o!ClH_^J7kH-d5EYJVD&q(1zhpvr?%e<)PN1j=y)9!_dhv zqCMpYXY9D;!i}`~akucwfw_yPo9nwzG{^wehqg~U*TKOh=TjBobX-eh zKEkiBLqdrefUyubHmAXQ;|W*NCD_CbuAaYFf{k#eumIw zu?l&ynu5nhCr4Q8ec(@(M$-a~2WMh1W?EZ}@k)<&Sg2FLsb2evMJ1zIYz%tdS;9&Ot#&Td?OKRZnzh?%QRw5d181HJXjo5?Q^q`wFU5p@98dUIe;XrB+MfV7hIxUtL4y#b73PCS#oQE%yb#z^!e%R;6=;P zmBBQxe_3jW-SM_UE0=zYrt<2kaxLkqx1ph+ zNBxy1QU73v{vqxv;~y`m`MzCcgpmn)pU79Qy!;@44x!Yjq6HSQLMlD>~kFq8~)0c9C!Ca;h^VQ!1tvD~c zrtmPg+ceaGP0?xrCO<)PkyFsPd;c zI0HEtK17u8v*jrlH5U2D1n7cYdw$>G6{Df;7iM(SBbaD+ghlr?iI?t%mkiHK^x5s) zJNW{?nRN9Z?&x=rfk#)q{f+1sTk)SvO`S+$CuJTfj1?-Jn=VS2W@q8XDA zrPA|i7qD}C=d#%uGhclghQ%ImVKeKA*siCb;j3Q$qF-aX%079qK|K}}P5Gj;?*u45 z&3Gymh;QU_;RKe}9$=Sb-Mx+NRU}j+>{t#F3!|gRHkX%b|NN_!}WxG^)532ye8G%t)BmZ7n>go3&4^eZMJxn%t8s;+YGg*)WbVSK!|BUMyCPXb@$$0tRG@26AVUN{~|x{r)-!i_wQ`x0OD8#hvyP{jY7%rd`l&n=MG_E*4=H7L^Ctz77rmFL8|`c%6HR!+@;SWw<$08&}9FmKbc z$-~+$H}%KLc}KAP*C63C6nzZ;Nup5|e-#Ndlnm4ap&u%~WPH5H5eG>q`LI8hKJ1^N zK>S|2Byk1wIn!Ka;0PTto!ZpVTyAs!%bQMA`<^lj+2p5V-80Pc8&;fZZBrd{!p_vV&c^fpdF4GvuV>rmpWhp!oNHx^8)oRI#Ibz*2yY7%|vsYTXi@N^$(c!&+&bq+;W^v%HOm_jkx8BU$T(bx2(Tnl)l(0Dm z|K~%P>rkX?{Mimg`hh|I?{=gl|JF}A>6`vn3x#E=w9kIW)gySm%9ZdxK1FYpU zw{jPaXe~Z(KEgwDm{_q;|IBO*_{q!7%?m(QCN5sVIUH0o2O84Y0iACaBPA&Va6b>~ z1PFvvIp%LC4n!ovG{PJR>_D^N5s=F|J#GZE!JEVjyj=Pp!w1#e76ff!j5vHu1=gW> zMt@z10((0#LJ|7V9hEPL0D=K4_4PXIGFEbzu^~ocFTv0mnj(mRPeN}>!5)2?z|<_x zDKf7ROE26-ZcgXi^|03a(^PoqLwH}C;950mi-={GvEixN3^v zCz`3YxhV&f;J1>&5=Vv%Xl4>U8Y0g>?8!cr zd}x~F^8|$Kko+s7+$#;`S_>9~NXWh*khCd5J4S>1SbX`x3~@FGPE%ZFMM`+cFeskW z^hm?t5_!zz1a$n<;Rf~AMkV}ccKF*s#AvRYYve)ToD$K{AgR8HV2Zo3T}$Zzgwg@O z2*!-6iQ7M`@#;p^DabM3&^}M(5E7IolxFm6k{8?}4Lj+hY2eO&*Ywag@R><%TyuGd z?6!gwWUohsh7559a<>(W*nB(qhl=Xw9m7}EMTSPw0~~dydVNS;QsaplTeJ zOixsuQK>@xL{p-E6`)=z?acSLZ{-I)kGPhy{JaXUg$&mU^N3(c$yp;^2P4 z=KBTi!o1s)I3f2)d6qs8~^koS)VEY+kTdE~9dG__kE&40tU19e->HR*jqV zY}dBGT){M;#_~}fVizg3yyhh=pDru(w(2?6iMD0>o2quXl$0P_In&bBWL!SIUx_^Z z0%~4(w*+=A!m!Zk?g1d-hQRKpeqeA{Jz~inZ0D2Jh5US075nD)f(|zk3K7h5MvD!a zJf1JB99Ev)TN0xebY?uB0WvxhdZz3v;}W6|2~_?q5z5u?1ExSQWKFndtfk2-(eL<} zN_-K=1<#oGn;_UfOaRR7C-OO;J0WlDk@I-01PO7EXdBQ7GqxSo2I~M!GQ0dI~ z06ycgefc#MY%*f}+0=rD zb1Q&*HD-V`DupuLVNFUE={C`Ca#arHNU&Cq9nHLqc%=KVnkFVO(%w2jpD(?;*9s;n zh>FD%CMs{eOOWakwk}PnWsH9Kj__1+`RffS@@cQWdKN(785&gV%?M@0Uw}ApcFU$K zjU73Jppv>3N1@4u?gfR~>xgv#ULb$Z`52~i&B^t7JpSBS{Ea=DVHj3Lat>*h1$A_2 zCqNO-Q4x;H#H1u#^RSh%@RyPc)uLRM&3oKpf~;wO_~G>dJ4QXWq!4<&*l(57ENYM} zY9F|W!CubuWi`q+vu9Obf5UnM$ z{KO{WNeTrhaY~SZ!bRh%?akAwzbm4YqkoydKetuYDxy>^4~YdSzBrd5FP$CTS@r&= z@>QjAGg{pVO1%$eiOt;V69gx3A`Uf24LAjv@zY(Xm7WLjJ?Ou~Gl4(s^gkLlN`n

    phE#J6_;(E^9fG(IS3D&sQ^#yP>xPKOQucu6>krq#HLs0eUn5s?v5~WKxATZ=odzA5+yA=S?SAfHX*#kuNGNPj>3PQpaN(i~A2A4RTlF5GouAY@fMK zDEG6YVYX46$y}{gEoEevuDJ?>rF=0nA-#r)bR3B*9{@|CI+tNyG%cV#?{}_$O_@ab z`fjQT9+}-Mez#$f~a%O^wHr-6&g=fnvKRKW3K}0E2`cP+Q!Kjrq*^+>>{go z{x=XInO63n&kbf&qo0u!QLGAXL62w)>RYEQRObpg%E-SEC5BS{S49s~+uyv22WMNC zLJ;7ikoVRd?H}YVEAeM>k{&s@CPUZ$sG`ck zK#vVL&Pk<6BI#t(tY}MRn1jS58t0WgQ2hOt$qz=pLvd0y?9bM-7q@Kja)#mnCJu$A zBC9kQ%#3&jRfF{E{y@wNR=_!RcyZ1idpLlN^&)2zHFqRf0K$YN@UtYR6pcIeDb!V@ zG=NQGFl}TnL7t{zHpn9p0Xa}P8dV~0CukLMdhPjaQlb^p#-Ul~9gQ0qOqZG}6kd1- z(9c4@(26fw6jqZwr?7LpK2S>#{kWbIzI2zGMbjt%OLCuO#&F)KfV{k=HC8%^g4(+{ z1QUH?egC^f|EpxBh+vaMA&ooxUhs=W;HXRfRvdq9Mn$YM1MnbteE2QD$zn7Ru+q#RolU1dgZ zmtD_J$)gDJ&~5TV@I#kdU1?x=Z5QC=+j+H1%t7t<4r6T!9Dl%Pi9WG z-7cjFPNR+2F4BkOXYgE8)3FzyOeJr{myXK|jC!j?n5{*XB%6Kjw_PDvrDVYALsVI` zp%|0xxWkdoFPWS7Lt8_~kB`IDJQ%(NxI?~DxwDhUn(!5CY+8HN&;P)A6Or@tfBmG# zo&Ia0;=g`nCeAiL3A(m6|23RwY&x#9BKkb*`Y~EtPpju!v0bj_t;8AswHJ%yiH~=A zn*)>(H;_ia28gfhX#4&|-3fs}jK7p}gsXbpLGb&0xumUCt33VqXbqhSr^lUZwa#MI zL?x_~3!u+#s)|YQ-p@gOTjgQ5>o#Zp1<$>_pi3)Gy>m>GPHU(OVCqPVs&F4C7G5|G zflAEJ3>MFOyArS8EMRIYH=|zR?CtN}&fUZRjE8J*N^z9xKM;|d=p;0#p^aZD813K%M1%lMFErmL^pum9IOsO99`rZR4qCq% zYPEQ066P>H=?#pL8{(h)+}T(g04%z;72&{XNQCy|M5i0m2|5wv#;P{>zeUzQ!&Dmw zj~<&^IcyXet0ib?Xiv8Lemwf@M~IH<136Nm+#tNq!ceqiH6A796@xVtuqArGz-h)@VGk2* z&#$PLPIL;}kQ_rfM(y5u_-PB%04?PoZ%)lrQ-f9l#8CiaoXaDpa+Jm-+}ShKruC7E zB{O8WAUJwA$W{N$^Kv&jMGKlY62o%Rcq#2}w3l9xmz_!gtc!O^e3gY-JT^sxMMf5i2QhPt6Y1Atw~Nuy|UU={Xg;pWWNeifDIx4ETfx82s=jkAS(4NzOLH4VF#WL(PB+674DrN$np zexmeLy*VeOOM7610mR>If3<(D_KlqYXqC0K8Bb7(+t&Y;rVI)&^~N?Qy^gg<<{ z(GfXP$72^#sI2ohaGmf4N}gb-3uF(!ina$rUzdk8kfOu68#Oc7=|Q2e~!xXK3QjZ&|kKa zHi2w3Vl-9zwPdHJhQQs{T^bF32W#_z)S7DiE_)qMARD`6oK%;t!)VNqu1B&^42;#3 zPbCSuPtca)PEq3O&-kV$E=8odwUQm5=FdO^_A`*sct*oa<80+sJq97iy>@ex)BwhLFtB3xxI{C3M2Rn z58=E+<*(Vp#hi~mauWMkt+)O&kgy`n^Wc(K^^qxfk}PaRC#-H2Ss!=*$3RlCDA%?7 z$W%e5J(a04zWu7+Y|N1uTx%>>rCsFeg3uW8aj6pYc;D`PP3uqiQVG;wBEXZAVT65G z1TKQ8YzZ49O+h5KSkGFMg~gpYq(+Uw!CM#W>}9r$>}Eq@dm(z>mee6HB8!8WEhzHH zZ6xMw6s_$VLSQF4)7N}RTDMGiKupRYlHkj|CxUp{O73Yxm({Jzl}oBAY3jQkNsRXf}EtH4<95XE-WDObNP@hGEAJ-e>>TQi~ zjHf@fz9ekn0hb~eyO2cuWAh)aqX+)Sew`7gj9+oB|C>Ic6e4|sEt^(kiZMy|aj#dt z6vG1FcnnoYwY^vCor4RiUptB{DtFq@^Q4I?C9+J)bQind7YaQMEm0q)22+lhNopYd);zc2K;%=(etvc>uE#B(`M-Y z=f!+lhJ|np_>EfE_pn;2jQM&_&cjArI`!>gY+d=~uA%;+P5w(lk^eVwKBWGg&pq>= z0Y}!_=?HG~p)A<)@g>&??U;Q&Y*$C0}MB?<=@THKr?D^7SL!;CnqcGSi#pzd! z6p@Q$MtCEV8I%Vs?!4N=v6v9xX4>gib2T$l8dVL$ufNhTzu`)3HO<5a)9b+(VAJpr zti2-*{fx&0{1!KV{lv+5ybnOWtzffpwG+1;i79f45%m{I`CAC@Bm=$6{RAZ4)qYHW zxD3{f=V)GhH=p3+taxwk%Jbg2&{m5R`e{2{2?>Oqe_A5W_FoQ1Rf9r}b z)iiC_S&_Y?eLzc6Y=nqcr)Z<}JE$~}S7HH#5&-^CnVk-r6t9bqq2=;h;A@~;$&L=*OjWos;4^m2A2QR8CkF%Y$jXz(w+LyaT zA<APOhF==_W|Ro;H?z7R0bi06M%_>*KL`UcD8?^lVr6vd1;Votal}Yv zLX#=UF{{0IIwu*PI5M5sVP5Y8vVI>7V0I0OPh_ZsD!rsRlZIPXHl48)-eB7UpSB)P zh~Mx^DI|h(#AcGCP5i7cxckBFf7k+h8fAp$L1n26@VZqr#}OSs63v8VImj8iYDXZ;_x?=NIrK#&;>K353J+t<>^&=xlra8k=FV7+}5M0w=Gvxeew6Wt3p?l%{?9mNQi)#dV)~hyhnjS%H>Kl zuGEk+%`%kfBGmy3c~eQNEn*XI)cSLiJvl6@WU+HZAo$7ZWeJOlm5bvmziPiWdFr zP4UV!mNWe~lllWL*iYtdf>~%>kAG-YDRN>x$G!=3l-e+1v{bDht3pWyuk1vs0gUbm z>08?=+0>lO0-|heZ9nPYT)pe+a+Gkw=HW%Aye#?NfF!jdQ5{OxUaAE{@lm9VgF@NMVR_^gb+{$rhDGh*rHnDc2?{AR1pdy_g&e zB%v8#`q(-5Ck815%StR$zp^NGH>>cPXJ>IIrKa3D%rme9Vaee_$z%vlsf+!!Kypcp zv9sa_(jKaVk&?h6o(~pDcz;}4oQ&Lt9|iuc!7ziBG7PCOUtF|({%BIUD7H-y{^fOc z9W{ar$r5jczBsKx!4mj(s9ZrfFq++XR~Gg#E}B%D=l9*brkc})&KqbkzN)ugv15Gn zJLnn=0VTg6xeH_M%8dT<%ocWZXMr{=<+in#*A(46Xm35`v00*Fq`iEWsrf>}GHFqm zwomkZD_03SYp1~YjYN6UcA(gc*YbtU^3U0_0B!GL>bha2oTgAKnTx1gS(Zw)Rp-sO z&-SbBa~2aRXz+U_1EpUUNsstIR)n{n{^-=bw$JAoxekhpnEQ$%clo4u>6C+b94SP|NetmOHI)5*kShK8J<{EZMA6$@ z)cN~qzl9if_Z{!7X1&(jC2MTJf^7>a@vTPu1o*w%p7-THsIUM6B{a()8q62_-%9xZ zpymB9PV}dQ|DRh$SeA}!KZX}RLzVSmc}s%c#F|*(D+4R+TZAj1(QMAT&7yMvl7Yb) z7?Gi2!dqMujU*;lv<-;erx1)lw_VgbSS%3RFwkl1G)eWm(d zotLRS=qJlZTRNZM^BY1p93@j$f;fwKg1YqJ|KS< zQi!zG4>3mfpTt=A7sjTSd~H=4x)SL(@Csys0X8GyhW?hauU?6TzC;QU1L;Y#XEfna zX@BReS}wr=k|Ga(_Xwz2ZZ8P#EeIYsE#?%Em|~K0Eq^M)0q9N7$Sg9`E(a4HQy7?$ z6=|7NWgy7R1G+=X-0fPnxg?U`U5OU8SN}+0Xr&4Y=L+XeiC$wc1FC_Cg?i2{PxY<3 zyyMBB|H$v&s_BtHbn+koC#1kvFP)5>1#&EPG289#CSKU~C7J<1JVjOsM~t~7b{v3_ zeltp#N3k$DQv*&UGr?XG$+0k7UuP{lw*fVH8#Q+rdW`H`fQv19ex?*oQgGLB+)8wr z6qwryG-oP6P$3GfP%`3Cqq6`$gp5}ZKkg|tkEnSJN4+>jzfd{lMhR##ZY1uYIr>WR zm=lI<+0P&hVEaM8P@+V)4S&9p9ZfsyN-1(JnCxY`X{w+c{WDkroL^drPsNO*F(LuP z`h~Gq4EMFL?PO2T_3{XrOvQ-_4-OA{yrcqy%a803?edvEW*663>NkM}d_<%;q@of9 zL#Pt;m8l~ZOHxTKdY!^+;WUNd{YN@mm=J$ph-p-dL19^FG+xMUH|$tkCNX2&`W*hU_B8&DG^7>}5)E!s6oNR) zXeHLzD7pGw#0mWw!yNXyfE2%CzM%;IC>QolS*NFDVNJ$kZnb{=$$9{P)NnPe@;*|} zL_;#d7BTU?wx0Nccd}qc5%I0mWXFS`Otv1=0-EdF<$KlwRKGg8xhe9)-g{TN2p;NH zc+p-H`olL7L8GR>4~^DT(-DyIyGB0~{p13%Tl*PnI0E{`i4)AiRWm?f;AHomX=084 zt2CA;QMPL-B%)E)2Zm=DwBR0PtO%LA<0?n@A<6$T!sfZy+1q=uL%KV_*ZT2OctG1c zSYxw7O1|H(mtcb5b=K8b2UfE5-Q-R3M3pYuo7W3GoRlj>@YU`*&b_!B$T|dBb^s>r zS0zAN`(|gf-B~j1QEcoOC4&7=m`v!J0$x_>ABUW{W?^JdRDY)*X%s5IL}M27IgF}J zOzbobu5s&ixb0r;^Jhe~!%FIl5>os)X|xAittJQL5_E@Dl}Un6y%s)UQ-s0qq_I_a z(a-bkeeJc%gs^B8`=-$naubQ);xITQgZ^nThS0yNzaY7`xt9(>S6=g0ZQjsaPnw-q zyEviI?#vmWw>n;&I>5X{S}&x(3}F6Bz7xRU$JY3`+pp8-BipcX{So&Mptss{Qx{{} z&NUx>s-6{1Yzn!at4}w!Rf8N)5d}_FaU8M#keJ%%09JYvFz(q3FC6Kn>tJKbEw39l z2bjxY(d>@Vi}@Mm!1`O#-xu=_R+Tuv)RI}nnN8guh;yl^V;%N1$}STZT>iEhC)rcM zN>6Uh7ljBq+s|@s*EWyNVKjKH^77JBQ6!w9S+wtS|MrtD&MKcsCF=+;KkKJj{av7O z!E$lL4?t`}i%AXShbNm9cgc+g;9ROXnsxh&@{8uJw311RM~7A7{bv=cmE(C(?aWC} ztw%RAO|>hUq+qD@>O7`MwcG9a4v*aG$9rT9_?m!HL$yUYc+j5bHy8{fd1*?G=w8+o zuVh&KZ|WigbD^ijyMRD0c<&&uw=X*HVrV#P?A1v*y!LIm#$CNz`rG|JDR!B)Ufns0 zzEe|P*nw&g5|_-!B!w2m#h%|h+n*86>w0258euibUM=fosUKDJ@0QVli2bh&D-QG( zIHG`H#CeMAXvc<99Z86KQEn@SIwlu4V7Y_T&CGJ?J9bW}n1wM*q4@^pa z1{@Q~_fcrpFQeUmZyAnZ_kTNh$ki5ZB;#}X@bkc)^wOE3w{vn_-L*cGnWOXJR3Ji) zks&vwoKT{d+q0%pFRGlb6&Wzpm{&6MM8wy-<4#G&VIQ7xHC@&}yro^nKa0+<-#y)0 zCPX9lSw5KoqE60EiJjgorhdc?yP;OD`lg>sX4bnIyaxGAIjX#+(Xj+I&a9T7BclK z1#o*TInY%y_+3#Nc6a}zowLuy{+Eq&TuSaR14@8wd$Y->bm@Nb`@dfn>CU*h~ zoyi$&dU+*WlHqSfbjf&` zVGlGH!WSfdzlEm16IYFClDAH#`~ynC$Apx<3wN(Edm2$EdJrZpVsk5>ldRd6>TKj zR2$d{d-~nlLFu7LF}_cLjh=zgoez^^5(l})^5wQQ6|*vhA!OO|=&+N#wfsEmt!({Q z7LK562#G>kL`z$b=lCfqK!C6O0Z1E%*Fnp!y4oav+Mt`q$x{Hcd>%{+34c?w>I|wjYKf~gGBrQ694dXld9VPAQ69} zy@#rFp8O;uH*G9o#jCu<*8Mxoy7)A-Lgo6ir4lZCx>o zkB^nqP=R>w*i+6*nb#{)>}dAjceK;}gD6JR3|@hy1dX;Sz_k1*m!7GYa!CrgO@Ip0 z4?R)RVJb4Ak`yPA(X_DoMUPPR6fHP}2)~Z#s=a%(KHcAOnKz5Q zv_&VcpRQ6e&ZTaE1!Zl)2vjSmDm+A5>;{%OCS!_$1h>AAJWY458>dVHH|D`H%LN1L zHWGx%4tkgRy2i#LgCE`R+%fmCeEeQZvK)>u8B`{r^(d$;6AmMO2$D`!oa_ndS>_-P z6VAUQZbBmoU0c4f#;+{lJPt*58Y)KW9v~DGbILve;FA}aYSfH6uAmiJ6HU3EOERVd zeo;inA@DX8V3dajO7=u8i`oZX`m&(2d{2qPL!ugyld<$D#~a;RNZ1mg8++6#}Oh7cr*nttG>7J}QI@}+Z zIvO4lIqUgpt*g5^ zyTgQZt*-pudY*iov;Qs)_NXq|biuVcIM!IfV0}F9+bJxQE8w|_U*I#u9Arm%92w3H ze~Yz5VJXuU2|zFE|FptD+-sIA8Y+4kJN5lKPQHFHexGE)&%b<^lt5DJ^|i%JXuP3I z73A~zZi$6_f9l{Y0~~tc+aa%Lz7P!>|4s>Iobg7c?ezH%PlH|e+8Br*RyOxv6*yG? z5B{IV#6jQM_&=%H$^RefoUYMpvuTbKJtrx2&0zvCPX6VoLe7x`B9x7DYnEy2BnoPk+X(RTti%B;BZzvAz~ z8KO){gD&aGC7$eywZ3B61r~&QIdB@gyAW$Ti&0U$pzu;Bix>=HI3ejymU$wQv6`}7ekEqAI#qu2 zSJ1IKIsRlCtEQ~8WZA0Nv^#)wP&Obtfo#-YQ-PbX4Fp}Z{um?FUKf0)o6~T`NKPod z78UaGIXa)GqBW5D^Yina8n~7|NrXJ4vij;2VcbP^e|849UFMA#XkAoNI+!tXz3co5 z_TURceAYqDa{HNO0CDkPkR2R@QR?Kl5A??na=w>2^MjLZAID1TCsq!k@DMiHg~;cBRPKaVv3(*DM8APO6Ln z6T}N@LRr7|>0Qg!Xj%ks(XcLcPpm84@$zLzv+Y>rwQYsX7QL!IgB9fV@ZHG5WXJUZ zP23*00sRu?U$1W{$yP*s&S##u2{^$G+=_Fun*g(#$a{!O-8P(+cHN`wQ%f0{r=qF%=XV zEw;aP#Mjl6hbbiKt@Ui(^TY;`SG(!o&{J08h&ZbNJb(@~P~#c=eV*rqe$IV@#Hl;( z7O|8e?ocMERXo8Dm*_7AWIbAR-|l*H3>oXs41%(kqO=o=R3+5eSmk5vsNVmjPeaH8 z=^{KUlDzt*-NYfZ5WL1Jz&bVRcO{YIl0b?k*YL4p7XUmYqD;aAS>UJKj^Nk!J z8_mrgqS~;R;+1;+YqCBr%xU1KMgA?7U2uh~k=b&$>TK>yK5}coSA&+QVKlcYRM+JS z(DoO+e~6yzG(M@~pYk_>{BP~mzbYrpZH$cF{I|h#QPW z27!e^wp#~q_R}#pf8?i7#4jWNdaowuBOa;x1=g0CmZj~0!_&2lxHYpPS&_OK3=LMQ zn59x4x>|F|>85v+IAJndf}aZbhmO7mlux1T z^-S+2c5=j!!>=4w*XNtJNunH0Rg3u=2z9K>F#^D~1?4CrAu2rf3Jp7wUlMr;pn|d= zmq$U|lm5A`612aUE=kr9XJw%84V0_vsr-j3ovPLCx16+h3+svQtV;sOpbVrjrQ z!KE;i7{{|FsO6f*D*RoQ{jY%JuB6c8UV{t*J(!Hv$TR(nzC7 z2?r&m5s>DPhfV?MZV6H829ZWO1TKt z@88VqwKTq>C>AK9QD+eN*5+IJQm&?Tgui2x9w^KA9k>Gmt%__sHAvsUjW=M34K!*h z5u31ea&w60=d!Wgi&+2tO5CdZX2+k~C+^>*C5&G5XWB5LYMF8jQOm6c@wWixD- z;ocHquSjBe7OaV(TfPn6A#fS}-5nQ+LO=9)FIn-bNPZoCVeqN0cSbq71F zXSFT_0({_M%VJ@9^oiZ9{4wk!5AK7ns?umk!yuK^T9JqOm#(3zlQKjkBRgPh#6;2u zqk+(AUub15);r#oDlV;~ZI$|dQEKwZlO|4*%a%!|XyHS5Qd-HUTV9D5Dyr8}XtiS6pge?va)FY( zY>fA!uYIfYT`I_9#$<@{l7Jd6W30L7Up{jw#!tx%k#<-f2ITtqVyO;YwZ!jAZN>0F z(NHgs8d8a`&M~AWX3SaWZKI)!v3(ucduQQcbD6SrzFE*mCAFQ|N45x;5I6WqA>|*P zb{XFpijp`wI&Ku~;%qcr1wT|32ve8~<}vf(yrt4Wa|7YQa8;(goGsyv!sm1%l<3k% zk`6=oK`2#(aILESvi@4Va?2K2(e;bf z7o$+|E{`7C1-maaFeF4uZi4v2KEB7ls&P*!Gm_E#PvaK3wf>6oO*`jd_akt8g5mJWclJDxYM<+zs zQ_RGq&5Jq7T2;`#>}BeRW-%C$sYqqYG(4mZi^`*?P-)N;bZ1AKC^D@26pJqBY**x*xo7WyI^zF8&@d6lBiSTtOqbZnKuG8tb&=bx>r0%o@px*%iJNev?RW9q z<{!2_x>a?9iB$k=-l0jeU*ZGGwxm@{=eg;Qx#E7+`z&m0K4Cs;P4ah5pHBfBy6=S zXLIpkDZKt_O_IZBan^A;2BP04?8lj~se9*J#NF|^xxFQKw3_9l_jrT2tn|SevL)7w z7x8zQlUJWj-FUtGrT+TN?q;*^SAXa42o1Jf-|S?703zk|wDJl#k4I6buAANnz8z(E ztsxRApjnt>lTHISY^1L{Zr*HbcXRVIoAH{6qJsh%NB)S1&Fd$aB?18}*JNm0?Q*Y3 z<|DL4EPMr_Y2lS35wDL4+;)&JU{Vu_(4cn2!=t9|^~>6ZpSe4Ppw@wwA#I`QSUt>B z#*6hz)na|P+HvVlNecfoAMs09b5`|YlJ^^)6jE7vsxw0Bi%$v36E$DFtsV zqM%#6J89Y1stqcagk2j{g7pU151d9X`J&*Rkw9ruuU);7k0q6o;kJcvq7 zG2*U%#HsjJ(t1jqhuQL70`_HF+X*oFZhIasal;hRPAoEC1BKEcstt~%@l}>-Tjzk7 zwo5zbbApj}C)d)o@}u?QzrIS`=P@WipC1lgb{BWV8D6!zVSepngygueGzilh#bkSw z|B(WF&?-4n*s7uDHd`c}ti~<@U*NP}u*x`c#XGN6kCjJ=^7R>>NU zC~CyUhWf~|;RTc*@7!oxMB^s97~#S*8>0RuR55ic6Xj0*a`I9kXWWZ;yb)mc5qVQ4 zt6l68xxL_qv{*ee14(4bqJ%N=%j(sQI^KS`>e?}@-pcw5Ayk|CxP`ebytf?Qx5^pu zIlr8FVH3{WRv7EFyK^m!Yy+qVCQ|Ig5pW_Dx7Ni~fY% z;SMIFRw{{1m;7o=oMb%mL~!FX%auD7!4B@|5@wIK#qffX^o{KmfQY!SW|+&g-d&^o zQk&{qa-piGGe{{HIZoM3Z*?Jf{E;_)+SZyzK~!*9+U@a}>=sB{%AOLg$A;sgEFm?j z(paVAMc1tFi~T8+hTO~--m_e%zzA|d&m<`!;qvGry005h!zZshq^Oaw(PDa+GSFq& zdQN@9!jfxQhRKyGZt+$bXgva*j<%h^Y9Jm5iF}l5;lK293OY8k$;zsZ%Ts;*)=K1g8u;r?>=l{vFYsjLJ_dSi$7yEZX| zj4U*+n6*jF8!uEb!Vsga%2MDkbqVFEiKv~(5mdd46d33l^~y6ikjC#(J&2(GfWsnC z(bB;9ebQma=F5f-r)W(A59=Gbc3i2e*39goGGa>T8dth;-@JYZj#Vft-Wx0E zmF%%?TEVQTWHZHcr69qFGjG?u8A+sQTJyqF01Ln*cayw9gjyr*4}_9mDhSh47;A}1}Ctcqz+69>^f$s9kzvc@oPRrHRUJ@*`@7)o;S zJ@y+5S4T~e3BTMVOg42E5eDIpB?xXCa+*lH%QVE=LDV}rp2pTHaH_B+dykY%I^nXZ ziM!7XVGu9ac_|X;)@aeM{Dd@{pk;ur zan5B!H=`~c56@zAq*Eg)o?$}(oDwb%GLZ-%5%a=$D)3s+CHRu^sGLoPV(ZORtFc`nm|3d&Nl6)|r9GIyIehQlE3M2J z$X`ci{!H6TmF>F5Eb9H~fpV7*zaG8IE)5rr&$@?#DJoX>t27JOhk_&7D+(=7o}0A{ z(Uth&7@!#N~pNQU)sG~_#fbz-M*?TB36zkdgNfy*WM`VqOk zIt%({avyV-cSNmxyLG#|qmgV5hPg#-^sjhlX+qBnYE;7yLRHMK!>H$J%1va^{Cur4o3Du}Xb=(l@vFFI@-TT`=?B_c$PrVGB_(2`Cd!LksP z($C3%CH$OK%HjI<+~~bNOIa%}75De9E}`OL7G(QARnfce=sGc*X5s8Fb;6sMdymxC zy6tLW32+;RhP8nzCzTeNx(S^X<-~M8zRdV!_oV4wbktnj(swqZp|vdZM6@7V~W*ofIS%B-p?sx*sW0)7h-oRe=HrTD$fPKRLov>c&&Egc#%|TW)bw^h!{u!wFKcZZXoj;}$pEwtT6u7@}iK zGqfh1D^oee!kzY!K0U=S-@kG@YBG?yKS?KIOGt|uu{@U@jD3N!>p57CbO=*mTnB4F zVY4kxz_R7~M1G{~%ciP0aj=%!MTna{mV5Y4o-eidgsYI=YTX+tE_(Ng;%^w2G=eb; z5;LX-*BeK$P4_rox}o!^&AXz^n`dV5Fqj4RK6HK&sUG2huvZRo_0^LxRWpmagxt+& z(lPW9-SF+KBgFMZAg8`J?^Lp#nV1Z(4!J=V_GEESI-gWt=E5$Sw=}w$V%f%e{Te0f z>^JFnOG9ffuY7yP|OsH)jzFpmix4!fha#=LQN!Y5cNkk;jO{o^FF>JEf&KCe}7a-A$&9VLYrIK+JvM)_ps;n z;qO@*_dSa5I0UNPEN&W6ofK6kv-A*-u+6;3tCVlMnyS|&os>aRA6#=`b!y;zK>mDA z*QQ>AY%0V$Vn%9JE#-y4{RtoMGU1&o9*no_e3`$3&p-O^>Vgs~CA0R# zd`5VmtLPYBQfzES{XOHswP-AluJ-A6UHknp>9P{t;U0#{1p9)7G%x?Rj`5X>+>Tu> zA&F04@j&09|xMqXM2Qjn+$)k757Sv55w5BhXiWjX(EQ&F`J*SZ%c%RZ* z=sJU(iVoJ88$%CqZ^Obli>$XF&u>}m&ADuS5f!UjEG%NJ!7H{Wj?=t2E0y)`_Ftc^ z$3FEV@^B#e<5KF`RrETDQkOo*lbjE+d(WF3b4wEZ5e6EiH`q4GfZJ(NrM3D&t0r7NeZs(4H2Y0beaAddHb0Arr)?TAKi;&surXoWNHQ(51qy1@i_;j5>tZm#);C-f$M6!#$doYCa^Q_BAA zvOcN;LHS8bBTPw_nyvv3iZsV)dTu+30R6aeUu?qQ5ESer7$ zpG7ELjgzexL?(KJ$o-<*K9a?OEad*aGy*^Ma2(3_z%S~SQMKp-@yU%{ zQFc-a0+gyo@vKde+;0K)%3+kw^s zj(h+MK`<)=5u<(-Xl1^Wm4W4ALm+RYm9C8~*ajww>|fH~cG#Xo9lUxS?s#ao6@oan z7lG;xKqY8bACzY&F-I+uwKM?#liu_=Q~@<;Qy#bpZvYQ~p7TB^3&0}!u|7HqRWt!o zIe~wThB}Iv?*j`pAPWEjurbbfzy+=zqnv?O(lvr+#{0F&)fzPZ%7Af-fZ4o9xDw?5 zjjLn>28&u+*xKn@*x8p@20Q`Qtm3y z0140lGDryrOB!a*iTgmfvt3L$IOuN2LBR){2j(vz2X$kR zlRnt$?{CTVA-cAjq(9mk*)y;$8*32uB?EG1t$K7?MjwrU<(;t3tc0y z&B=QJ?IOC%(z$$q`TM}2IeHJgT+4cu9%wmMXF{tH#c$OdF%V|hxa3}^Z+u>v!?I&g2H zSu_sHXYd(xAp05^2oKPI{>qM-Ct<%%d3v0AIL9Ev zfpx&u__Gtt)3e4L#~#j2bM#@?S8xIgOj9t@6&^<)&Z}^A@T^y!K*LORbC?Xx%WydS z^U>)fvi?`(|IO~hQ8AA`hCnSR=m+m6KbM7Uj|G%IY(3OF4hLI2I$T5Ez~CQ^w0RtQ zI35q(5%-Ach5@xZ6t(d<@^J7K#v{mZaKnXYl__H{B9D1OMaZ{)ui3DPhtJUw^;^2>z5Rco{;qDS zbvc9n+qwzleg^rsbyKnD3Gx}^=5*b}iAz%=#$qMO>gPN4svbdyQ{ zugL$K-KXm&is2LVgZJ;B??b<@oAf7P@PAh~K|aHP0yFr}bCSp3+)md`i7T*>zptB+ z)?sk}KsS}{!r=aaZgPZ2I6i?L_yfTG1KlKu2^;;px+xJCHutx6QvwkT@bBs-Nm3Zl zeX_;lUGLIDH+2f9gx4hHw http://www.thauvin.net/taglibs/google-taglib-@version@ - - The Google Tag Library. - + The Google Tag Library. cachedPage @@ -22,6 +20,7 @@ Displays a page cached by Google. key + Specifies the authentication key. false true @@ -34,21 +33,25 @@ Displays the given property of the current search result element. css + Specifies the HTML link's class attribute. false true name + Specifies the desired property of the current result set item. true true style + Specifies the HTML link's style attribute. false true target + Specifies the HTML link's target attribute. false true @@ -75,16 +78,19 @@ Displays a link to the next search result set. css + Specifies the HTML link's class attribute. false true style + Specifies the HTML link's style attribute. false true target + Specifies the HTML link's target attribute. false true @@ -97,16 +103,19 @@ Displays a link to the previous search result set. css + Specifies the HTML link's class attribute. false true style + Specifies the HTML link's style attribute. false true target + Specifies the HTML link's target attribute. false true @@ -119,51 +128,61 @@ Performs a Google search. cache + Specifies whether results are cached between search requests. false true filter + Activates or deactivates automatic results filtering. false true key + Specifies the authentication key. false true lr + Restricts the search to documents within one or more languages. false true maxResults + Specifies the number of results desired per query. false true restrict + Restricts the search to a subset of the Google web index. false true safeSearch + Enables filtering of adult content in the search results. false true site + Restricts the search to documents within the specified site. false true start + Specifies the index of the first desired result. false true type + Specifies the file type to be searched. false true @@ -183,6 +202,7 @@ Displays the current search query. type + Specifies whether the search keywords or full query should be returned. false true @@ -216,6 +236,7 @@ Performs a Google spelling suggestion. key + Specifies the authentication key. false true From 70a2b27c070d008592092c4adc05c6fb2d69db65 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 17 Oct 2003 02:58:41 +0000 Subject: [PATCH 08/30] Added SF logo to all pages. --- google-taglib/htdocs/about.html | 5 +++-- google-taglib/htdocs/docs.html | 5 +++-- google-taglib/htdocs/howto.html | 5 +++-- google-taglib/htdocs/index.html | 4 +--- google-taglib/htdocs/license.html | 5 +++-- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/google-taglib/htdocs/about.html b/google-taglib/htdocs/about.html index 416ad05..87a1bce 100644 --- a/google-taglib/htdocs/about.html +++ b/google-taglib/htdocs/about.html @@ -23,7 +23,6 @@ body,td,font,p,a{font-family:arial,sans-serif} diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index a7592ba..d873f18 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -28,7 +28,6 @@ code {font-size:10pt}
    -


      Overview
      Download
    @@ -33,7 +32,6 @@ body,td,font,p,a{font-family:arial,sans-serif}   TLD
    arrow About
    -

    @@ -53,6 +51,9 @@ body,td,font,p,a{font-family:arial,sans-serif}
    +

    +  SourceForge.net Logo +

    diff --git a/google-taglib/htdocs/howto.html b/google-taglib/htdocs/howto.html index a3205eb..05ebe32 100644 --- a/google-taglib/htdocs/howto.html +++ b/google-taglib/htdocs/howto.html @@ -27,7 +27,6 @@ body,td,font,.p,a{font-family:arial,sans-serif}
    -


      Overview
      Download
    @@ -37,7 +36,6 @@ code {font-size:10pt}   Javadoc
      TLD
      About
    -

    @@ -57,6 +55,9 @@ code {font-size:10pt}
    +

    +  SourceForge.net Logo +

    diff --git a/google-taglib/htdocs/index.html b/google-taglib/htdocs/index.html index ec419cb..411e0d8 100644 --- a/google-taglib/htdocs/index.html +++ b/google-taglib/htdocs/index.html @@ -22,7 +22,6 @@ body,td,font,p,a{font-family:arial,sans-serif}
    -


      Overview
      Download
    @@ -36,7 +35,6 @@ body,td,font,.p,a{font-family:arial,sans-serif}   Javadoc
      TLD
      About
    -

    @@ -56,6 +54,9 @@ body,td,font,.p,a{font-family:arial,sans-serif}
    +

    +  SourceForge.net Logo +

    -


    arrow Overview
    @@ -32,7 +31,6 @@ body,td,font,p,a{font-family:arial,sans-serif}   Javadoc
      TLD
      About
    -

    @@ -47,7 +45,7 @@ body,td,font,p,a{font-family:arial,sans-serif} - --> + --> diff --git a/google-taglib/htdocs/license.html b/google-taglib/htdocs/license.html index 057c5e4..bc4cd8d 100644 --- a/google-taglib/htdocs/license.html +++ b/google-taglib/htdocs/license.html @@ -22,7 +22,6 @@ body,td,font,p,a{font-family:arial,sans-serif}
    From b1e97d1c28f080a7ebf492d55697f9d50ece6bd9 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 01:27:02 +0000 Subject: [PATCH 09/30] Javadoc fixes. --- .../src/net/thauvin/google/taglibs/Search.java | 3 ++- .../src/net/thauvin/google/taglibs/SearchQuery.java | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/google-taglib/src/net/thauvin/google/taglibs/Search.java b/google-taglib/src/net/thauvin/google/taglibs/Search.java index c8b1f43..8308f26 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/Search.java +++ b/google-taglib/src/net/thauvin/google/taglibs/Search.java @@ -47,7 +47,7 @@ import javax.servlet.jsp.PageContext; * * @author Erik C. Thauvin * @created April 25, 2002 - * @version $Revision$ + * @version $Revision$, $Date$ * @since 1.0 */ public class Search extends QuerySupport @@ -161,6 +161,7 @@ public class Search extends QuerySupport * Sets the (file) type attribute * * @param type The new attribute value. + * @since 1.0.1 */ public final void setType(String type) { diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java b/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java index 47da919..776b4d8 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java +++ b/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java @@ -44,7 +44,7 @@ import net.thauvin.google.TagUtility; * * @author Erik C. Thauvin * @created April 29, 2002 - * @version $Revision$ + * @version $Revision$, $Date$ * @since 1.0 */ public class SearchQuery extends SearchResultSupport @@ -55,6 +55,7 @@ public class SearchQuery extends SearchResultSupport * Sets the type attribute * * @param type The new attribute value. + * @since 1.0.1 */ public final void setType(String type) { @@ -78,12 +79,12 @@ public class SearchQuery extends SearchResultSupport */ protected String getPropertyName() { - if (TagUtility.isValidString(type) && type.equalsIgnoreCase("full")) - { - return "searchQuery"; - } + if (TagUtility.isValidString(type) && type.equalsIgnoreCase("full")) + { + return "searchQuery"; + } - return "searchKeywords"; + return "searchKeywords"; } /** From 7d90e06189fcfa9e2b31e69b3c4ff1ab71ad60b6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 01:27:51 +0000 Subject: [PATCH 10/30] Enabled site search. --- google-taglib/htdocs/about.html | 11 ++++++----- google-taglib/htdocs/docs.html | 11 ++++++----- google-taglib/htdocs/howto.html | 13 +++++++------ google-taglib/htdocs/index.html | 13 +++++++------ google-taglib/htdocs/license.html | 11 ++++++----- 5 files changed, 32 insertions(+), 27 deletions(-) diff --git a/google-taglib/htdocs/about.html b/google-taglib/htdocs/about.html index 87a1bce..f05caaa 100644 --- a/google-taglib/htdocs/about.html +++ b/google-taglib/htdocs/about.html @@ -33,20 +33,21 @@ body,td,font,p,a{font-family:arial,sans-serif} arrow About +

    -


      Overview
      Download
    @@ -32,7 +31,6 @@ body,td,font,p,a{font-family:arial,sans-serif}   TLD
    arrow About
    -

    @@ -52,6 +50,9 @@ body,td,font,p,a{font-family:arial,sans-serif}
    +

    +  SourceForge.net Logo +

    diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index d873f18..e048419 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -37,20 +37,21 @@ code {font-size:10pt}   TLD
      About +

    - +
    diff --git a/google-taglib/htdocs/howto.html b/google-taglib/htdocs/howto.html index 05ebe32..710a0e3 100644 --- a/google-taglib/htdocs/howto.html +++ b/google-taglib/htdocs/howto.html @@ -36,20 +36,21 @@ body,td,font,.p,a{font-family:arial,sans-serif}   TLD
      About +

    - +
    diff --git a/google-taglib/htdocs/index.html b/google-taglib/htdocs/index.html index 411e0d8..3fadce4 100644 --- a/google-taglib/htdocs/index.html +++ b/google-taglib/htdocs/index.html @@ -32,20 +32,21 @@ body,td,font,p,a{font-family:arial,sans-serif}   TLD
      About +

    - +
    diff --git a/google-taglib/htdocs/license.html b/google-taglib/htdocs/license.html index bc4cd8d..ef5ffa1 100644 --- a/google-taglib/htdocs/license.html +++ b/google-taglib/htdocs/license.html @@ -32,20 +32,21 @@ body,td,font,p,a{font-family:arial,sans-serif} arrow About +

    - +
    From 0020932fcb3aa3f3a4ebc68c48025dfcbe6b4343 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 01:51:29 +0000 Subject: [PATCH 11/30] Javadoc fixes. --- google-taglib/src/net/thauvin/google/GoogleSearchBean.java | 4 +++- google-taglib/src/net/thauvin/google/taglibs/Search.java | 2 +- google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java index 32eb406..f961ded 100644 --- a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java +++ b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java @@ -50,7 +50,7 @@ import java.net.URLEncoder; * * @author Erik C. Thauvin * @created April 25, 2002 - * @version $Revision$ + * @version $Revision$, $Date$ * @since 1.0 */ public class GoogleSearchBean @@ -173,6 +173,7 @@ public class GoogleSearchBean * Sets the search keywords. * * @param keywords The keywords + * @see #getKeywords() */ public final void setKeywords(String keywords) { @@ -183,6 +184,7 @@ public class GoogleSearchBean * Returns the keywords. * * @return The keywords value. + * @see #setKeywords(String) */ public final String getKeywords() { diff --git a/google-taglib/src/net/thauvin/google/taglibs/Search.java b/google-taglib/src/net/thauvin/google/taglibs/Search.java index 8308f26..9a3f9ba 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/Search.java +++ b/google-taglib/src/net/thauvin/google/taglibs/Search.java @@ -158,7 +158,7 @@ public class Search extends QuerySupport } /** - * Sets the (file) type attribute + * Sets the (file) type attribute. * * @param type The new attribute value. * @since 1.0.1 diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java b/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java index 776b4d8..01c7137 100644 --- a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java +++ b/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java @@ -52,7 +52,7 @@ public class SearchQuery extends SearchResultSupport private String type = null; /** - * Sets the type attribute + * Sets the type attribute. * * @param type The new attribute value. * @since 1.0.1 From b87a229cc73a14d3782ba5506cd717454e50b99f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 17:25:44 +0000 Subject: [PATCH 12/30] TagUnit initial import. --- google-taglib/google-tagunit/WEB-INF/web.xml | 18 ++ google-taglib/google-tagunit/index.html | 16 ++ google-taglib/google-tagunit/index.jsp | 20 ++ google-taglib/google-tagunit/test/error.jsp | 19 ++ .../google/cachedPage/testSpecification.jsp | 5 + .../test/google/element/testSpecification.jsp | 6 + .../google/endIndex/testSpecification.jsp | 3 + .../estimatedTotal/testSpecification.jsp | 3 + .../google-tagunit/test/google/index.jsp | 7 + .../test/google/next/testSpecification.jsp | 7 + .../google/previous/testSpecification.jsp | 7 + .../test/google/search/testSpecification.jsp | 14 ++ .../searchComments/testSpecification.jsp | 3 + .../google/searchQuery/testSpecification.jsp | 5 + .../google/searchResult/testSpecification.jsp | 5 + .../google/searchTime/testSpecification.jsp | 3 + .../google/searchTips/testSpecification.jsp | 3 + .../google/spelling/testSpecification.jsp | 5 + .../google/startIndex/testSpecification.jsp | 3 + .../google-tagunit/test/images/spacer.gif | Bin 0 -> 1082 bytes .../google-tagunit/test/images/tagunit.gif | Bin 0 -> 789 bytes .../test/images/white-separator.gif | Bin 0 -> 49 bytes google-taglib/google-tagunit/test/index.jsp | 17 ++ .../google-tagunit/test/license.html | 45 ++++ google-taglib/google-tagunit/test/page.css | 50 +++++ google-taglib/google-tagunit/test/results.jsp | 206 ++++++++++++++++++ google-taglib/lib/tagunit.jar | Bin 0 -> 131383 bytes google-taglib/licenses/LICENSE-tagunit.txt | 29 +++ 28 files changed, 499 insertions(+) create mode 100644 google-taglib/google-tagunit/WEB-INF/web.xml create mode 100644 google-taglib/google-tagunit/index.html create mode 100644 google-taglib/google-tagunit/index.jsp create mode 100644 google-taglib/google-tagunit/test/error.jsp create mode 100644 google-taglib/google-tagunit/test/google/cachedPage/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/element/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/endIndex/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/estimatedTotal/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/index.jsp create mode 100644 google-taglib/google-tagunit/test/google/next/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/previous/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/search/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/searchComments/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/searchQuery/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/searchResult/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/searchTime/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/searchTips/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/spelling/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/google/startIndex/testSpecification.jsp create mode 100644 google-taglib/google-tagunit/test/images/spacer.gif create mode 100644 google-taglib/google-tagunit/test/images/tagunit.gif create mode 100644 google-taglib/google-tagunit/test/images/white-separator.gif create mode 100644 google-taglib/google-tagunit/test/index.jsp create mode 100644 google-taglib/google-tagunit/test/license.html create mode 100644 google-taglib/google-tagunit/test/page.css create mode 100644 google-taglib/google-tagunit/test/results.jsp create mode 100644 google-taglib/lib/tagunit.jar create mode 100644 google-taglib/licenses/LICENSE-tagunit.txt diff --git a/google-taglib/google-tagunit/WEB-INF/web.xml b/google-taglib/google-tagunit/WEB-INF/web.xml new file mode 100644 index 0000000..377552c --- /dev/null +++ b/google-taglib/google-tagunit/WEB-INF/web.xml @@ -0,0 +1,18 @@ + + + + google-tagunit + This webapp is a starting point for testing the Google Tag Library. + + TagUnitTestController + org.tagunit.controller.FrontController + + + TagUnitTestController + /test/servlet/* + + + index.html + + diff --git a/google-taglib/google-tagunit/index.html b/google-taglib/google-tagunit/index.html new file mode 100644 index 0000000..32b2591 --- /dev/null +++ b/google-taglib/google-tagunit/index.html @@ -0,0 +1,16 @@ + + + +Set Google Key + + + + +
    +   + + + diff --git a/google-taglib/google-tagunit/index.jsp b/google-taglib/google-tagunit/index.jsp new file mode 100644 index 0000000..78cd9e7 --- /dev/null +++ b/google-taglib/google-tagunit/index.jsp @@ -0,0 +1,20 @@ +<% + // Copyright (c) 2002-2003, Erik C. Thauvin + // All rights reserved. + + String key = request.getParameter("key"); + + if ((key != null)&& (key.trim().length() > 0)) + { + pageContext.setAttribute("google_key", key, PageContext.APPLICATION_SCOPE); +%> + +<% + } + else + { +%> + <%@include file="index.html"%> +<% + } +%> diff --git a/google-taglib/google-tagunit/test/error.jsp b/google-taglib/google-tagunit/test/error.jsp new file mode 100644 index 0000000..e010225 --- /dev/null +++ b/google-taglib/google-tagunit/test/error.jsp @@ -0,0 +1,19 @@ +<%@ page isErrorPage="true" %> + +<%@ taglib uri="http://www.tagunit.org/tagunit/display" prefix="tagunit" %> + + + + + TagUnit - Error + + + + + +

    Oops, there has been a problem...

    +
    <%= org.tagunit.util.ExceptionUtils.getStackTraceAsString(exception) %>
    + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/cachedPage/testSpecification.jsp b/google-taglib/google-tagunit/test/google/cachedPage/testSpecification.jsp new file mode 100644 index 0000000..876b262 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/cachedPage/testSpecification.jsp @@ -0,0 +1,5 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/element/testSpecification.jsp b/google-taglib/google-tagunit/test/google/element/testSpecification.jsp new file mode 100644 index 0000000..43dd2ad --- /dev/null +++ b/google-taglib/google-tagunit/test/google/element/testSpecification.jsp @@ -0,0 +1,6 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + + diff --git a/google-taglib/google-tagunit/test/google/endIndex/testSpecification.jsp b/google-taglib/google-tagunit/test/google/endIndex/testSpecification.jsp new file mode 100644 index 0000000..630a4e5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/endIndex/testSpecification.jsp @@ -0,0 +1,3 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/estimatedTotal/testSpecification.jsp b/google-taglib/google-tagunit/test/google/estimatedTotal/testSpecification.jsp new file mode 100644 index 0000000..630a4e5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/estimatedTotal/testSpecification.jsp @@ -0,0 +1,3 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/index.jsp b/google-taglib/google-tagunit/test/google/index.jsp new file mode 100644 index 0000000..76f3426 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/index.jsp @@ -0,0 +1,7 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/next/testSpecification.jsp b/google-taglib/google-tagunit/test/google/next/testSpecification.jsp new file mode 100644 index 0000000..f8fa598 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/next/testSpecification.jsp @@ -0,0 +1,7 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/previous/testSpecification.jsp b/google-taglib/google-tagunit/test/google/previous/testSpecification.jsp new file mode 100644 index 0000000..f8fa598 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/previous/testSpecification.jsp @@ -0,0 +1,7 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/search/testSpecification.jsp b/google-taglib/google-tagunit/test/google/search/testSpecification.jsp new file mode 100644 index 0000000..22e1ce2 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/search/testSpecification.jsp @@ -0,0 +1,14 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + + + + + + + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/searchComments/testSpecification.jsp b/google-taglib/google-tagunit/test/google/searchComments/testSpecification.jsp new file mode 100644 index 0000000..630a4e5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/searchComments/testSpecification.jsp @@ -0,0 +1,3 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/searchQuery/testSpecification.jsp b/google-taglib/google-tagunit/test/google/searchQuery/testSpecification.jsp new file mode 100644 index 0000000..ca7e9c2 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/searchQuery/testSpecification.jsp @@ -0,0 +1,5 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/searchResult/testSpecification.jsp b/google-taglib/google-tagunit/test/google/searchResult/testSpecification.jsp new file mode 100644 index 0000000..58460a5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/searchResult/testSpecification.jsp @@ -0,0 +1,5 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/searchTime/testSpecification.jsp b/google-taglib/google-tagunit/test/google/searchTime/testSpecification.jsp new file mode 100644 index 0000000..630a4e5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/searchTime/testSpecification.jsp @@ -0,0 +1,3 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/searchTips/testSpecification.jsp b/google-taglib/google-tagunit/test/google/searchTips/testSpecification.jsp new file mode 100644 index 0000000..630a4e5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/searchTips/testSpecification.jsp @@ -0,0 +1,3 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/spelling/testSpecification.jsp b/google-taglib/google-tagunit/test/google/spelling/testSpecification.jsp new file mode 100644 index 0000000..876b262 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/spelling/testSpecification.jsp @@ -0,0 +1,5 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/google/startIndex/testSpecification.jsp b/google-taglib/google-tagunit/test/google/startIndex/testSpecification.jsp new file mode 100644 index 0000000..630a4e5 --- /dev/null +++ b/google-taglib/google-tagunit/test/google/startIndex/testSpecification.jsp @@ -0,0 +1,3 @@ +<%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/images/spacer.gif b/google-taglib/google-tagunit/test/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..e44f8f06ee1fc23f82fcbce7ad46a6fdcc7a8425 GIT binary patch literal 1082 zcmX}rEw36u6vpwV2?Bw^pfE)hJxLQP@g&!vapx;wDp2SqO-PQrqHR)9!zWl(QH};v z6yheNNiUA1;`Be$m%E(Z*=J{Ge><~xzIfA9`+Lpt6|EQltKag!ms|Va#mwY<(|+1) zYKvl{(RH1=@135%eUge(LDApnWQC$(X;Xm502mK51~xoxTDWL543FV4JZ-A*7#_o8 zcnnXQK0JoU@E9J$Qm54L7#_o8cnnXQ<~B1`Q@5bVc?ZYicpQ)8aXf7~@Hid^;XKe8 zye$zoIUSr6$K!a~vf*(&j>qvhp1PEd$MHBG$K!a~^0rl~GgCEnBgYeX0#D!xJb|Zu z26zHb;0Zi|r+pfD0#D!xAi+c1=fYsYjX|d%2t52Kay)@2@C2Th`l$Ch))lI=QYCtL zpfi?iMUE%&Bpz<3xP~Y3B%Z{>kQ6zd#FKau509b9@g$zalVB1{GFWnB(rNQH)$8@t z@Aowr3^W`LH5!dH9*;GdOf;QNHJi;epU<^eEVNuMwOXyTUaz&?ZnfL(wBPS_I2?33 zope5*b-7%0ygYnPz5YGcz*)0000000000A^8LV00000 zEC2ui0LTC^000C3Si0Q)Fv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@Ba&e za7X|ej~xPF$s8bq%&2r4b?&BtNML$WO07>Xb^PUFwOo_9+1OTfYcd&}J44*j?v!4@ zFZnfba#Vmeb`O3_T?34bMGT3BGlGL`d9)klhPY0)v3%1?PL|{n79KIJg&ZNjy>R@{lX2D3=su?_$YN=Z@L2 zWYQX(gB48wUp<6~=qX?*(Az_E0a~S8$;_Xn2(Yp(AQ;72t8pf4I*gJjB&mf`1R$fy z1n0<;^WL2L*TJKpo;l&|WCE4jB1QpE}&n<*d^Dt6ojnb!q@_%P!FUT6k>Qc0+4auC1(N z*t{UfYp!@WV(OI_BX7*yI_K3-gI6y=v}6O_;>2h7zO}PeHcMqIAg&(paogsU!A5Ub z7P`XPGSTNAW=j~AoP1`5MgTUfk<{N>t~C;lbjBt4U2hL6P~L+=%m$xmRIn7;djSRL zpd_$a*j`}ksmN1G07w*rV>6K?6J#R}#E^jlHh3X+_U(g@hvv1lM~dW)5r7~v%@!TB$`VXU$6(mxaFDe$L6p}aso#H3P;kqb9H1xGShxK^=Pzxt z0Ox(a<>{xLuEZ3?n%n(ps12i0apZz!vs_Lq#CIA3CLUeR$ literal 0 HcmV?d00001 diff --git a/google-taglib/google-tagunit/test/images/white-separator.gif b/google-taglib/google-tagunit/test/images/white-separator.gif new file mode 100644 index 0000000000000000000000000000000000000000..38b95b03100899d02fa1b5373ba384add327144c GIT binary patch literal 49 tcmZ?wbhEHbWMp7un8*ME|G@yrQ2fcl$iTqFpaT*G$ulr9`7knA0{}QS3K0MR literal 0 HcmV?d00001 diff --git a/google-taglib/google-tagunit/test/index.jsp b/google-taglib/google-tagunit/test/index.jsp new file mode 100644 index 0000000..b2b2245 --- /dev/null +++ b/google-taglib/google-tagunit/test/index.jsp @@ -0,0 +1,17 @@ + <%@ taglib uri="http://www.tagunit.org/tagunit/core" prefix="tagunit" %> + +<%-- + Tests for TagUnit tag libraries + ------------------------------- + This page contains the tests required to automatically test the basics of + the tag libraries that are a part of the TagUnit framework + +--%> + + + + + + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/license.html b/google-taglib/google-tagunit/test/license.html new file mode 100644 index 0000000..9729cd0 --- /dev/null +++ b/google-taglib/google-tagunit/test/license.html @@ -0,0 +1,45 @@ + + + + TagUnit + + + + + +

    +

    TagUnit license information

    +

    + +
    Copyright (c) 2002, Simon Brown
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are met:
    +
    +  - Redistributions of source code must retain the above copyright
    +    notice, this list of conditions and the following disclaimer.
    +
    +  - Redistributions in binary form must reproduce the above copyright
    +    notice, this list of conditions and the following disclaimer in
    +    the documentation and/or other materials provided with the
    +    distribution.
    +
    +  - Neither the name of TagUnit nor the names of its contributors may
    +    be used to endorse or promote products derived from this software
    +    without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +POSSIBILITY OF SUCH DAMAGE.
    + + + \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/page.css b/google-taglib/google-tagunit/test/page.css new file mode 100644 index 0000000..e5d02f8 --- /dev/null +++ b/google-taglib/google-tagunit/test/page.css @@ -0,0 +1,50 @@ +body, p, table, thead, tbody { + font-family: verdana, arial, helvetica; + font-size: 8pt; + font-style: normal; + font-weight: normal; + text-align: left +} + +h1 { + font-size: 18pt; + font-weight: bold; +} + +h2 { + font-size: 14pt; + font-weight: bold; +} + +a:link, a:visited, a:active { + color: #000000; +} + +.pass { + color: 00CC00; +} + +.warning { + color: FF9900; +} + +.fail { + color: #CC0000; +} + +.error { + color: #CC0000; +} + +.message { + font-size: 8pt; +} + +.banner { + font-size: 8pt; + border-top: solid black 2px; + border-right: solid black 2px; + border-bottom: solid black 2px; + border-left: solid black 2px; + color: white; +} \ No newline at end of file diff --git a/google-taglib/google-tagunit/test/results.jsp b/google-taglib/google-tagunit/test/results.jsp new file mode 100644 index 0000000..b78b4cd --- /dev/null +++ b/google-taglib/google-tagunit/test/results.jsp @@ -0,0 +1,206 @@ + + +<%@ page import="org.tagunit.*" %> +<%@ page errorPage="error.jsp" %> + +<% +String color = "#6699CC"; +TestContextContainer testContext = (TestContextContainer)session.getAttribute(Constants.TEST_CONTEXT); +if (testContext != null && testContext.getStatus().equals(TestContext.PASS)) { + color = "#00CC00"; +} else if (testContext != null && testContext.getStatus().equals(TestContext.WARNING)) { + color = "#CC6600"; +} else if (testContext != null && (testContext.getStatus().equals(TestContext.FAIL) || testContext.getStatus().equals(TestContext.ERROR))) { + color = "#CC0000"; +} +%> + +<%@ taglib uri="http://www.tagunit.org/tagunit/display" prefix="tagunit" %> + + + + + TagUnit - Test Results + + + + + + +
    - +
    + + + + + + + + + + + +
    +

    Test results

    +
    + Hide passes + | + Hide warnings + | + Show all +
    + Ignore Warnings - + Yes + | + No +
    + + +
    +
    +
    + + + + +
    + + + + + + +
    + + + + + + +
    + Passes + + +
    + <% + if (!org.tagunit.TagUnitProperties.getInstance().getIgnoreWarnings()) { + %> + + + + + + +
    + Warnings + + +
    + <% + } + %> + + + + + + +
    + Failures + + +
    + + + + + + +
    + Errors + + +
    + + + + + + + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + + + <% + if (result instanceof org.tagunit.TagTestContext) { + org.tagunit.TagTestContext ttc = (org.tagunit.TagTestContext)result; + out.print(""); + out.print(""); + } + %> + + <% + if (result instanceof org.tagunit.TagTestContext) { + out.print(""); + } + %> + + + + Pass + Warning + Fail + Error + +
    Warning :  
    Failure :  
    Error :  
    + +
    +
    + +
    + License +
    + + + + diff --git a/google-taglib/lib/tagunit.jar b/google-taglib/lib/tagunit.jar new file mode 100644 index 0000000000000000000000000000000000000000..7e879674750fc12b61fc447b13c3066753b52494 GIT binary patch literal 131383 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%0DVXz~S~b+KdzUO~ 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 Date: Sat, 18 Oct 2003 17:26:32 +0000 Subject: [PATCH 13/30] ReadMe for source archive. --- google-taglib/README-BUILD.txt | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 google-taglib/README-BUILD.txt diff --git a/google-taglib/README-BUILD.txt b/google-taglib/README-BUILD.txt new file mode 100644 index 0000000..62c4a1b --- /dev/null +++ b/google-taglib/README-BUILD.txt @@ -0,0 +1,55 @@ +Google Tag Library README (BUILD) +================================= + + +Overview +======== + +This README file describes the Google Tag Library source distribution. + +With the Google JSP Tag Library, developers and designers can easily +incorporate Google queries, search results, cached pages and spelling +suggestions into any web site or application. + +For more information about using the custom tag library in your own web +applications, point your browser to: + + http://google-taglib.sourceforge.net/ + +See the "LICENSE.txt" file for licensing details. + +The Google Tag Library uses the Google Web APIs, but is not associated with +or sponsored by Google, Inc. + +Google Web APIs +=============== + +The Google Web APIs Java library is required in order to build the Google +Tag Library. The library's JAR file (googleapi.jar) should be placed into +the lib directory. + + http://www.google.com/apis/download.html + + +Building the Source +=================== + +The Google Tag Library is built using Ant. + + http://jakarta.apache.org/ant/index.html + + +To build the google.jar, to do the following: + + ant + +To build the google.tld, do the following: + + ant tld + +To list all available build targets, do the following: + + ant -projecthelp + +=========================================================================== +$Id$ \ No newline at end of file From 825e53522994de2d558b36d572e2bdedf615040a Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 17:27:37 +0000 Subject: [PATCH 14/30] Added JSP 1.2 Tag Lib Descriptor (TLD) --- google-taglib/tlds/google-1.2.tld | 251 ++++++++++++++++++++++++++++++ google-taglib/tlds/google.tld | 27 +--- 2 files changed, 253 insertions(+), 25 deletions(-) create mode 100644 google-taglib/tlds/google-1.2.tld diff --git a/google-taglib/tlds/google-1.2.tld b/google-taglib/tlds/google-1.2.tld new file mode 100644 index 0000000..2310b72 --- /dev/null +++ b/google-taglib/tlds/google-1.2.tld @@ -0,0 +1,251 @@ + + + + + + @version@ + + 1.2 + + google + + http://www.thauvin.net/taglibs/google-taglib-@version@ + + The Google Tag Library. + + + cachedPage + net.thauvin.google.taglibs.CachedPage + JSP + Displays a page cached by Google. + + key + false + true + Specifies the authentication key. + + + + + element + net.thauvin.google.taglibs.Element + empty + Displays the given property of the current search result element. + + css + false + true + Specifies the HTML link's class attribute. + + + name + true + true + Specifies the desired property of the current result set item. + + + style + false + true + Specifies the HTML link's style attribute. + + + target + false + true + Specifies the HTML link's target attribute. + + + + + endIndex + net.thauvin.google.taglibs.EndIndex + empty + Displays the current search result end index. + + + + estimatedTotal + net.thauvin.google.taglibs.EstimatedTotal + empty + Displays the estimated total results count of the current search. + + + + next + net.thauvin.google.taglibs.Next + JSP + Displays a link to the next search result set. + + css + false + true + Specifies the HTML link's class attribute. + + + style + false + true + Specifies the HTML link's style attribute. + + + target + false + true + Specifies the HTML link's target attribute. + + + + + previous + net.thauvin.google.taglibs.Previous + JSP + Displays a link to the previous search result set. + + css + false + true + Specifies the HTML link's class attribute. + + + style + false + true + Specifies the HTML link's style attribute. + + + target + false + true + Specifies the HTML link's target attribute. + + + + + search + net.thauvin.google.taglibs.Search + JSP + Performs a Google search. + + cache + false + true + Specifies whether results are cached between search requests. + + + filter + false + true + Activates or deactivates automatic results filtering. + + + key + false + true + Specifies the authentication key. + + + lr + false + true + Restricts the search to documents within one or more languages. + + + maxResults + false + true + Specifies the number of results desired per query. + + + restrict + false + true + Restricts the search to a subset of the Google web index. + + + safeSearch + false + true + Enables filtering of adult content in the search results. + + + site + false + true + Restricts the search to documents within the specified site. + + + start + false + true + Specifies the index of the first desired result. + + + type + false + true + Specifies the file type to be searched. + + + + + searchComments + net.thauvin.google.taglibs.SearchComments + empty + Displays the current search comments. + + + + searchQuery + net.thauvin.google.taglibs.SearchQuery + empty + Displays the current search query. + + type + false + true + Specifies whether the search keywords or full query should be returned. + + + + + searchResult + net.thauvin.google.taglibs.SearchResult + JSP + Loops through the current search results + + + + searchTime + net.thauvin.google.taglibs.SearchTime + empty + Displays the elapsed time of the current search. + + + + searchTips + net.thauvin.google.taglibs.SearchTips + empty + Displays the search tips of the current search. + + + + spelling + net.thauvin.google.taglibs.Spelling + JSP + Performs a Google spelling suggestion. + + key + false + true + Specifies the authentication key. + + + + + startIndex + net.thauvin.google.taglibs.StartIndex + empty + Displays the current search result start index. + + diff --git a/google-taglib/tlds/google.tld b/google-taglib/tlds/google.tld index 723a22b..b2a7496 100644 --- a/google-taglib/tlds/google.tld +++ b/google-taglib/tlds/google.tld @@ -20,7 +20,6 @@ Displays a page cached by Google. key - Specifies the authentication key. false true @@ -33,25 +32,21 @@ Displays the given property of the current search result element. css - Specifies the HTML link's class attribute. false true name - Specifies the desired property of the current result set item. true true style - Specifies the HTML link's style attribute. false true target - Specifies the HTML link's target attribute. false true @@ -78,19 +73,16 @@ Displays a link to the next search result set. css - Specifies the HTML link's class attribute. false true style - Specifies the HTML link's style attribute. false true target - Specifies the HTML link's target attribute. false true @@ -103,19 +95,16 @@ Displays a link to the previous search result set. css - Specifies the HTML link's class attribute. false true style - Specifies the HTML link's style attribute. false true target - Specifies the HTML link's target attribute. false true @@ -128,61 +117,51 @@ Performs a Google search. cache - Specifies whether results are cached between search requests. false true filter - Activates or deactivates automatic results filtering. false true key - Specifies the authentication key. false true lr - Restricts the search to documents within one or more languages. false true maxResults - Specifies the number of results desired per query. false true restrict - Restricts the search to a subset of the Google web index. false true safeSearch - Enables filtering of adult content in the search results. false true site - Restricts the search to documents within the specified site. false true start - Specifies the index of the first desired result. false true type - Specifies the file type to be searched. false true @@ -200,13 +179,12 @@ net.thauvin.google.taglibs.SearchQuery empty Displays the current search query. - + type - Specifies whether the search keywords or full query should be returned. false true - + searchResult @@ -236,7 +214,6 @@ Performs a Google spelling suggestion. key - Specifies the authentication key. false true From 6a4f116fd3788a175be790b78d29bc7170a772f1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 17:30:26 +0000 Subject: [PATCH 15/30] Added tagunit target. Renamed war target to examples. Renamed tld target to tlds. (1.1 and 1.2 TLDs) --- google-taglib/build.properties | 14 ++++++-- google-taglib/build.xml | 60 ++++++++++++++++++++++++---------- 2 files changed, 55 insertions(+), 19 deletions(-) diff --git a/google-taglib/build.properties b/google-taglib/build.properties index ea86013..036d374 100644 --- a/google-taglib/build.properties +++ b/google-taglib/build.properties @@ -12,7 +12,16 @@ dist.dir=dist lib.dir=lib tlds.dir=tlds licenses.dir=licenses -war.dir=${project.name}-examples + +# Examples +ex.dir=${project.name}-examples + +# Source +src.excludes=${lib.dir}/googleapi.jar + +# TagUnit +unit.lib=tagunit.jar +unit.dir=${project.name}-tagunit # Javadoc javadoc.dir=javadoc @@ -25,4 +34,5 @@ tlddoc.dir=tlddoc # Docs doc.dir=htdocs doc.license=LICENSE.txt -doc.readme=README.txt \ No newline at end of file +doc.readme=README.txt +doc.src=README-BUILD.txt \ No newline at end of file diff --git a/google-taglib/build.xml b/google-taglib/build.xml index 0aa066a..345f2ba 100644 --- a/google-taglib/build.xml +++ b/google-taglib/build.xml @@ -5,7 +5,8 @@ - + + @@ -45,33 +46,55 @@ - - - + + + + - - + + - - + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + - + @@ -102,10 +125,13 @@ - + + + + @@ -119,12 +145,12 @@ - + - + From 4647992dcc8700195d615602adaab7ad47e3b86f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 18 Oct 2003 17:30:56 +0000 Subject: [PATCH 16/30] Turned off local VCS. --- google-taglib/GoogleTagLib.iml | 2 +- google-taglib/GoogleTagLib.iws | 244 +++++++++++---------------------- 2 files changed, 84 insertions(+), 162 deletions(-) diff --git a/google-taglib/GoogleTagLib.iml b/google-taglib/GoogleTagLib.iml index c800be7..403273c 100644 --- a/google-taglib/GoogleTagLib.iml +++ b/google-taglib/GoogleTagLib.iml @@ -1,7 +1,7 @@ - diff --git a/google-taglib/GoogleTagLib.iws b/google-taglib/GoogleTagLib.iws index fc6cdcf..508402a 100644 --- a/google-taglib/GoogleTagLib.iws +++ b/google-taglib/GoogleTagLib.iws @@ -16,6 +16,7 @@ + @@ -28,7 +29,7 @@ - + @@ -63,15 +64,9 @@ - + - - - - - - @@ -100,73 +95,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -175,78 +107,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -254,30 +114,102 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -518,16 +450,6 @@ - - - -

  • Diego Doval
  • +
  • + Arjun Ram +
  • From ee4c39cd6b7c5fd0144a2f633cf98747b1e99f97 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 19 Oct 2003 00:21:02 +0000 Subject: [PATCH 18/30] Update instructions with new target names. --- google-taglib/README-BUILD.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/google-taglib/README-BUILD.txt b/google-taglib/README-BUILD.txt index 62c4a1b..02293cb 100644 --- a/google-taglib/README-BUILD.txt +++ b/google-taglib/README-BUILD.txt @@ -36,20 +36,25 @@ Building the Source The Google Tag Library is built using Ant. - http://jakarta.apache.org/ant/index.html + http://ant.apache.org/ -To build the google.jar, to do the following: +To build the JAR, to do the following: ant -To build the google.tld, do the following: +To build the TLDs, do the following: - ant tld + ant tlds + +To build the Examples WAR, do the following: + + ant examples To list all available build targets, do the following: ant -projecthelp + =========================================================================== $Id$ \ No newline at end of file From b974192d4901456938919419a6b5b3e6d1578608 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 19 Oct 2003 01:09:01 +0000 Subject: [PATCH 19/30] Added more instructions. --- google-taglib/README-BUILD.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/google-taglib/README-BUILD.txt b/google-taglib/README-BUILD.txt index 02293cb..024d337 100644 --- a/google-taglib/README-BUILD.txt +++ b/google-taglib/README-BUILD.txt @@ -47,6 +47,10 @@ To build the TLDs, do the following: ant tlds +To build the release archives, do the following: + + ant release + To build the Examples WAR, do the following: ant examples From f89c92091775696c8e6c77774866cc119ef89367 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 19 Oct 2003 01:13:44 +0000 Subject: [PATCH 20/30] Initial import. --- google-taglib/CHANGES.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 google-taglib/CHANGES.txt diff --git a/google-taglib/CHANGES.txt b/google-taglib/CHANGES.txt new file mode 100644 index 0000000..916b71f --- /dev/null +++ b/google-taglib/CHANGES.txt @@ -0,0 +1,12 @@ +Version 1.0.1 (not yet released) + * Added a "type" attribute to the Search tag. + - It can be used to specify the type of documents (e.g.: pdf) to be + searched. + * Changed the behavior of the SearchQuery Tag. + - By default only the specified search keywords (or phrase) are + returned. To return the full query (including preset site and + file type options) the "type" attribute should be set to "full". + +Version 1.0 (released 10-Oct-2003) + * This is the first public release. + * Added support for various HTTP Proxy configuration context parameters. \ No newline at end of file From af5d5d9cf65f0174b6fe42d3b69f312d7727e61a Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 19 Oct 2003 01:14:49 +0000 Subject: [PATCH 21/30] Added support for CHANGES.txt --- google-taglib/build.properties | 3 ++- google-taglib/build.xml | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/google-taglib/build.properties b/google-taglib/build.properties index 036d374..902d8a6 100644 --- a/google-taglib/build.properties +++ b/google-taglib/build.properties @@ -35,4 +35,5 @@ tlddoc.dir=tlddoc doc.dir=htdocs doc.license=LICENSE.txt doc.readme=README.txt -doc.src=README-BUILD.txt \ No newline at end of file +doc.src=README-BUILD.txt +doc.changes=CHANGES.txt \ No newline at end of file diff --git a/google-taglib/build.xml b/google-taglib/build.xml index 345f2ba..1fad8de 100644 --- a/google-taglib/build.xml +++ b/google-taglib/build.xml @@ -103,6 +103,8 @@ + + @@ -128,8 +130,9 @@ - + + From eb9073e55997fc0eecd2f824e0183ff070d7e7b3 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 20 Oct 2003 14:18:15 +0000 Subject: [PATCH 22/30] 1.0.1 release. --- google-taglib/CHANGES.txt | 7 ++-- google-taglib/GoogleTagLib.iws | 35 +++++++++++-------- google-taglib/build.properties | 2 +- google-taglib/htdocs/about.html | 2 +- google-taglib/htdocs/docs.html | 2 +- google-taglib/htdocs/howto.html | 2 +- google-taglib/htdocs/index.html | 2 +- google-taglib/htdocs/license.html | 2 +- .../net/thauvin/google/GoogleSearchBean.java | 16 +++++---- 9 files changed, 42 insertions(+), 28 deletions(-) diff --git a/google-taglib/CHANGES.txt b/google-taglib/CHANGES.txt index 916b71f..34e1fab 100644 --- a/google-taglib/CHANGES.txt +++ b/google-taglib/CHANGES.txt @@ -1,4 +1,4 @@ -Version 1.0.1 (not yet released) +Version 1.0.1 (released 20-Oct-2003) * Added a "type" attribute to the Search tag. - It can be used to specify the type of documents (e.g.: pdf) to be searched. @@ -9,4 +9,7 @@ Version 1.0.1 (not yet released) Version 1.0 (released 10-Oct-2003) * This is the first public release. - * Added support for various HTTP Proxy configuration context parameters. \ No newline at end of file + * Added support for various HTTP Proxy configuration context parameters. + +=========================================================================== +$Id$ \ No newline at end of file diff --git a/google-taglib/GoogleTagLib.iws b/google-taglib/GoogleTagLib.iws index 508402a..9123839 100644 --- a/google-taglib/GoogleTagLib.iws +++ b/google-taglib/GoogleTagLib.iws @@ -29,7 +29,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -64,7 +64,7 @@

    Find on this site:
    -
    +

    diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index e048419..30b3cc4 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -46,7 +46,7 @@ code {font-size:10pt}
    Find on this site:
    -
    +

    diff --git a/google-taglib/htdocs/howto.html b/google-taglib/htdocs/howto.html index 710a0e3..d68ab72 100644 --- a/google-taglib/htdocs/howto.html +++ b/google-taglib/htdocs/howto.html @@ -45,7 +45,7 @@ body,td,font,.p,a{font-family:arial,sans-serif}
    Find on this site:
    -
    +

    diff --git a/google-taglib/htdocs/index.html b/google-taglib/htdocs/index.html index 3fadce4..46fb03e 100644 --- a/google-taglib/htdocs/index.html +++ b/google-taglib/htdocs/index.html @@ -41,7 +41,7 @@ body,td,font,p,a{font-family:arial,sans-serif}
    Find on this site:
    -
    +

    diff --git a/google-taglib/htdocs/license.html b/google-taglib/htdocs/license.html index ef5ffa1..4fe7ee4 100644 --- a/google-taglib/htdocs/license.html +++ b/google-taglib/htdocs/license.html @@ -41,7 +41,7 @@ body,td,font,p,a{font-family:arial,sans-serif}
    Find on this site:
    -
    +

    diff --git a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java index f961ded..9178600 100644 --- a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java +++ b/google-taglib/src/net/thauvin/google/GoogleSearchBean.java @@ -97,6 +97,8 @@ public class GoogleSearchBean /** * The default filetype. + * + * @since 1.0.1 */ public static final String DEFAULT_TYPE = ""; @@ -173,7 +175,8 @@ public class GoogleSearchBean * Sets the search keywords. * * @param keywords The keywords - * @see #getKeywords() + * @see #getKeywords() + * @since 1.0.1 */ public final void setKeywords(String keywords) { @@ -184,7 +187,8 @@ public class GoogleSearchBean * Returns the keywords. * * @return The keywords value. - * @see #setKeywords(String) + * @see #setKeywords(String) + * @since 1.0.1 */ public final String getKeywords() { @@ -601,10 +605,10 @@ public class GoogleSearchBean { return String.valueOf(result.getDocumentFiltering()); } - else if (property.equalsIgnoreCase("searchKeywords")) - { - return getKeywords(); - } + else if (property.equalsIgnoreCase("searchKeywords")) + { + return getKeywords(); + } else if (property.equalsIgnoreCase("searchQuery")) { return result.getSearchQuery(); From fa3135e4e98e2e5300cfc9f7487b1da057815f78 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 21 Nov 2003 13:45:05 +0000 Subject: [PATCH 23/30] Added Jars Rated Top 25% logo. --- google-taglib/htdocs/images/jars25.gif | Bin 0 -> 3159 bytes google-taglib/htdocs/index.html | 20 +++++++------------- 2 files changed, 7 insertions(+), 13 deletions(-) create mode 100644 google-taglib/htdocs/images/jars25.gif diff --git a/google-taglib/htdocs/images/jars25.gif b/google-taglib/htdocs/images/jars25.gif new file mode 100644 index 0000000000000000000000000000000000000000..04c1fe840e918df26f607ef2fc6478c0039a5a58 GIT binary patch literal 3159 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 literal 0 HcmV?d00001 diff --git a/google-taglib/htdocs/index.html b/google-taglib/htdocs/index.html index 46fb03e..691065d 100644 --- a/google-taglib/htdocs/index.html +++ b/google-taglib/htdocs/index.html @@ -52,6 +52,8 @@ body,td,font,p,a{font-family:arial,sans-serif}

     SourceForge.net Logo

    @@ -79,12 +81,8 @@ body,td,font,p,a{font-family:arial,sans-serif} The download includes the tag library and associated TLD.

    +  Rated Jars Top 25% +

    -   - - -   - - +   +   2 @@ -93,12 +91,8 @@ body,td,font,p,a{font-family:arial,sans-serif} a license key.
    -   - - -   - - +   +   3 @@ -114,7 +108,7 @@ body,td,font,p,a{font-family:arial,sans-serif}
    - Google Web APIs + Tumbling Duke
    From b76a82804eccb59db634430b172174963a4dbab3 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 20 Dec 2003 21:02:39 +0000 Subject: [PATCH 24/30] Added UML diagram. --- google-taglib/htdocs/about.html | 1 + google-taglib/htdocs/docs.html | 1 + google-taglib/htdocs/howto.html | 1 + google-taglib/htdocs/images/uml.jpg | Bin 0 -> 177319 bytes google-taglib/htdocs/index.html | 1 + google-taglib/htdocs/license.html | 1 + 6 files changed, 5 insertions(+) create mode 100644 google-taglib/htdocs/images/uml.jpg diff --git a/google-taglib/htdocs/about.html b/google-taglib/htdocs/about.html index faaae68..2c81905 100644 --- a/google-taglib/htdocs/about.html +++ b/google-taglib/htdocs/about.html @@ -30,6 +30,7 @@ body,td,font,p,a{font-family:arial,sans-serif}   HowTo
      Javadoc
      TLD
    +   UML
    arrow About diff --git a/google-taglib/htdocs/docs.html b/google-taglib/htdocs/docs.html index 30b3cc4..0e57832 100644 --- a/google-taglib/htdocs/docs.html +++ b/google-taglib/htdocs/docs.html @@ -35,6 +35,7 @@ code {font-size:10pt}   HowTo
      Javadoc
      TLD
    +   UML
      About

    diff --git a/google-taglib/htdocs/howto.html b/google-taglib/htdocs/howto.html index d68ab72..3b37d62 100644 --- a/google-taglib/htdocs/howto.html +++ b/google-taglib/htdocs/howto.html @@ -34,6 +34,7 @@ body,td,font,.p,a{font-family:arial,sans-serif} arrow HowTo
      Javadoc
      TLD
    +   UML
      About

    diff --git a/google-taglib/htdocs/images/uml.jpg b/google-taglib/htdocs/images/uml.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb6b432e0d860a8c5db5d53f7923e17b8b7394b9 GIT binary patch literal 177319 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

    2ecli*`3fdZwx`zzPE# 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
      Javadoc
      TLD
    +   UML
      About

    diff --git a/google-taglib/htdocs/license.html b/google-taglib/htdocs/license.html index 4fe7ee4..33a5005 100644 --- a/google-taglib/htdocs/license.html +++ b/google-taglib/htdocs/license.html @@ -29,6 +29,7 @@ body,td,font,p,a{font-family:arial,sans-serif}   HowTo
      Javadoc
      TLD
    +   UML
    arrow About From f1051407d18419300ea38f345fca21b1dc4cb388 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 12 Jan 2004 10:54:43 +0000 Subject: [PATCH 25/30] Added UML diagram. --- google-taglib/htdocs/uml.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 google-taglib/htdocs/uml.html diff --git a/google-taglib/htdocs/uml.html b/google-taglib/htdocs/uml.html new file mode 100644 index 0000000..f783a91 --- /dev/null +++ b/google-taglib/htdocs/uml.html @@ -0,0 +1,12 @@ + + + +Google Tag Library: UML + + +UML + + Enterprise Architect + + + From 6c7ec8561a650b60f01e0155b3be349b4801b2b9 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 13 Jan 2004 00:22:57 +0000 Subject: [PATCH 26/30] TagUnit 1.0 --- google-taglib/lib/tagunit.jar | Bin 131383 -> 131732 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/google-taglib/lib/tagunit.jar b/google-taglib/lib/tagunit.jar index 7e879674750fc12b61fc447b13c3066753b52494..fe22da61f3e8899a3dbe0bcb72eee50511da4f10 100644 GIT binary patch delta 17144 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 From 191381492e041aaf145c110ef84d490ecfd5883c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 13 Jan 2004 00:23:43 +0000 Subject: [PATCH 27/30] Initial import. --- google-taglib/rss/.cvsignore | 3 + google-taglib/rss/GoogleRSS.iml | 44 ++ google-taglib/rss/GoogleRSS.ipr | 93 +++ google-taglib/rss/GoogleRSS.iws | 747 ++++++++++++++++++ google-taglib/rss/LICENSE.txt | 30 + google-taglib/rss/README.txt | 71 ++ google-taglib/rss/build.properties | 27 + google-taglib/rss/build.xml | 112 +++ .../rss/google-rss-examples/README.txt | 66 ++ .../rss/google-rss-examples/WEB-INF/web.xml | 42 + .../rss/google-rss-examples/index.html | 71 ++ .../rss/google-rss-examples/key.html | 16 + google-taglib/rss/google-rss-examples/key.jsp | 21 + google-taglib/rss/google-rss-examples/rss.jsp | 1 + .../rss/google-rss-examples/search.html | 16 + .../clevercactus/google/AtomGenerator.java | 222 ++++++ .../google/FeedGenerationException.java | 68 ++ .../clevercactus/google/FeedGenerator.java | 172 ++++ .../google/FeedGeneratorFactory.java | 84 ++ .../google/GoogleResultsWrapper.java | 174 ++++ .../google/GoogleResultsWrapperItem.java | 82 ++ .../com/clevercactus/google/RSSGenerator.java | 198 +++++ .../google/taglibs/SearchResults.java | 132 ++++ google-taglib/rss/tlds/google-rss.tld | 22 + 24 files changed, 2514 insertions(+) create mode 100644 google-taglib/rss/.cvsignore create mode 100644 google-taglib/rss/GoogleRSS.iml create mode 100644 google-taglib/rss/GoogleRSS.ipr create mode 100644 google-taglib/rss/GoogleRSS.iws create mode 100644 google-taglib/rss/LICENSE.txt create mode 100644 google-taglib/rss/README.txt create mode 100644 google-taglib/rss/build.properties create mode 100644 google-taglib/rss/build.xml create mode 100644 google-taglib/rss/google-rss-examples/README.txt create mode 100644 google-taglib/rss/google-rss-examples/WEB-INF/web.xml create mode 100644 google-taglib/rss/google-rss-examples/index.html create mode 100644 google-taglib/rss/google-rss-examples/key.html create mode 100644 google-taglib/rss/google-rss-examples/key.jsp create mode 100644 google-taglib/rss/google-rss-examples/rss.jsp create mode 100644 google-taglib/rss/google-rss-examples/search.html create mode 100644 google-taglib/rss/src/com/clevercactus/google/AtomGenerator.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/FeedGenerationException.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/FeedGenerator.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/FeedGeneratorFactory.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapper.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/RSSGenerator.java create mode 100644 google-taglib/rss/src/com/clevercactus/google/taglibs/SearchResults.java create mode 100644 google-taglib/rss/tlds/google-rss.tld diff --git a/google-taglib/rss/.cvsignore b/google-taglib/rss/.cvsignore new file mode 100644 index 0000000..3586368 --- /dev/null +++ b/google-taglib/rss/.cvsignore @@ -0,0 +1,3 @@ +build +dist +*.bat \ No newline at end of file diff --git a/google-taglib/rss/GoogleRSS.iml b/google-taglib/rss/GoogleRSS.iml new file mode 100644 index 0000000..36999e8 --- /dev/null +++ b/google-taglib/rss/GoogleRSS.iml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google-taglib/rss/GoogleRSS.ipr b/google-taglib/rss/GoogleRSS.ipr new file mode 100644 index 0000000..f2bee3d --- /dev/null +++ b/google-taglib/rss/GoogleRSS.ipr @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google-taglib/rss/GoogleRSS.iws b/google-taglib/rss/GoogleRSS.iws new file mode 100644 index 0000000..81df5c0 --- /dev/null +++ b/google-taglib/rss/GoogleRSS.iws @@ -0,0 +1,747 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google-taglib/rss/LICENSE.txt b/google-taglib/rss/LICENSE.txt new file mode 100644 index 0000000..001be53 --- /dev/null +++ b/google-taglib/rss/LICENSE.txt @@ -0,0 +1,30 @@ +Google RSS Tag Library License + +Copyright (c) 2003-2004, clevercactus ltd. +Copyright (c) 2003-2004, Erik C. Thauvin (erik@thauvin.net) +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list +of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this +list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +Neither the name of the author nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/google-taglib/rss/README.txt b/google-taglib/rss/README.txt new file mode 100644 index 0000000..65a8552 --- /dev/null +++ b/google-taglib/rss/README.txt @@ -0,0 +1,71 @@ +Google RSS Tag Library README +============================= + + +Overview +======== + +This README file describes the Google RSS Tag Library distribution. + +The Google RSS Tag Library is an extension to, and thus requires, +the Google Tag Library, which can be found at: + + + + +See the "LICENSE.txt" file for licensing details. + +The Google RSS Tag Library uses the Google Web APIs, but is not associated +with or sponsored by Google, Inc. + + +Installation +============ + +The Google RSS Tag Library requires a JSP (1.1 or higher) container, such +as Tomcat. + +To use the Google RSS Tag Library, simply copy the library's JAR file +(google-rss.jar) to your application's WEB-INF/lib directory. The Tag Library +Descriptor (google-rss.tld) should be placed in your application's WEB-INF +directory. + +You should also modify your web application deployment descriptor (web.xml) +file to map the Google RSS Tag Library TLD URI to its location: + + + /google-rss-taglib + /WEB-INF/google-rss.tld + + + +TagLib Directive +================ + +Using the Google RSS Tag Library is easy; you simply need to import it into +your JSP pages using the taglib directive. For instance, you would include +the following line at the top of your JSP page: + + <%@taglib uri="/google-rss-taglib" prefix="rss"%> + + +SearchResults Tag +================= + +The tag is used to display the search results returned +by a Google search (performed using the Google Tag Library) in RSS format. + +For example: + + <%@ page contentType="text/xml" %> + <%@ taglib uri="/google-taglib" prefix="google" %> + <%@ taglib uri="/google-rss-taglib" prefix="rss" %> + my search query + + +Please refer to the Google Tag Library documentation for detailed information +on performing searches. + + +=========================================================================== +$Id$ \ No newline at end of file diff --git a/google-taglib/rss/build.properties b/google-taglib/rss/build.properties new file mode 100644 index 0000000..e89ace1 --- /dev/null +++ b/google-taglib/rss/build.properties @@ -0,0 +1,27 @@ +# Version +version=1.0 + +# Project +project.name=google-rss +release.name=${project.name}-taglib-${version} + +# Locations +src.dir=src +build.dir=build +dist.dir=dist +lib.dir=../lib +tlds.dir=tlds + +# Google +google.jar=../dist/google.jar +google.tld=../dist/google.tld + +# Examples +ex.dir=${project.name}-examples + +# Source +src.excludes=${lib.dir}/googleapi.jar + +# Docs +doc.license=LICENSE.txt +doc.readme=README.txt \ No newline at end of file diff --git a/google-taglib/rss/build.xml b/google-taglib/rss/build.xml new file mode 100644 index 0000000..71db1bb --- /dev/null +++ b/google-taglib/rss/build.xml @@ -0,0 +1,112 @@ + + + Google RSS Tag Library + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google-taglib/rss/google-rss-examples/README.txt b/google-taglib/rss/google-rss-examples/README.txt new file mode 100644 index 0000000..9bdbd8b --- /dev/null +++ b/google-taglib/rss/google-rss-examples/README.txt @@ -0,0 +1,66 @@ +Google RSS Tag Library Examples README +====================================== + + +Overview +======== + +This README file describes the Google RSS Tag Library Examples web +application. + +This web application contains a collection of examples demonstrating the +usage of the Google JSP RSS Tag Library. For more information about using +the custom tag library in your own web applications, please refer to the +Google RSS Tag Library documentation. + +The Google RSS Tag Library is an extension to the Google Tag Library, which +can be found at: + + + +See the "LICENSE.txt" file for licensing details. + +The Google RSS Tag Library uses the Google Web APIs, but is not associated +with or sponsored by Google, Inc. + + +Google Web APIs +=============== + +The Google Web APIs Java library is required in order to use the Examples web +application. The library's JAR file (googleapi.jar) should be placed into the +application's WEB-INF/lib directory. + + http://www.google.com/apis/download.html + +You must also register with Google (free) in order to obtain a license key. +The license key is required to access Google's Web Services. + + https://www.google.com/accounts/NewAccount + + +Google License Key +================== + +The license key can be specified as a context parameter in the web +application deployment descriptor (web.xml) as follows: + + + google_key + 000000000000000000000000 + + +The license key can also be temporarily specified from the index page of +the web application. + + +Examples +======== + +The following example is included: + + - Perform a simple Google RSS search + + +=========================================================================== +$Id$ \ No newline at end of file diff --git a/google-taglib/rss/google-rss-examples/WEB-INF/web.xml b/google-taglib/rss/google-rss-examples/WEB-INF/web.xml new file mode 100644 index 0000000..2d63d72 --- /dev/null +++ b/google-taglib/rss/google-rss-examples/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + google-rss-examples + Google RSS Examples Web Application + + google_key + + The Google Web APIs client authorization key. + + + google_proxy_host + + The host to use as an HTTP proxy. + + + google_proxy_port + + The port to use as an HTTP proxy. + + + google_proxy_username + + The username required for the HTTP proxy. + + + google_proxy_password + + The password required for the HTTP proxy. + + + index.html + + + /google-taglib + /WEB-INF/google.tld + + + /google-rss-taglib + /WEB-INF/google-rss.tld + + diff --git a/google-taglib/rss/google-rss-examples/index.html b/google-taglib/rss/google-rss-examples/index.html new file mode 100644 index 0000000..9639482 --- /dev/null +++ b/google-taglib/rss/google-rss-examples/index.html @@ -0,0 +1,71 @@ + + + +Google RSS Tag Library Examples + + + + + +Google RSS Tag Library Examples +

    +This is a collection of examples demonstrating the usage of the Google RSS JSP Tag Library. +

    +

    +The Google RSS Tag Library is an extension to the Google Tag Library. +

    +

    +The Google Web APIs Java library is required in order to use the Google RSS Tag +Library. The library's JAR file (googleapi.jar) should be placed +into the application's WEB-INF/lib directory. +

    + +

    +You must also register with Google (free) in order to obtain a license key. The +license key is required to access Google's Web Services. +

    + +

    +The license key can be specified as a context parameter in the web application +deployment descriptor (web.xml) as follows: +

    +
    +
    <context-param>
    <param-name>google_key</param-name>
    <param-value>000000000000000000000000</param-value>
    </context-param>
    +
    +

    +The license key can also be temporarily specified using the following: +

    + +

    +The included examples will allow you to: +

    + +

     

    +

    +The Google RSS Tag Library uses the Google Web APIs, but is not associated with or sponsored by Google, Inc.
    +Click here for licensing information.
    +

    + + diff --git a/google-taglib/rss/google-rss-examples/key.html b/google-taglib/rss/google-rss-examples/key.html new file mode 100644 index 0000000..4fa97a3 --- /dev/null +++ b/google-taglib/rss/google-rss-examples/key.html @@ -0,0 +1,16 @@ + + + +Set Google Key + + + + +
    +   +
    + + diff --git a/google-taglib/rss/google-rss-examples/key.jsp b/google-taglib/rss/google-rss-examples/key.jsp new file mode 100644 index 0000000..cf30658 --- /dev/null +++ b/google-taglib/rss/google-rss-examples/key.jsp @@ -0,0 +1,21 @@ +<% + // Copyright (c) 2002-2004, Erik C. Thauvin + // All rights reserved. + + String key = request.getParameter("key"); + + if ((key != null)&& (key.trim().length() > 0)) + { + pageContext.setAttribute("google_key", key, PageContext.APPLICATION_SCOPE); +%> + <%@include file="search.html"%> +<% + } + else + { +%> + <%@include file="key.html"%> +<% + } +%> + diff --git a/google-taglib/rss/google-rss-examples/rss.jsp b/google-taglib/rss/google-rss-examples/rss.jsp new file mode 100644 index 0000000..0c7d8b5 --- /dev/null +++ b/google-taglib/rss/google-rss-examples/rss.jsp @@ -0,0 +1 @@ +<%@ page contentType="text/xml" %><%@ taglib uri="/google-taglib" prefix="google" %><%@ taglib uri="/google-rss-taglib" prefix="rss" %> diff --git a/google-taglib/rss/google-rss-examples/search.html b/google-taglib/rss/google-rss-examples/search.html new file mode 100644 index 0000000..9367268 --- /dev/null +++ b/google-taglib/rss/google-rss-examples/search.html @@ -0,0 +1,16 @@ + + + +Search Google + + + + +
    +   +
    + + diff --git a/google-taglib/rss/src/com/clevercactus/google/AtomGenerator.java b/google-taglib/rss/src/com/clevercactus/google/AtomGenerator.java new file mode 100644 index 0000000..292111c --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/AtomGenerator.java @@ -0,0 +1,222 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +import org.xml.sax.SAXException; + +import java.io.PrintWriter; +import java.util.Date; + +/** + * A class that uses JAXP and SAX to print an SearchResults 2.0 feed to a PrintWriter. + * Output of the SearchResults happens as data is added. See the main() method for a + * simple usage example. + * + * @version 1.0, 29/08/2003 + * @author Diego Doval + */ +public +class AtomGenerator + extends FeedGenerator +{ + /** + * The one and only constructor. + */ + public + AtomGenerator() + { + } + + /** + * Prints a valid SearchResults 2.0 header based on the information passed. + * + * @param title feed title + * @param link feed link + * @param description feed description + * @param author feed author (must be an email address) + * @param lastBuildDate the date the feed was built + * @throws FeedGenerationException + */ + public + void + printHeader(String title, String link, String description, String author, Date lastBuildDate) + throws FeedGenerationException + { + try { + String language = "en-us"; + String generatorName = "clevercactus atom generator 1.0"; + String generatorURL = "http://www.clevercactus.com/google/"; + String copyright = "Copyright (c) 2003-2004 clevercactus ltd."; + String authorName = "Diego Doval"; + + feedAttributes_d.clear(); + feedAttributes_d.addAttribute("", "", "version", "", "0.2"); + feedAttributes_d.addAttribute("", "", "xmlns", "", "http://purl.org/atom/ns#"); + feedAttributes_d.addAttribute("", "", "xml:lang", "", "en"); + transformerHandler_d.startElement("","","feed",feedAttributes_d); + + feedAttributes_d.clear(); + transformerHandler_d.startElement("","","author",feedAttributes_d); + transformerHandler_d.startElement("","","name",feedAttributes_d); + transformerHandler_d.characters(authorName.toCharArray(),0,authorName.length()); + transformerHandler_d.endElement("","","name"); + transformerHandler_d.endElement("","","author"); + + feedAttributes_d.clear(); + transformerHandler_d.startElement("","","title",feedAttributes_d); + transformerHandler_d.characters(title.toCharArray(),0,title.length()); + transformerHandler_d.endElement("","","title"); + transformerHandler_d.startElement("","","link",feedAttributes_d); + transformerHandler_d.characters(link.toCharArray(),0,link.length()); + transformerHandler_d.endElement("","","link"); + transformerHandler_d.startElement("","","tagline", feedAttributes_d); + transformerHandler_d.characters(description.toCharArray(),0,description.length()); + transformerHandler_d.endElement("","","tagline"); + transformerHandler_d.startElement("","","modified",elementAttributes_d); + String dtString = getAsISO8601String(lastBuildDate); + transformerHandler_d.characters(dtString.toCharArray(),0,dtString.length()); + transformerHandler_d.endElement("","","modified"); + feedAttributes_d.addAttribute("", "", "name", "", generatorName); + transformerHandler_d.startElement("","","generator", feedAttributes_d); + transformerHandler_d.characters(generatorURL.toCharArray(),0, generatorURL.length()); + transformerHandler_d.endElement("","","generator"); + feedAttributes_d.clear(); + transformerHandler_d.startElement("","","copyright", feedAttributes_d); + transformerHandler_d.characters(copyright.toCharArray(),0,copyright.length()); + transformerHandler_d.endElement("","","copyright"); + } + catch (SAXException e) { + throw new FeedGenerationException(e); + } + } + + /** + * Prints a valid SearchResults 2.0 item based on the information passed. + * + * @param title the entry title + * @param description the entry body/description + * @param link the entry's GUID + * @param date the entry publication date + * @throws FeedGenerationException + */ + public + void + printItem(String title, String description, String link, Date date) + throws FeedGenerationException + { + try { + elementAttributes_d.clear(); + + transformerHandler_d.startElement("","","entry",elementAttributes_d); + transformerHandler_d.startElement("","","title",elementAttributes_d); + transformerHandler_d.characters(title.toCharArray(),0,title.length()); + transformerHandler_d.endElement("","","title"); + + transformerHandler_d.startElement("","","issued",elementAttributes_d); + String dtString = getAsISO8601String(date); + transformerHandler_d.characters(dtString.toCharArray(),0,dtString.length()); + transformerHandler_d.endElement("","","issued"); + + transformerHandler_d.startElement("","","modified",elementAttributes_d); + transformerHandler_d.characters(dtString.toCharArray(),0,dtString.length()); + transformerHandler_d.endElement("","","modified"); + + transformerHandler_d.startElement("","","created",elementAttributes_d); + transformerHandler_d.characters(dtString.toCharArray(),0,dtString.length()); + transformerHandler_d.endElement("","","created"); + + transformerHandler_d.startElement("","","link",elementAttributes_d); + transformerHandler_d.characters(link.toCharArray(),0,link.length()); + transformerHandler_d.endElement("","","link"); + + transformerHandler_d.startElement("","","id",elementAttributes_d); + transformerHandler_d.characters(link.toCharArray(),0,link.length()); + transformerHandler_d.endElement("","","id"); + + elementAttributes_d.clear(); + elementAttributes_d.addAttribute("", "", "type", "", "text/html"); + elementAttributes_d.addAttribute("", "", "mode", "", "escaped"); + elementAttributes_d.addAttribute("", "", "xml:lang", "", "en"); + + transformerHandler_d.startElement("","","content",elementAttributes_d); + transformerHandler_d.startCDATA(); + transformerHandler_d.characters(description.toCharArray(),0,description.length()); + transformerHandler_d.endCDATA(); + transformerHandler_d.endElement("","","content"); + + transformerHandler_d.endElement("","","entry"); + } + catch (SAXException e) { + throw new FeedGenerationException(e); + } + + } + + /** + * Closes the feed's main elements (i.e., "rss" and "channel"). + * @throws FeedGenerationException + */ + public + void + close() + throws FeedGenerationException + { + try { + transformerHandler_d.endElement("","","feed"); + transformerHandler_d.endDocument(); + } + catch (SAXException e) { + throw new FeedGenerationException(e); + } + } + + /** + * Simple test to generate a 2.0 feed. + */ + public static + void + main(String[] args) + { + try { + AtomGenerator gen = new AtomGenerator(); + gen.init(new PrintWriter(System.out)); + gen.printHeader("Test feed", "http://something/", "test feed desc", "test@test.com", new Date()); + gen.printItem("Item title 1", "Item desc 1", "http://guid/1234", new Date()); + gen.printItem("Item title 2", "Item desc 2", "http://guid/12342", new Date()); + gen.close(); + } + catch (FeedGenerationException e) { + e.printStackTrace(); + } + } +} diff --git a/google-taglib/rss/src/com/clevercactus/google/FeedGenerationException.java b/google-taglib/rss/src/com/clevercactus/google/FeedGenerationException.java new file mode 100644 index 0000000..fb33e0f --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/FeedGenerationException.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +/** + * Used to simplify exception handling in the RSSGenerator class. Internal + * Exceptions in that class will be wrapped in an FeedGenerationException. + * + * @version 1.0, 29/08/2003 + * @author Diego Doval + */ +public +class FeedGenerationException + extends Exception +{ + public + FeedGenerationException() + { + } + + public + FeedGenerationException(Throwable cause) + { + super(cause); + } + + public + FeedGenerationException(String message) + { + super(message); + } + + public + FeedGenerationException(String message, Throwable cause) + { + super(message, cause); + } +} diff --git a/google-taglib/rss/src/com/clevercactus/google/FeedGenerator.java b/google-taglib/rss/src/com/clevercactus/google/FeedGenerator.java new file mode 100644 index 0000000..5879e6e --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/FeedGenerator.java @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +import org.xml.sax.helpers.AttributesImpl; +import org.xml.sax.SAXException; + +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.sax.SAXTransformerFactory; +import javax.xml.transform.sax.TransformerHandler; +import javax.xml.transform.Transformer; +import javax.xml.transform.OutputKeys; +import java.io.Writer; +import java.util.Date; +import java.util.Locale; +import java.text.SimpleDateFormat; + +/** + * A class that uses JAXP and SAX to print an feed to a PrintWriter. + * Output of the actual happens as data is added on the subclass. See the main() method for a + * simple usage example. + * + * @version 1.0, 29/08/2003 + * @author Diego Doval + */ +public abstract +class FeedGenerator +{ + protected Writer output_d; + protected StreamResult streamResult_d; + protected TransformerHandler transformerHandler_d; + protected SAXTransformerFactory saxTransformerFactory_d; + protected AttributesImpl elementAttributes_d; + protected AttributesImpl feedAttributes_d; + + public static SimpleDateFormat iso8601DateFormat_sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); + public static SimpleDateFormat rfc822DateFormat_sd = new SimpleDateFormat("EEE', 'dd' 'MMM' 'yy' 'HH:mm:ss' 'z", Locale.US); + + /** + * The one and only constructor. + */ + public + FeedGenerator() + { + } + + /** + * @param output writer to use for outputting the SearchResults + * @throws FeedGenerationException + */ + public + void + init(Writer output) + throws FeedGenerationException + { + output_d = output; + streamResult_d = new StreamResult(output_d); + feedAttributes_d = new AttributesImpl(); + elementAttributes_d = new AttributesImpl(); + try { + saxTransformerFactory_d = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); + transformerHandler_d = saxTransformerFactory_d.newTransformerHandler(); + Transformer trans = transformerHandler_d.getTransformer(); + trans.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1"); + trans.setOutputProperty(OutputKeys.INDENT,"yes"); + transformerHandler_d.setResult(streamResult_d); + transformerHandler_d.startDocument(); + } + catch (Exception e) { + throw new FeedGenerationException(e); + } + } + + /** + * Prints a valid header based on the information passed. + * + * @param title feed title + * @param link feed link + * @param description feed description + * @param author feed author (must be an email address) + * @param lastBuildDate the date the feed was built + * @throws FeedGenerationException + */ + public abstract + void + printHeader(String title, String link, String description, String author, Date lastBuildDate) + throws FeedGenerationException; + + /** + * Prints a valid SearchResults 2.0 item based on the information passed. + * + * @param title the entry title + * @param description the entry body/description + * @param link the entry's GUID + * @param date the entry publication date + * @throws FeedGenerationException + */ + public abstract + void + printItem(String title, String description, String link, Date date) + throws FeedGenerationException; + + /** + * Closes the feed's main elements + * @throws FeedGenerationException + */ + public abstract + void + close() + throws FeedGenerationException; + + /** + * Utility method to obtain a date in a string in RFC 822 date format + * + * @param date the date to + * @return a string with the date in RFC 822 format + */ + public final + String + getAsISO8601String(Date date) + { + String result = iso8601DateFormat_sd.format(date); + //convert 20030509T00:32:35+0100 returned by Java into 20030509T00:32:35+01:00 + //from the spec date/time 19980717T14:08:55 + result = result.substring(0, result.length()-2) + ":" + result.substring(result.length()-2); + return result; + } + + + /** + * Utility method to obtain a date in a string in RFC 822 date format + * + * @param date the date to + * @return a string with the date in RFC 822 format + */ + public final + String + getAsRFC822String(Date date) + { + return rfc822DateFormat_sd.format(date); + } +} diff --git a/google-taglib/rss/src/com/clevercactus/google/FeedGeneratorFactory.java b/google-taglib/rss/src/com/clevercactus/google/FeedGeneratorFactory.java new file mode 100644 index 0000000..a07fe81 --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/FeedGeneratorFactory.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +import java.util.HashMap; + +/** + * Date: 05-Sep-2003 + * Time: 20:41:19 + */ +public +class FeedGeneratorFactory +{ + public static HashMap feedTypes_sd = new HashMap(); + + public static final String FEED_TYPE_RSS = "rss"; + public static final String FEED_TYPE_ATOM = "atom"; + + static { + addGenerator(FEED_TYPE_RSS, RSSGenerator.class); + addGenerator(FEED_TYPE_ATOM, AtomGenerator.class); + } + + public static + boolean + supportsFormat(String type) + { + return type != null && (type.equals(FEED_TYPE_RSS) || type.equals(FEED_TYPE_ATOM)); + } + + public static + void + addGenerator(String type, Class cls) + { + feedTypes_sd.put(type, cls); + } + + public static + FeedGenerator + getGeneratorForType(String type) + { + Class cls = (Class) feedTypes_sd.get(type); + try { + return (FeedGenerator) cls.newInstance(); + } + catch (InstantiationException e) { + e.printStackTrace(); + } + catch (IllegalAccessException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapper.java b/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapper.java new file mode 100644 index 0000000..128ad70 --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapper.java @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +import com.google.soap.search.GoogleSearchResultElement; + +import java.io.Writer; +import java.io.IOException; +import java.util.Iterator; +import java.util.Date; +import java.util.ArrayList; + +/** + * Date: 30-Oct-2003 + * Time: 13:41:41 + * @author Diego Doval + * @author Erik C. Thauvin + */ +public +class GoogleResultsWrapper +{ + ArrayList items_d = new ArrayList(); + + + private + GoogleResultsWrapper() + { + } + + private + Iterator + iterator() + { + return items_d.iterator(); + } + + private + void + addItem(GoogleResultsWrapperItem it) + { + items_d.add(it); + } + + private static + GoogleResultsWrapper + createWrapper(GoogleSearchResultElement[] elements) + { + if (elements == null || elements.length == 0) { + return null; + } + GoogleResultsWrapper wrapper = new GoogleResultsWrapper(); + for (int i = 0; i < elements.length; i++) { + GoogleSearchResultElement element = elements[i]; + wrapper.addItem(new GoogleResultsWrapperItem(element.getTitle(), element.getURL(), element.getSnippet())); + } + return wrapper; + } + + /** + * Output the results to a writer. + * + * @param out the writer to use + * @param elements the search result elements + * @param query the search query + * @param feedType the type of feed to use (options are "rss" and "atom") + */ + public static + void + outputResults(Writer out, GoogleSearchResultElement[] elements, String query, String feedType) + { + outputResults(out, createWrapper(elements), query, feedType); + } + + /** + * Output the results to a writer. + * + * @param out the writer to use + * @param wrapper the results object obtained from the parsing of results + * @param query the search query + * @param feedType the type of feed to use (options are "rss" and "atom") + */ + private static + void + outputResults(Writer out, GoogleResultsWrapper wrapper, String query, String feedType) + { + try { + if (out == null || feedType == null) { + try { + out.write("Null parameter in output results.\n"); + } + catch (IOException e1) { + } + return; + } + if (!feedType.equals(FeedGeneratorFactory.FEED_TYPE_RSS) + && !feedType.equals(FeedGeneratorFactory.FEED_TYPE_ATOM)) { + try { + out.write("Invalid feed type ("+feedType+"). Supported types are 'rss' and 'atom'.\n"); + } + catch (IOException e1) { + } + return; + } + try { + FeedGenerator gen = FeedGeneratorFactory.getGeneratorForType(feedType); + gen.init(out); + Date date = new Date(); + + String description; + if ((query == null) || (query.trim().length() == 0)) { + description = "Google Tag Library"; + } else { + description = "Search results for: \"" + query + '"'; + } + + gen.printHeader("Google Search Feed Output", "http://google-taglib.sourceforge.net/", description, "check@page.for.info", date); + if (wrapper != null) { + Iterator items = wrapper.iterator(); + while (items.hasNext()) { + GoogleResultsWrapperItem item = (GoogleResultsWrapperItem) items.next(); + gen.printItem(item.getTitle(), item.getSnippet(), item.getURL(), date); + } + } + gen.close(); + } + catch (FeedGenerationException e) { + try { + out.write("Error.\n"); + out.write(e.getMessage()); + } + catch (IOException e1) { + } + } + } + finally { + try { + out.close(); + } + catch (IOException e) { + } + } + } + +} \ No newline at end of file diff --git a/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java b/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java new file mode 100644 index 0000000..848c216 --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +/** + * Date: 30-Oct-2003 + * Time: 13:51:43 + * @author Diego Doval + */ +public +class GoogleResultsWrapperItem +{ + String title_d; + String text_d; + String url_d; + + public + GoogleResultsWrapperItem(String title, String url, String text) + { + title_d = title; + url_d = url; + text_d = text; + } + + public + String + getTitle() + { + return title_d; + } + + public + String + getSnippet() + { + return text_d; + } + + public + String + getURL() + { + return url_d; + } + + public + String + toString() + { + return "Title: "+title_d+"\nURL:"+url_d+"\nText:"+text_d+"\n"; + } +} diff --git a/google-taglib/rss/src/com/clevercactus/google/RSSGenerator.java b/google-taglib/rss/src/com/clevercactus/google/RSSGenerator.java new file mode 100644 index 0000000..e6a4b25 --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/RSSGenerator.java @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2003-2004 clevercactus ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +package com.clevercactus.google; + +import org.xml.sax.SAXException; + +import java.io.PrintWriter; +import java.util.Date; + +/** + * A class that uses JAXP and SAX to print an SearchResults 2.0 feed to a PrintWriter. + * Output of the SearchResults happens as data is added. See the main() method for a + * simple usage example. + * + * @version 1.0, 29/08/2003 + * @author Diego Doval + */ +public +class RSSGenerator + extends FeedGenerator +{ + + /** + * The one and only constructor. + */ + public + RSSGenerator() + { + } + + /** + * Prints a valid SearchResults 2.0 header based on the information passed. + * + * @param title feed title + * @param link feed link + * @param description feed description + * @param author feed author (must be an email address) + * @param lastBuildDate the date the feed was built + * @throws FeedGenerationException + */ + public + void + printHeader(String title, String link, String description, String author, Date lastBuildDate) + throws FeedGenerationException + { + try { + String language = "en-us"; + String generator = "clevercactus rss generator 1.0"; + + feedAttributes_d.clear(); + feedAttributes_d.addAttribute("", "", "version", "", "2.0"); + transformerHandler_d.startElement("","","rss",feedAttributes_d); + feedAttributes_d.clear(); + transformerHandler_d.startElement("","","channel",feedAttributes_d); + transformerHandler_d.startElement("","","title",feedAttributes_d); + transformerHandler_d.characters(title.toCharArray(),0,title.length()); + transformerHandler_d.endElement("","","title"); + transformerHandler_d.startElement("","","link",feedAttributes_d); + transformerHandler_d.characters(link.toCharArray(),0,link.length()); + transformerHandler_d.endElement("","","link"); + transformerHandler_d.startElement("","","description", feedAttributes_d); + transformerHandler_d.characters(description.toCharArray(),0,description.length()); + transformerHandler_d.endElement("","","description"); + transformerHandler_d.startElement("","","language", feedAttributes_d); + transformerHandler_d.characters(language.toCharArray(),0,language.length()); + transformerHandler_d.endElement("","","language"); + transformerHandler_d.startElement("","","lastBuildDate",elementAttributes_d); + String dtString = getAsRFC822String(lastBuildDate); + transformerHandler_d.characters(dtString.toCharArray(),0,dtString.length()); + transformerHandler_d.endElement("","","lastBuildDate"); + transformerHandler_d.startElement("","","generator", feedAttributes_d); + transformerHandler_d.characters(generator.toCharArray(),0,generator.length()); + transformerHandler_d.endElement("","","generator"); + transformerHandler_d.startElement("","","managingEditor", feedAttributes_d); + transformerHandler_d.characters(author.toCharArray(),0,author.length()); + transformerHandler_d.endElement("","","managingEditor"); + transformerHandler_d.startElement("","","webMaster", feedAttributes_d); + transformerHandler_d.characters(author.toCharArray(),0,author.length()); + transformerHandler_d.endElement("","","webMaster"); + } + catch (SAXException e) { + throw new FeedGenerationException(e); + } + } + + /** + * Prints a valid SearchResults 2.0 item based on the information passed. + * + * @param title the entry title + * @param description the entry body/description + * @param link the entry's GUID + * @param date the entry publication date + * @throws FeedGenerationException + */ + public + void + printItem(String title, String description, String link, Date date) + throws FeedGenerationException + { + try { + elementAttributes_d.clear(); + transformerHandler_d.startElement("","","item",elementAttributes_d); + elementAttributes_d.clear(); + transformerHandler_d.startElement("","","title",elementAttributes_d); + transformerHandler_d.characters(title.toCharArray(),0,title.length()); + transformerHandler_d.endElement("","","title"); + elementAttributes_d.clear(); + transformerHandler_d.startElement("","","description",elementAttributes_d); + transformerHandler_d.characters(description.toCharArray(),0,description.length()); + transformerHandler_d.endElement("","","description"); + elementAttributes_d.clear(); + transformerHandler_d.startElement("","","pubDate",elementAttributes_d); + String dtString = getAsRFC822String(date); + transformerHandler_d.characters(dtString.toCharArray(),0,dtString.length()); + transformerHandler_d.endElement("","","pubDate"); + elementAttributes_d.clear(); + transformerHandler_d.startElement("","","link",elementAttributes_d); + transformerHandler_d.characters(link.toCharArray(),0,link.length()); + transformerHandler_d.endElement("","","link"); + + transformerHandler_d.endElement("","","item"); + } + catch (SAXException e) { + throw new FeedGenerationException(e); + } + + } + + /** + * Closes the feed's main elements (i.e., "rss" and "channel"). + * @throws FeedGenerationException + */ + public + void + close() + throws FeedGenerationException + { + try { + transformerHandler_d.endElement("","","channel"); + transformerHandler_d.endElement("","","rss"); + transformerHandler_d.endDocument(); + } + catch (SAXException e) { + throw new FeedGenerationException(e); + } + } + + + /** + * Simple test to generate a 2.0 feed. + */ + public static + void + main(String[] args) + { + try { + RSSGenerator gen = new RSSGenerator(); + gen.init(new PrintWriter(System.out)); + gen.printHeader("Test feed", "http://something/", "test feed desc", "test@test.com", new Date()); + gen.printItem("Item title 1", "Item desc 1", "guid", new Date()); + gen.printItem("Item title 2", "Item desc 2", "guid", new Date()); + gen.close(); + } + catch (FeedGenerationException e) { + e.printStackTrace(); + } + } +} diff --git a/google-taglib/rss/src/com/clevercactus/google/taglibs/SearchResults.java b/google-taglib/rss/src/com/clevercactus/google/taglibs/SearchResults.java new file mode 100644 index 0000000..61f44f0 --- /dev/null +++ b/google-taglib/rss/src/com/clevercactus/google/taglibs/SearchResults.java @@ -0,0 +1,132 @@ +/* + * @(#)SearchResults.java + * + * Copyright (c) 2003-2004, Erik C. Thauvin (erik@thauvin.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the author nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id$ + * + */ +package com.clevercactus.google.taglibs; + +import com.clevercactus.google.GoogleResultsWrapper; + +import net.thauvin.google.GoogleSearchBean; +import net.thauvin.google.TagUtility; + +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.tagext.BodyTagSupport; + + +/** + * A custom tag used to display Google search results in RSS format. + * + * @author Erik C. Thauvin + * @version $Revision$, $Date$ + * + * @created Oct 30, 2003 + * @since 1.0 + */ +public class SearchResults extends BodyTagSupport +{ + /** + * The Google search bean. + */ + protected GoogleSearchBean bean = null; + + /** + * doEndTag method. + * + * @return EVAL_PAGE + * + * @throws JspException + */ + public int doEndTag() throws JspException + { + try + { + // Is the result valid? + if (bean != null) + { + // Output the feed + GoogleResultsWrapper.outputResults(pageContext.getOut(), + bean.getResultElements(), + bean.getResultProperty("searchKeywords"), + "rss"); + } + } + catch (Exception e) + { + throw TagUtility.outputError("rss", e); + } + + // Reset the values + reset(); + + return EVAL_PAGE; + } + + /** + * doStartTag method. + * + * @return SKIP_BODY. + * + * @throws JspException + */ + public int doStartTag() throws JspException + { + // Get the Google bean + bean = TagUtility.getGoogleSearchBean(pageContext); + + return SKIP_BODY; + } + + /** + * Release method. + */ + public void release() + { + super.release(); + + // Reset the bean + bean = null; + + // Reset the values + reset(); + } + + /** + * Reset the values. + */ + protected void reset() + { + // super.reset(); + } +} diff --git a/google-taglib/rss/tlds/google-rss.tld b/google-taglib/rss/tlds/google-rss.tld new file mode 100644 index 0000000..06ee349 --- /dev/null +++ b/google-taglib/rss/tlds/google-rss.tld @@ -0,0 +1,22 @@ + + + + + + @version@ + + 1.1 + + google-rss + + http://www.thauvin.net/taglibs/google-rss-taglib-@version@ + + The Google RSS Tag Library. + + + searchResults + com.clevercactus.google.taglibs.SearchResults + empty + Displays Google search results in RSS format. + + From 4b001a91788142e93e451d1980be3014848eda64 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 9 Feb 2004 00:51:29 +0000 Subject: [PATCH 28/30] Added src build target. --- google-taglib/rss/GoogleRSS.iws | 17 +++----- google-taglib/rss/README-BUILD.txt | 67 ++++++++++++++++++++++++++++++ google-taglib/rss/README.txt | 4 +- google-taglib/rss/build.properties | 15 ++++--- google-taglib/rss/build.xml | 16 +++++++ 5 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 google-taglib/rss/README-BUILD.txt diff --git a/google-taglib/rss/GoogleRSS.iws b/google-taglib/rss/GoogleRSS.iws index 81df5c0..a22af7d 100644 --- a/google-taglib/rss/GoogleRSS.iws +++ b/google-taglib/rss/GoogleRSS.iws @@ -353,7 +353,7 @@ - + @@ -386,13 +386,7 @@ - - - - - - @@ -401,7 +395,7 @@ - + @@ -416,7 +410,6 @@ - + diff --git a/google-taglib/rss/README-BUILD.txt b/google-taglib/rss/README-BUILD.txt new file mode 100644 index 0000000..e8cafe9 --- /dev/null +++ b/google-taglib/rss/README-BUILD.txt @@ -0,0 +1,67 @@ +Google RSS Tag Library README (BUILD) +===================================== + + +Overview +======== + +This README file describes the Google RSS Tag Library source distribution. + +The Google RSS Tag Library is an extension to, and thus requires, the +Google Tag Library, which can be found at: + + + + +See the "LICENSE.txt" file for licensing details. + +The Google RSS Tag Library uses the Google Web APIs, but is not associated +with or sponsored by Google, Inc. + +Google Web APIs +=============== + +The Google Web APIs Java library is required in order to build the Google +RSS Tag Library. The library's JAR file (googleapi.jar) should be placed +into the lib directory. + + http://www.google.com/apis/download.html + + +Building the Source +=================== + +The Google RSS Tag Library is intended to be build directly within the +Google Tag Library source tree: + + /google-taglib/rss/ + + +The Google RSS Tag Library is built using Ant. + + http://ant.apache.org/ + + +To build the JAR, to do the following: + + ant + +To build the TLD, do the following: + + ant tld + +To build the release archive, do the following: + + ant release + +To build the Examples WAR, do the following: + + ant examples + +To list all available build targets, do the following: + + ant -projecthelp + + +=========================================================================== +$Id$ \ No newline at end of file diff --git a/google-taglib/rss/README.txt b/google-taglib/rss/README.txt index 65a8552..b90b5ad 100644 --- a/google-taglib/rss/README.txt +++ b/google-taglib/rss/README.txt @@ -7,8 +7,8 @@ Overview This README file describes the Google RSS Tag Library distribution. -The Google RSS Tag Library is an extension to, and thus requires, -the Google Tag Library, which can be found at: +The Google RSS Tag Library is an extension to, and thus requires, the +Google Tag Library, which can be found at: diff --git a/google-taglib/rss/build.properties b/google-taglib/rss/build.properties index e89ace1..0171c3d 100644 --- a/google-taglib/rss/build.properties +++ b/google-taglib/rss/build.properties @@ -5,17 +5,19 @@ version=1.0 project.name=google-rss release.name=${project.name}-taglib-${version} +# Google Tag Library +google.dir=.. +google.target=jar +google.jar=../dist/google.jar +google.tld=../dist/google.tld + # Locations src.dir=src build.dir=build dist.dir=dist -lib.dir=../lib +lib.dir=${google.dir}/lib tlds.dir=tlds -# Google -google.jar=../dist/google.jar -google.tld=../dist/google.tld - # Examples ex.dir=${project.name}-examples @@ -24,4 +26,5 @@ src.excludes=${lib.dir}/googleapi.jar # Docs doc.license=LICENSE.txt -doc.readme=README.txt \ No newline at end of file +doc.readme=README.txt +doc.src=README-BUILD.txt \ No newline at end of file diff --git a/google-taglib/rss/build.xml b/google-taglib/rss/build.xml index 71db1bb..d51e9e0 100644 --- a/google-taglib/rss/build.xml +++ b/google-taglib/rss/build.xml @@ -25,6 +25,7 @@ + @@ -96,6 +97,21 @@ + + + + + + + + + + + + + + + From 3937236341ad869415d33cbb406efa2f55723097 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 9 Feb 2004 00:56:15 +0000 Subject: [PATCH 29/30] Added outer root directory in zip archive. --- google-taglib/build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-taglib/build.xml b/google-taglib/build.xml index 1fad8de..dca0cc0 100644 --- a/google-taglib/build.xml +++ b/google-taglib/build.xml @@ -112,7 +112,7 @@ - + From 324f5b1005fc49668e684c72cdbfcdd24a1eeb1d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 7 Jun 2017 14:45:06 -0700 Subject: [PATCH 30/30] Git cleanup. --- google-taglib/.cvsignore => .gitignore | 0 google-taglib/CHANGES.txt => CHANGES.txt | 0 CVSROOT/checkoutlist | 13 --------- CVSROOT/commitinfo | 15 ---------- CVSROOT/config | 14 ---------- CVSROOT/cvswrappers | 23 ---------------- CVSROOT/editinfo | 21 -------------- CVSROOT/loginfo | 26 ------------------ CVSROOT/modules | 26 ------------------ CVSROOT/notify | 12 -------- CVSROOT/rcsinfo | 13 --------- CVSROOT/taginfo | 20 -------------- CVSROOT/verifymsg | 21 -------------- .../GoogleTagLib.iml => GoogleTagLib.iml | 0 .../GoogleTagLib.ipr => GoogleTagLib.ipr | 0 .../GoogleTagLib.iws => GoogleTagLib.iws | 0 .../README-BUILD.txt => README-BUILD.txt | 0 google-taglib/README.txt => README.txt | 0 .../build.properties => build.properties | 0 google-taglib/build.xml => build.xml | 0 .../README.txt | 0 .../WEB-INF/web.xml | 0 .../advanced.html | 0 .../advanced.jsp | 0 .../cache.html | 0 .../cache.jsp | 0 .../index.html | 0 .../key.html | 0 .../key.jsp | 0 .../search.html | 0 .../search.jsp | 0 .../spelling.html | 0 .../spelling.jsp | 0 .../WEB-INF/web.xml | 0 .../index.html | 0 .../index.jsp | 0 .../test/error.jsp | 0 .../google/cachedPage/testSpecification.jsp | 0 .../test/google/element/testSpecification.jsp | 0 .../google/endIndex/testSpecification.jsp | 0 .../estimatedTotal/testSpecification.jsp | 0 .../test/google/index.jsp | 0 .../test/google/next/testSpecification.jsp | 0 .../google/previous/testSpecification.jsp | 0 .../test/google/search/testSpecification.jsp | 0 .../searchComments/testSpecification.jsp | 0 .../google/searchQuery/testSpecification.jsp | 0 .../google/searchResult/testSpecification.jsp | 0 .../google/searchTime/testSpecification.jsp | 0 .../google/searchTips/testSpecification.jsp | 0 .../google/spelling/testSpecification.jsp | 0 .../google/startIndex/testSpecification.jsp | 0 .../test/images/spacer.gif | Bin .../test/images/tagunit.gif | Bin .../test/images/white-separator.gif | Bin .../test/index.jsp | 0 .../test/license.html | 0 .../test/page.css | 0 .../test/results.jsp | 0 {google-taglib/htdocs => htdocs}/about.html | 0 {google-taglib/htdocs => htdocs}/docs.html | 0 {google-taglib/htdocs => htdocs}/howto.html | 0 .../htdocs => htdocs}/images/arrow.gif | Bin .../htdocs => htdocs}/images/arrow.jpg | Bin .../htdocs => htdocs}/images/cached.jpg | Bin .../images/cachedresults.jpg | Bin .../htdocs => htdocs}/images/duktumbl.gif | Bin .../htdocs => htdocs}/images/duktumbl.png | Bin .../htdocs => htdocs}/images/google_sm.gif | Bin .../htdocs => htdocs}/images/google_sm.png | Bin .../htdocs => htdocs}/images/jars25.gif | Bin .../htdocs => htdocs}/images/search.jpg | Bin .../images/searchresults.jpg | Bin .../htdocs => htdocs}/images/spelling.jpg | Bin .../htdocs => htdocs}/images/uml.jpg | Bin .../htdocs => htdocs}/images/yellowarrow.gif | Bin .../htdocs => htdocs}/includes/google.css | 0 {google-taglib/htdocs => htdocs}/index.html | 0 {google-taglib/htdocs => htdocs}/license.html | 0 {google-taglib/htdocs => htdocs}/uml.html | 0 {google-taglib/lib => lib}/doccheck.jar | Bin {google-taglib/lib => lib}/googleapi.jar | Bin {google-taglib/lib => lib}/servlet.jar | Bin {google-taglib/lib => lib}/tagunit.jar | Bin {google-taglib/lib => lib}/tlddoc.jar | Bin .../LICENSE-activation.txt | 0 .../LICENSE-apache-soap.txt | 0 .../licenses => licenses}/LICENSE-crimson.txt | 0 .../LICENSE-doccheck.html | 0 .../licenses => licenses}/LICENSE-google.txt | 0 .../LICENSE-javamail.txt | 0 .../licenses => licenses}/LICENSE-tagunit.txt | 0 .../licenses => licenses}/LICENSE.txt | 0 {google-taglib/rss => rss}/.cvsignore | 0 {google-taglib/rss => rss}/GoogleRSS.iml | 0 {google-taglib/rss => rss}/GoogleRSS.ipr | 0 {google-taglib/rss => rss}/GoogleRSS.iws | 0 {google-taglib/rss => rss}/LICENSE.txt | 0 {google-taglib/rss => rss}/README-BUILD.txt | 0 {google-taglib/rss => rss}/README.txt | 0 {google-taglib/rss => rss}/build.properties | 0 {google-taglib/rss => rss}/build.xml | 0 .../google-rss-examples/README.txt | 0 .../google-rss-examples/WEB-INF/web.xml | 0 .../google-rss-examples/index.html | 0 .../rss => rss}/google-rss-examples/key.html | 0 .../rss => rss}/google-rss-examples/key.jsp | 0 .../rss => rss}/google-rss-examples/rss.jsp | 0 .../google-rss-examples/search.html | 0 .../clevercactus/google/AtomGenerator.java | 0 .../google/FeedGenerationException.java | 0 .../clevercactus/google/FeedGenerator.java | 0 .../google/FeedGeneratorFactory.java | 0 .../google/GoogleResultsWrapper.java | 0 .../google/GoogleResultsWrapperItem.java | 0 .../com/clevercactus/google/RSSGenerator.java | 0 .../google/taglibs/SearchResults.java | 0 .../rss => rss}/tlds/google-rss.tld | 0 .../net/thauvin/google/GoogleSearchBean.java | 0 .../net/thauvin/google/TagUtility.java | 0 .../net/thauvin/google/package.html | 0 .../thauvin/google/taglibs/CachedPage.java | 0 .../net/thauvin/google/taglibs/Element.java | 0 .../net/thauvin/google/taglibs/EndIndex.java | 0 .../google/taglibs/EstimatedTotal.java | 0 .../thauvin/google/taglibs/KeySupport.java | 0 .../net/thauvin/google/taglibs/Next.java | 0 .../net/thauvin/google/taglibs/Previous.java | 0 .../thauvin/google/taglibs/QuerySupport.java | 0 .../net/thauvin/google/taglibs/Search.java | 0 .../google/taglibs/SearchComments.java | 0 .../thauvin/google/taglibs/SearchQuery.java | 0 .../thauvin/google/taglibs/SearchResult.java | 0 .../google/taglibs/SearchResultSupport.java | 0 .../thauvin/google/taglibs/SearchTime.java | 0 .../thauvin/google/taglibs/SearchTips.java | 0 .../net/thauvin/google/taglibs/Spelling.java | 0 .../thauvin/google/taglibs/StartIndex.java | 0 .../thauvin/google/taglibs/StyleSupport.java | 0 .../net/thauvin/google/taglibs/package.html | 0 {google-taglib/tlds => tlds}/google-1.2.tld | 0 {google-taglib/tlds => tlds}/google.tld | 0 142 files changed, 204 deletions(-) rename google-taglib/.cvsignore => .gitignore (100%) rename google-taglib/CHANGES.txt => CHANGES.txt (100%) delete mode 100644 CVSROOT/checkoutlist delete mode 100644 CVSROOT/commitinfo delete mode 100644 CVSROOT/config delete mode 100644 CVSROOT/cvswrappers delete mode 100644 CVSROOT/editinfo delete mode 100644 CVSROOT/loginfo delete mode 100644 CVSROOT/modules delete mode 100644 CVSROOT/notify delete mode 100644 CVSROOT/rcsinfo delete mode 100644 CVSROOT/taginfo delete mode 100644 CVSROOT/verifymsg rename google-taglib/GoogleTagLib.iml => GoogleTagLib.iml (100%) rename google-taglib/GoogleTagLib.ipr => GoogleTagLib.ipr (100%) rename google-taglib/GoogleTagLib.iws => GoogleTagLib.iws (100%) rename google-taglib/README-BUILD.txt => README-BUILD.txt (100%) rename google-taglib/README.txt => README.txt (100%) rename google-taglib/build.properties => build.properties (100%) rename google-taglib/build.xml => build.xml (100%) rename {google-taglib/google-examples => google-examples}/README.txt (100%) rename {google-taglib/google-examples => google-examples}/WEB-INF/web.xml (100%) rename {google-taglib/google-examples => google-examples}/advanced.html (100%) rename {google-taglib/google-examples => google-examples}/advanced.jsp (100%) rename {google-taglib/google-examples => google-examples}/cache.html (100%) rename {google-taglib/google-examples => google-examples}/cache.jsp (100%) rename {google-taglib/google-examples => google-examples}/index.html (100%) rename {google-taglib/google-examples => google-examples}/key.html (100%) rename {google-taglib/google-examples => google-examples}/key.jsp (100%) rename {google-taglib/google-examples => google-examples}/search.html (100%) rename {google-taglib/google-examples => google-examples}/search.jsp (100%) rename {google-taglib/google-examples => google-examples}/spelling.html (100%) rename {google-taglib/google-examples => google-examples}/spelling.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/WEB-INF/web.xml (100%) rename {google-taglib/google-tagunit => google-tagunit}/index.html (100%) rename {google-taglib/google-tagunit => google-tagunit}/index.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/error.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/cachedPage/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/element/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/endIndex/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/estimatedTotal/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/index.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/next/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/previous/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/search/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/searchComments/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/searchQuery/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/searchResult/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/searchTime/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/searchTips/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/spelling/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/google/startIndex/testSpecification.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/images/spacer.gif (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/images/tagunit.gif (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/images/white-separator.gif (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/index.jsp (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/license.html (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/page.css (100%) rename {google-taglib/google-tagunit => google-tagunit}/test/results.jsp (100%) rename {google-taglib/htdocs => htdocs}/about.html (100%) rename {google-taglib/htdocs => htdocs}/docs.html (100%) rename {google-taglib/htdocs => htdocs}/howto.html (100%) rename {google-taglib/htdocs => htdocs}/images/arrow.gif (100%) rename {google-taglib/htdocs => htdocs}/images/arrow.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/cached.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/cachedresults.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/duktumbl.gif (100%) rename {google-taglib/htdocs => htdocs}/images/duktumbl.png (100%) rename {google-taglib/htdocs => htdocs}/images/google_sm.gif (100%) rename {google-taglib/htdocs => htdocs}/images/google_sm.png (100%) rename {google-taglib/htdocs => htdocs}/images/jars25.gif (100%) rename {google-taglib/htdocs => htdocs}/images/search.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/searchresults.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/spelling.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/uml.jpg (100%) rename {google-taglib/htdocs => htdocs}/images/yellowarrow.gif (100%) rename {google-taglib/htdocs => htdocs}/includes/google.css (100%) rename {google-taglib/htdocs => htdocs}/index.html (100%) rename {google-taglib/htdocs => htdocs}/license.html (100%) rename {google-taglib/htdocs => htdocs}/uml.html (100%) rename {google-taglib/lib => lib}/doccheck.jar (100%) rename {google-taglib/lib => lib}/googleapi.jar (100%) rename {google-taglib/lib => lib}/servlet.jar (100%) rename {google-taglib/lib => lib}/tagunit.jar (100%) rename {google-taglib/lib => lib}/tlddoc.jar (100%) rename {google-taglib/licenses => licenses}/LICENSE-activation.txt (100%) rename {google-taglib/licenses => licenses}/LICENSE-apache-soap.txt (100%) rename {google-taglib/licenses => licenses}/LICENSE-crimson.txt (100%) rename {google-taglib/licenses => licenses}/LICENSE-doccheck.html (100%) rename {google-taglib/licenses => licenses}/LICENSE-google.txt (100%) rename {google-taglib/licenses => licenses}/LICENSE-javamail.txt (100%) rename {google-taglib/licenses => licenses}/LICENSE-tagunit.txt (100%) rename {google-taglib/licenses => licenses}/LICENSE.txt (100%) rename {google-taglib/rss => rss}/.cvsignore (100%) rename {google-taglib/rss => rss}/GoogleRSS.iml (100%) rename {google-taglib/rss => rss}/GoogleRSS.ipr (100%) rename {google-taglib/rss => rss}/GoogleRSS.iws (100%) rename {google-taglib/rss => rss}/LICENSE.txt (100%) rename {google-taglib/rss => rss}/README-BUILD.txt (100%) rename {google-taglib/rss => rss}/README.txt (100%) rename {google-taglib/rss => rss}/build.properties (100%) rename {google-taglib/rss => rss}/build.xml (100%) rename {google-taglib/rss => rss}/google-rss-examples/README.txt (100%) rename {google-taglib/rss => rss}/google-rss-examples/WEB-INF/web.xml (100%) rename {google-taglib/rss => rss}/google-rss-examples/index.html (100%) rename {google-taglib/rss => rss}/google-rss-examples/key.html (100%) rename {google-taglib/rss => rss}/google-rss-examples/key.jsp (100%) rename {google-taglib/rss => rss}/google-rss-examples/rss.jsp (100%) rename {google-taglib/rss => rss}/google-rss-examples/search.html (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/AtomGenerator.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/FeedGenerationException.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/FeedGenerator.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/FeedGeneratorFactory.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/GoogleResultsWrapper.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/GoogleResultsWrapperItem.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/RSSGenerator.java (100%) rename {google-taglib/rss => rss}/src/com/clevercactus/google/taglibs/SearchResults.java (100%) rename {google-taglib/rss => rss}/tlds/google-rss.tld (100%) rename {google-taglib/src => src}/net/thauvin/google/GoogleSearchBean.java (100%) rename {google-taglib/src => src}/net/thauvin/google/TagUtility.java (100%) rename {google-taglib/src => src}/net/thauvin/google/package.html (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/CachedPage.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/Element.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/EndIndex.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/EstimatedTotal.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/KeySupport.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/Next.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/Previous.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/QuerySupport.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/Search.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/SearchComments.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/SearchQuery.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/SearchResult.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/SearchResultSupport.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/SearchTime.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/SearchTips.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/Spelling.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/StartIndex.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/StyleSupport.java (100%) rename {google-taglib/src => src}/net/thauvin/google/taglibs/package.html (100%) rename {google-taglib/tlds => tlds}/google-1.2.tld (100%) rename {google-taglib/tlds => tlds}/google.tld (100%) diff --git a/google-taglib/.cvsignore b/.gitignore similarity index 100% rename from google-taglib/.cvsignore rename to .gitignore diff --git a/google-taglib/CHANGES.txt b/CHANGES.txt similarity index 100% rename from google-taglib/CHANGES.txt rename to CHANGES.txt diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist deleted file mode 100644 index b04b350..0000000 --- a/CVSROOT/checkoutlist +++ /dev/null @@ -1,13 +0,0 @@ -# The "checkoutlist" file is used to support additional version controlled -# administrative files in $CVSROOT/CVSROOT, such as template files. -# -# The first entry on a line is a filename which will be checked out from -# the corresponding RCS file in the $CVSROOT/CVSROOT directory. -# The remainder of the line is an error message to use if the file cannot -# be checked out. -# -# File format: -# -# [] -# -# comment lines begin with '#' diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo deleted file mode 100644 index b19e7b7..0000000 --- a/CVSROOT/commitinfo +++ /dev/null @@ -1,15 +0,0 @@ -# The "commitinfo" file is used to control pre-commit checks. -# The filter on the right is invoked with the repository and a list -# of files to check. A non-zero exit of the filter program will -# cause the commit to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/config b/CVSROOT/config deleted file mode 100644 index ff43ec0..0000000 --- a/CVSROOT/config +++ /dev/null @@ -1,14 +0,0 @@ -# Set this to "no" if pserver shouldn't check system users/passwords -#SystemAuth=no - -# Put CVS lock files in this directory rather than directly in the repository. -#LockDir=/var/lock/cvs - -# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top -# level of the new working directory when using the `cvs checkout' -# command. -#TopLevelAdmin=no - -# Set `LogHistory' to `all' or `TOFEWGCMAR' to log all transactions to the -# history file, or a subset as needed (ie `TMAR' logs all write operations) -#LogHistory=TOFEWGCMAR diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers deleted file mode 100644 index 0accaf1..0000000 --- a/CVSROOT/cvswrappers +++ /dev/null @@ -1,23 +0,0 @@ -# This file affects handling of files based on their names. -# -# The -t/-f options allow one to treat directories of files -# as a single file, or to transform a file in other ways on -# its way in and out of CVS. -# -# The -m option specifies whether CVS attempts to merge files. -# -# The -k option specifies keyword expansion (e.g. -kb for binary). -# -# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) -# -# wildcard [option value][option value]... -# -# where option is one of -# -f from cvs filter value: path to filter -# -t to cvs filter value: path to filter -# -m update methodology value: MERGE or COPY -# -k expansion mode value: b, o, kkv, &c -# -# and value is a single-quote delimited value. -# For example: -#*.gif -k 'b' diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo deleted file mode 100644 index d78886c..0000000 --- a/CVSROOT/editinfo +++ /dev/null @@ -1,21 +0,0 @@ -# The "editinfo" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo deleted file mode 100644 index 5a59f0a..0000000 --- a/CVSROOT/loginfo +++ /dev/null @@ -1,26 +0,0 @@ -# The "loginfo" file controls where "cvs commit" log information -# is sent. The first entry on a line is a regular expression which must match -# the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is a filter -# program that should expect log information on its standard input. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. -# -# You may specify a format string as part of the -# filter. The string is composed of a `%' followed -# by a single format character, or followed by a set of format -# characters surrounded by `{' and `}' as separators. The format -# characters are: -# -# s = file name -# V = old version number (pre-checkin) -# v = new version number (post-checkin) -# -# For example: -#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog -# or -#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog diff --git a/CVSROOT/modules b/CVSROOT/modules deleted file mode 100644 index cb9e9ef..0000000 --- a/CVSROOT/modules +++ /dev/null @@ -1,26 +0,0 @@ -# Three different line formats are valid: -# key -a aliases... -# key [options] directory -# key [options] directory files... -# -# Where "options" are composed of: -# -i prog Run "prog" on "cvs commit" from top-level of module. -# -o prog Run "prog" on "cvs checkout" of module. -# -e prog Run "prog" on "cvs export" of module. -# -t prog Run "prog" on "cvs rtag" of module. -# -u prog Run "prog" on "cvs update" of module. -# -d dir Place module in directory "dir" instead of module name. -# -l Top-level directory only -- do not recurse. -# -# NOTE: If you change any of the "Run" options above, you'll have to -# release and re-checkout any working directories of these modules. -# -# And "directory" is a path to a directory relative to $CVSROOT. -# -# The "-a" option specifies an alias. An alias is interpreted as if -# everything on the right of the "-a" had been typed on the command line. -# -# You can encode a module within a module by using the special '&' -# character to interpose another module into the current module. This -# can be useful for creating a module that consists of many directories -# spread out over the entire source repository. diff --git a/CVSROOT/notify b/CVSROOT/notify deleted file mode 100644 index 34f0bc2..0000000 --- a/CVSROOT/notify +++ /dev/null @@ -1,12 +0,0 @@ -# The "notify" file controls where notifications from watches set by -# "cvs watch add" or "cvs edit" are sent. The first entry on a line is -# a regular expression which is tested against the directory that the -# change is being made to, relative to the $CVSROOT. If it matches, -# then the remainder of the line is a filter program that should contain -# one occurrence of %s for the user to notify, and information on its -# standard input. -# -# "ALL" or "DEFAULT" can be used in place of the regular expression. -# -# For example: -#ALL mail %s -s "CVS notification" diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo deleted file mode 100644 index 49e59f4..0000000 --- a/CVSROOT/rcsinfo +++ /dev/null @@ -1,13 +0,0 @@ -# The "rcsinfo" file is used to control templates with which the editor -# is invoked on commit and import. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being made to, relative to the -# $CVSROOT. For the first match that is found, then the remainder of the -# line is the name of the file that contains the template. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo deleted file mode 100644 index 274a46d..0000000 --- a/CVSROOT/taginfo +++ /dev/null @@ -1,20 +0,0 @@ -# The "taginfo" file is used to control pre-tag checks. -# The filter on the right is invoked with the following arguments: -# -# $1 -- tagname -# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d -# $3 -- repository -# $4-> file revision [file revision ...] -# -# A non-zero exit of the filter program will cause the tag to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg deleted file mode 100644 index 86f747c..0000000 --- a/CVSROOT/verifymsg +++ /dev/null @@ -1,21 +0,0 @@ -# The "verifymsg" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/google-taglib/GoogleTagLib.iml b/GoogleTagLib.iml similarity index 100% rename from google-taglib/GoogleTagLib.iml rename to GoogleTagLib.iml diff --git a/google-taglib/GoogleTagLib.ipr b/GoogleTagLib.ipr similarity index 100% rename from google-taglib/GoogleTagLib.ipr rename to GoogleTagLib.ipr diff --git a/google-taglib/GoogleTagLib.iws b/GoogleTagLib.iws similarity index 100% rename from google-taglib/GoogleTagLib.iws rename to GoogleTagLib.iws diff --git a/google-taglib/README-BUILD.txt b/README-BUILD.txt similarity index 100% rename from google-taglib/README-BUILD.txt rename to README-BUILD.txt diff --git a/google-taglib/README.txt b/README.txt similarity index 100% rename from google-taglib/README.txt rename to README.txt diff --git a/google-taglib/build.properties b/build.properties similarity index 100% rename from google-taglib/build.properties rename to build.properties diff --git a/google-taglib/build.xml b/build.xml similarity index 100% rename from google-taglib/build.xml rename to build.xml diff --git a/google-taglib/google-examples/README.txt b/google-examples/README.txt similarity index 100% rename from google-taglib/google-examples/README.txt rename to google-examples/README.txt diff --git a/google-taglib/google-examples/WEB-INF/web.xml b/google-examples/WEB-INF/web.xml similarity index 100% rename from google-taglib/google-examples/WEB-INF/web.xml rename to google-examples/WEB-INF/web.xml diff --git a/google-taglib/google-examples/advanced.html b/google-examples/advanced.html similarity index 100% rename from google-taglib/google-examples/advanced.html rename to google-examples/advanced.html diff --git a/google-taglib/google-examples/advanced.jsp b/google-examples/advanced.jsp similarity index 100% rename from google-taglib/google-examples/advanced.jsp rename to google-examples/advanced.jsp diff --git a/google-taglib/google-examples/cache.html b/google-examples/cache.html similarity index 100% rename from google-taglib/google-examples/cache.html rename to google-examples/cache.html diff --git a/google-taglib/google-examples/cache.jsp b/google-examples/cache.jsp similarity index 100% rename from google-taglib/google-examples/cache.jsp rename to google-examples/cache.jsp diff --git a/google-taglib/google-examples/index.html b/google-examples/index.html similarity index 100% rename from google-taglib/google-examples/index.html rename to google-examples/index.html diff --git a/google-taglib/google-examples/key.html b/google-examples/key.html similarity index 100% rename from google-taglib/google-examples/key.html rename to google-examples/key.html diff --git a/google-taglib/google-examples/key.jsp b/google-examples/key.jsp similarity index 100% rename from google-taglib/google-examples/key.jsp rename to google-examples/key.jsp diff --git a/google-taglib/google-examples/search.html b/google-examples/search.html similarity index 100% rename from google-taglib/google-examples/search.html rename to google-examples/search.html diff --git a/google-taglib/google-examples/search.jsp b/google-examples/search.jsp similarity index 100% rename from google-taglib/google-examples/search.jsp rename to google-examples/search.jsp diff --git a/google-taglib/google-examples/spelling.html b/google-examples/spelling.html similarity index 100% rename from google-taglib/google-examples/spelling.html rename to google-examples/spelling.html diff --git a/google-taglib/google-examples/spelling.jsp b/google-examples/spelling.jsp similarity index 100% rename from google-taglib/google-examples/spelling.jsp rename to google-examples/spelling.jsp diff --git a/google-taglib/google-tagunit/WEB-INF/web.xml b/google-tagunit/WEB-INF/web.xml similarity index 100% rename from google-taglib/google-tagunit/WEB-INF/web.xml rename to google-tagunit/WEB-INF/web.xml diff --git a/google-taglib/google-tagunit/index.html b/google-tagunit/index.html similarity index 100% rename from google-taglib/google-tagunit/index.html rename to google-tagunit/index.html diff --git a/google-taglib/google-tagunit/index.jsp b/google-tagunit/index.jsp similarity index 100% rename from google-taglib/google-tagunit/index.jsp rename to google-tagunit/index.jsp diff --git a/google-taglib/google-tagunit/test/error.jsp b/google-tagunit/test/error.jsp similarity index 100% rename from google-taglib/google-tagunit/test/error.jsp rename to google-tagunit/test/error.jsp diff --git a/google-taglib/google-tagunit/test/google/cachedPage/testSpecification.jsp b/google-tagunit/test/google/cachedPage/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/cachedPage/testSpecification.jsp rename to google-tagunit/test/google/cachedPage/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/element/testSpecification.jsp b/google-tagunit/test/google/element/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/element/testSpecification.jsp rename to google-tagunit/test/google/element/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/endIndex/testSpecification.jsp b/google-tagunit/test/google/endIndex/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/endIndex/testSpecification.jsp rename to google-tagunit/test/google/endIndex/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/estimatedTotal/testSpecification.jsp b/google-tagunit/test/google/estimatedTotal/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/estimatedTotal/testSpecification.jsp rename to google-tagunit/test/google/estimatedTotal/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/index.jsp b/google-tagunit/test/google/index.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/index.jsp rename to google-tagunit/test/google/index.jsp diff --git a/google-taglib/google-tagunit/test/google/next/testSpecification.jsp b/google-tagunit/test/google/next/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/next/testSpecification.jsp rename to google-tagunit/test/google/next/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/previous/testSpecification.jsp b/google-tagunit/test/google/previous/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/previous/testSpecification.jsp rename to google-tagunit/test/google/previous/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/search/testSpecification.jsp b/google-tagunit/test/google/search/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/search/testSpecification.jsp rename to google-tagunit/test/google/search/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/searchComments/testSpecification.jsp b/google-tagunit/test/google/searchComments/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/searchComments/testSpecification.jsp rename to google-tagunit/test/google/searchComments/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/searchQuery/testSpecification.jsp b/google-tagunit/test/google/searchQuery/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/searchQuery/testSpecification.jsp rename to google-tagunit/test/google/searchQuery/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/searchResult/testSpecification.jsp b/google-tagunit/test/google/searchResult/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/searchResult/testSpecification.jsp rename to google-tagunit/test/google/searchResult/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/searchTime/testSpecification.jsp b/google-tagunit/test/google/searchTime/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/searchTime/testSpecification.jsp rename to google-tagunit/test/google/searchTime/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/searchTips/testSpecification.jsp b/google-tagunit/test/google/searchTips/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/searchTips/testSpecification.jsp rename to google-tagunit/test/google/searchTips/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/spelling/testSpecification.jsp b/google-tagunit/test/google/spelling/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/spelling/testSpecification.jsp rename to google-tagunit/test/google/spelling/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/google/startIndex/testSpecification.jsp b/google-tagunit/test/google/startIndex/testSpecification.jsp similarity index 100% rename from google-taglib/google-tagunit/test/google/startIndex/testSpecification.jsp rename to google-tagunit/test/google/startIndex/testSpecification.jsp diff --git a/google-taglib/google-tagunit/test/images/spacer.gif b/google-tagunit/test/images/spacer.gif similarity index 100% rename from google-taglib/google-tagunit/test/images/spacer.gif rename to google-tagunit/test/images/spacer.gif diff --git a/google-taglib/google-tagunit/test/images/tagunit.gif b/google-tagunit/test/images/tagunit.gif similarity index 100% rename from google-taglib/google-tagunit/test/images/tagunit.gif rename to google-tagunit/test/images/tagunit.gif diff --git a/google-taglib/google-tagunit/test/images/white-separator.gif b/google-tagunit/test/images/white-separator.gif similarity index 100% rename from google-taglib/google-tagunit/test/images/white-separator.gif rename to google-tagunit/test/images/white-separator.gif diff --git a/google-taglib/google-tagunit/test/index.jsp b/google-tagunit/test/index.jsp similarity index 100% rename from google-taglib/google-tagunit/test/index.jsp rename to google-tagunit/test/index.jsp diff --git a/google-taglib/google-tagunit/test/license.html b/google-tagunit/test/license.html similarity index 100% rename from google-taglib/google-tagunit/test/license.html rename to google-tagunit/test/license.html diff --git a/google-taglib/google-tagunit/test/page.css b/google-tagunit/test/page.css similarity index 100% rename from google-taglib/google-tagunit/test/page.css rename to google-tagunit/test/page.css diff --git a/google-taglib/google-tagunit/test/results.jsp b/google-tagunit/test/results.jsp similarity index 100% rename from google-taglib/google-tagunit/test/results.jsp rename to google-tagunit/test/results.jsp diff --git a/google-taglib/htdocs/about.html b/htdocs/about.html similarity index 100% rename from google-taglib/htdocs/about.html rename to htdocs/about.html diff --git a/google-taglib/htdocs/docs.html b/htdocs/docs.html similarity index 100% rename from google-taglib/htdocs/docs.html rename to htdocs/docs.html diff --git a/google-taglib/htdocs/howto.html b/htdocs/howto.html similarity index 100% rename from google-taglib/htdocs/howto.html rename to htdocs/howto.html diff --git a/google-taglib/htdocs/images/arrow.gif b/htdocs/images/arrow.gif similarity index 100% rename from google-taglib/htdocs/images/arrow.gif rename to htdocs/images/arrow.gif diff --git a/google-taglib/htdocs/images/arrow.jpg b/htdocs/images/arrow.jpg similarity index 100% rename from google-taglib/htdocs/images/arrow.jpg rename to htdocs/images/arrow.jpg diff --git a/google-taglib/htdocs/images/cached.jpg b/htdocs/images/cached.jpg similarity index 100% rename from google-taglib/htdocs/images/cached.jpg rename to htdocs/images/cached.jpg diff --git a/google-taglib/htdocs/images/cachedresults.jpg b/htdocs/images/cachedresults.jpg similarity index 100% rename from google-taglib/htdocs/images/cachedresults.jpg rename to htdocs/images/cachedresults.jpg diff --git a/google-taglib/htdocs/images/duktumbl.gif b/htdocs/images/duktumbl.gif similarity index 100% rename from google-taglib/htdocs/images/duktumbl.gif rename to htdocs/images/duktumbl.gif diff --git a/google-taglib/htdocs/images/duktumbl.png b/htdocs/images/duktumbl.png similarity index 100% rename from google-taglib/htdocs/images/duktumbl.png rename to htdocs/images/duktumbl.png diff --git a/google-taglib/htdocs/images/google_sm.gif b/htdocs/images/google_sm.gif similarity index 100% rename from google-taglib/htdocs/images/google_sm.gif rename to htdocs/images/google_sm.gif diff --git a/google-taglib/htdocs/images/google_sm.png b/htdocs/images/google_sm.png similarity index 100% rename from google-taglib/htdocs/images/google_sm.png rename to htdocs/images/google_sm.png diff --git a/google-taglib/htdocs/images/jars25.gif b/htdocs/images/jars25.gif similarity index 100% rename from google-taglib/htdocs/images/jars25.gif rename to htdocs/images/jars25.gif diff --git a/google-taglib/htdocs/images/search.jpg b/htdocs/images/search.jpg similarity index 100% rename from google-taglib/htdocs/images/search.jpg rename to htdocs/images/search.jpg diff --git a/google-taglib/htdocs/images/searchresults.jpg b/htdocs/images/searchresults.jpg similarity index 100% rename from google-taglib/htdocs/images/searchresults.jpg rename to htdocs/images/searchresults.jpg diff --git a/google-taglib/htdocs/images/spelling.jpg b/htdocs/images/spelling.jpg similarity index 100% rename from google-taglib/htdocs/images/spelling.jpg rename to htdocs/images/spelling.jpg diff --git a/google-taglib/htdocs/images/uml.jpg b/htdocs/images/uml.jpg similarity index 100% rename from google-taglib/htdocs/images/uml.jpg rename to htdocs/images/uml.jpg diff --git a/google-taglib/htdocs/images/yellowarrow.gif b/htdocs/images/yellowarrow.gif similarity index 100% rename from google-taglib/htdocs/images/yellowarrow.gif rename to htdocs/images/yellowarrow.gif diff --git a/google-taglib/htdocs/includes/google.css b/htdocs/includes/google.css similarity index 100% rename from google-taglib/htdocs/includes/google.css rename to htdocs/includes/google.css diff --git a/google-taglib/htdocs/index.html b/htdocs/index.html similarity index 100% rename from google-taglib/htdocs/index.html rename to htdocs/index.html diff --git a/google-taglib/htdocs/license.html b/htdocs/license.html similarity index 100% rename from google-taglib/htdocs/license.html rename to htdocs/license.html diff --git a/google-taglib/htdocs/uml.html b/htdocs/uml.html similarity index 100% rename from google-taglib/htdocs/uml.html rename to htdocs/uml.html diff --git a/google-taglib/lib/doccheck.jar b/lib/doccheck.jar similarity index 100% rename from google-taglib/lib/doccheck.jar rename to lib/doccheck.jar diff --git a/google-taglib/lib/googleapi.jar b/lib/googleapi.jar similarity index 100% rename from google-taglib/lib/googleapi.jar rename to lib/googleapi.jar diff --git a/google-taglib/lib/servlet.jar b/lib/servlet.jar similarity index 100% rename from google-taglib/lib/servlet.jar rename to lib/servlet.jar diff --git a/google-taglib/lib/tagunit.jar b/lib/tagunit.jar similarity index 100% rename from google-taglib/lib/tagunit.jar rename to lib/tagunit.jar diff --git a/google-taglib/lib/tlddoc.jar b/lib/tlddoc.jar similarity index 100% rename from google-taglib/lib/tlddoc.jar rename to lib/tlddoc.jar diff --git a/google-taglib/licenses/LICENSE-activation.txt b/licenses/LICENSE-activation.txt similarity index 100% rename from google-taglib/licenses/LICENSE-activation.txt rename to licenses/LICENSE-activation.txt diff --git a/google-taglib/licenses/LICENSE-apache-soap.txt b/licenses/LICENSE-apache-soap.txt similarity index 100% rename from google-taglib/licenses/LICENSE-apache-soap.txt rename to licenses/LICENSE-apache-soap.txt diff --git a/google-taglib/licenses/LICENSE-crimson.txt b/licenses/LICENSE-crimson.txt similarity index 100% rename from google-taglib/licenses/LICENSE-crimson.txt rename to licenses/LICENSE-crimson.txt diff --git a/google-taglib/licenses/LICENSE-doccheck.html b/licenses/LICENSE-doccheck.html similarity index 100% rename from google-taglib/licenses/LICENSE-doccheck.html rename to licenses/LICENSE-doccheck.html diff --git a/google-taglib/licenses/LICENSE-google.txt b/licenses/LICENSE-google.txt similarity index 100% rename from google-taglib/licenses/LICENSE-google.txt rename to licenses/LICENSE-google.txt diff --git a/google-taglib/licenses/LICENSE-javamail.txt b/licenses/LICENSE-javamail.txt similarity index 100% rename from google-taglib/licenses/LICENSE-javamail.txt rename to licenses/LICENSE-javamail.txt diff --git a/google-taglib/licenses/LICENSE-tagunit.txt b/licenses/LICENSE-tagunit.txt similarity index 100% rename from google-taglib/licenses/LICENSE-tagunit.txt rename to licenses/LICENSE-tagunit.txt diff --git a/google-taglib/licenses/LICENSE.txt b/licenses/LICENSE.txt similarity index 100% rename from google-taglib/licenses/LICENSE.txt rename to licenses/LICENSE.txt diff --git a/google-taglib/rss/.cvsignore b/rss/.cvsignore similarity index 100% rename from google-taglib/rss/.cvsignore rename to rss/.cvsignore diff --git a/google-taglib/rss/GoogleRSS.iml b/rss/GoogleRSS.iml similarity index 100% rename from google-taglib/rss/GoogleRSS.iml rename to rss/GoogleRSS.iml diff --git a/google-taglib/rss/GoogleRSS.ipr b/rss/GoogleRSS.ipr similarity index 100% rename from google-taglib/rss/GoogleRSS.ipr rename to rss/GoogleRSS.ipr diff --git a/google-taglib/rss/GoogleRSS.iws b/rss/GoogleRSS.iws similarity index 100% rename from google-taglib/rss/GoogleRSS.iws rename to rss/GoogleRSS.iws diff --git a/google-taglib/rss/LICENSE.txt b/rss/LICENSE.txt similarity index 100% rename from google-taglib/rss/LICENSE.txt rename to rss/LICENSE.txt diff --git a/google-taglib/rss/README-BUILD.txt b/rss/README-BUILD.txt similarity index 100% rename from google-taglib/rss/README-BUILD.txt rename to rss/README-BUILD.txt diff --git a/google-taglib/rss/README.txt b/rss/README.txt similarity index 100% rename from google-taglib/rss/README.txt rename to rss/README.txt diff --git a/google-taglib/rss/build.properties b/rss/build.properties similarity index 100% rename from google-taglib/rss/build.properties rename to rss/build.properties diff --git a/google-taglib/rss/build.xml b/rss/build.xml similarity index 100% rename from google-taglib/rss/build.xml rename to rss/build.xml diff --git a/google-taglib/rss/google-rss-examples/README.txt b/rss/google-rss-examples/README.txt similarity index 100% rename from google-taglib/rss/google-rss-examples/README.txt rename to rss/google-rss-examples/README.txt diff --git a/google-taglib/rss/google-rss-examples/WEB-INF/web.xml b/rss/google-rss-examples/WEB-INF/web.xml similarity index 100% rename from google-taglib/rss/google-rss-examples/WEB-INF/web.xml rename to rss/google-rss-examples/WEB-INF/web.xml diff --git a/google-taglib/rss/google-rss-examples/index.html b/rss/google-rss-examples/index.html similarity index 100% rename from google-taglib/rss/google-rss-examples/index.html rename to rss/google-rss-examples/index.html diff --git a/google-taglib/rss/google-rss-examples/key.html b/rss/google-rss-examples/key.html similarity index 100% rename from google-taglib/rss/google-rss-examples/key.html rename to rss/google-rss-examples/key.html diff --git a/google-taglib/rss/google-rss-examples/key.jsp b/rss/google-rss-examples/key.jsp similarity index 100% rename from google-taglib/rss/google-rss-examples/key.jsp rename to rss/google-rss-examples/key.jsp diff --git a/google-taglib/rss/google-rss-examples/rss.jsp b/rss/google-rss-examples/rss.jsp similarity index 100% rename from google-taglib/rss/google-rss-examples/rss.jsp rename to rss/google-rss-examples/rss.jsp diff --git a/google-taglib/rss/google-rss-examples/search.html b/rss/google-rss-examples/search.html similarity index 100% rename from google-taglib/rss/google-rss-examples/search.html rename to rss/google-rss-examples/search.html diff --git a/google-taglib/rss/src/com/clevercactus/google/AtomGenerator.java b/rss/src/com/clevercactus/google/AtomGenerator.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/AtomGenerator.java rename to rss/src/com/clevercactus/google/AtomGenerator.java diff --git a/google-taglib/rss/src/com/clevercactus/google/FeedGenerationException.java b/rss/src/com/clevercactus/google/FeedGenerationException.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/FeedGenerationException.java rename to rss/src/com/clevercactus/google/FeedGenerationException.java diff --git a/google-taglib/rss/src/com/clevercactus/google/FeedGenerator.java b/rss/src/com/clevercactus/google/FeedGenerator.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/FeedGenerator.java rename to rss/src/com/clevercactus/google/FeedGenerator.java diff --git a/google-taglib/rss/src/com/clevercactus/google/FeedGeneratorFactory.java b/rss/src/com/clevercactus/google/FeedGeneratorFactory.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/FeedGeneratorFactory.java rename to rss/src/com/clevercactus/google/FeedGeneratorFactory.java diff --git a/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapper.java b/rss/src/com/clevercactus/google/GoogleResultsWrapper.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapper.java rename to rss/src/com/clevercactus/google/GoogleResultsWrapper.java diff --git a/google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java b/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java rename to rss/src/com/clevercactus/google/GoogleResultsWrapperItem.java diff --git a/google-taglib/rss/src/com/clevercactus/google/RSSGenerator.java b/rss/src/com/clevercactus/google/RSSGenerator.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/RSSGenerator.java rename to rss/src/com/clevercactus/google/RSSGenerator.java diff --git a/google-taglib/rss/src/com/clevercactus/google/taglibs/SearchResults.java b/rss/src/com/clevercactus/google/taglibs/SearchResults.java similarity index 100% rename from google-taglib/rss/src/com/clevercactus/google/taglibs/SearchResults.java rename to rss/src/com/clevercactus/google/taglibs/SearchResults.java diff --git a/google-taglib/rss/tlds/google-rss.tld b/rss/tlds/google-rss.tld similarity index 100% rename from google-taglib/rss/tlds/google-rss.tld rename to rss/tlds/google-rss.tld diff --git a/google-taglib/src/net/thauvin/google/GoogleSearchBean.java b/src/net/thauvin/google/GoogleSearchBean.java similarity index 100% rename from google-taglib/src/net/thauvin/google/GoogleSearchBean.java rename to src/net/thauvin/google/GoogleSearchBean.java diff --git a/google-taglib/src/net/thauvin/google/TagUtility.java b/src/net/thauvin/google/TagUtility.java similarity index 100% rename from google-taglib/src/net/thauvin/google/TagUtility.java rename to src/net/thauvin/google/TagUtility.java diff --git a/google-taglib/src/net/thauvin/google/package.html b/src/net/thauvin/google/package.html similarity index 100% rename from google-taglib/src/net/thauvin/google/package.html rename to src/net/thauvin/google/package.html diff --git a/google-taglib/src/net/thauvin/google/taglibs/CachedPage.java b/src/net/thauvin/google/taglibs/CachedPage.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/CachedPage.java rename to src/net/thauvin/google/taglibs/CachedPage.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/Element.java b/src/net/thauvin/google/taglibs/Element.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/Element.java rename to src/net/thauvin/google/taglibs/Element.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/EndIndex.java b/src/net/thauvin/google/taglibs/EndIndex.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/EndIndex.java rename to src/net/thauvin/google/taglibs/EndIndex.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/EstimatedTotal.java b/src/net/thauvin/google/taglibs/EstimatedTotal.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/EstimatedTotal.java rename to src/net/thauvin/google/taglibs/EstimatedTotal.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/KeySupport.java b/src/net/thauvin/google/taglibs/KeySupport.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/KeySupport.java rename to src/net/thauvin/google/taglibs/KeySupport.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/Next.java b/src/net/thauvin/google/taglibs/Next.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/Next.java rename to src/net/thauvin/google/taglibs/Next.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/Previous.java b/src/net/thauvin/google/taglibs/Previous.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/Previous.java rename to src/net/thauvin/google/taglibs/Previous.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/QuerySupport.java b/src/net/thauvin/google/taglibs/QuerySupport.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/QuerySupport.java rename to src/net/thauvin/google/taglibs/QuerySupport.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/Search.java b/src/net/thauvin/google/taglibs/Search.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/Search.java rename to src/net/thauvin/google/taglibs/Search.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchComments.java b/src/net/thauvin/google/taglibs/SearchComments.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/SearchComments.java rename to src/net/thauvin/google/taglibs/SearchComments.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java b/src/net/thauvin/google/taglibs/SearchQuery.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/SearchQuery.java rename to src/net/thauvin/google/taglibs/SearchQuery.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchResult.java b/src/net/thauvin/google/taglibs/SearchResult.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/SearchResult.java rename to src/net/thauvin/google/taglibs/SearchResult.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchResultSupport.java b/src/net/thauvin/google/taglibs/SearchResultSupport.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/SearchResultSupport.java rename to src/net/thauvin/google/taglibs/SearchResultSupport.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchTime.java b/src/net/thauvin/google/taglibs/SearchTime.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/SearchTime.java rename to src/net/thauvin/google/taglibs/SearchTime.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/SearchTips.java b/src/net/thauvin/google/taglibs/SearchTips.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/SearchTips.java rename to src/net/thauvin/google/taglibs/SearchTips.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/Spelling.java b/src/net/thauvin/google/taglibs/Spelling.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/Spelling.java rename to src/net/thauvin/google/taglibs/Spelling.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/StartIndex.java b/src/net/thauvin/google/taglibs/StartIndex.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/StartIndex.java rename to src/net/thauvin/google/taglibs/StartIndex.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/StyleSupport.java b/src/net/thauvin/google/taglibs/StyleSupport.java similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/StyleSupport.java rename to src/net/thauvin/google/taglibs/StyleSupport.java diff --git a/google-taglib/src/net/thauvin/google/taglibs/package.html b/src/net/thauvin/google/taglibs/package.html similarity index 100% rename from google-taglib/src/net/thauvin/google/taglibs/package.html rename to src/net/thauvin/google/taglibs/package.html diff --git a/google-taglib/tlds/google-1.2.tld b/tlds/google-1.2.tld similarity index 100% rename from google-taglib/tlds/google-1.2.tld rename to tlds/google-1.2.tld diff --git a/google-taglib/tlds/google.tld b/tlds/google.tld similarity index 100% rename from google-taglib/tlds/google.tld rename to tlds/google.tld