You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
(57) |
Apr
(103) |
May
(164) |
Jun
(139) |
Jul
(173) |
Aug
(196) |
Sep
(221) |
Oct
(333) |
Nov
(214) |
Dec
(88) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(163) |
Feb
(165) |
Mar
(98) |
Apr
(93) |
May
(199) |
Jun
(118) |
Jul
(200) |
Aug
(212) |
Sep
(185) |
Oct
(297) |
Nov
(437) |
Dec
(272) |
| 2006 |
Jan
(542) |
Feb
(329) |
Mar
(267) |
Apr
(332) |
May
(267) |
Jun
(130) |
Jul
(161) |
Aug
(348) |
Sep
(166) |
Oct
(305) |
Nov
(173) |
Dec
(173) |
| 2007 |
Jan
(199) |
Feb
(118) |
Mar
(133) |
Apr
(200) |
May
(208) |
Jun
(146) |
Jul
(198) |
Aug
(146) |
Sep
(187) |
Oct
(182) |
Nov
(181) |
Dec
(83) |
| 2008 |
Jan
(252) |
Feb
(124) |
Mar
(124) |
Apr
(101) |
May
(143) |
Jun
(122) |
Jul
(129) |
Aug
(60) |
Sep
(80) |
Oct
(89) |
Nov
(54) |
Dec
(112) |
| 2009 |
Jan
(88) |
Feb
(145) |
Mar
(105) |
Apr
(164) |
May
(123) |
Jun
(154) |
Jul
(374) |
Aug
(341) |
Sep
(219) |
Oct
(137) |
Nov
(373) |
Dec
(240) |
| 2010 |
Jan
(197) |
Feb
(270) |
Mar
(253) |
Apr
(150) |
May
(102) |
Jun
(51) |
Jul
(300) |
Aug
(512) |
Sep
(254) |
Oct
(258) |
Nov
(288) |
Dec
(143) |
| 2011 |
Jan
(238) |
Feb
(179) |
Mar
(253) |
Apr
(332) |
May
(248) |
Jun
(255) |
Jul
(216) |
Aug
(282) |
Sep
(146) |
Oct
(77) |
Nov
(86) |
Dec
(69) |
| 2012 |
Jan
(172) |
Feb
(234) |
Mar
(229) |
Apr
(101) |
May
(212) |
Jun
(267) |
Jul
(129) |
Aug
(210) |
Sep
(239) |
Oct
(271) |
Nov
(368) |
Dec
(220) |
| 2013 |
Jan
(179) |
Feb
(155) |
Mar
(59) |
Apr
(47) |
May
(99) |
Jun
(158) |
Jul
(185) |
Aug
(16) |
Sep
(16) |
Oct
(7) |
Nov
(20) |
Dec
(12) |
| 2014 |
Jan
(21) |
Feb
(17) |
Mar
(18) |
Apr
(13) |
May
(27) |
Jun
(15) |
Jul
(19) |
Aug
(22) |
Sep
(30) |
Oct
(16) |
Nov
(19) |
Dec
(16) |
| 2015 |
Jan
(14) |
Feb
(24) |
Mar
(33) |
Apr
(41) |
May
(14) |
Jun
(80) |
Jul
(53) |
Aug
(8) |
Sep
(7) |
Oct
(15) |
Nov
(13) |
Dec
(2) |
| 2016 |
Jan
(22) |
Feb
(12) |
Mar
(30) |
Apr
(6) |
May
(33) |
Jun
(16) |
Jul
(8) |
Aug
(20) |
Sep
(12) |
Oct
(18) |
Nov
(12) |
Dec
(11) |
| 2017 |
Jan
(24) |
Feb
(26) |
Mar
(47) |
Apr
(23) |
May
(19) |
Jun
(14) |
Jul
(28) |
Aug
(30) |
Sep
(17) |
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
(1) |
Feb
(73) |
Mar
(90) |
Apr
(42) |
May
(116) |
Jun
(90) |
Jul
(127) |
Aug
(103) |
Sep
(56) |
Oct
(42) |
Nov
(95) |
Dec
(58) |
| 2020 |
Jan
(102) |
Feb
(31) |
Mar
(93) |
Apr
(60) |
May
(57) |
Jun
(45) |
Jul
(29) |
Aug
(32) |
Sep
(44) |
Oct
(86) |
Nov
(51) |
Dec
(71) |
| 2021 |
Jan
(44) |
Feb
(25) |
Mar
(78) |
Apr
(130) |
May
(64) |
Jun
(74) |
Jul
(21) |
Aug
(64) |
Sep
(40) |
Oct
(43) |
Nov
(21) |
Dec
(99) |
| 2022 |
Jan
(154) |
Feb
(64) |
Mar
(45) |
Apr
(95) |
May
(62) |
Jun
(48) |
Jul
(73) |
Aug
(37) |
Sep
(71) |
Oct
(27) |
Nov
(40) |
Dec
(65) |
| 2023 |
Jan
(89) |
Feb
(130) |
Mar
(124) |
Apr
(50) |
May
(93) |
Jun
(46) |
Jul
(45) |
Aug
(68) |
Sep
(62) |
Oct
(71) |
Nov
(108) |
Dec
(82) |
| 2024 |
Jan
(53) |
Feb
(76) |
Mar
(64) |
Apr
(75) |
May
(36) |
Jun
(54) |
Jul
(98) |
Aug
(137) |
Sep
(58) |
Oct
(177) |
Nov
(84) |
Dec
(52) |
| 2025 |
Jan
(70) |
Feb
(53) |
Mar
(72) |
Apr
(47) |
May
(88) |
Jun
(49) |
Jul
(86) |
Aug
(51) |
Sep
(65) |
Oct
(91) |
Nov
(18) |
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(10) |
2
(19) |
3
(16) |
4
(12) |
5
(6) |
6
(4) |
7
(5) |
|
8
(27) |
9
(23) |
10
(5) |
11
(17) |
12
(21) |
13
(4) |
14
(12) |
|
15
(21) |
16
(4) |
17
(2) |
18
(7) |
19
(9) |
20
(2) |
21
(5) |
|
22
(8) |
23
(16) |
24
(23) |
25
(15) |
26
(63) |
27
(3) |
28
(3) |
|
29
(9) |
30
(2) |
|
|
|
|
|
|
From: <di...@us...> - 2009-11-30 21:16:10
|
Revision: 10672
http://exist.svn.sourceforge.net/exist/?rev=10672&view=rev
Author: dizzzz
Date: 2009-11-30 21:15:57 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
[ignore] Add existdb version information to conf.xml ; this way we can be triggered that one uses a 1.2 conf.xml in a 1.4 context. port of rev10671
Revision Links:
--------------
http://exist.svn.sourceforge.net/exist/?rev=10671&view=rev
Modified Paths:
--------------
stable/eXist-1.4.x/conf.xml.tmpl
Modified: stable/eXist-1.4.x/conf.xml.tmpl
===================================================================
--- stable/eXist-1.4.x/conf.xml.tmpl 2009-11-30 21:09:26 UTC (rev 10671)
+++ stable/eXist-1.4.x/conf.xml.tmpl 2009-11-30 21:15:57 UTC (rev 10672)
@@ -33,6 +33,8 @@
- http://exist-db.org/cluster.html
- http://exist-db.org/documentation.html
- http://atomic.exist-db.org/
+
+ Version: @version@
$Id$
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <di...@us...> - 2009-11-30 21:09:33
|
Revision: 10671
http://exist.svn.sourceforge.net/exist/?rev=10671&view=rev
Author: dizzzz
Date: 2009-11-30 21:09:26 +0000 (Mon, 30 Nov 2009)
Log Message:
-----------
[ignore] Add existdb version information to conf.xml ; this way we can be triggered that one uses a 1.2 conf.xml in a 1.4 context
Modified Paths:
--------------
trunk/eXist/conf.xml.tmpl
Modified: trunk/eXist/conf.xml.tmpl
===================================================================
--- trunk/eXist/conf.xml.tmpl 2009-11-29 19:57:23 UTC (rev 10670)
+++ trunk/eXist/conf.xml.tmpl 2009-11-30 21:09:26 UTC (rev 10671)
@@ -33,6 +33,8 @@
- http://exist-db.org/cluster.html
- http://exist-db.org/documentation.html
- http://atomic.exist-db.org/
+
+ Version: @version@
$Id$
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jo...@us...> - 2009-11-29 19:57:33
|
Revision: 10670
http://exist.svn.sourceforge.net/exist/?rev=10670&view=rev
Author: joewiz
Date: 2009-11-29 19:57:23 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
Updated to conform with latest XQDoc code in rev. 10663, focused on making the xqdoc:name a useful field for URLs. Note: XQuery-based modules distributed with eXist should be reviewed for adherence to XQDoc conventions.
Modified Paths:
--------------
trunk/eXist/webapp/functions/functions.xql
Modified: trunk/eXist/webapp/functions/functions.xql
===================================================================
--- trunk/eXist/webapp/functions/functions.xql 2009-11-29 13:44:07 UTC (rev 10669)
+++ trunk/eXist/webapp/functions/functions.xql 2009-11-29 19:57:23 UTC (rev 10670)
@@ -34,7 +34,8 @@
(: Render a function or a set of functions :)
declare function local:render-function( $functionNode as element(xq:function)+, $showlinks as xs:boolean) as element() {
- let $parentModule := $functionNode/ancestor::xq:xqdoc//xq:uri/text()
+ let $parentModule := $functionNode/ancestor::xq:xqdoc/xq:module/xq:uri/text()
+ let $parentModuleName := $functionNode/ancestor::xq:xqdoc/xq:module/xq:name/text()
let $functionName := $functionNode/xq:name/text()
let $functionSignature := $functionNode/xq:signature/text()
let $functionDeprecated := $functionNode/xq:comment/xq:deprecated/text()
@@ -53,7 +54,7 @@
else $functionName
}</div>
<hr/>
- <div class="signature">{$functionSignature}</div>
+ <div class="signature">{if (not(starts-with($functionSignature, $parentModuleName))) then concat($parentModuleName, ':', $functionSignature) else $functionSignature}</div>
<div class="description">{
for $desc in $functionParagraphs
return
@@ -97,8 +98,8 @@
(: Render a module or set of modules :)
declare function local:render-module($moduleURIs as xs:string+, $functionName as xs:string?, $showlinks as xs:boolean) as element()+ {
for $moduleURI in $moduleURIs
- let $moduleDocs := util:extract-docs($moduleURI)
- let $moduleName := $moduleDocs/xq:module/xq:name/text()
+ let $moduleDocs := /xq:xqdoc[xq:module/xq:uri eq $moduleURI]
+ let $moduleName := if ($moduleURI = 'http://www.w3.org/2005/xpath-functions') then 'fn' else $moduleDocs/xq:module/xq:name/text()
let $moduleDescription := $moduleDocs/xq:module/xq:comment/xq:description/text()
order by $moduleURI
return
@@ -132,13 +133,15 @@
(: Constructs a URL from a module URI :)
declare function local:moduleURI-to-URL($moduleURI as xs:string) as xs:string {
- concat($basepath, tokenize($moduleURI, '/')[last()])
+ if ($moduleURI = 'http://www.w3.org/2005/xpath-functions') then
+ concat($basepath, 'fn')
+ else
+ concat($basepath, /xq:xqdoc/xq:module[xq:uri eq $moduleURI]/xq:name/text())
};
(: Constructs a URL from a module :)
declare function local:module-to-URL($module as xs:string) as xs:string {
- let $moduleURI := local:module-to-moduleURI($module)
- return local:moduleURI-to-URL($moduleURI)
+ concat($basepath, $module)
};
(: Constructs a URL from a function :)
@@ -146,18 +149,23 @@
concat(local:moduleURI-to-URL($moduleURI), '/', $function)
};
-(: Derives a module URI from a shorthand :)
-declare function local:module-to-moduleURI($module as xs:string) as xs:string {
- util:registered-modules()[ends-with(., $module)]
+(: Derives the module name from the module URI :)
+declare function local:moduleURI-to-module($moduleURI as xs:string) as xs:string {
+ if ($moduleURI = 'http://www.w3.org/2005/xpath-functions') then
+ 'fn'
+ else
+ /xq:xqdoc/xq:module[xq:uri eq $moduleURI]/xq:name/text()
};
(: Lists all modules :)
declare function local:list-modules($moduleURIs) {
(
+ <p class="f-reload"><a href="{request:get-context-path()}/admin/admin.xql?panel=fundocs">Reload documentation</a>
+ (click here if you enabled/disabled additional modules)</p>
+ ,
<p class="f-info">(<b>eXist version: {util:system-property("product-version")},
- build: {util:system-property("product-build")}.)</b> Modules have to be enabled
- in conf.xml to appear here.
- </p>
+ build: {util:system-property("product-build")}, functions: {count(//xq:function)}.)</b>
+ Modules have to be enabled in conf.xml to appear here.</p>
,
<p><a href="{concat($basepath, 'all')}">Expand All</a> or select a single module:</p>
,
@@ -167,7 +175,7 @@
</thead>
<tbody>{
for $moduleURI in $moduleURIs
- let $moduleDocs := util:extract-docs($moduleURI)
+ let $moduleDocs := /xq:xqdoc[xq:module/xq:uri eq $moduleURI]
let $moduleName :=
if ($moduleURI eq 'http://www.w3.org/2005/xpath-functions') then
(: note: the xq:name for the xpath functions module is empty
@@ -194,7 +202,7 @@
<a href="{$basepath}">Modules</a>
{
if ($viewall) then
- ' > All'
+ ' > All Modules and Functions'
else if ($module and not($function)) then
(
' > '
@@ -235,14 +243,19 @@
(: Catch a request for 'all', i.e. the complete listing :)
let $viewall := $module eq 'all'
- (: Derive proper module URIs :)
- let $allModules := util:registered-modules()
- let $matchingModules := if ($module) then $allModules[ends-with(., $module)] else ()
- let $moduleURIs := if ($matchingModules) then $matchingModules else $allModules
+ (: Derive module URIs based on URL parameter $module :)
+ let $allModuleURIs := /xq:xqdoc/xq:module/xq:uri
+ let $matchingModuleURIs := if ($module) then
+ if ($module = 'fn') then
+ 'http://www.w3.org/2005/xpath-functions'
+ else
+ $allModuleURIs[following-sibling::xq:name eq $module]
+ else ()
+ let $moduleURIs := if ($matchingModuleURIs) then $matchingModuleURIs else $allModuleURIs
return
(
- (: Show verbose module documentation :)
+ (: Show documentation for all modules:)
if ($viewall) then
(
local:breadcrumbs($module, $function, $viewall)
@@ -259,17 +272,28 @@
local:list-modules($moduleURIs)
)
(: Show a single module :)
- else if ($module and $matchingModules) then
- (
- local:breadcrumbs($module, $function, $viewall)
- ,
- local:render-module($moduleURIs, $function, $showlinks)
- ,
- local:return-to-main()
- )
- (: Show error, since there was no matching module :)
+ else if ($module and $matchingModuleURIs) then
+ if (count($matchingModuleURIs) gt 1) then
+ (: TODO: Add handling for resolving modules with the same 'name' :)
+ (
+ local:breadcrumbs($module, $function, $viewall)
+ ,
+ local:render-module($moduleURIs, $function, $showlinks)
+ ,
+ local:return-to-main()
+ )
+ else
+ (
+ local:breadcrumbs($module, $function, $viewall)
+ ,
+ local:render-module($moduleURIs, $function, $showlinks)
+ ,
+ local:return-to-main()
+ )
+ (: Handle cases where there are no exact matching modules :)
else
(: else if ($module and not($matchingModules)) :)
+ (: TODO add a fuzzy search :)
(
local:breadcrumbs((), (), $viewall)
,
@@ -286,7 +310,7 @@
<bookinfo>
<graphic fileref="logo.jpg"/>
<productname>Open Source Native XML Database</productname>
- <title>eXist Java-Based Function Modules</title>
+ <title>eXist Function Modules</title>
<link rel="shortcut icon" href="../resources/exist_icon_16x16.ico"/>
<link rel="icon" href="../resources/exist_icon_16x16.png" type="image/png"/>
<style language="text/css">
@@ -317,7 +341,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../sidebar.xml"/>
<chapter>
- <title>A RESTful browser for eXist Java-Based Function Modules</title>
+ <title>A RESTful browser for eXist Function Modules</title>
{ local:main() }
</chapter>
</book>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <di...@us...> - 2009-11-29 13:44:13
|
Revision: 10669
http://exist.svn.sourceforge.net/exist/?rev=10669&view=rev
Author: dizzzz
Date: 2009-11-29 13:44:07 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[ignore] upgrade download of saxonhe . new path
Modified Paths:
--------------
trunk/eXist/build/scripts/build-impl.xml
Modified: trunk/eXist/build/scripts/build-impl.xml
===================================================================
--- trunk/eXist/build/scripts/build-impl.xml 2009-11-29 13:29:32 UTC (rev 10668)
+++ trunk/eXist/build/scripts/build-impl.xml 2009-11-29 13:44:07 UTC (rev 10669)
@@ -617,7 +617,7 @@
<echo message="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"/>
<echo message="!! Please run '$EXIST_HOME/build.[bat|sh] -f build\scripts\jarsigner.xml' "/>
<echo message="!! once manually to use a default keystore to sign the core jars or put !!"/>
- <echo message="!! your own certificate in $EXIST_HOME/key.store and sign for enabling webstart !!"/>
+ <echo message="!! your own certificate in $EXIST_HOME/key.store and sign for enabling webstart !!"/>
<echo message="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"/>
<!-- the core jars can NOT be signed in this build.xml file because -->
@@ -648,10 +648,12 @@
<!-- Saxon XSLT2 Processor -->
<!-- http://sourceforge.net/projects/saxon -->
- <get src="http://sourceforge.net/projects/saxon/files/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip/download"
- dest="${lib.endorsed}/saxon.zip" verbose="true"/>
+ <property name="saxon.zip" value="${lib.user}/saxon.zip"/>
+
+ <get src="http://sourceforge.net/projects/saxon/files/Saxon-HE/9.2/saxonhe9-2-0-3j.zip/download"
+ dest="${lib.user}/saxon.zip" verbose="true"/>
- <unzip src="${lib.endorsed}/saxon.zip" dest="${lib.endorsed}">
+ <unzip src="${saxon.zip}" dest="${lib.user}">
<patternset>
<include name="**/saxon9he.jar"/>
<include name="**/saxon9.jar"/>
@@ -660,7 +662,7 @@
</patternset>
</unzip>
- <delete failonerror="no" file="${lib.endorsed}/saxon.zip"/>
+ <delete failonerror="no" file="${saxon.zip}"/>
</target>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <di...@us...> - 2009-11-29 13:29:40
|
Revision: 10668
http://exist.svn.sourceforge.net/exist/?rev=10668&view=rev
Author: dizzzz
Date: 2009-11-29 13:29:32 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[ignore] reformatted, added comments
Modified Paths:
--------------
trunk/eXist/extensions/modules/build.xml
Modified: trunk/eXist/extensions/modules/build.xml
===================================================================
--- trunk/eXist/extensions/modules/build.xml 2009-11-29 13:15:54 UTC (rev 10667)
+++ trunk/eXist/extensions/modules/build.xml 2009-11-29 13:29:32 UTC (rev 10668)
@@ -1,19 +1,30 @@
<!--
+ Ant build file for the exist-db extension modules.
+
+ Requires a configuration file called local.build.properties or build.properties.
+
$Id$
-->
<project basedir="." default="jar" name="modules">
+ <!--
+ Reference to directories
+ -->
<property name="src" value="./src"/>
<property name="classes" value="./classes"/>
- <property name="top.dir" value="../.."/>
-
+
+ <property name="top.dir" value="../.."/>
+ <property file="${top.dir}/build.properties"/>
+
<property name="build.compiler" value="modern"/>
- <property file="${top.dir}/build.properties"/>
-
+ <!--
+ Get values from properies files. Note that the values in "local.build.properties"
+ are leading to "build.properties".
+ -->
<property file="../local.build.properties"/>
<property file="../build.properties"/>
-
+
<condition property="include.module.simpleql.config">
<istrue value="${include.module.simpleql}"/>
</condition>
@@ -27,7 +38,7 @@
</condition>
<condition property="include.module.mail.config">
- <istrue value="${include.module.mail}"/>
+ <istrue value="${include.module.mail}"/>
</condition>
<condition property="include.module.file.config">
@@ -45,121 +56,131 @@
<condition property="include.module.svn.config">
<istrue value="${include.module.svn}"/>
</condition>
-
+
<condition property="include.module.jndi.config">
<istrue value="${include.module.jndi}"/>
</condition>
-
+
<condition property="include.module.jfreechart.config">
<istrue value="${include.module.jfreechart}"/>
</condition>
- <!-- Special targets for XSLFO module -->
+ <!--
+ Special targets for XSLFO module
+ -->
<condition property="libs.available.xslfo">
- <and>
- <available file="${top.dir}/${lib.user}/fop.jar"/>
- <available file="${top.dir}/${lib.user}/batik-all-1.7.jar"/>
- <available file="${top.dir}/${lib.user}/xmlgraphics-commons-1.3.1.jar"/>
- <available file="${top.dir}/${lib.user}/avalon-framework-api-4.3.jar"/>
- <available file="${top.dir}/${lib.user}/avalon-framework-impl-4.3.jar"/>
- </and>
- </condition>
-
- <target name="prepare-libs-xslfo" unless="libs.available.xslfo" if="include.module.xslfo.config">
+ <and>
+ <available file="${top.dir}/${lib.user}/fop.jar"/>
+ <available file="${top.dir}/${lib.user}/batik-all-1.7.jar"/>
+ <available file="${top.dir}/${lib.user}/xmlgraphics-commons-1.3.1.jar"/>
+ <available file="${top.dir}/${lib.user}/avalon-framework-api-4.3.jar"/>
+ <available file="${top.dir}/${lib.user}/avalon-framework-impl-4.3.jar"/>
+ </and>
+ </condition>
+
+ <target name="prepare-libs-xslfo" unless="libs.available.xslfo" if="include.module.xslfo.config">
<echo message="Load: ${include.module.xslfo}"/>
<echo message="------------------------------------------------------"/>
- <echo message="Downloading libraries required by the xsl-fo module"/>
- <echo message="------------------------------------------------------"/>
+ <echo message="Downloading libraries required by the xsl-fo module"/>
+ <echo message="------------------------------------------------------"/>
- <!-- Apache FOP -->
- <get src="${include.module.xslfo.url}" dest="fop-0.95-bin.zip" verbose="true" usetimestamp="true" />
- <unzip src="fop-0.95-bin.zip" dest="${top.dir}/${lib.user}">
- <patternset>
- <include name="fop-0.95/build/fop.jar"/>
- <include name="fop-0.95/lib/batik-all-1.7.jar"/>
- <include name="fop-0.95/lib/xmlgraphics-commons-1.3.1.jar"/>
- </patternset>
- <mapper type="flatten"/>
- </unzip>
- <delete file="fop-0.95-bin.zip"/>
-
- <!-- Avalon API -->
- <get src="${include.module.xslfo.avalon.api.url}" dest="avalon-framework-api-4.3.zip" verbose="true" usetimestamp="true" />
- <unzip src="avalon-framework-api-4.3.zip" dest="${top.dir}/${lib.user}">
- <patternset>
- <include name="avalon-framework-api-4.3/avalon-framework-api-4.3.jar"/>
- </patternset>
- <mapper type="flatten"/>
- </unzip>
- <delete file="avalon-framework-api-4.3.zip"/>
-
- <!-- Avalon Impl -->
- <get src="${include.module.xslfo.avalon.impl.url}" dest="avalon-framework-impl-4.3.zip" verbose="true" usetimestamp="true" />
- <unzip src="avalon-framework-impl-4.3.zip" dest="${top.dir}/${lib.user}">
- <patternset>
- <include name="avalon-framework-impl-4.3/avalon-framework-impl-4.3.jar"/>
- </patternset>
- <mapper type="flatten"/>
- </unzip>
- <delete file="avalon-framework-impl-4.3.zip"/>
-
- </target>
-
- <!-- Special targets for simpleql module -->
- <uptodate property="parser.uptodate"
- srcfile="${src}/org/exist/xquery/modules/simpleql/SimpleQLParser.g"
- targetfile="${src}/org/exist/xquery/modules/simpleql/SimpleQLParser.java"/>
+ <!-- Apache FOP -->
+ <get src="${include.module.xslfo.url}" dest="fop-0.95-bin.zip" verbose="true" usetimestamp="true"/>
+ <unzip src="fop-0.95-bin.zip" dest="${top.dir}/${lib.user}">
+ <patternset>
+ <include name="fop-0.95/build/fop.jar"/>
+ <include name="fop-0.95/lib/batik-all-1.7.jar"/>
+ <include name="fop-0.95/lib/xmlgraphics-commons-1.3.1.jar"/>
+ </patternset>
+ <mapper type="flatten"/>
+ </unzip>
+ <delete file="fop-0.95-bin.zip"/>
- <target name="prepare-simpleql" unless="parser.uptodate" if="include.module.simpleql.config">
+ <!-- Avalon API -->
+ <get src="${include.module.xslfo.avalon.api.url}" dest="avalon-framework-api-4.3.zip" verbose="true"
+ usetimestamp="true"/>
+ <unzip src="avalon-framework-api-4.3.zip" dest="${top.dir}/${lib.user}">
+ <patternset>
+ <include name="avalon-framework-api-4.3/avalon-framework-api-4.3.jar"/>
+ </patternset>
+ <mapper type="flatten"/>
+ </unzip>
+ <delete file="avalon-framework-api-4.3.zip"/>
+
+ <!-- Avalon Impl -->
+ <get src="${include.module.xslfo.avalon.impl.url}" dest="avalon-framework-impl-4.3.zip" verbose="true"
+ usetimestamp="true"/>
+ <unzip src="avalon-framework-impl-4.3.zip" dest="${top.dir}/${lib.user}">
+ <patternset>
+ <include name="avalon-framework-impl-4.3/avalon-framework-impl-4.3.jar"/>
+ </patternset>
+ <mapper type="flatten"/>
+ </unzip>
+ <delete file="avalon-framework-impl-4.3.zip"/>
+
+ </target>
+
+ <!--
+ Special targets for simpleql module
+ -->
+ <uptodate property="parser.uptodate" srcfile="${src}/org/exist/xquery/modules/simpleql/SimpleQLParser.g"
+ targetfile="${src}/org/exist/xquery/modules/simpleql/SimpleQLParser.java"/>
+
+ <target name="prepare-simpleql" unless="parser.uptodate" if="include.module.simpleql.config">
<echo message="Running ANTLR to generate XQuery parser"/>
- <antlr target="${src}/org/exist/xquery/modules/simpleql/SimpleQLParser.g"
- outputdirectory="${src}/org/exist/xquery/modules/simpleql"
- traceparser="${antlr.traceParser}"
- tracelexer="${antlr.traceLexer}">
+ <antlr target="${src}/org/exist/xquery/modules/simpleql/SimpleQLParser.g"
+ outputdirectory="${src}/org/exist/xquery/modules/simpleql" traceparser="${antlr.traceParser}"
+ tracelexer="${antlr.traceLexer}">
<classpath>
<path refid="classpath.core"/>
</classpath>
</antlr>
- </target>
-
- <!-- Special targets for svn module -->
+ </target>
+
+ <!--
+ Special targets for svn module
+ -->
<property name="svn.svnkit.jar" value="${top.dir}/${lib.user}/svnkit.jar"/>
<available file="${svn.svnkit.jar}" property="svn-present"/>
-
+
<target name="prepare-svn" if="include.module.svn.config" unless="svn-present">
<echo message="-------------------------------------------------------"/>
- <echo message="Downloading libraries required by the subversion module"/>
- <echo message="-------------------------------------------------------"/>
- <get src="${include.module.svn.url}"
- dest="${svn.svnkit.jar}" verbose="true"/>
+ <echo message="Downloading libraries required by the subversion module"/>
+ <echo message="-------------------------------------------------------"/>
+ <get src="${include.module.svn.url}" dest="${svn.svnkit.jar}" verbose="true"/>
</target>
- <!-- Special targets for jfreechart module -->
+ <!--
+ Special targets for jfreechart module
+ -->
<property name="chart.jfreechart.zip" value="${top.dir}/${lib.user}/jfreechart.zip"/>
<available classname="org.jfree.chart.JFreeChart" classpathref="classpath.core" property="jfreechart-present"/>
-
+
<target name="prepare-jfreechart" if="include.module.jfreechart.config" unless="jfreechart-present">
<echo message="-------------------------------------------------------"/>
- <echo message="Downloading libraries required by the jfreechart module"/>
- <echo message="-------------------------------------------------------"/>
-
- <get src="${include.module.jfreechart.url}"
- dest="${chart.jfreechart.zip}" verbose="true"/>
+ <echo message="Downloading libraries required by the jfreechart module"/>
+ <echo message="-------------------------------------------------------"/>
+ <get src="${include.module.jfreechart.url}" dest="${chart.jfreechart.zip}" verbose="true"/>
+
<unzip src="${chart.jfreechart.zip}" dest="${top.dir}/${lib.user}">
- <patternset>
- <include name="**/lib/jfreechart-*.jar"/>
+ <patternset>
+ <include name="**/lib/jfreechart-*.jar"/>
<include name="**/lib/jcommon-*.jar"/>
<exclude name="**/lib/jfreechart-*-*.jar"/>
- </patternset>
- <mapper type="flatten"/>
- </unzip>
+ </patternset>
+ <mapper type="flatten"/>
+ </unzip>
<delete file="${chart.jfreechart.zip}"/>
</target>
-
- <!-- Special targets end -->
-
+
+ <!--
+ ========================================
+ Below this line only generic build items
+ ========================================
+ -->
+
<path id="classpath.core">
<fileset dir="${top.dir}/${lib.core}">
<include name="*.jar"/>
@@ -167,39 +188,38 @@
<fileset dir="${top.dir}/${lib.optional}">
<include name="*.jar"/>
</fileset>
- <fileset dir="${top.dir}/${lib.endorsed}">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="${top.dir}/${lib.user}">
- <include name="*.jar"/>
- </fileset>
+ <fileset dir="${top.dir}/${lib.endorsed}">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="${top.dir}/${lib.user}">
+ <include name="*.jar"/>
+ </fileset>
<fileset dir="${top.dir}/tools/ant/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${top.dir}/exist.jar"/>
- <pathelement path="${top.dir}/exist-optional.jar"/>
- <pathelement path="${top.dir}/start.jar"/>
- <pathelement path="${java.class.path}"/>
+ <pathelement path="${top.dir}/exist-optional.jar"/>
+ <pathelement path="${top.dir}/start.jar"/>
+ <pathelement path="${java.class.path}"/>
</path>
-
+
<target name="prepare" depends="prepare-svn,prepare-libs-xslfo,prepare-simpleql,prepare-jfreechart">
- <mkdir dir="${classes}"/>
+ <mkdir dir="${classes}"/>
</target>
-
- <target name="compile" depends="prepare">
- <echo message="---------------------------"/>
+
+ <target name="compile" depends="prepare" description="Compile extension modules">
+ <echo message="---------------------------"/>
<echo message="Compiling extension modules"/>
<echo message="---------------------------"/>
<echo
message="Compiling with Java ${ant.java.version} from ${build.compiler.source} source to ${build.compiler.target} target, debug ${build.debug}, optimize ${build.optimize}, deprecation ${build.deprecation}"/>
-
- <javac debug="${build.debug}" deprecation="${build.deprecation}"
- destdir="${classes}" encoding="UTF-8"
- optimize="${build.optimize}" srcdir="${src}"
- source="${build.compiler.source}" target="${build.compiler.target}">
+
+ <javac debug="${build.debug}" deprecation="${build.deprecation}" destdir="${classes}" encoding="UTF-8"
+ optimize="${build.optimize}" srcdir="${src}" source="${build.compiler.source}"
+ target="${build.compiler.target}">
<classpath>
- <path refid="classpath.core"/>
+ <path refid="classpath.core"/>
</classpath>
<exclude name="org/exist/xquery/modules/xslfo/**" unless="include.module.xslfo.config"/>
@@ -213,8 +233,8 @@
<exclude name="org/exist/xquery/modules/jndi/**" unless="include.module.jndi.config"/>
<exclude name="org/exist/xquery/modules/jfreechart/**" unless="include.module.jfreechart.config"/>
</javac>
- </target>
-
+ </target>
+
<target name="svn.resources" if="include.module.svn.config">
<copy todir="${classes}/org/exist/xquery/modules/svn/">
<fileset dir="${src}/org/exist/xquery/modules/svn/">
@@ -222,21 +242,21 @@
</fileset>
</copy>
</target>
-
- <target name="jar" depends="compile,svn.resources">
- <echo message="Creating exist-modules.jar ..."/>
- <jar basedir="${classes}" jarfile="${top.dir}/${lib.extensions}/exist-modules.jar">
- <manifest>
+
+ <target name="jar" depends="compile,svn.resources">
+ <echo message="Creating exist-modules.jar ..."/>
+ <jar basedir="${classes}" jarfile="${top.dir}/${lib.extensions}/exist-modules.jar">
+ <manifest>
<attribute name="Project-Name" value="${project.name}"/>
<attribute name="Project-Version" value="${project.version}"/>
<attribute name="Project-Build" value="${DSTAMP}"/>
<attribute name="SVN-Revision" value="${svn.revision}"/>
- </manifest>
- </jar>
- </target>
+ </manifest>
+ </jar>
+ </target>
- <target name="clean">
- <delete dir="${classes}"/>
- <delete file="${top.dir}/${lib.extensions}/exist-modules.jar" failonerror="false"/>
- </target>
+ <target name="clean">
+ <delete dir="${classes}"/>
+ <delete file="${top.dir}/${lib.extensions}/exist-modules.jar" failonerror="false"/>
+ </target>
</project>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <di...@us...> - 2009-11-29 13:16:00
|
Revision: 10667
http://exist.svn.sourceforge.net/exist/?rev=10667&view=rev
Author: dizzzz
Date: 2009-11-29 13:15:54 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[ignore] redesign of conditional download of jfreechart libs.
Modified Paths:
--------------
trunk/eXist/extensions/modules/build.xml
Modified: trunk/eXist/extensions/modules/build.xml
===================================================================
--- trunk/eXist/extensions/modules/build.xml 2009-11-29 11:43:45 UTC (rev 10666)
+++ trunk/eXist/extensions/modules/build.xml 2009-11-29 13:15:54 UTC (rev 10667)
@@ -136,7 +136,7 @@
<!-- Special targets for jfreechart module -->
<property name="chart.jfreechart.zip" value="${top.dir}/${lib.user}/jfreechart.zip"/>
- <available file="${chart.jfreechart.zip}" property="jfreechart-present"/>
+ <available classname="org.jfree.chart.JFreeChart" classpathref="classpath.core" property="jfreechart-present"/>
<target name="prepare-jfreechart" if="include.module.jfreechart.config" unless="jfreechart-present">
<echo message="-------------------------------------------------------"/>
@@ -155,7 +155,7 @@
<mapper type="flatten"/>
</unzip>
- <!--delete file="${chart.jfreechart.zip}"/-->
+ <delete file="${chart.jfreechart.zip}"/>
</target>
<!-- Special targets end -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-29 11:43:58
|
Revision: 10666
http://exist.svn.sourceforge.net/exist/?rev=10666&view=rev
Author: wolfgang_m
Date: 2009-11-29 11:43:45 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[ignore] fix xqdoc build
Port of rev 10665
Revision Links:
--------------
http://exist.svn.sourceforge.net/exist/?rev=10665&view=rev
Modified Paths:
--------------
stable/eXist-1.4.x/extensions/xqdoc/build.xml
Property Changed:
----------------
stable/eXist-1.4.x/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java
Property changes on: stable/eXist-1.4.x/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/eXist/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java:10520-10526,10529-10532,10537,10539-10540,10551-10552,10576,10583-10586,10589,10653,10663
+ /trunk/eXist/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java:10520-10526,10529-10532,10537,10539-10540,10551-10552,10576,10583-10586,10589,10653,10663,10665
Modified: stable/eXist-1.4.x/extensions/xqdoc/build.xml
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/build.xml 2009-11-29 11:39:57 UTC (rev 10665)
+++ stable/eXist-1.4.x/extensions/xqdoc/build.xml 2009-11-29 11:43:45 UTC (rev 10666)
@@ -78,6 +78,8 @@
</javac>
<copy file="${src}/org/exist/xqdoc/ant/antlib.xml"
todir="${xqdoc.classes}/org/exist/xqdoc/ant"/>
+ <copy file="${src}/org/exist/xqdoc/xquery/normalize.xql"
+ todir="${xqdoc.classes}/org/exist/xqdoc/xquery"/>
</target>
<target name="jar" depends="compile" if="include.feature.xqdoc.config">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-29 11:40:04
|
Revision: 10665
http://exist.svn.sourceforge.net/exist/?rev=10665&view=rev
Author: wolfgang_m
Date: 2009-11-29 11:39:57 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[ignore] fix xqdoc build
Modified Paths:
--------------
trunk/eXist/extensions/xqdoc/build.xml
Modified: trunk/eXist/extensions/xqdoc/build.xml
===================================================================
--- trunk/eXist/extensions/xqdoc/build.xml 2009-11-29 10:02:42 UTC (rev 10664)
+++ trunk/eXist/extensions/xqdoc/build.xml 2009-11-29 11:39:57 UTC (rev 10665)
@@ -78,6 +78,8 @@
</javac>
<copy file="${src}/org/exist/xqdoc/ant/antlib.xml"
todir="${xqdoc.classes}/org/exist/xqdoc/ant"/>
+ <copy file="${src}/org/exist/xqdoc/xquery/normalize.xql"
+ todir="${xqdoc.classes}/org/exist/xqdoc/xquery"/>
</target>
<target name="jar" depends="compile" if="include.feature.xqdoc.config">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-29 10:02:48
|
Revision: 10664
http://exist.svn.sourceforge.net/exist/?rev=10664&view=rev
Author: wolfgang_m
Date: 2009-11-29 10:02:42 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[feature] XQDoc module: changed scan function to extract a short name for the scanned module URI; remove leading "declare function " from function signatures.
Port of rev 10663
Revision Links:
--------------
http://exist.svn.sourceforge.net/exist/?rev=10663&view=rev
Modified Paths:
--------------
stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
Added Paths:
-----------
stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql
Property Changed:
----------------
stable/eXist-1.4.x/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java
Property changes on: stable/eXist-1.4.x/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/eXist/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java:10520-10526,10529-10532,10537,10539-10540,10551-10552,10576,10583-10586,10589,10653
+ /trunk/eXist/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java:10520-10526,10529-10532,10537,10539-10540,10551-10552,10576,10583-10586,10589,10653,10663
Modified: stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-29 09:59:26 UTC (rev 10663)
+++ stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-29 10:02:42 UTC (rev 10664)
@@ -5,10 +5,8 @@
import org.exist.dom.DocumentImpl;
import org.exist.dom.QName;
import org.exist.security.PermissionDeniedException;
-import org.exist.source.BinarySource;
-import org.exist.source.DBSource;
-import org.exist.source.Source;
-import org.exist.source.SourceFactory;
+import org.exist.security.xacml.AccessContext;
+import org.exist.source.*;
import org.exist.storage.lock.Lock;
import org.exist.util.LockException;
import org.exist.xmldb.XmldbURI;
@@ -22,6 +20,8 @@
import java.io.IOException;
import java.net.URISyntaxException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class Scan extends BasicFunction {
@@ -56,6 +56,12 @@
)
};
+ private final static Pattern NAME_PATTERN = Pattern.compile("([^/\\.]+)\\.?[^\\.]*$");
+
+ private final static String NORMALIZE_XQUERY = "resource:org/exist/xqdoc/xquery/normalize.xql";
+
+ private CompiledXQuery normalizeXQuery = null;
+
public Scan(XQueryContext context, FunctionSignature signature) {
super(context, signature);
}
@@ -107,7 +113,7 @@
uri = location;
try {
source = SourceFactory.getSource(context.getBroker(), context.getModuleLoadPath(), uri, false);
- name = source.getKey().toString();
+ name = extractName(uri);
} catch (IOException e) {
throw new XPathException(this, "failed to read module " + uri, e);
} catch (PermissionDeniedException e) {
@@ -121,7 +127,7 @@
NodeValue root = ModuleUtils.stringToXML(context, xml);
if (root == null)
return Sequence.EMPTY_SEQUENCE;
- return (NodeValue) ((Document) root).getDocumentElement();
+ return normalize((NodeValue) ((Document) root).getDocumentElement());
} catch (XQDocException e) {
throw new XPathException(this, "error while scanning module: " + e.getMessage(), e);
} catch (IOException e) {
@@ -130,4 +136,23 @@
throw new XPathException(this, "error while scanning module: " + e.getMessage(), e);
}
}
+
+ private String extractName(String uri) {
+ Matcher matcher = NAME_PATTERN.matcher(uri);
+ if (matcher.find()) {
+ return matcher.group(1);
+ }
+ return uri;
+ }
+
+ private Sequence normalize(NodeValue input) throws IOException, XPathException {
+ XQuery xquery = context.getBroker().getXQueryService();
+ if (normalizeXQuery == null) {
+ Source source = new ClassLoaderSource(NORMALIZE_XQUERY);
+ XQueryContext xc = xquery.newContext(AccessContext.INITIALIZE);
+ normalizeXQuery = xquery.compile(xc, source);
+ }
+ normalizeXQuery.getContext().declareVariable("xqdoc:doc", input);
+ return xquery.execute(normalizeXQuery, Sequence.EMPTY_SEQUENCE);
+ }
}
\ No newline at end of file
Copied: stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql (from rev 10663, trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql)
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql (rev 0)
+++ stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql 2009-11-29 10:02:42 UTC (rev 10664)
@@ -0,0 +1,21 @@
+xquery version "1.0";
+
+declare namespace xqdoc="http://www.xqdoc.org/1.0";
+
+declare variable $xqdoc:doc external;
+
+declare function xqdoc:normalize($node as node()) {
+ typeswitch ($node)
+ case element(xqdoc:signature) return
+ element xqdoc:signature {
+ $node/@*, replace($node/string(), "\s*declare function\s+", "")
+ }
+ case element() return
+ element { node-name($node) } {
+ $node/@*, for $child in $node/node() return xqdoc:normalize($child)
+ }
+ default return
+ $node
+};
+
+xqdoc:normalize($xqdoc:doc)
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-29 09:59:35
|
Revision: 10663
http://exist.svn.sourceforge.net/exist/?rev=10663&view=rev
Author: wolfgang_m
Date: 2009-11-29 09:59:26 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[feature] XQDoc module: changed scan function to extract a short name for the scanned module URI; remove leading "declare function " from function signatures.
Modified Paths:
--------------
trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
Added Paths:
-----------
trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql
Modified: trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
===================================================================
--- trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-29 01:42:16 UTC (rev 10662)
+++ trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-29 09:59:26 UTC (rev 10663)
@@ -5,10 +5,8 @@
import org.exist.dom.DocumentImpl;
import org.exist.dom.QName;
import org.exist.security.PermissionDeniedException;
-import org.exist.source.BinarySource;
-import org.exist.source.DBSource;
-import org.exist.source.Source;
-import org.exist.source.SourceFactory;
+import org.exist.security.xacml.AccessContext;
+import org.exist.source.*;
import org.exist.storage.lock.Lock;
import org.exist.util.LockException;
import org.exist.xmldb.XmldbURI;
@@ -22,6 +20,8 @@
import java.io.IOException;
import java.net.URISyntaxException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class Scan extends BasicFunction {
@@ -56,6 +56,12 @@
)
};
+ private final static Pattern NAME_PATTERN = Pattern.compile("([^/\\.]+)\\.?[^\\.]*$");
+
+ private final static String NORMALIZE_XQUERY = "resource:org/exist/xqdoc/xquery/normalize.xql";
+
+ private CompiledXQuery normalizeXQuery = null;
+
public Scan(XQueryContext context, FunctionSignature signature) {
super(context, signature);
}
@@ -107,7 +113,7 @@
uri = location;
try {
source = SourceFactory.getSource(context.getBroker(), context.getModuleLoadPath(), uri, false);
- name = source.getKey().toString();
+ name = extractName(uri);
} catch (IOException e) {
throw new XPathException(this, "failed to read module " + uri, e);
} catch (PermissionDeniedException e) {
@@ -121,7 +127,7 @@
NodeValue root = ModuleUtils.stringToXML(context, xml);
if (root == null)
return Sequence.EMPTY_SEQUENCE;
- return (NodeValue) ((Document) root).getDocumentElement();
+ return normalize((NodeValue) ((Document) root).getDocumentElement());
} catch (XQDocException e) {
throw new XPathException(this, "error while scanning module: " + e.getMessage(), e);
} catch (IOException e) {
@@ -130,4 +136,23 @@
throw new XPathException(this, "error while scanning module: " + e.getMessage(), e);
}
}
+
+ private String extractName(String uri) {
+ Matcher matcher = NAME_PATTERN.matcher(uri);
+ if (matcher.find()) {
+ return matcher.group(1);
+ }
+ return uri;
+ }
+
+ private Sequence normalize(NodeValue input) throws IOException, XPathException {
+ XQuery xquery = context.getBroker().getXQueryService();
+ if (normalizeXQuery == null) {
+ Source source = new ClassLoaderSource(NORMALIZE_XQUERY);
+ XQueryContext xc = xquery.newContext(AccessContext.INITIALIZE);
+ normalizeXQuery = xquery.compile(xc, source);
+ }
+ normalizeXQuery.getContext().declareVariable("xqdoc:doc", input);
+ return xquery.execute(normalizeXQuery, Sequence.EMPTY_SEQUENCE);
+ }
}
\ No newline at end of file
Added: trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql
===================================================================
--- trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql (rev 0)
+++ trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/normalize.xql 2009-11-29 09:59:26 UTC (rev 10663)
@@ -0,0 +1,21 @@
+xquery version "1.0";
+
+declare namespace xqdoc="http://www.xqdoc.org/1.0";
+
+declare variable $xqdoc:doc external;
+
+declare function xqdoc:normalize($node as node()) {
+ typeswitch ($node)
+ case element(xqdoc:signature) return
+ element xqdoc:signature {
+ $node/@*, replace($node/string(), "\s*declare function\s+", "")
+ }
+ case element() return
+ element { node-name($node) } {
+ $node/@*, for $child in $node/node() return xqdoc:normalize($child)
+ }
+ default return
+ $node
+};
+
+xqdoc:normalize($xqdoc:doc)
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <el...@us...> - 2009-11-29 01:42:27
|
Revision: 10662
http://exist.svn.sourceforge.net/exist/?rev=10662&view=rev
Author: ellefj
Date: 2009-11-29 01:42:16 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
[bug-fix] Restored run method for working with wrapper in StandaloneServer.java. Dmitriy, this is called from org.exist.wrapper.Main.java.
Modified Paths:
--------------
trunk/eXist/src/org/exist/StandaloneServer.java
Modified: trunk/eXist/src/org/exist/StandaloneServer.java
===================================================================
--- trunk/eXist/src/org/exist/StandaloneServer.java 2009-11-28 08:18:35 UTC (rev 10661)
+++ trunk/eXist/src/org/exist/StandaloneServer.java 2009-11-29 01:42:16 UTC (rev 10662)
@@ -122,6 +122,10 @@
}
public void run(String[] args) throws Exception {
+ run(args, null);
+ }
+
+ public void run(String[] args, Observer observer) throws Exception {
printNotice();
//set default properties
@@ -170,6 +174,8 @@
LOG.info("Loading configuration ...");
Configuration config = new Configuration("conf.xml");
+ if (observer != null)
+ BrokerPool.registerStatusObserver(observer);
BrokerPool.configure(1, threads, config);
BrokerPool.getInstance().registerShutdownListener(new ShutdownListenerImpl());
initXMLDB();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-28 08:18:45
|
Revision: 10661
http://exist.svn.sourceforge.net/exist/?rev=10661&view=rev
Author: shabanovd
Date: 2009-11-28 08:18:35 +0000 (Sat, 28 Nov 2009)
Log Message:
-----------
[ignore] update jquery up to 1.3.2
Modified Paths:
--------------
branches/shabanovd/access_control/webapp/openid/login.xql
Added Paths:
-----------
branches/shabanovd/access_control/webapp/openid/js/jquery-1.3.2.min.js
Removed Paths:
-------------
branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js
Deleted: branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js
===================================================================
--- branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js 2009-11-28 08:16:28 UTC (rev 10660)
+++ branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js 2009-11-28 08:18:35 UTC (rev 10661)
@@ -1,32 +0,0 @@
-/*
- * jQuery 1.2.6 - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
- * $Rev: 5685 $
- */
-(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
-return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
-return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
-selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,"select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
-return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
-this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
-return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
-jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&©&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
-script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
-for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
-for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
-jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
-ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
-while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
-while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
-for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
-jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script."loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
-xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var "timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
-jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
-for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
-s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
-e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
\ No newline at end of file
Added: branches/shabanovd/access_control/webapp/openid/js/jquery-1.3.2.min.js
===================================================================
--- branches/shabanovd/access_control/webapp/openid/js/jquery-1.3.2.min.js (rev 0)
+++ branches/shabanovd/access_control/webapp/openid/js/jquery-1.3.2.min.js 2009-11-28 08:18:35 UTC (rev 10661)
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){v...
[truncated message content] |
|
From: <sha...@us...> - 2009-11-28 08:16:34
|
Revision: 10660
http://exist.svn.sourceforge.net/exist/?rev=10660&view=rev
Author: shabanovd
Date: 2009-11-28 08:16:28 +0000 (Sat, 28 Nov 2009)
Log Message:
-----------
[feature] OpenId authenticator servlet
Added Paths:
-----------
branches/shabanovd/access_control/src/org/exist/security/openid/servlet/
branches/shabanovd/access_control/src/org/exist/security/openid/servlet/AuthenticatorOpenId.java
Added: branches/shabanovd/access_control/src/org/exist/security/openid/servlet/AuthenticatorOpenId.java
===================================================================
--- branches/shabanovd/access_control/src/org/exist/security/openid/servlet/AuthenticatorOpenId.java (rev 0)
+++ branches/shabanovd/access_control/src/org/exist/security/openid/servlet/AuthenticatorOpenId.java 2009-11-28 08:16:28 UTC (rev 10660)
@@ -0,0 +1,140 @@
+/*
+ * eXist Open Source Native XML Database
+ * Copyright (C) 2009 The eXist Project
+ * http://exist-db.org
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+package org.exist.security.openid.servlet;
+
+import java.io.IOException;
+import java.util.List;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.openid4java.OpenIDException;
+import org.openid4java.consumer.ConsumerException;
+import org.openid4java.consumer.ConsumerManager;
+import org.openid4java.consumer.VerificationResult;
+import org.openid4java.discovery.DiscoveryInformation;
+import org.openid4java.discovery.Identifier;
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.ParameterList;
+
+/**
+ * @author <a href="mailto:sha...@gm...">Dmitriy Shabanov</a>
+ *
+ */
+public class AuthenticatorOpenId extends HttpServlet {
+
+ private static final long serialVersionUID = -2924397314671034627L;
+
+ public ConsumerManager manager;
+
+ public AuthenticatorOpenId() throws ConsumerException
+ {
+ manager = new ConsumerManager();
+ }
+
+ // authentication request
+ public String authRequest(String userSuppliedString,
+ HttpServletRequest httpReq, HttpServletResponse httpResp)
+ throws IOException, ServletException {
+
+ try {
+ httpReq.getContextPath();
+
+ // configure the return_to URL where your application will receive
+ // the authentication responses from the OpenID provider
+ String returnToUrl = "http://example.com/openid";
+
+ // perform discovery on the user-supplied identifier
+ List<?> discoveries = manager.discover(userSuppliedString);
+
+ // attempt to associate with the OpenID provider
+ // and retrieve one service endpoint for authentication
+ DiscoveryInformation discovered = manager.associate(discoveries);
+
+ // store the discovery information in the user's session
+ httpReq.getSession().setAttribute("openid-disc", discovered);
+
+ // obtain a AuthRequest message to be sent to the OpenID provider
+ AuthRequest authReq = manager.authenticate(discovered, returnToUrl);
+
+ if (!discovered.isVersion2()) {
+ // Option 1: GET HTTP-redirect to the OpenID Provider endpoint
+ // The only method supported in OpenID 1.x
+ // redirect-URL usually limited ~2048 bytes
+ httpResp.sendRedirect(authReq.getDestinationUrl(true));
+ return null;
+
+ } else {
+ // Option 2: HTML FORM Redirection (Allows payloads >2048 bytes)
+
+ RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("formredirection.jsp");
+ httpReq.setAttribute("parameterMap", authReq.getParameterMap());
+ httpReq.setAttribute("destinationUrl", authReq
+ .getDestinationUrl(false));
+ dispatcher.forward(httpReq, httpResp);
+ }
+ } catch (OpenIDException e) {
+ // present error to the user
+ }
+
+ return null;
+
+ }
+
+ // authentication response
+ public Identifier verifyResponse(HttpServletRequest httpReq)
+ throws ServletException {
+
+ try {
+ // extract the parameters from the authentication response
+ // (which comes in as a HTTP request from the OpenID provider)
+ ParameterList response = new ParameterList(httpReq.getParameterMap());
+
+ // retrieve the previously stored discovery information
+ DiscoveryInformation discovered = (DiscoveryInformation) httpReq.getSession().getAttribute("openid-disc");
+
+ // extract the receiving URL from the HTTP request
+ StringBuffer receivingURL = httpReq.getRequestURL();
+ String queryString = httpReq.getQueryString();
+ if (queryString != null && queryString.length() > 0)
+ receivingURL.append("?").append(httpReq.getQueryString());
+
+ // verify the response; ConsumerManager needs to be the same
+ // (static) instance used to place the authentication request
+ VerificationResult verification = manager.verify(receivingURL.toString(), response, discovered);
+
+ // examine the verification result and extract the verified
+ // identifier
+ Identifier verified = verification.getVerifiedId();
+ if (verified != null) {
+
+ return verified; // success
+ }
+ } catch (OpenIDException e) {
+ // present error to the user
+ }
+
+ return null;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-28 07:58:41
|
Revision: 10659
http://exist.svn.sourceforge.net/exist/?rev=10659&view=rev
Author: shabanovd
Date: 2009-11-28 07:58:31 +0000 (Sat, 28 Nov 2009)
Log Message:
-----------
[feature] Login form, based on http://code.google.com/p/openid-selector/
Added Paths:
-----------
branches/shabanovd/access_control/webapp/openid/
branches/shabanovd/access_control/webapp/openid/controller.xql
branches/shabanovd/access_control/webapp/openid/css/
branches/shabanovd/access_control/webapp/openid/css/openid.css
branches/shabanovd/access_control/webapp/openid/images/
branches/shabanovd/access_control/webapp/openid/images/aol.gif
branches/shabanovd/access_control/webapp/openid/images/blogger.ico
branches/shabanovd/access_control/webapp/openid/images/claimid.ico
branches/shabanovd/access_control/webapp/openid/images/facebook.gif
branches/shabanovd/access_control/webapp/openid/images/flickr.ico
branches/shabanovd/access_control/webapp/openid/images/google.gif
branches/shabanovd/access_control/webapp/openid/images/livejournal.ico
branches/shabanovd/access_control/webapp/openid/images/myopenid.ico
branches/shabanovd/access_control/webapp/openid/images/openid-inputicon.gif
branches/shabanovd/access_control/webapp/openid/images/openid.gif
branches/shabanovd/access_control/webapp/openid/images/technorati.ico
branches/shabanovd/access_control/webapp/openid/images/verisign.ico
branches/shabanovd/access_control/webapp/openid/images/vidoop.ico
branches/shabanovd/access_control/webapp/openid/images/wordpress.ico
branches/shabanovd/access_control/webapp/openid/images/yahoo.gif
branches/shabanovd/access_control/webapp/openid/js/
branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js
branches/shabanovd/access_control/webapp/openid/js/openid-jquery.js
branches/shabanovd/access_control/webapp/openid/login.xql
Added: branches/shabanovd/access_control/webapp/openid/controller.xql
===================================================================
--- branches/shabanovd/access_control/webapp/openid/controller.xql (rev 0)
+++ branches/shabanovd/access_control/webapp/openid/controller.xql 2009-11-28 07:58:31 UTC (rev 10659)
@@ -0,0 +1,13 @@
+xquery version "1.0";
+
+import module namespace request="http://exist-db.org/xquery/request";
+import module namespace xdb = "http://exist-db.org/xquery/xmldb";
+
+if ($exist:path eq "/") then
+ <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
+ <redirect url="login.xql"/>
+ </dispatch>
+else
+ <ignore xmlns="http://exist.sourceforge.net/NS/exist">
+ <cache-control cache="yes"/>
+ </ignore>
\ No newline at end of file
Added: branches/shabanovd/access_control/webapp/openid/css/openid.css
===================================================================
--- branches/shabanovd/access_control/webapp/openid/css/openid.css (rev 0)
+++ branches/shabanovd/access_control/webapp/openid/css/openid.css 2009-11-28 07:58:31 UTC (rev 10659)
@@ -0,0 +1,45 @@
+#openid_form {
+ width: 470px;
+}
+ #openid_form legend {
+ font-weight: bold;
+ }
+#openid_choice {
+ display: none;
+}
+#openid_input_area {
+ clear: both;
+ padding: 10px;
+}
+#openid_btns, #openid_btns br {
+ clear: both;
+}
+ #openid_highlight {
+ padding: 3px;
+ background-color: #FFFCC9;
+ float: left;
+ }
+ .openid_large_btn {
+ width: 100px;
+ height: 60px;
+ border: 1px solid #DDD;
+ margin: 3px;
+ float: left;
+ }
+ .openid_small_btn {
+ width: 24px;
+ height: 24px;
+ border: 1px solid #DDD;
+ margin: 3px;
+ float: left;
+ }
+ a.openid_large_btn:focus {
+ outline: none;
+ }
+ a.openid_large_btn:focus
+ {
+ -moz-outline-style: none;
+ }
+ .openid_selected {
+ border: 4px solid #DDD;
+ }
\ No newline at end of file
Added: branches/shabanovd/access_control/webapp/openid/images/aol.gif
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/aol.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/blogger.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/blogger.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/claimid.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/claimid.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/facebook.gif
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/facebook.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/flickr.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/flickr.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/google.gif
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/google.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/livejournal.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/livejournal.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/myopenid.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/myopenid.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/openid-inputicon.gif
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/openid-inputicon.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/openid.gif
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/openid.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/technorati.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/technorati.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/verisign.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/verisign.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/vidoop.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/vidoop.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/wordpress.ico
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/wordpress.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/images/yahoo.gif
===================================================================
(Binary files differ)
Property changes on: branches/shabanovd/access_control/webapp/openid/images/yahoo.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js
===================================================================
--- branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js (rev 0)
+++ branches/shabanovd/access_control/webapp/openid/js/jquery-1.2.6.min.js 2009-11-28 07:58:31 UTC (rev 10659)
@@ -0,0 +1,32 @@
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2008 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
+ * $Rev: 5685 $
+ */
+(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
+return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
+return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
+selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,"select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
+return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
+this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
+return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
+jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&©&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
+script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
+for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
+for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
+jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
+ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
+while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
+while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
+for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
+jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script."loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
+xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var "timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
+jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
+for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
+s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
+e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(thi...
[truncated message content] |
|
From: <jo...@us...> - 2009-11-27 19:36:37
|
Revision: 10658
http://exist.svn.sourceforge.net/exist/?rev=10658&view=rev
Author: joewiz
Date: 2009-11-27 19:36:28 +0000 (Fri, 27 Nov 2009)
Log Message:
-----------
setting svn:ignore property on classes directory
Property Changed:
----------------
trunk/eXist/extensions/xqdoc/test/
Property changes on: trunk/eXist/extensions/xqdoc/test
___________________________________________________________________
Added: svn:ignore
+ classes
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-27 17:11:35
|
Revision: 10657
http://exist.svn.sourceforge.net/exist/?rev=10657&view=rev
Author: wolfgang_m
Date: 2009-11-27 17:11:24 +0000 (Fri, 27 Nov 2009)
Log Message:
-----------
[ignore] created new branch to experiment with changes to the storage backend.
Added Paths:
-----------
branches/wolfgang/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cu...@us...> - 2009-11-27 08:33:26
|
Revision: 10656
http://exist.svn.sourceforge.net/exist/?rev=10656&view=rev
Author: cutlass
Date: 2009-11-27 08:33:15 +0000 (Fri, 27 Nov 2009)
Log Message:
-----------
added some more binding related documentation
Modified Paths:
--------------
trunk/eXist/webapp/xproc/xproc.xml
Added Paths:
-----------
trunk/eXist/webapp/xproc/examples/pidentity.xproc
Added: trunk/eXist/webapp/xproc/examples/pidentity.xproc
===================================================================
--- trunk/eXist/webapp/xproc/examples/pidentity.xproc (rev 0)
+++ trunk/eXist/webapp/xproc/examples/pidentity.xproc 2009-11-27 08:33:15 UTC (rev 10656)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<p:pipeline xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:p="http://www.w3.org/ns/xproc" name="pipeline">
+<p:identity>
+<p:input port="source">
+ <p:pipe step="pipeline" port="a"/>
+</p:input>
+</p:identity>
+</p:pipeline>
Modified: trunk/eXist/webapp/xproc/xproc.xml
===================================================================
--- trunk/eXist/webapp/xproc/xproc.xml 2009-11-26 21:17:51 UTC (rev 10655)
+++ trunk/eXist/webapp/xproc/xproc.xml 2009-11-27 08:33:15 UTC (rev 10656)
@@ -100,7 +100,47 @@
</variablelist>
+Using bindings, you can inject information into the XProc by defining other ports. To
+demonstrate this look at the examples/pidentity.xproc
+<example>
+ <title>Running XProc from eXist</title>
+ <programlisting>
+ <markup>
+<![CDATA[
+<p:pipeline xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:p="http://www.w3.org/ns/xproc" name="pipeline">
+<p:identity>
+<p:input port="source">
+ <p:pipe step="pipeline" port="a"/>
+</p:input>
+</p:identity>
+</p:pipeline>
+]]>
+
+</markup>
+ </programlisting>
+</example>
+
+This XProc uses the p:identity step to output the 'a' input port, which we define using bindings.
+
+<example>
+ <title>Running XProc from eXist</title>
+ <programlisting>
+ <markup>
+<![CDATA[
+http://127.0.0.1:8080/exist/xproc/examples/pidentity.xproc?stdin=/db/xproc/xml/test.xml&bindings=<bindings><binding port="a"><test/></binding></bindings>
+]]>
+
+</markup>
+ </programlisting>
+ <a href="examples/pidentity.xproc?stdin=/db/xproc/xml/test.xml&bindings=%3Cbindings%3E%3Cbinding%20port=%22a%22%3E%3Ctest/%3E%3C/binding%3E%3C/bindings%3E" target="_example">run xproc directly from database</a>
+</example>
+
+The result should be the contents of the binding defined by the URL param bindings.
+
+
+
+
</para>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cu...@us...> - 2009-11-26 21:18:02
|
Revision: 10655
http://exist.svn.sourceforge.net/exist/?rev=10655&view=rev
Author: cutlass
Date: 2009-11-26 21:17:51 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
changed binding to bindings
Modified Paths:
--------------
trunk/eXist/webapp/xproc/examples/pdeclare-step2.xproc
trunk/eXist/webapp/xproc/examples/phttp-request.xproc
trunk/eXist/webapp/xproc/xproc.xml
Modified: trunk/eXist/webapp/xproc/examples/pdeclare-step2.xproc
===================================================================
--- trunk/eXist/webapp/xproc/examples/pdeclare-step2.xproc 2009-11-26 20:47:22 UTC (rev 10654)
+++ trunk/eXist/webapp/xproc/examples/pdeclare-step2.xproc 2009-11-26 21:17:51 UTC (rev 10655)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<p:pipeline xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:p="http://www.w3.org/ns/xproc"
- xmlns:xproc="http://xproc.net/xproc" xmlns:t="http://exist-db.org/twitter" name="pipeline">
+ xmlns:xproc="http://xproc.net/xproc" xmlns:my="http://exist-db.org/twitter" name="pipeline">
- <p:declare-step type="t:query-stored">
+ <p:declare-step type="my:query-stored">
<p:output port="result" primary="true"/>
<p:xquery>
<p:input port="query">
@@ -11,5 +11,5 @@
</p:xquery>
</p:declare-step>
- <t:query-stored name="gggg"/>
+ <my:query-stored name="gggg"/>
</p:pipeline>
\ No newline at end of file
Modified: trunk/eXist/webapp/xproc/examples/phttp-request.xproc
===================================================================
--- trunk/eXist/webapp/xproc/examples/phttp-request.xproc 2009-11-26 20:47:22 UTC (rev 10654)
+++ trunk/eXist/webapp/xproc/examples/phttp-request.xproc 2009-11-26 21:17:51 UTC (rev 10655)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<p:pipeline xmlns:p="http://www.w3.org/ns/xproc"
- xmlns:c="http://www.w3.org/ns/xproc-step"
- name="pipeline">
+ xmlns:c="http://www.w3.org/ns/xproc-step"
+ name="pipeline">
<p:http-request name="http-get">
<p:input port="source">
@@ -13,6 +13,4 @@
</p:input>
</p:http-request>
-<p:filter select="/doc"/>
-
</p:pipeline>
\ No newline at end of file
Modified: trunk/eXist/webapp/xproc/xproc.xml
===================================================================
--- trunk/eXist/webapp/xproc/xproc.xml 2009-11-26 20:47:22 UTC (rev 10654)
+++ trunk/eXist/webapp/xproc/xproc.xml 2009-11-26 21:17:51 UTC (rev 10655)
@@ -70,7 +70,7 @@
</listitem>
</varlistentry>
<varlistentry>
- <term>binding</term>
+ <term>bindings</term>
<listitem>
<para>you can pass in input ports via an xml fragment with the following structure
<synopsis><bindings>
@@ -677,7 +677,7 @@
<title>xprocxq FAQ</title>
<section>
- <title>Why can't I access files from filesytem ?</title>
+ <title>Why can't I access files from filesystem ?</title>
<para>By default, XProc is set to read files only from the XML Database. If you want to access
files from the hard drive then you will need to enable eXist File extension module
and make sure to use file:// prefix in your file paths.</para>
@@ -685,7 +685,8 @@
<section>
<title>What is xprocxq ?</title>
- <para>Initially, development of eXist XProc processor was a standalone project, called xprocxq. The i</para>
+ <para>Initially, development of eXist XProc processor was a standalone project, called xprocxq. The intention was to build an XProc processor that could be executed using any compliant XQuery processor, but midway through
+ I decided that eXist was the right place to develop it as it would be able to take advantage of naturally processing larger datasets.</para>
</section>
<section>
@@ -698,6 +699,8 @@
<ul>
<li>there maybe some small issues with namespaces but most of the big issues have been addressed </li>
+ <li>namespace prefixes p, t , c are internally bound and cannot be used</li>
+
<li>defining reusable pipelines using p:library, p:import and p:declare-step is currently disabled</li>
<li>errors are thrown as XQuery errors, making it difficult to report correct line numbers, not to mention that errors themselves look quite ugly</li>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-26 20:47:37
|
Revision: 10654
http://exist.svn.sourceforge.net/exist/?rev=10654&view=rev
Author: wolfgang_m
Date: 2009-11-26 20:47:22 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[bugfix] bad module URI generated by ant task xqdoc:scan
Port of rev 10653.
Revision Links:
--------------
http://exist.svn.sourceforge.net/exist/?rev=10653&view=rev
Modified Paths:
--------------
stable/eXist-1.4.x/extensions/xqdoc/ant-example.xml
stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java
stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java
stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
Property Changed:
----------------
stable/eXist-1.4.x/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java
Property changes on: stable/eXist-1.4.x/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/eXist/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java:10520-10526,10529-10532,10537,10539-10540,10551-10552,10576,10583-10586
+ /trunk/eXist/extensions/modules/src/org/exist/xquery/modules/jfreechart/JFreeCharting.java:10520-10526,10529-10532,10537,10539-10540,10551-10552,10576,10583-10586,10589,10653
Modified: stable/eXist-1.4.x/extensions/xqdoc/ant-example.xml
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/ant-example.xml 2009-11-26 20:37:14 UTC (rev 10653)
+++ stable/eXist-1.4.x/extensions/xqdoc/ant-example.xml 2009-11-26 20:47:22 UTC (rev 10654)
@@ -35,4 +35,4 @@
</xqdoc:scan>
</target>
-</project>
\ No newline at end of file
+</project>
Modified: stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java 2009-11-26 20:37:14 UTC (rev 10653)
+++ stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java 2009-11-26 20:47:22 UTC (rev 10654)
@@ -17,8 +17,8 @@
controller.setEncodeURIs(false);
}
- public String scan(Source source) throws XQDocException, IOException {
- XQDocPayload payload = controller.process(source.getReader(), source.getKey().toString());
+ public String scan(Source source, String name) throws XQDocException, IOException {
+ XQDocPayload payload = controller.process(source.getReader(), name);
return payload.getXQDocXML();
}
}
Modified: stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java 2009-11-26 20:37:14 UTC (rev 10653)
+++ stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java 2009-11-26 20:47:22 UTC (rev 10654)
@@ -29,13 +29,14 @@
"import module namespace xdb=\"http://exist-db.org/xquery/xmldb\";\n" +
"declare namespace xqdoc=\"http://www.xqdoc.org/1.0\"\n;" +
"declare variable $uri external;\n" +
+ "declare variable $name external;\n" +
"declare variable $collection external;\n" +
"declare variable $data external;\n" +
"let $xml :=\n" +
- "if ($uri eq '') then\n" +
- " xqdm:scan-data($data)\n" +
+ "if ($uri) then\n" +
+ " xqdm:scan(xs:anyURI($uri))\n" +
"else\n" +
- " xqdm:scan(xs:anyURI($uri))\n" +
+ " xqdm:scan($data, $name)\n" +
"let $moduleURI := $xml//xqdoc:module/xqdoc:uri\n" +
"let $docName := concat(util:hash($moduleURI, 'MD5'), '.xml')\n" +
"return\n" +
@@ -73,6 +74,7 @@
service.declareVariable("uri", "");
if (moduleURI != null) {
service.declareVariable("uri", moduleURI);
+ service.declareVariable("data", "");
service.execute(source);
} else {
for(FileSet fileSet: fileSets) {
@@ -87,6 +89,7 @@
log("Storing " + files[i] + " ...\n");
byte[] data = read(file);
try {
+ service.declareVariable("name", file.getName());
service.declareVariable("data", data);
service.execute(source);
} catch (XMLDBException e) {
Modified: stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
===================================================================
--- stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-26 20:37:14 UTC (rev 10653)
+++ stable/eXist-1.4.x/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-26 20:47:22 UTC (rev 10654)
@@ -41,15 +41,15 @@
"the function docs.")
),
new FunctionSignature(
- new QName("scan-data", XQDocModule.NAMESPACE_URI, XQDocModule.PREFIX),
- "Scan and extract function documentation from an external XQuery function module according to the" +
- "XQDoc specification. The single argument URI may either point to an XQuery module stored in the " +
- "db (URI starts with xmldb:exist:...) or a module in the file system. A file system module is " +
- "searched in the same way as if it were loaded through an \"import module\" statement. Static " +
- "mappings defined in conf.xml are searched first.",
+ new QName("scan", XQDocModule.NAMESPACE_URI, XQDocModule.PREFIX),
+ "Scan and extract function documentation from an external XQuery function module according to the " +
+ "XQDoc specification. The two parameter version of the function expects to get the source code of " +
+ "the module in the first argument and a name for the module in the second.",
new SequenceType[] {
new FunctionParameterSequenceType("data", Type.BASE64_BINARY, Cardinality.EXACTLY_ONE,
- "The base64 encoded source data of the module")
+ "The base64 encoded source data of the module"),
+ new FunctionParameterSequenceType("name", Type.STRING, Cardinality.EXACTLY_ONE,
+ "The name of the module")
},
new FunctionReturnSequenceType(Type.NODE, Cardinality.ZERO_OR_MORE,
"the function docs.")
@@ -63,8 +63,10 @@
@Override
public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException {
Source source = null;
- if (isCalledAs("scan-data")) {
+ String name;
+ if (getArgumentCount() == 2) {
byte[] data = ((Base64Binary) args[0].itemAt(0)).getBinaryData();
+ name = args[1].getStringValue();
source = new BinarySource(data, true);
} else {
String uri = args[0].getStringValue();
@@ -87,6 +89,7 @@
"declares a wrong mime-type");
}
source = new DBSource(context.getBroker(), (BinaryDocument) doc, false);
+ name = doc.getURI().toString();
} catch (URISyntaxException e) {
throw new XPathException(this, "invalid module uri: " + uri + ": " + e.getMessage(), e);
} catch (LockException e) {
@@ -104,6 +107,7 @@
uri = location;
try {
source = SourceFactory.getSource(context.getBroker(), context.getModuleLoadPath(), uri, false);
+ name = source.getKey().toString();
} catch (IOException e) {
throw new XPathException(this, "failed to read module " + uri, e);
} catch (PermissionDeniedException e) {
@@ -113,7 +117,7 @@
}
try {
XQDocHelper helper = new XQDocHelper();
- String xml = helper.scan(source);
+ String xml = helper.scan(source, name);
NodeValue root = ModuleUtils.stringToXML(context, xml);
if (root == null)
return Sequence.EMPTY_SEQUENCE;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wol...@us...> - 2009-11-26 20:37:25
|
Revision: 10653
http://exist.svn.sourceforge.net/exist/?rev=10653&view=rev
Author: wolfgang_m
Date: 2009-11-26 20:37:14 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[bugfix] bad module URI generated by ant task xqdoc:scan
Modified Paths:
--------------
trunk/eXist/extensions/xqdoc/ant-example.xml
trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java
trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java
trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
Modified: trunk/eXist/extensions/xqdoc/ant-example.xml
===================================================================
--- trunk/eXist/extensions/xqdoc/ant-example.xml 2009-11-26 19:25:24 UTC (rev 10652)
+++ trunk/eXist/extensions/xqdoc/ant-example.xml 2009-11-26 20:37:14 UTC (rev 10653)
@@ -35,4 +35,4 @@
</xqdoc:scan>
</target>
-</project>
\ No newline at end of file
+</project>
Modified: trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java
===================================================================
--- trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java 2009-11-26 19:25:24 UTC (rev 10652)
+++ trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/XQDocHelper.java 2009-11-26 20:37:14 UTC (rev 10653)
@@ -17,8 +17,8 @@
controller.setEncodeURIs(false);
}
- public String scan(Source source) throws XQDocException, IOException {
- XQDocPayload payload = controller.process(source.getReader(), source.getKey().toString());
+ public String scan(Source source, String name) throws XQDocException, IOException {
+ XQDocPayload payload = controller.process(source.getReader(), name);
return payload.getXQDocXML();
}
}
Modified: trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java
===================================================================
--- trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java 2009-11-26 19:25:24 UTC (rev 10652)
+++ trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/ant/XQDocTask.java 2009-11-26 20:37:14 UTC (rev 10653)
@@ -29,13 +29,14 @@
"import module namespace xdb=\"http://exist-db.org/xquery/xmldb\";\n" +
"declare namespace xqdoc=\"http://www.xqdoc.org/1.0\"\n;" +
"declare variable $uri external;\n" +
+ "declare variable $name external;\n" +
"declare variable $collection external;\n" +
"declare variable $data external;\n" +
"let $xml :=\n" +
- "if ($uri eq '') then\n" +
- " xqdm:scan-data($data)\n" +
+ "if ($uri) then\n" +
+ " xqdm:scan(xs:anyURI($uri))\n" +
"else\n" +
- " xqdm:scan(xs:anyURI($uri))\n" +
+ " xqdm:scan($data, $name)\n" +
"let $moduleURI := $xml//xqdoc:module/xqdoc:uri\n" +
"let $docName := concat(util:hash($moduleURI, 'MD5'), '.xml')\n" +
"return\n" +
@@ -73,6 +74,7 @@
service.declareVariable("uri", "");
if (moduleURI != null) {
service.declareVariable("uri", moduleURI);
+ service.declareVariable("data", "");
service.execute(source);
} else {
for(FileSet fileSet: fileSets) {
@@ -87,6 +89,7 @@
log("Storing " + files[i] + " ...\n");
byte[] data = read(file);
try {
+ service.declareVariable("name", file.getName());
service.declareVariable("data", data);
service.execute(source);
} catch (XMLDBException e) {
Modified: trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java
===================================================================
--- trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-26 19:25:24 UTC (rev 10652)
+++ trunk/eXist/extensions/xqdoc/src/org/exist/xqdoc/xquery/Scan.java 2009-11-26 20:37:14 UTC (rev 10653)
@@ -41,15 +41,15 @@
"the function docs.")
),
new FunctionSignature(
- new QName("scan-data", XQDocModule.NAMESPACE_URI, XQDocModule.PREFIX),
- "Scan and extract function documentation from an external XQuery function module according to the" +
- "XQDoc specification. The single argument URI may either point to an XQuery module stored in the " +
- "db (URI starts with xmldb:exist:...) or a module in the file system. A file system module is " +
- "searched in the same way as if it were loaded through an \"import module\" statement. Static " +
- "mappings defined in conf.xml are searched first.",
+ new QName("scan", XQDocModule.NAMESPACE_URI, XQDocModule.PREFIX),
+ "Scan and extract function documentation from an external XQuery function module according to the " +
+ "XQDoc specification. The two parameter version of the function expects to get the source code of " +
+ "the module in the first argument and a name for the module in the second.",
new SequenceType[] {
new FunctionParameterSequenceType("data", Type.BASE64_BINARY, Cardinality.EXACTLY_ONE,
- "The base64 encoded source data of the module")
+ "The base64 encoded source data of the module"),
+ new FunctionParameterSequenceType("name", Type.STRING, Cardinality.EXACTLY_ONE,
+ "The name of the module")
},
new FunctionReturnSequenceType(Type.NODE, Cardinality.ZERO_OR_MORE,
"the function docs.")
@@ -63,8 +63,10 @@
@Override
public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException {
Source source = null;
- if (isCalledAs("scan-data")) {
+ String name;
+ if (getArgumentCount() == 2) {
byte[] data = ((Base64Binary) args[0].itemAt(0)).getBinaryData();
+ name = args[1].getStringValue();
source = new BinarySource(data, true);
} else {
String uri = args[0].getStringValue();
@@ -87,6 +89,7 @@
"declares a wrong mime-type");
}
source = new DBSource(context.getBroker(), (BinaryDocument) doc, false);
+ name = doc.getURI().toString();
} catch (URISyntaxException e) {
throw new XPathException(this, "invalid module uri: " + uri + ": " + e.getMessage(), e);
} catch (LockException e) {
@@ -104,6 +107,7 @@
uri = location;
try {
source = SourceFactory.getSource(context.getBroker(), context.getModuleLoadPath(), uri, false);
+ name = source.getKey().toString();
} catch (IOException e) {
throw new XPathException(this, "failed to read module " + uri, e);
} catch (PermissionDeniedException e) {
@@ -113,7 +117,7 @@
}
try {
XQDocHelper helper = new XQDocHelper();
- String xml = helper.scan(source);
+ String xml = helper.scan(source, name);
NodeValue root = ModuleUtils.stringToXML(context, xml);
if (root == null)
return Sequence.EMPTY_SEQUENCE;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-26 19:25:32
|
Revision: 10652
http://exist.svn.sourceforge.net/exist/?rev=10652&view=rev
Author: shabanovd
Date: 2009-11-26 19:25:24 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[feature] breakpoints java API support
Modified Paths:
--------------
trunk/eXist/extensions/debuggee/src/org/exist/debuggee/DebuggeeJointImpl.java
trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointRemove.java
trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointSet.java
trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointUpdate.java
trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggerImpl.java
trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggingSourceImpl.java
trunk/eXist/extensions/debuggee/src/org/exist/debugger/dbgp/ResponseImpl.java
trunk/eXist/extensions/debuggee/src/org/exist/debugger/model/BreakpointImpl.java
trunk/eXist/extensions/debuggee/test/org/exist/debugger/DebuggerTest.java
trunk/eXist/src/org/exist/debugger/Debugger.java
trunk/eXist/src/org/exist/debugger/DebuggingSource.java
trunk/eXist/src/org/exist/debugger/Response.java
trunk/eXist/src/org/exist/debugger/model/Breakpoint.java
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debuggee/DebuggeeJointImpl.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debuggee/DebuggeeJointImpl.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debuggee/DebuggeeJointImpl.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -199,6 +199,7 @@
if (firstExpression == expr) {
firstExpression = null;
+ command.setStatus(BREAK);
command.setStatus(STOPPED);
sessionClosed(true);
@@ -330,7 +331,7 @@
fileBreakpoints.put(breakpoint.getLineno(), breakpoint);
}
- return 1;//TODO: do throw constant
+ return 1;//TODO: create constant
}
public Breakpoint getBreakpoint(int breakpointID) {
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointRemove.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointRemove.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointRemove.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -23,6 +23,7 @@
import org.apache.mina.core.session.IoSession;
import org.exist.debugger.model.Breakpoint;
+import org.exist.debugger.model.BreakpointImpl;
/**
* @author <a href="mailto:sha...@gm...">Dmitriy Shabanov</a>
@@ -77,4 +78,8 @@
}
return null;
}
+
+ public void setBreakpoint(BreakpointImpl breakpoint) {
+ this.breakpoint= breakpoint;
+ }
}
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointSet.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointSet.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointSet.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -138,7 +138,7 @@
" -r " + getTemporaryString();
if (getLineno() != null)
- command += " -s " + getLineno();
+ command += " -n " + getLineno();
if (getFunction() != null)
command += " -m " + getFunction();
@@ -270,4 +270,16 @@
"<expression>"+getExpression()+"</expression>"+
"</breakpoint>";
}
+
+ public boolean sync() {
+ return false;
+ }
+
+ public boolean remove() {
+ return false;
+ }
+
+ public void setBreakpoint(BreakpointImpl breakpoint) {
+ this.breakpoint = breakpoint;
+ }
}
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointUpdate.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointUpdate.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debuggee/dbgp/packets/BreakpointUpdate.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -143,4 +143,8 @@
}
return null;
}
+
+ public void setBreakpoint(Breakpoint breakpoint) {
+ this.breakpoint = breakpoint;
+ }
}
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggerImpl.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggerImpl.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggerImpl.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -39,6 +39,7 @@
import org.exist.debugger.dbgp.ProtocolHandler;
import org.exist.debugger.dbgp.ResponseImpl;
import org.exist.debugger.model.Breakpoint;
+import org.exist.debugger.model.BreakpointImpl;
import org.exist.debugger.model.Location;
import org.exist.debugger.model.LocationImpl;
import org.exist.debugger.model.Variable;
@@ -64,6 +65,8 @@
private Map<String, DebuggingSource> sources = new HashMap<String, DebuggingSource>();
int currentTransactionId = 1;
+
+ private String lastStatus = FIRST_RUN;
public DebuggerImpl() {
}
@@ -167,11 +170,6 @@
return variables;
}
- public Breakpoint addBreakpoint(Breakpoint breakpoint) {
- // TODO Auto-generated method stub
- return null;
- }
-
public void sessionClosed() {
// TODO Auto-generated method stub
}
@@ -184,9 +182,14 @@
&& currentCommand.getTransactionId().equals(
response.getTransactionID()))
currentCommand.putResponse(response);
- else
- //it should be commands map, this implementation is dangerous
- responses.put(response.getTransactionID(), response);
+
+ if (response.hasAttribute("status"))
+ lastStatus = response.getAttribute("status");
+
+ //it should be commands map, this implementation is dangerous
+ //rethink!!!
+ responses.put(response.getTransactionID(), response);
+
notifyAll();
}
@@ -204,7 +207,10 @@
while (!responses.containsKey(transactionID)) {
try {
- wait(timeout);
+ if (timeout == 0)
+ wait(10); //slow down next check
+ else
+ wait(timeout);
if (timeout != 0
&& (System.currentTimeMillis() - sTime) > timeout)
@@ -231,9 +237,14 @@
while (true) {
response = getResponse(transactionId);
- if (response.getAttribute("status").equals(status)) {
+ if (response != null && response.getAttribute("status").equals(status)) {
break;
}
+
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ }
}
}
@@ -311,4 +322,46 @@
waitFor(command.getTransactionId(), BREAK);
}
+
+ public boolean setBreakpoint(Breakpoint breakpoint) {
+ BreakpointSet command = new BreakpointSet(session, " -i " + getNextTransaction());
+ command.setBreakpoint((BreakpointImpl) breakpoint);
+
+ command.toDebuggee();
+
+ Response response = getResponse(command.getTransactionId());
+
+ //XXX: handle error
+
+ breakpoint.setState("enabled".equals(response.getAttribute("state")));
+ breakpoint.setId(Integer.parseInt(response.getAttribute("id")));
+
+ return true;
+ }
+
+ public boolean updateBreakpoint(Breakpoint breakpoint) {
+ BreakpointUpdate command = new BreakpointUpdate(session, " -i " + getNextTransaction());
+ command.setBreakpoint(breakpoint);
+
+ command.toDebuggee();
+
+ Response response = getResponse(command.getTransactionId());
+
+ //XXX: handle error
+
+ return true;
+ }
+
+ public boolean removeBreakpoint(BreakpointImpl breakpoint) {
+ BreakpointRemove command = new BreakpointRemove(session, " -i " + getNextTransaction());
+ command.setBreakpoint(breakpoint);
+
+ command.toDebuggee();
+
+ Response response = getResponse(command.getTransactionId());
+
+ //XXX: handle error
+
+ return true;
+ }
}
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggingSourceImpl.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggingSourceImpl.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debugger/DebuggingSourceImpl.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -48,10 +48,14 @@
this.fileURI = fileURI;
}
- public Breakpoint getBreakpoint() {
+ public Debugger getDebugger() {
+ return debugger;
+ }
+
+ public Breakpoint newBreakpoint() {
BreakpointImpl breakpoint = new BreakpointImpl();
breakpoint.setFilename(fileURI);
- breakpoint.setDebuggingSource(debugger);
+ breakpoint.setDebuggingSource(this);
return breakpoint;
}
@@ -180,11 +184,6 @@
debugger.stop();
}
- public Breakpoint newBreakpoint() {
- // TODO Auto-generated method stub
- return null;
- }
-
private String code = null;
public String getText() {
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debugger/dbgp/ResponseImpl.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debugger/dbgp/ResponseImpl.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debugger/dbgp/ResponseImpl.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -89,7 +89,12 @@
return getAttribute("transaction_id");
}
+ public boolean hasAttribute(String attr) {
+ return parsedResponse.getAttributes().getNamedItem(attr) != null;
+ }
+
public String getAttribute(String attr) {
+ //XXX: NPE???
return parsedResponse.getAttributes().getNamedItem(attr).getNodeValue();
}
Modified: trunk/eXist/extensions/debuggee/src/org/exist/debugger/model/BreakpointImpl.java
===================================================================
--- trunk/eXist/extensions/debuggee/src/org/exist/debugger/model/BreakpointImpl.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/src/org/exist/debugger/model/BreakpointImpl.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -21,7 +21,8 @@
*/
package org.exist.debugger.model;
-import org.exist.debugger.Debugger;
+import org.exist.debugger.DebuggerImpl;
+import org.exist.debugger.DebuggingSource;
/**
* @author <a href="mailto:sha...@gm...">Dmitriy Shabanov</a>
@@ -30,7 +31,7 @@
public class BreakpointImpl implements Breakpoint {
/**
- * breakpoint type, see above for valid values [required]
+ * breakpoint type [required]
*/
private String type;
@@ -86,6 +87,7 @@
private int hitCount = 0;
public BreakpointImpl() {
+ type = Breakpoint.TYPE_LINE; //default value
}
public String getException() {
@@ -128,6 +130,7 @@
this.exception = exception;
}
+ //protected? -shabanovd
public void setFilename(String filename) {
this.fileName = filename;
}
@@ -160,7 +163,7 @@
this.temporary = temporary;
}
- private int id;
+ private int id = -1;
public int getId() {
return id;
@@ -194,9 +197,27 @@
"</breakpoint>";
}
- private Debugger debugger;
+ private DebuggingSource debuggingSource;
- public void setDebuggingSource(Debugger debugger) {
- this.debugger = debugger;
+ public void setDebuggingSource(DebuggingSource debuggingSource) {
+ this.debuggingSource = debuggingSource;
}
+
+ private DebuggerImpl getDebugger() {
+ return (DebuggerImpl)debuggingSource.getDebugger();
+ }
+
+ public boolean sync() {
+ if (getId() == -1) {
+ return getDebugger().setBreakpoint(this);
+ } else if (getId() > 0) {
+ return getDebugger().updateBreakpoint(this);
+ }
+ //TODO: call remove breakpoint ???
+ return false;
+ }
+
+ public boolean remove() {
+ return getDebugger().removeBreakpoint(this);
+ }
}
Modified: trunk/eXist/extensions/debuggee/test/org/exist/debugger/DebuggerTest.java
===================================================================
--- trunk/eXist/extensions/debuggee/test/org/exist/debugger/DebuggerTest.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/extensions/debuggee/test/org/exist/debugger/DebuggerTest.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -27,6 +27,7 @@
import java.util.List;
import org.exist.debuggee.CommandContinuation;
+import org.exist.debugger.model.Breakpoint;
import org.exist.debugger.model.Location;
import org.exist.debugger.model.Variable;
import org.junit.AfterClass;
@@ -39,7 +40,7 @@
*/
public class DebuggerTest implements ResponseListener {
- @Test
+ //@Test
public void testDebugger() {
assertNotNull("Database wasn't initilised.", database);
@@ -142,6 +143,42 @@
}
}
+ @Test
+ public void testBreakpoints() {
+ assertNotNull("Database wasn't initilised.", database);
+
+ Debugger debugger;
+
+ try {
+ System.out.println("creating debugger");
+ debugger = new DebuggerImpl();
+
+ System.out.println("sending init request");
+ DebuggingSource source = debugger.init("http://127.0.0.1:8080/exist/xquery/fibo.xql");
+
+ assertNotNull("Debugging source can't be NULL.", source);
+
+ Breakpoint breakpoint = source.newBreakpoint();
+ breakpoint.setLineno(24);
+ breakpoint.sync();
+
+ source.run();
+
+ List<Location> stack = source.getStackFrames();
+ assertEquals(1, stack.size());
+ assertEquals(24, stack.get(0).getLineBegin());
+
+ breakpoint.remove();
+
+ source.run();
+
+ } catch (IOException e) {
+ assertNotNull("IO exception: "+e.getMessage(), null);
+ } catch (ExceptionTimeout e) {
+ assertNotNull("Timeout exception: "+e.getMessage(), null);
+ }
+ }
+
static org.exist.start.Main database;
@BeforeClass
Modified: trunk/eXist/src/org/exist/debugger/Debugger.java
===================================================================
--- trunk/eXist/src/org/exist/debugger/Debugger.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/src/org/exist/debugger/Debugger.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -40,7 +40,7 @@
public void sessionClosed();
- public Breakpoint addBreakpoint(Breakpoint breakpoint);
+// public boolean setBreakpoint(Breakpoint breakpoint);
public void run(ResponseListener listener);
public void run();
Modified: trunk/eXist/src/org/exist/debugger/DebuggingSource.java
===================================================================
--- trunk/eXist/src/org/exist/debugger/DebuggingSource.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/src/org/exist/debugger/DebuggingSource.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -33,6 +33,8 @@
*/
public interface DebuggingSource {
+ public Debugger getDebugger();
+
/**
* Starts or resumes the script until a new breakpoint is reached, or the end of the script is reached.
*/
Modified: trunk/eXist/src/org/exist/debugger/Response.java
===================================================================
--- trunk/eXist/src/org/exist/debugger/Response.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/src/org/exist/debugger/Response.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -31,6 +31,7 @@
public String getTransactionID();
+ public boolean hasAttribute(String attr);
public String getAttribute(String attr);
public String getText();
Modified: trunk/eXist/src/org/exist/debugger/model/Breakpoint.java
===================================================================
--- trunk/eXist/src/org/exist/debugger/model/Breakpoint.java 2009-11-26 17:34:29 UTC (rev 10651)
+++ trunk/eXist/src/org/exist/debugger/model/Breakpoint.java 2009-11-26 19:25:24 UTC (rev 10652)
@@ -133,4 +133,8 @@
public void setId(int breakpointNo);
public String toXMLString();
+
+ //Synchronize changes
+ public boolean sync();
+ public boolean remove();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-26 17:34:36
|
Revision: 10651
http://exist.svn.sourceforge.net/exist/?rev=10651&view=rev
Author: shabanovd
Date: 2009-11-26 17:34:29 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[ignore] tidy up eXist
Modified Paths:
--------------
trunk/eXist/src/org/exist/ant/AbstractXMLDBTask.java
trunk/eXist/src/org/exist/ant/XMLDBStoreTask.java
Modified: trunk/eXist/src/org/exist/ant/AbstractXMLDBTask.java
===================================================================
--- trunk/eXist/src/org/exist/ant/AbstractXMLDBTask.java 2009-11-26 17:33:20 UTC (rev 10650)
+++ trunk/eXist/src/org/exist/ant/AbstractXMLDBTask.java 2009-11-26 17:34:29 UTC (rev 10651)
@@ -109,7 +109,7 @@
}
}
- Class clazz = Class.forName( driver );
+ Class<?> clazz = Class.forName( driver );
Database database = (Database)clazz.newInstance();
database.setProperty( "create-database", createDatabase ? "true" : "false" );
Modified: trunk/eXist/src/org/exist/ant/XMLDBStoreTask.java
===================================================================
--- trunk/eXist/src/org/exist/ant/XMLDBStoreTask.java 2009-11-26 17:33:20 UTC (rev 10650)
+++ trunk/eXist/src/org/exist/ant/XMLDBStoreTask.java 2009-11-26 17:34:29 UTC (rev 10651)
@@ -24,7 +24,6 @@
import java.io.File;
import java.util.ArrayList;
-import java.util.StringTokenizer;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
@@ -39,7 +38,6 @@
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.Resource;
import org.xmldb.api.base.XMLDBException;
-import org.xmldb.api.modules.CollectionManagementService;
/**
* An Ant task to store a set of files into eXist.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-26 17:33:28
|
Revision: 10650
http://exist.svn.sourceforge.net/exist/?rev=10650&view=rev
Author: shabanovd
Date: 2009-11-26 17:33:20 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[ignore] tidy up eXist (naming)
Modified Paths:
--------------
trunk/eXist/src/org/exist/ant/XMLDBExtractTask.java
Modified: trunk/eXist/src/org/exist/ant/XMLDBExtractTask.java
===================================================================
--- trunk/eXist/src/org/exist/ant/XMLDBExtractTask.java 2009-11-26 17:30:35 UTC (rev 10649)
+++ trunk/eXist/src/org/exist/ant/XMLDBExtractTask.java 2009-11-26 17:33:20 UTC (rev 10650)
@@ -303,7 +303,7 @@
this.subcollections = subcollections;
}
- public void setOverwrite(boolean createdirectories) {
- this.overwrite = createdirectories;
+ public void setOverwrite(boolean overwrite) {
+ this.overwrite = overwrite;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-26 17:30:44
|
Revision: 10649
http://exist.svn.sourceforge.net/exist/?rev=10649&view=rev
Author: shabanovd
Date: 2009-11-26 17:30:35 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[ignore] tidy up eXist (generics)
Modified Paths:
--------------
trunk/eXist/src/org/exist/storage/CollectionCacheManager.java
trunk/eXist/src/org/exist/storage/ConsistencyCheckTask.java
trunk/eXist/src/org/exist/storage/index/FreeList.java
trunk/eXist/src/org/exist/storage/serializers/NativeSerializer.java
Modified: trunk/eXist/src/org/exist/storage/CollectionCacheManager.java
===================================================================
--- trunk/eXist/src/org/exist/storage/CollectionCacheManager.java 2009-11-26 17:29:21 UTC (rev 10648)
+++ trunk/eXist/src/org/exist/storage/CollectionCacheManager.java 2009-11-26 17:30:35 UTC (rev 10649)
@@ -24,7 +24,6 @@
import org.apache.log4j.Logger;
import org.exist.collections.CollectionCache;
import org.exist.storage.cache.Cache;
-import org.exist.util.Configuration;
import org.exist.util.DatabaseConfigurationException;
import org.exist.management.AgentFactory;
import org.exist.management.Agent;
Modified: trunk/eXist/src/org/exist/storage/ConsistencyCheckTask.java
===================================================================
--- trunk/eXist/src/org/exist/storage/ConsistencyCheckTask.java 2009-11-26 17:29:21 UTC (rev 10648)
+++ trunk/eXist/src/org/exist/storage/ConsistencyCheckTask.java 2009-11-26 17:30:35 UTC (rev 10649)
@@ -101,13 +101,13 @@
agentInstance.changeStatus(brokerPool, new TaskStatus(TaskStatus.PAUSED));
return;
}
- long start = System.currentTimeMillis();
+// long start = System.currentTimeMillis();
PrintWriter report = null;
try {
boolean doBackup = createBackup;
// TODO: don't use the direct access feature for now. needs more
// testing
- List errors = null;
+ List<ErrorReport> errors = null;
if (!incremental || incrementalCheck) {
if (LOG.isDebugEnabled())
LOG.debug("Starting consistency check...");
Modified: trunk/eXist/src/org/exist/storage/index/FreeList.java
===================================================================
--- trunk/eXist/src/org/exist/storage/index/FreeList.java 2009-11-26 17:29:21 UTC (rev 10648)
+++ trunk/eXist/src/org/exist/storage/index/FreeList.java 2009-11-26 17:30:35 UTC (rev 10649)
@@ -44,6 +44,7 @@
*/
public class FreeList {
+ @SuppressWarnings("unused")
private final static Logger LOG = Logger.getLogger(FreeList.class);
public final static int MAX_FREE_LIST_LEN = 128;
Modified: trunk/eXist/src/org/exist/storage/serializers/NativeSerializer.java
===================================================================
--- trunk/eXist/src/org/exist/storage/serializers/NativeSerializer.java 2009-11-26 17:29:21 UTC (rev 10648)
+++ trunk/eXist/src/org/exist/storage/serializers/NativeSerializer.java 2009-11-26 17:30:35 UTC (rev 10649)
@@ -112,7 +112,7 @@
protected void serializeToReceiver(StoredNode node, Iterator iter,
- DocumentImpl doc, boolean first, Match match, Set namespaces) throws SAXException {
+ DocumentImpl doc, boolean first, Match match, Set<String> namespaces) throws SAXException {
if (node == null)
node = (StoredNode) iter.next();
if (node == null)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sha...@us...> - 2009-11-26 17:29:29
|
Revision: 10648
http://exist.svn.sourceforge.net/exist/?rev=10648&view=rev
Author: shabanovd
Date: 2009-11-26 17:29:21 +0000 (Thu, 26 Nov 2009)
Log Message:
-----------
[ignore] tidy up eXist (generics)
Modified Paths:
--------------
trunk/eXist/src/org/exist/management/impl/DiskUsage.java
trunk/eXist/src/org/exist/management/impl/JMXAgent.java
trunk/eXist/src/org/exist/management/impl/LockManager.java
trunk/eXist/src/org/exist/protocolhandler/embedded/EmbeddedUpload.java
trunk/eXist/src/org/exist/protocolhandler/protocols/xmldb/Handler.java
trunk/eXist/src/org/exist/security/LDAPSecurityManager.java
trunk/eXist/src/org/exist/soap/Session.java
trunk/eXist/src/org/exist/soap/SessionManager.java
trunk/eXist/src/org/exist/source/BinarySource.java
trunk/eXist/src/org/exist/start/Classpath.java
trunk/eXist/src/org/exist/start/Main.java
trunk/eXist/src/org/exist/start/ServiceDaemon.java
Modified: trunk/eXist/src/org/exist/management/impl/DiskUsage.java
===================================================================
--- trunk/eXist/src/org/exist/management/impl/DiskUsage.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/management/impl/DiskUsage.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -37,7 +37,8 @@
*/
public class DiskUsage implements DiskUsageMBean {
- private BrokerPool pool;
+ @SuppressWarnings("unused")
+ private BrokerPool pool;
private Configuration config;
public DiskUsage(BrokerPool pool) {
@@ -47,7 +48,7 @@
private long getSpace(File dir, String method) {
try {
- Class cls = dir.getClass();
+ Class<?> cls = dir.getClass();
Method m = cls.getMethod(method, new Class[0]);
Long a = (Long) m.invoke(dir, new Object[0]);
return a;
Modified: trunk/eXist/src/org/exist/management/impl/JMXAgent.java
===================================================================
--- trunk/eXist/src/org/exist/management/impl/JMXAgent.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/management/impl/JMXAgent.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -37,7 +37,6 @@
import javax.management.ObjectName;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Stack;
@@ -58,16 +57,16 @@
}
private MBeanServer server;
- private Map registeredMBeans = new HashMap();
- private Map beanInstances = new HashMap();
+ private Map<String, Stack<ObjectName>> registeredMBeans = new HashMap<String, Stack<ObjectName>>();
+ private Map<ObjectName, Object> beanInstances = new HashMap<ObjectName, Object>();
public JMXAgent() {
if (LOG.isDebugEnabled())
LOG.debug("Creating the JMX MBeanServer.");
- ArrayList servers = MBeanServerFactory.findMBeanServer(null);
+ ArrayList<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
if (servers.size() > 0)
- server = (MBeanServer) servers.get(0);
+ server = servers.get(0);
else
server = MBeanServerFactory.createMBeanServer();
@@ -117,7 +116,7 @@
public synchronized void closeDBInstance(BrokerPool instance) {
try {
- Stack stack = (Stack) registeredMBeans.get(instance.getId());
+ Stack<ObjectName> stack = registeredMBeans.get(instance.getId());
while (!stack.isEmpty()) {
ObjectName on = (ObjectName) stack.pop();
LOG.debug("deregistering JMX MBean: " + on);
@@ -136,9 +135,9 @@
ObjectName on = new ObjectName(name);
addMBean(on, mbean);
if (dbInstance != null) {
- Stack stack = (Stack) registeredMBeans.get(dbInstance);
+ Stack<ObjectName> stack = registeredMBeans.get(dbInstance);
if (stack == null) {
- stack = new Stack();
+ stack = new Stack<ObjectName>();
registeredMBeans.put(dbInstance, stack);
}
stack.push(on);
Modified: trunk/eXist/src/org/exist/management/impl/LockManager.java
===================================================================
--- trunk/eXist/src/org/exist/management/impl/LockManager.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/management/impl/LockManager.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -60,8 +60,8 @@
private static String[] indexNames = { "waitingThread" };
private TabularData lockMapToComposite(Map<String, LockInfo> map) throws OpenDataException {
- OpenType[] itemTypes = { SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, new ArrayType(1, SimpleType.STRING),
- new ArrayType(1, SimpleType.STRING), new ArrayType(1, SimpleType.STRING) };
+ OpenType<?>[] itemTypes = { SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, new ArrayType<Object>(1, SimpleType.STRING),
+ new ArrayType<Object>(1, SimpleType.STRING), new ArrayType<Object>(1, SimpleType.STRING) };
CompositeType lockType = new CompositeType("lockInfo", "Provides information on a thread waiting for a lock",
itemNames, itemDescriptions, itemTypes);
TabularType tabularType = new TabularType("waitingThreads", "Lists all threads waiting for a lock", lockType, indexNames);
Modified: trunk/eXist/src/org/exist/protocolhandler/embedded/EmbeddedUpload.java
===================================================================
--- trunk/eXist/src/org/exist/protocolhandler/embedded/EmbeddedUpload.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/protocolhandler/embedded/EmbeddedUpload.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -195,7 +195,8 @@
} else {
LOG.debug("storing Binary resource");
InputStream is = new FileInputStream(tmp);
- DocumentImpl doc = collection.addBinaryResource(txn, broker, documentUri, is, contentType, (int) tmp.length());
+ @SuppressWarnings("unused")
+ DocumentImpl doc = collection.addBinaryResource(txn, broker, documentUri, is, contentType, (int) tmp.length());
is.close();
LOG.debug("done");
}
Modified: trunk/eXist/src/org/exist/protocolhandler/protocols/xmldb/Handler.java
===================================================================
--- trunk/eXist/src/org/exist/protocolhandler/protocols/xmldb/Handler.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/protocolhandler/protocols/xmldb/Handler.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -75,7 +75,8 @@
} else if(spec.matches(PATTERN)) {
LOG.debug("Parsing URL with custom exist instance");
String splits[] = spec.split(":",3);
- String instance = splits[1]; // TODO pass to URL as param
+ @SuppressWarnings("unused")
+ String instance = splits[1]; // TODO pass to URL as param
int seperator = spec.indexOf("//");
super.parseURL(url, spec, seperator, limit);
Modified: trunk/eXist/src/org/exist/security/LDAPSecurityManager.java
===================================================================
--- trunk/eXist/src/org/exist/security/LDAPSecurityManager.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/security/LDAPSecurityManager.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -406,7 +406,7 @@
constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
NamingEnumeration groups = context.search(groupBase,"(objectClass="+groupClassName+")",constraints);
- List groupList = new ArrayList();
+ List<String> groupList = new ArrayList<String>();
while (groups.hasMore()) {
SearchResult result = (SearchResult)groups.next();
groupList.add(getAttributeValue(groupNameAttr, result.getAttributes()));
@@ -476,7 +476,7 @@
constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
NamingEnumeration users = context.search(userBase,"(objectClass="+userClassName+")",constraints);
- List userList = new ArrayList();
+ List<User> userList = new ArrayList<User>();
while (users.hasMore()) {
SearchResult result = (SearchResult)users.next();
userList.add(newUserFromAttributes(context,result.getAttributes()));
Modified: trunk/eXist/src/org/exist/soap/Session.java
===================================================================
--- trunk/eXist/src/org/exist/soap/Session.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/soap/Session.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -12,6 +12,8 @@
public class Session implements Serializable {
+ private static final long serialVersionUID = -5863393640379705401L;
+
public static class QueryResult {
Sequence result;
Modified: trunk/eXist/src/org/exist/soap/SessionManager.java
===================================================================
--- trunk/eXist/src/org/exist/soap/SessionManager.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/soap/SessionManager.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -25,7 +25,7 @@
TIMEOUT = timeout;
}
- Map sessions = new TreeMap();
+ Map<String, Session> sessions = new TreeMap<String, Session>();
public synchronized String createSession(User user) {
Session session = new Session(user);
@@ -47,6 +47,7 @@
sessions.remove(id);
}
+ @SuppressWarnings("unused")
private void checkResultSets() {
for (Iterator i = sessions.values().iterator(); i.hasNext();) {
Session session = (Session)i.next();
Modified: trunk/eXist/src/org/exist/source/BinarySource.java
===================================================================
--- trunk/eXist/src/org/exist/source/BinarySource.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/source/BinarySource.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -1,6 +1,5 @@
package org.exist.source;
-import org.exist.security.MessageDigester;
import org.exist.storage.DBBroker;
import java.io.*;
Modified: trunk/eXist/src/org/exist/start/Classpath.java
===================================================================
--- trunk/eXist/src/org/exist/start/Classpath.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/start/Classpath.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -20,7 +20,7 @@
*/
public class Classpath {
- Vector _elements = new Vector();
+ Vector<File> _elements = new Vector<File>();
public Classpath()
{}
@@ -96,7 +96,7 @@
URL[] urls = new URL[cnt];
for (int i=0; i < cnt; i++) {
try {
- urls[i] = ((File)(_elements.elementAt(i))).toURI().toURL();
+ urls[i] = _elements.elementAt(i).toURI().toURL();
} catch (MalformedURLException e) {}
}
Modified: trunk/eXist/src/org/exist/start/Main.java
===================================================================
--- trunk/eXist/src/org/exist/start/Main.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/start/Main.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -19,7 +19,6 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Hashtable;
-import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
@@ -117,9 +116,9 @@
public static void invokeMain(ClassLoader classloader, String classname, String[] args)
throws IllegalAccessException, InvocationTargetException,
NoSuchMethodException, ClassNotFoundException {
- Class invoked_class = null;
+ Class<?> invoked_class = null;
invoked_class = classloader.loadClass(classname);
- Class[] method_param_types = new Class[1];
+ Class<?>[] method_param_types = new Class[1];
method_param_types[0] = args.getClass();
Method main = null;
main = invoked_class.getDeclaredMethod("main", method_param_types);
@@ -132,7 +131,7 @@
// Any files referenced in start.config that don't exist or cannot be resolved
// are placed in this list.
- List invalidJars = new ArrayList();
+ List<String> invalidJars = new ArrayList<String>();
try {
BufferedReader cfg = new BufferedReader(new InputStreamReader(config, "ISO-8859-1"));
@@ -140,7 +139,7 @@
Version ver = new Version();
// JAR's already processed
- Hashtable done = new Hashtable();
+ Hashtable<String, String> done = new Hashtable<String, String>();
String line = cfg.readLine();
while (line != null) {
try {
@@ -284,10 +283,8 @@
// Print message if any files from start.config were added
// to the classpath but they could not be found.
if (invalidJars.size() > 0) {
- Iterator it = invalidJars.iterator();
StringBuilder nonexistentJars = new StringBuilder();
- while (it.hasNext()) {
- String invalidJar = (String) it.next();
+ for (String invalidJar : invalidJars) {
nonexistentJars.append(" " + invalidJar + "\n");
}
/*
Modified: trunk/eXist/src/org/exist/start/ServiceDaemon.java
===================================================================
--- trunk/eXist/src/org/exist/start/ServiceDaemon.java 2009-11-26 17:27:50 UTC (rev 10647)
+++ trunk/eXist/src/org/exist/start/ServiceDaemon.java 2009-11-26 17:29:21 UTC (rev 10648)
@@ -47,13 +47,13 @@
Classpath classpath = existMain.constructClasspath(homeDir,noArgs);
ClassLoader cl = classpath.getClassLoader(null);
Thread.currentThread().setContextClassLoader(cl);
- Class brokerPoolClass = cl.loadClass("org.exist.storage.BrokerPool");
+ Class<?> brokerPoolClass = cl.loadClass("org.exist.storage.BrokerPool");
// This only works in Java 1.5
//Method stopAll = brokerPoolClass.getDeclaredMethod("stopAll",java.lang.Boolean.TYPE);
//stopAll.invoke(null,Boolean.TRUE);
// This is the ugly Java 1.4 version
- Class [] paramTypes = new Class[1];
+ Class<?> [] paramTypes = new Class[1];
paramTypes[0] = java.lang.Boolean.TYPE;
Method stopAll = brokerPoolClass.getDeclaredMethod("stopAll",paramTypes);
Object [] arguments = new Object[1];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|