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
(27) |
Oct
|
Nov
|
Dec
|
From: <wol...@us...> - 2006-04-27 15:42:21
|
Revision: 3336 Author: wolfgang_m Date: 2006-04-27 08:42:09 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3336&view=rev Log Message: ----------- Ported changes in org.exist.xquery.functions.request, response and session from trunk. Modified Paths: -------------- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/transform/Transform.java branches/DLN/eXist-1.0/src/org/exist/xquery/util/HTTPUtils.java Modified: branches/DLN/eXist-1.0/src/org/exist/xquery/functions/transform/Transform.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/transform/Transform.java 2006-04-27 15:40:36 UTC (rev 3335) +++ branches/DLN/eXist-1.0/src/org/exist/xquery/functions/transform/Transform.java 2006-04-27 15:42:09 UTC (rev 3336) @@ -66,6 +66,7 @@ import org.exist.xquery.XPathException; import org.exist.xquery.XQueryContext; import org.exist.xquery.functions.request.RequestModule; +import org.exist.xquery.functions.response.ResponseModule; import org.exist.xquery.value.Item; import org.exist.xquery.value.JavaObjectValue; import org.exist.xquery.value.NodeValue; @@ -158,7 +159,7 @@ } else { RequestModule myModule = (RequestModule)context.getModule(RequestModule.NAMESPACE_URI); // request object is read from global variable $request - Variable respVar = myModule.resolveVariable(RequestModule.RESPONSE_VAR); + Variable respVar = myModule.resolveVariable(ResponseModule.RESPONSE_VAR); if(respVar == null) throw new XPathException(getASTNode(), "No request object found in the current XQuery context."); if(respVar.getValue().getItemType() != Type.JAVA_OBJECT) Modified: branches/DLN/eXist-1.0/src/org/exist/xquery/util/HTTPUtils.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/xquery/util/HTTPUtils.java 2006-04-27 15:40:36 UTC (rev 3335) +++ branches/DLN/eXist-1.0/src/org/exist/xquery/util/HTTPUtils.java 2006-04-27 15:42:09 UTC (rev 3336) @@ -30,7 +30,7 @@ import org.exist.xquery.Variable; import org.exist.xquery.XQuery; import org.exist.xquery.XQueryContext; -import org.exist.xquery.functions.request.RequestModule; +import org.exist.xquery.functions.response.ResponseModule; import org.exist.xquery.value.JavaObjectValue; import org.exist.xquery.value.Sequence; @@ -61,12 +61,12 @@ LOG.debug("mostRecentDocumentTime: " + mostRecentDocumentTime); if (mostRecentDocumentTime > 0) { - RequestModule myModule = (RequestModule) context - .getModule(RequestModule.NAMESPACE_URI); + ResponseModule myModule = (ResponseModule) context + .getModule(ResponseModule.NAMESPACE_URI); // response servlet object is read from global variable $response Variable var = myModule - .resolveVariable(RequestModule.RESPONSE_VAR); + .resolveVariable(ResponseModule.RESPONSE_VAR); if (var != null) { JavaObjectValue value = (JavaObjectValue) var.getValue() .itemAt(0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wol...@us...> - 2006-04-27 15:16:38
|
Revision: 3334 Author: wolfgang_m Date: 2006-04-27 08:16:13 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3334&view=rev Log Message: ----------- Copied remotely Added Paths: ----------- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/util/FileRead.java Copied: branches/DLN/eXist-1.0/src/org/exist/xquery/functions/util/FileRead.java (from rev 3333, trunk/eXist-1.0/src/org/exist/xquery/functions/util/FileRead.java) =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/util/FileRead.java (rev 0) +++ branches/DLN/eXist-1.0/src/org/exist/xquery/functions/util/FileRead.java 2006-04-27 15:16:13 UTC (rev 3334) @@ -0,0 +1,104 @@ +/* + * eXist Open Source Native XML Database + * Copyright (C) 2001-06 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 library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * $Id$ + */ +package org.exist.xquery.functions.util; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.StringWriter; +import java.net.MalformedURLException; +import java.net.URL; + +import org.exist.dom.QName; +import org.exist.xquery.BasicFunction; +import org.exist.xquery.Cardinality; +import org.exist.xquery.FunctionSignature; +import org.exist.xquery.XPathException; +import org.exist.xquery.XQueryContext; +import org.exist.xquery.value.Sequence; +import org.exist.xquery.value.SequenceType; +import org.exist.xquery.value.StringValue; +import org.exist.xquery.value.Type; + +/** + * @author Pierrick Brihaye + * @author Dizzzz + * + */ +public class FileRead extends BasicFunction { + + public final static FunctionSignature signatures[] = { + new FunctionSignature( + new QName("file-read", UtilModule.NAMESPACE_URI, UtilModule.PREFIX), + "Read content of file $a", + new SequenceType[] { + new SequenceType(Type.ITEM, Cardinality.EXACTLY_ONE) + }, + new SequenceType(Type.STRING, Cardinality.ZERO_OR_ONE)), + new FunctionSignature( + new QName("file-read", UtilModule.NAMESPACE_URI, UtilModule.PREFIX), + "Read content of file $a with the encoding specified in $b.", + new SequenceType[] { + new SequenceType(Type.ITEM, Cardinality.EXACTLY_ONE), + new SequenceType(Type.STRING, Cardinality.EXACTLY_ONE) + }, + new SequenceType(Type.STRING, Cardinality.ZERO_OR_ONE)) + }; + + /** + * @param context + * @param signature + */ + public FileRead(XQueryContext context, FunctionSignature signature) { + super(context, signature); + } + + /* (non-Javadoc) + * @see org.exist.xquery.BasicFunction#eval(org.exist.xquery.value.Sequence[], org.exist.xquery.value.Sequence) + */ + public Sequence eval(Sequence[] args, Sequence contextSequence) + throws XPathException { + String arg = args[0].itemAt(0).getStringValue(); + StringWriter sw; + try { + URL url = new URL(arg); + InputStreamReader isr; + if (args.length > 1) + isr = new InputStreamReader(url.openStream(), arg = args[1].itemAt(0).getStringValue()); + else + isr = new InputStreamReader(url.openStream()); + sw = new StringWriter(); + char[] buf = new char[1024]; + int len; + while ((len = isr.read(buf)) > 0) { + sw.write(buf, 0, len); + } + isr.close(); + sw.close(); + } catch (MalformedURLException e) { + throw new XPathException(getASTNode(), e.getMessage()); + } catch (IOException e) { + throw new XPathException(getASTNode(), e.getMessage()); + } + //TODO : return an *Item* built with sw.toString() + return new StringValue(sw.toString()); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wol...@us...> - 2006-04-27 14:51:21
|
Revision: 3333 Author: wolfgang_m Date: 2006-04-27 07:50:59 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3333&view=rev Log Message: ----------- Copied remotely Added Paths: ----------- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/session/ Copied: branches/DLN/eXist-1.0/src/org/exist/xquery/functions/session (from rev 3332, trunk/eXist-1.0/src/org/exist/xquery/functions/session) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wol...@us...> - 2006-04-27 14:50:13
|
Revision: 3332 Author: wolfgang_m Date: 2006-04-27 07:50:08 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3332&view=rev Log Message: ----------- Test commit to check if copy worked ;-) Modified Paths: -------------- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/response/RedirectTo.java Modified: branches/DLN/eXist-1.0/src/org/exist/xquery/functions/response/RedirectTo.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/response/RedirectTo.java 2006-04-27 14:45:28 UTC (rev 3331) +++ branches/DLN/eXist-1.0/src/org/exist/xquery/functions/response/RedirectTo.java 2006-04-27 14:50:08 UTC (rev 3332) @@ -78,7 +78,7 @@ try { ((ResponseWrapper) value.getObject()).sendRedirect(redirectURI); } catch (IOException e) { - throw new XPathException("IO exception occurred during redirect: " + e.getMessage(), e); + throw new XPathException("An IO exception occurred during redirect: " + e.getMessage(), e); } else throw new XPathException("Variable response is not bound to a response object."); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wol...@us...> - 2006-04-27 14:45:49
|
Revision: 3331 Author: wolfgang_m Date: 2006-04-27 07:45:28 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3331&view=rev Log Message: ----------- Copied remotely Added Paths: ----------- branches/DLN/eXist-1.0/src/org/exist/xquery/functions/response/ Copied: branches/DLN/eXist-1.0/src/org/exist/xquery/functions/response (from rev 3330, trunk/eXist-1.0/src/org/exist/xquery/functions/response) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wol...@us...> - 2006-04-27 14:40:47
|
Revision: 3330 Author: wolfgang_m Date: 2006-04-27 07:40:32 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3330&view=rev Log Message: ----------- Wrong length field for stored node ids leads to "Negative size for DLN" exceptions; use short instead of byte for length field to have enough room for long ids. Modified Paths: -------------- branches/DLN/eXist-1.0/src/org/exist/dom/AttrImpl.java branches/DLN/eXist-1.0/src/org/exist/dom/CommentImpl.java branches/DLN/eXist-1.0/src/org/exist/dom/ElementImpl.java branches/DLN/eXist-1.0/src/org/exist/dom/ProcessingInstructionImpl.java branches/DLN/eXist-1.0/src/org/exist/dom/TextImpl.java branches/DLN/eXist-1.0/src/org/exist/storage/NativeTextEngine.java branches/DLN/eXist-1.0/src/org/exist/storage/dom/DOMFile.java Modified: branches/DLN/eXist-1.0/src/org/exist/dom/AttrImpl.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/dom/AttrImpl.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/dom/AttrImpl.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -76,11 +76,12 @@ prefixLen = nodeName.getPrefix() != null && nodeName.getPrefix().length() > 0 ? UTF8.encoded(nodeName.getPrefix()) : 0; } - final int nodeIdLen = getNodeId().size(); + final int nodeIdLen = nodeId.size(); final byte[] data = ByteArrayPool.getByteArray(UTF8.encoded(value) + Signatures.getLength( idSizeType ) + nodeIdLen + - (nodeName.needsNamespaceDecl() ? prefixLen + 4 : 0) + 2); + (nodeName.needsNamespaceDecl() ? prefixLen + 4 : 0) + + 3); int pos = 0; data[pos] = (byte) ( Signatures.Attr << 0x5 ); data[pos] |= idSizeType; @@ -89,8 +90,9 @@ data[pos] |= 0x10; pos++; - data[pos++] = (byte) nodeId.units(); - getNodeId().serialize(data, pos); + ByteConversion.shortToByte((short) nodeId.units(), data, pos); + pos += 2; + nodeId.serialize(data, pos); pos += nodeIdLen; Signatures.write( idSizeType, id, data, pos ); @@ -113,10 +115,11 @@ int next = start; byte idSizeType = (byte) ( data[next] & 0x3 ); boolean hasNamespace = (data[next] & 0x10) == 0x10; - int attrType = (int)( ( data[next++] & 0x4 ) >> 0x2); - + int attrType = ( data[next++] & 0x4 ) >> 0x2; + int dlnLen = ByteConversion.byteToShort(data, next); + next += 2; NodeId dln = - doc.getBroker().getBrokerPool().getNodeFactory().createFromData(data[next++], data, next); + doc.getBroker().getBrokerPool().getNodeFactory().createFromData(dlnLen, data, next); next += dln.size(); short id = (short) Signatures.read( idSizeType, data, next ); Modified: branches/DLN/eXist-1.0/src/org/exist/dom/CommentImpl.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/dom/CommentImpl.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/dom/CommentImpl.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -3,6 +3,7 @@ import java.io.UnsupportedEncodingException; import org.exist.storage.Signatures; +import org.exist.util.ByteConversion; import org.exist.xquery.XPathException; import org.exist.xquery.value.StringValue; import org.exist.numbering.NodeId; @@ -45,11 +46,11 @@ cd = s.getBytes(); } int nodeIdLen = nodeId.size(); - byte[] data = new byte[cd.length + nodeIdLen + 2]; + byte[] data = new byte[cd.length + nodeIdLen + 3]; data[0] = (byte) ( Signatures.Comm << 0x5 ); - data[1] = (byte) nodeId.units(); - nodeId.serialize(data, 2); - System.arraycopy( cd, 0, data, 2 + nodeIdLen, cd.length ); + ByteConversion.shortToByte((short) nodeId.units(), data, 1); + nodeId.serialize(data, 3); + System.arraycopy( cd, 0, data, 3 + nodeIdLen, cd.length ); return data; } @@ -58,15 +59,16 @@ int len, DocumentImpl doc, boolean pooled) { + int dlnLen = ByteConversion.byteToShort(data, start + 1); NodeId dln = - doc.getBroker().getBrokerPool().getNodeFactory().createFromData(data[start + 1], data, start +2); + doc.getBroker().getBrokerPool().getNodeFactory().createFromData(dlnLen, data, start + 3); int nodeIdLen = dln.size(); String cdata; try { - cdata = new String( data, start + nodeIdLen + 2, len - nodeIdLen - 2, "UTF-8" ); + cdata = new String( data, start + nodeIdLen + 3, len - nodeIdLen - 3, "UTF-8" ); } catch ( UnsupportedEncodingException uee ) { - cdata = new String( data, start + 1, len - 1 ); + cdata = new String( data, start + nodeIdLen + 3, len - nodeIdLen - 3 ); } CommentImpl comment; if(pooled) Modified: branches/DLN/eXist-1.0/src/org/exist/dom/ElementImpl.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/dom/ElementImpl.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/dom/ElementImpl.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -170,11 +170,8 @@ signature |= 0x10; } final int nodeIdLen = nodeId.size(); - if (nodeId.toString().equals("1.1/0/0/6")) - System.out.println("STORING 1.1/0/0/6: " + nodeIdLen + "; units: " + nodeId.units() + - "; " + ((DLN)nodeId).toBitString()); byte[] data = - ByteArrayPool.getByteArray(7 + ByteArrayPool.getByteArray(8 + Signatures.getLength(idSizeType) + (hasNamespace ? prefixLen + 4 : 0) + (prefixData != null ? prefixData.length : 0) @@ -183,7 +180,8 @@ data[next++] = signature; ByteConversion.intToByte(children, data, next); next += 4; - data[next++] = (byte) nodeId.units(); + ByteConversion.shortToByte((short) nodeId.units(), data, next); + next += 2; nodeId.serialize(data, next); next += nodeIdLen; @@ -219,12 +217,11 @@ boolean hasNamespace = (data[start++] & 0x10) == 0x10; int children = ByteConversion.byteToInt(data, start); start += 4; + int dlnLen = ByteConversion.byteToShort(data, start); + start += 2; NodeId dln = - doc.getBroker().getBrokerPool().getNodeFactory().createFromData(data[start++], data, start); + doc.getBroker().getBrokerPool().getNodeFactory().createFromData(dlnLen, data, start); start += dln.size(); - if (dln.toString().equals("1.1/0/0/6")) - System.out.println("READING 1.1/0/0/6: " + data[start - 1] + "; reported: " + dln.size() + - "; units: " + dln.units() + "; " + ((DLN)dln).toBitString()); short attributes = ByteConversion.byteToShort(data, start); start += 2; Modified: branches/DLN/eXist-1.0/src/org/exist/dom/ProcessingInstructionImpl.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/dom/ProcessingInstructionImpl.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/dom/ProcessingInstructionImpl.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -108,10 +108,11 @@ dd = data.getBytes(); } int nodeIdLen = nodeId.size(); - byte[] d = new byte[td.length + dd.length + nodeIdLen + 6]; + byte[] d = new byte[td.length + dd.length + nodeIdLen + 7]; int pos = 0; d[pos++] = (byte) ( Signatures.Proc << 0x5 ); - d[pos++] = (byte) nodeId.units(); + ByteConversion.shortToByte((short) nodeId.units(), d, pos); + pos += 2; nodeId.serialize(d, pos); pos += nodeIdLen; ByteConversion.intToByte( td.length, d, pos); @@ -123,20 +124,21 @@ } public static StoredNode deserialize( byte[] data, int start, int len, DocumentImpl doc, boolean pooled ) { + int dlnLen = ByteConversion.byteToShort(data, start + 1); NodeId dln = - doc.getBroker().getBrokerPool().getNodeFactory().createFromData(data[start + 1], data, start + 2); + doc.getBroker().getBrokerPool().getNodeFactory().createFromData(dlnLen, data, start + 3); int nodeIdLen = dln.size(); - int l = ByteConversion.byteToInt( data, start + 2 + nodeIdLen); + int l = ByteConversion.byteToInt( data, start + 3 + nodeIdLen); String target; String cdata; try { - target = new String( data, start + 6 + nodeIdLen, l, "UTF-8" ); - cdata = new String( data, start + 6 + nodeIdLen + l, len - 6 - l - nodeIdLen, "UTF-8" ); + target = new String( data, start + 7 + nodeIdLen, l, "UTF-8" ); + cdata = new String( data, start + 7 + nodeIdLen + l, len - 7 - l - nodeIdLen, "UTF-8" ); } catch ( UnsupportedEncodingException uee ) { - target = new String( data, start + 6 + nodeIdLen, l ); - cdata = new String( data, start + 6 + nodeIdLen + l, len - 6 - l - nodeIdLen); + target = new String( data, start + 7 + nodeIdLen, l ); + cdata = new String( data, start + 7 + nodeIdLen + l, len - 7 - l - nodeIdLen); } ProcessingInstructionImpl pi; if(pooled) Modified: branches/DLN/eXist-1.0/src/org/exist/dom/TextImpl.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/dom/TextImpl.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/dom/TextImpl.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -24,6 +24,7 @@ import org.exist.storage.Signatures; import org.exist.util.ByteArrayPool; +import org.exist.util.ByteConversion; import org.exist.util.UTF8; import org.exist.numbering.NodeId; import org.w3c.dom.DOMException; @@ -62,11 +63,12 @@ text = (TextImpl)NodeObjectPool.getInstance().borrowNode(TextImpl.class); else text = new TextImpl(); + int dlnLen = ByteConversion.byteToShort(data, start + 1); NodeId dln = - doc.getBroker().getBrokerPool().getNodeFactory().createFromData(data[start + 1], data, start +2); + doc.getBroker().getBrokerPool().getNodeFactory().createFromData(dlnLen, data, start + 3); text.setNodeId(dln); int nodeIdLen = dln.size(); - text.cdata = UTF8.decode(data, start + nodeIdLen + 2, len - nodeIdLen - 2); + text.cdata = UTF8.decode(data, start + nodeIdLen + 3, len - nodeIdLen - 3); return text; } @@ -100,11 +102,11 @@ public byte[] serialize() { final int nodeIdLen = nodeId.size(); - byte[] data = ByteArrayPool.getByteArray(cdata.UTF8Size() + nodeIdLen + 2); + byte[] data = ByteArrayPool.getByteArray(cdata.UTF8Size() + nodeIdLen + 3); data[0] = (byte) ( Signatures.Char << 0x5 ); - data[1] = (byte) nodeId.units(); - nodeId.serialize(data, 2); - cdata.UTF8Encode(data, nodeIdLen + 2); + ByteConversion.shortToByte((short) nodeId.units(), data, 1); + nodeId.serialize(data, 3); + cdata.UTF8Encode(data, nodeIdLen + 3); return data; } Modified: branches/DLN/eXist-1.0/src/org/exist/storage/NativeTextEngine.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/storage/NativeTextEngine.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/storage/NativeTextEngine.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -672,11 +672,12 @@ collect(words, domIterator); break; case Node.TEXT_NODE : + int dlnLen = ByteConversion.byteToShort(data, 1); int nodeIdLen = - broker.getBrokerPool().getNodeFactory().lengthInBytes(data[1], data, 2); + broker.getBrokerPool().getNodeFactory().lengthInBytes(dlnLen, data, 3); String s; try { - s = new String(data, nodeIdLen + 2, data.length - nodeIdLen - 2, "UTF-8"); + s = new String(data, nodeIdLen + 3, data.length - nodeIdLen - 3, "UTF-8"); tokenizer.setText(s); TextToken token; while (null != (token = tokenizer.nextToken())) { @@ -694,9 +695,10 @@ case Node.ATTRIBUTE_NODE : byte idSizeType = (byte) (data[0] & 0x3); boolean hasNamespace = (data[0] & 0x10) == 0x10; + dlnLen = ByteConversion.byteToShort(data, 1); nodeIdLen = - broker.getBrokerPool().getNodeFactory().lengthInBytes(data[1], data, 2); - int readOffset = Signatures.getLength(idSizeType) + nodeIdLen + 2; + broker.getBrokerPool().getNodeFactory().lengthInBytes(dlnLen, data, 3); + int readOffset = Signatures.getLength(idSizeType) + nodeIdLen + 3; if (hasNamespace) { readOffset += 2; // skip namespace id final short prefixLen = ByteConversion.byteToShort(data, readOffset); Modified: branches/DLN/eXist-1.0/src/org/exist/storage/dom/DOMFile.java =================================================================== --- branches/DLN/eXist-1.0/src/org/exist/storage/dom/DOMFile.java 2006-04-27 14:38:07 UTC (rev 3329) +++ branches/DLN/eXist-1.0/src/org/exist/storage/dom/DOMFile.java 2006-04-27 14:40:32 UTC (rev 3330) @@ -1790,8 +1790,10 @@ case Node.ELEMENT_NODE: final int children = ByteConversion.byteToInt(data, readOffset); readOffset += 4; + int dlnLen = ByteConversion.byteToShort(data, readOffset); + readOffset += 2; readOffset += - doc.getBroker().getBrokerPool().getNodeFactory().lengthInBytes(data[readOffset++], data, readOffset); + doc.getBroker().getBrokerPool().getNodeFactory().lengthInBytes(dlnLen, data, readOffset); final short attributes = ByteConversion.byteToShort(data, readOffset); final boolean extraWhitespace = addWhitespace && children - attributes > 1; @@ -1803,10 +1805,12 @@ } return; case Node.TEXT_NODE: + dlnLen = ByteConversion.byteToShort(data, readOffset); + readOffset += 2; int nodeIdLen = - doc.getBroker().getBrokerPool().getNodeFactory().lengthInBytes(data[readOffset++], data, readOffset); + doc.getBroker().getBrokerPool().getNodeFactory().lengthInBytes(dlnLen, data, readOffset); readOffset += nodeIdLen; - os.write(data, readOffset, len - nodeIdLen - 2); + os.write(data, readOffset, len - nodeIdLen - 3); break; case Node.ATTRIBUTE_NODE: // use attribute value if the context node is an attribute, i.e. @@ -1815,8 +1819,10 @@ int start = readOffset - 1; final byte idSizeType = (byte) (data[start] & 0x3); final boolean hasNamespace = (data[start] & 0x10) == 0x10; + dlnLen = ByteConversion.byteToShort(data, readOffset); + readOffset += 2; nodeIdLen = - doc.getBroker().getBrokerPool().getNodeFactory().lengthInBytes(data[readOffset++], data, readOffset); + doc.getBroker().getBrokerPool().getNodeFactory().lengthInBytes(dlnLen, data, readOffset); readOffset += nodeIdLen + Signatures.getLength(idSizeType); if (hasNamespace) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-27 14:38:14
|
Revision: 3329 Author: brihaye Date: 2006-04-27 07:38:07 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3329&view=rev Log Message: ----------- Delegate comparisons to values themselves thus avoiding unnecessary conversions. No regression seen but maybe a few to expect. Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xquery/GeneralComparison.java Modified: trunk/eXist-1.0/src/org/exist/xquery/GeneralComparison.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/GeneralComparison.java 2006-04-27 14:32:51 UTC (rev 3328) +++ trunk/eXist-1.0/src/org/exist/xquery/GeneralComparison.java 2006-04-27 14:38:07 UTC (rev 3329) @@ -598,6 +598,7 @@ boolean backwardsCompatible, int truncation, int relation) throws XPathException{ int ltype = lv.getType(); int rtype = rv.getType(); + /* if (ltype == Type.ITEM || ltype == Type.ATOMIC || ltype == Type.UNTYPED_ATOMIC) { if (Type.subTypeOf(rtype, Type.NUMBER)) { if(isEmptyString(lv)) @@ -619,8 +620,9 @@ } else rv = rv.convertTo(lv.getType()); } - if (!"".equals(lv.getStringValue()) && !"".equals(rv.getStringValue())) { - if (backwardsCompatible) { + */ + if (backwardsCompatible) { + if (!"".equals(lv.getStringValue()) && !"".equals(rv.getStringValue())) { // in XPath 1.0 compatible mode, if one of the operands is a number, cast // both operands to xs:double if (Type.subTypeOf(ltype, Type.NUMBER) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-27 14:33:06
|
Revision: 3328 Author: brihaye Date: 2006-04-27 07:32:51 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3328&view=rev Log Message: ----------- Added basic tests on range indexes Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java Modified: trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java 2006-04-27 12:59:54 UTC (rev 3327) +++ trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java 2006-04-27 14:32:51 UTC (rev 3328) @@ -41,18 +41,32 @@ private static final XmldbURI TEST_CONFIG_NAME_2 = XmldbURI.create(TestConstants.SPECIAL_NAME.toString()+".xconf"); private final static String DOCUMENT_CONTENT = "<test>" + "<a>001</a>" - + "<a>01</a>" + "<a>1</a>" + "<b>001</b>" + "<b>01</b>" - + "<b>1</b>" + "</test>"; + + "<a>01</a>" + "<a>1</a>" + "<b>001</b>" + "<b>01</b>" + + "<b>1</b>" + "</test>"; + private final static String DOCUMENT_CONTENT2 = "<test>" + "<c>2002-12-07T12:20:46.275+01:00</c>" + + "<d>1</d>" + "<e>1</e>" + "<f>true</f>" + + "</test>"; + + private String CONFIG1 = "<collection xmlns=\"http://exist-db.org/collection-config/1.0\">" - + " <index>" - + " <create qname=\"a\" type=\"xs:integer\"/>" - + " <create qname=\"b\" type=\"xs:string\"/>" - + " <create path=\"//a\" type=\"xs:integer\"/>" - + " <create path=\"//b\" type=\"xs:string\"/>" - + " </index>" - + "</collection>"; + + " <index>" + + " <create qname=\"a\" type=\"xs:integer\"/>" + + " <create qname=\"b\" type=\"xs:string\"/>" + + " <create path=\"//a\" type=\"xs:integer\"/>" + + " <create path=\"//b\" type=\"xs:string\"/>" + + " </index>" + + "</collection>"; + private String CONFIG2 = "<collection xmlns=\"http://exist-db.org/collection-config/1.0\">" + + " <index>" + + " <create path=\"//c\" type=\"xs:dateTime\"/>" + + " <create path=\"//d\" type=\"xs:double\"/>" + + " <create path=\"//e\" type=\"xs:float\"/>" + + " <create path=\"//f\" type=\"xs:boolean\"/>" + + " </index>" + + "</collection>"; + private Collection testCollection; protected void setUp() { @@ -102,41 +116,41 @@ } - public void testCollectionConfigurationService1() { - ResourceSet result; - try { - //Configure collection automatically - IndexQueryService idxConf = (IndexQueryService) - testCollection.getService("IndexQueryService", "1.0"); - idxConf.configureCollection(CONFIG1); - - //... then index document - XMLResource doc = (XMLResource) - testCollection.createResource(TestConstants.TEST_XML_URI.toString(), "XMLResource" ); - doc.setContent(DOCUMENT_CONTENT); testCollection.storeResource(doc); + public void testCollectionConfigurationService1() { + ResourceSet result; + try { + //Configure collection automatically + IndexQueryService idxConf = (IndexQueryService) + testCollection.getService("IndexQueryService", "1.0"); + idxConf.configureCollection(CONFIG1); + + //... then index document + XMLResource doc = (XMLResource) + testCollection.createResource(TestConstants.TEST_XML_URI.toString(), "XMLResource" ); + doc.setContent(DOCUMENT_CONTENT); testCollection.storeResource(doc); + + XPathQueryService service = (XPathQueryService) + testCollection.getService("XPathQueryService", "1.0"); + + //3 numeric values + result = service.query("util:index-key-occurrences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + + //3 numeric values + result = service.query("util:qname-index-lookup(xs:QName(\"a\"), 1 ) "); + assertEquals(3, result.getSize()); + //... but 1 string value + result = service.query("util:qname-index-lookup(xs:QName(\"b\"), \"1\" ) "); + assertEquals(1, result.getSize()); } + catch(Exception e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } - XPathQueryService service = (XPathQueryService) - testCollection.getService("XPathQueryService", "1.0"); - - //3 numeric values - result = service.query("util:index-key-occurrences(/test/a, 1)"); - assertEquals("3", result.getResource(0).getContent()); - //... but 1 string value - result = service.query("util:index-key-occurrences(/test/b, \"1\")"); - assertEquals("1", result.getResource(0).getContent()); - - //3 numeric values - result = service.query("util:qname-index-lookup(xs:QName(\"a\"), 1 ) "); - assertEquals(3, result.getSize()); - //... but 1 string value - result = service.query("util:qname-index-lookup(xs:QName(\"b\"), \"1\" ) "); - assertEquals(1, result.getSize()); } - catch(Exception e) { - e.printStackTrace(); - fail(e.getMessage()); - } - } - public void testCollectionConfigurationService2() { ResourceSet result; @@ -393,7 +407,42 @@ } } + public void testRangeIndex1() { + ResourceSet result; + try { + //Configure collection automatically + IndexQueryService idxConf = (IndexQueryService) + testCollection.getService("IndexQueryService", "1.0"); + idxConf.configureCollection(CONFIG2); + //... then index document + XMLResource doc = (XMLResource) + testCollection.createResource(TestConstants.TEST_XML_URI.toString(), "XMLResource" ); + doc.setContent(DOCUMENT_CONTENT2); + testCollection.storeResource(doc); + + XPathQueryService service = (XPathQueryService) + testCollection.getService("XPathQueryService", "1.0"); + + result = service.query("util:index-key-occurrences(/test/c, xs:dateTime(\"2002-12-07T12:20:46.275+01:00\") )"); + assertEquals(1, result.getSize()); + assertEquals("1", result.getResource(0).getContent()); + result = service.query("util:index-key-occurrences(/test/d, xs:double(1) )"); + assertEquals(1, result.getSize()); + assertEquals("1", result.getResource(0).getContent()); + result = service.query("util:index-key-occurrences(/test/e, xs:float(1) )"); + assertEquals(1, result.getSize()); + assertEquals("1", result.getResource(0).getContent()); + result = service.query("util:index-key-occurrences(/test/f, true() )"); + assertEquals(1, result.getSize()); + assertEquals("1", result.getResource(0).getContent()); + + } catch(Exception e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + public void testMultipleConfigurations00() { checkStoreConf(CONF_COLL_URI, TEST_CONFIG_NAME_1, CONF_COLL_URI, TEST_CONFIG_NAME_1, true); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2006-04-27 13:00:04
|
Revision: 3327 Author: chrisgeorg Date: 2006-04-27 05:59:54 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3327&view=rev Log Message: ----------- fix for moduleLoadPath - was being set as URI, needed to be simple file path (for now) Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/cocoon/XQueryGenerator.java Modified: trunk/eXist-1.0/src/org/exist/cocoon/XQueryGenerator.java =================================================================== --- trunk/eXist-1.0/src/org/exist/cocoon/XQueryGenerator.java 2006-04-27 11:24:17 UTC (rev 3326) +++ trunk/eXist-1.0/src/org/exist/cocoon/XQueryGenerator.java 2006-04-27 12:59:54 UTC (rev 3327) @@ -265,7 +265,7 @@ if (p != Constants.STRING_NOT_FOUND) { moduleLoadPathBuffer.delete(p, moduleLoadPathBuffer.length()); } - final URI moduleLoadPath = new File(context.getRealPath(moduleLoadPathBuffer.toString())).toURI(); + final String moduleLoadPath = context.getRealPath(moduleLoadPathBuffer.toString()); XmldbURI baseUri = collectionURI; if(pathInfo!=null) { baseUri = baseUri.append(request.getPathInfo()); @@ -299,7 +299,7 @@ expandXIncludes ? "yes" : "no"); service.setProperty("base-uri", baseUri.toString()); //service.setNamespace(RequestModule.PREFIX, RequestModule.NAMESPACE_URI); - service.setModuleLoadPath(moduleLoadPath.toString()); + service.setModuleLoadPath(moduleLoadPath); if(!((CollectionImpl)collection).isRemoteCollection()) { HttpServletRequest httpRequest = (HttpServletRequest) objectModel .get(HttpEnvironment.HTTP_REQUEST_OBJECT); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-27 11:24:37
|
Revision: 3326 Author: brihaye Date: 2006-04-27 04:24:17 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3326&view=rev Log Message: ----------- Double-r for "occurrence" Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java Added Paths: ----------- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurrences.java Removed Paths: ------------- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java Modified: trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java 2006-04-27 10:52:18 UTC (rev 3325) +++ trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java 2006-04-27 11:24:17 UTC (rev 3326) @@ -119,10 +119,10 @@ testCollection.getService("XPathQueryService", "1.0"); //3 numeric values - result = service.query("util:index-key-occurences(/test/a, 1)"); + result = service.query("util:index-key-occurrences(/test/a, 1)"); assertEquals("3", result.getResource(0).getContent()); //... but 1 string value - result = service.query("util:index-key-occurences(/test/b, \"1\")"); + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); assertEquals("1", result.getResource(0).getContent()); //3 numeric values @@ -156,10 +156,10 @@ .getService("XPathQueryService", "1.0"); // No numeric values because we have no index - result = service.query("util:index-key-occurences( /test/a, 1 ) "); + result = service.query("util:index-key-occurrences( /test/a, 1 ) "); assertEquals(0, result.getSize()); // No string value because we have no index - result = service.query("util:index-key-occurences( /test/b, \"1\" ) "); + result = service.query("util:index-key-occurrences( /test/b, \"1\" ) "); assertEquals(0, result.getSize()); // No numeric values because we have no index @@ -173,10 +173,10 @@ idxConf.reindexCollection(); //3 numeric values - result = service.query("util:index-key-occurences(/test/a, 1)"); + result = service.query("util:index-key-occurrences(/test/a, 1)"); assertEquals("3", result.getResource(0).getContent()); //... but 1 string value - result = service.query("util:index-key-occurences(/test/b, \"1\")"); + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); assertEquals("1", result.getResource(0).getContent()); // 3 numeric values @@ -207,10 +207,10 @@ testCollection.getService("XPathQueryService", "1.0"); //3 numeric values - result = service.query("util:index-key-occurences(/test/a, 1)"); + result = service.query("util:index-key-occurrences(/test/a, 1)"); assertEquals("3", result.getResource(0).getContent()); //... but 1 string value - result = service.query("util:index-key-occurences(/test/b, \"1\")"); + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); assertEquals("1", result.getResource(0).getContent()); //3 numeric values @@ -241,10 +241,10 @@ .getService("XPathQueryService", "1.0"); // No numeric values because we have no index - result = service.query("util:index-key-occurences( /test/a, 1 ) "); + result = service.query("util:index-key-occurrences( /test/a, 1 ) "); assertEquals(0, result.getSize()); // No string value because we have no index - result = service.query("util:index-key-occurences( /test/b, \"1\" ) "); + result = service.query("util:index-key-occurrences( /test/b, \"1\" ) "); assertEquals(0, result.getSize()); // No numeric values because we have no index @@ -260,10 +260,10 @@ idxConf.reindexCollection(); //3 numeric values - result = service.query("util:index-key-occurences(/test/a, 1)"); + result = service.query("util:index-key-occurrences(/test/a, 1)"); assertEquals("3", result.getResource(0).getContent()); //... but 1 string value - result = service.query("util:index-key-occurences(/test/b, \"1\")"); + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); assertEquals("1", result.getResource(0).getContent()); // 3 numeric values @@ -306,10 +306,10 @@ assertEquals(configurationFileName.toString(), result.getResource(0).getContent()); //3 numeric values - result = service.query("util:index-key-occurences(/test/a, 1)"); + result = service.query("util:index-key-occurrences(/test/a, 1)"); assertEquals("3", result.getResource(0).getContent()); //... but 1 string value - result = service.query("util:index-key-occurences(/test/b, \"1\")"); + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); assertEquals("1", result.getResource(0).getContent()); // 3 numeric values @@ -352,10 +352,10 @@ assertEquals(configurationFileName.toString(), result.getResource(0).getContent()); // No numeric values because we have no index - result = service.query("util:index-key-occurences( /test/a, 1 ) "); + result = service.query("util:index-key-occurrences( /test/a, 1 ) "); assertEquals(0, result.getSize()); // No string value because we have no index - result = service.query("util:index-key-occurences( /test/b, \"1\" ) "); + result = service.query("util:index-key-occurrences( /test/b, \"1\" ) "); assertEquals(0, result.getSize()); // No numeric values because we have no index @@ -374,10 +374,10 @@ //Strange case that needs investigations... -pb //3 numeric values - result = service.query("util:index-key-occurences(/test/a, 1)"); + result = service.query("util:index-key-occurrences(/test/a, 1)"); assertEquals("3", result.getResource(0).getContent()); //... but 1 string value - result = service.query("util:index-key-occurences(/test/b, \"1\")"); + result = service.query("util:index-key-occurrences(/test/b, \"1\")"); assertEquals("1", result.getResource(0).getContent()); // 3 numeric values Deleted: trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java 2006-04-27 10:52:18 UTC (rev 3325) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java 2006-04-27 11:24:17 UTC (rev 3326) @@ -1,88 +0,0 @@ -/* - * eXist Open Source Native XML Database - * Copyright (C) 2006 The eXist Team - * - * 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. - * - * $Id: QNameIndexLookup.java 3063 2006-04-05 20:49:44Z brihaye $ - */ -package org.exist.xquery.functions.util; - -import org.exist.dom.DocumentSet; -import org.exist.dom.NodeSet; -import org.exist.dom.QName; -import org.exist.storage.Indexable; -import org.exist.util.ValueOccurrences; -import org.exist.xquery.BasicFunction; -import org.exist.xquery.Cardinality; -import org.exist.xquery.Dependency; -import org.exist.xquery.FunctionSignature; -import org.exist.xquery.Profiler; -import org.exist.xquery.XPathException; -import org.exist.xquery.XQueryContext; -import org.exist.xquery.value.IntegerValue; -import org.exist.xquery.value.Sequence; -import org.exist.xquery.value.SequenceType; -import org.exist.xquery.value.Type; - -/** - * @author Pierrick Brihaye <pie...@fr...> - */ -public class IndexKeyOccurences extends BasicFunction { - - public final static FunctionSignature signature = new FunctionSignature( - new QName("index-key-occurences", UtilModule.NAMESPACE_URI, UtilModule.PREFIX), - "Return the number of occurences for an indexed value. " + - "The first argument specifies the nodes whose content is indexed. " + - "The second argument specifies the value. ", - new SequenceType[] { - new SequenceType(Type.NODE, Cardinality.ZERO_OR_MORE), - new SequenceType(Type.ATOMIC, Cardinality.EXACTLY_ONE) }, - new SequenceType(Type.INTEGER, Cardinality.ZERO_OR_ONE)); - - public IndexKeyOccurences(XQueryContext context) { - super(context, signature); - } - - public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException { - if (context.getProfiler().isEnabled()) { - context.getProfiler().start(this); - context.getProfiler().message(this, Profiler.DEPENDENCIES, "DEPENDENCIES", Dependency.getDependenciesName(this.getDependencies())); - if (contextSequence != null) - context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence); - } - - Sequence result; - if (args[0].isEmpty()) - result = Sequence.EMPTY_SEQUENCE; - else { - NodeSet nodes = args[0].toNodeSet(); - DocumentSet docs = nodes.getDocumentSet(); - ValueOccurrences occur[] = context.getBroker().getValueIndex() - .scanIndexKeys(docs, nodes, (Indexable) args[1]); - if (occur.length == 0) - result= Sequence.EMPTY_SEQUENCE; - else - result = new IntegerValue(occur[0].getOccurrences()); - } - - if (context.getProfiler().isEnabled()) - context.getProfiler().end(this, "", result); - - return result; - } -} Added: trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurrences.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurrences.java (rev 0) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurrences.java 2006-04-27 11:24:17 UTC (rev 3326) @@ -0,0 +1,88 @@ +/* + * eXist Open Source Native XML Database + * Copyright (C) 2006 The eXist Team + * + * 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. + * + * $Id: QNameIndexLookup.java 3063 2006-04-05 20:49:44Z brihaye $ + */ +package org.exist.xquery.functions.util; + +import org.exist.dom.DocumentSet; +import org.exist.dom.NodeSet; +import org.exist.dom.QName; +import org.exist.storage.Indexable; +import org.exist.util.ValueOccurrences; +import org.exist.xquery.BasicFunction; +import org.exist.xquery.Cardinality; +import org.exist.xquery.Dependency; +import org.exist.xquery.FunctionSignature; +import org.exist.xquery.Profiler; +import org.exist.xquery.XPathException; +import org.exist.xquery.XQueryContext; +import org.exist.xquery.value.IntegerValue; +import org.exist.xquery.value.Sequence; +import org.exist.xquery.value.SequenceType; +import org.exist.xquery.value.Type; + +/** + * @author Pierrick Brihaye <pie...@fr...> + */ +public class IndexKeyOccurrences extends BasicFunction { + + public final static FunctionSignature signature = new FunctionSignature( + new QName("index-key-occurrences", UtilModule.NAMESPACE_URI, UtilModule.PREFIX), + "Return the number of occurrences for an indexed value. " + + "The first argument specifies the nodes whose content is indexed. " + + "The second argument specifies the value. ", + new SequenceType[] { + new SequenceType(Type.NODE, Cardinality.ZERO_OR_MORE), + new SequenceType(Type.ATOMIC, Cardinality.EXACTLY_ONE) }, + new SequenceType(Type.INTEGER, Cardinality.ZERO_OR_ONE)); + + public IndexKeyOccurrences(XQueryContext context) { + super(context, signature); + } + + public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException { + if (context.getProfiler().isEnabled()) { + context.getProfiler().start(this); + context.getProfiler().message(this, Profiler.DEPENDENCIES, "DEPENDENCIES", Dependency.getDependenciesName(this.getDependencies())); + if (contextSequence != null) + context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence); + } + + Sequence result; + if (args[0].isEmpty()) + result = Sequence.EMPTY_SEQUENCE; + else { + NodeSet nodes = args[0].toNodeSet(); + DocumentSet docs = nodes.getDocumentSet(); + ValueOccurrences occur[] = context.getBroker().getValueIndex() + .scanIndexKeys(docs, nodes, (Indexable) args[1]); + if (occur.length == 0) + result= Sequence.EMPTY_SEQUENCE; + else + result = new IntegerValue(occur[0].getOccurrences()); + } + + if (context.getProfiler().isEnabled()) + context.getProfiler().end(this, "", result); + + return result; + } +} Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java 2006-04-27 10:52:18 UTC (rev 3325) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java 2006-04-27 11:24:17 UTC (rev 3326) @@ -66,7 +66,7 @@ new FunctionDef(NodeId.signature, NodeId.class), new FunctionDef(GetNodeById.signature, GetNodeById.class), new FunctionDef(IndexKeys.signature, IndexKeys.class), - new FunctionDef(IndexKeyOccurences.signature, IndexKeyOccurences.class), + new FunctionDef(IndexKeyOccurrences.signature, IndexKeyOccurrences.class), new FunctionDef(IndexKeyDocuments.signature, IndexKeyDocuments.class), new FunctionDef(QNameIndexLookup.signature, QNameIndexLookup.class), new FunctionDef(Serialize.signature, Serialize.class), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-27 10:52:28
|
Revision: 3325 Author: brihaye Date: 2006-04-27 03:52:18 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3325&view=rev Log Message: ----------- Added missing methods in untypedAtomic Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xquery/value/UntypedAtomicValue.java Modified: trunk/eXist-1.0/src/org/exist/xquery/value/UntypedAtomicValue.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/value/UntypedAtomicValue.java 2006-04-27 09:47:15 UTC (rev 3324) +++ trunk/eXist-1.0/src/org/exist/xquery/value/UntypedAtomicValue.java 2006-04-27 10:52:18 UTC (rev 3325) @@ -183,10 +183,31 @@ : other; } + /* (non-Javadoc) + * @see org.exist.xquery.value.AtomicValue#startsWith(org.exist.xquery.value.AtomicValue) + */ + public boolean startsWith(Collator collator, AtomicValue other) throws XPathException { + return Collations.startsWith(collator, value, other.getStringValue()); + } + + + /* (non-Javadoc) + * @see org.exist.xquery.value.AtomicValue#endsWith(org.exist.xquery.value.AtomicValue) + */ + public boolean endsWith(Collator collator, AtomicValue other) throws XPathException { + return Collations.endsWith(collator, value, other.getStringValue()); + } + + /* (non-Javadoc) + * @see org.exist.xquery.value.AtomicValue#contains(org.exist.xquery.value.AtomicValue) + */ + public boolean contains(Collator collator, AtomicValue other) throws XPathException { + return Collations.indexOf(collator, value, other.getStringValue()) != Constants.STRING_NOT_FOUND; + } + public boolean effectiveBooleanValue() throws XPathException { return value.length() > 0; - } - + } /* (non-Javadoc) * @see org.exist.xquery.value.Item#conversionPreference(java.lang.Class) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-27 09:47:28
|
Revision: 3324 Author: brihaye Date: 2006-04-27 02:47:15 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3324&view=rev Log Message: ----------- Added 2 lookup functions for value indexes Added Paths: ----------- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyDocuments.java trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java Added: trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyDocuments.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyDocuments.java (rev 0) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyDocuments.java 2006-04-27 09:47:15 UTC (rev 3324) @@ -0,0 +1,88 @@ +/* + * eXist Open Source Native XML Database + * Copyright (C) 2006 The eXist Team + * + * 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. + * + * $Id: QNameIndexLookup.java 3063 2006-04-05 20:49:44Z brihaye $ + */ +package org.exist.xquery.functions.util; + +import org.exist.dom.DocumentSet; +import org.exist.dom.NodeSet; +import org.exist.dom.QName; +import org.exist.storage.Indexable; +import org.exist.util.ValueOccurrences; +import org.exist.xquery.BasicFunction; +import org.exist.xquery.Cardinality; +import org.exist.xquery.Dependency; +import org.exist.xquery.FunctionSignature; +import org.exist.xquery.Profiler; +import org.exist.xquery.XPathException; +import org.exist.xquery.XQueryContext; +import org.exist.xquery.value.IntegerValue; +import org.exist.xquery.value.Sequence; +import org.exist.xquery.value.SequenceType; +import org.exist.xquery.value.Type; + +/** + * @author Pierrick Brihaye <pie...@fr...> + */ +public class IndexKeyDocuments extends BasicFunction { + + public final static FunctionSignature signature = new FunctionSignature( + new QName("index-key-documents", UtilModule.NAMESPACE_URI, UtilModule.PREFIX), + "Return the number of documents for an indexed value. " + + "The first argument specifies the nodes whose content is indexed. " + + "The second argument specifies the value. ", + new SequenceType[] { + new SequenceType(Type.NODE, Cardinality.ZERO_OR_MORE), + new SequenceType(Type.ATOMIC, Cardinality.EXACTLY_ONE) }, + new SequenceType(Type.INTEGER, Cardinality.ZERO_OR_ONE)); + + public IndexKeyDocuments(XQueryContext context) { + super(context, signature); + } + + public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException { + if (context.getProfiler().isEnabled()) { + context.getProfiler().start(this); + context.getProfiler().message(this, Profiler.DEPENDENCIES, "DEPENDENCIES", Dependency.getDependenciesName(this.getDependencies())); + if (contextSequence != null) + context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence); + } + + Sequence result; + if (args[0].isEmpty()) + result = Sequence.EMPTY_SEQUENCE; + else { + NodeSet nodes = args[0].toNodeSet(); + DocumentSet docs = nodes.getDocumentSet(); + ValueOccurrences occur[] = context.getBroker().getValueIndex() + .scanIndexKeys(docs, nodes, (Indexable) args[1]); + if (occur.length == 0) + result= Sequence.EMPTY_SEQUENCE; + else + result = new IntegerValue(occur[0].getDocuments()); + } + + if (context.getProfiler().isEnabled()) + context.getProfiler().end(this, "", result); + + return result; + } +} Added: trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java (rev 0) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/util/IndexKeyOccurences.java 2006-04-27 09:47:15 UTC (rev 3324) @@ -0,0 +1,88 @@ +/* + * eXist Open Source Native XML Database + * Copyright (C) 2006 The eXist Team + * + * 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. + * + * $Id: QNameIndexLookup.java 3063 2006-04-05 20:49:44Z brihaye $ + */ +package org.exist.xquery.functions.util; + +import org.exist.dom.DocumentSet; +import org.exist.dom.NodeSet; +import org.exist.dom.QName; +import org.exist.storage.Indexable; +import org.exist.util.ValueOccurrences; +import org.exist.xquery.BasicFunction; +import org.exist.xquery.Cardinality; +import org.exist.xquery.Dependency; +import org.exist.xquery.FunctionSignature; +import org.exist.xquery.Profiler; +import org.exist.xquery.XPathException; +import org.exist.xquery.XQueryContext; +import org.exist.xquery.value.IntegerValue; +import org.exist.xquery.value.Sequence; +import org.exist.xquery.value.SequenceType; +import org.exist.xquery.value.Type; + +/** + * @author Pierrick Brihaye <pie...@fr...> + */ +public class IndexKeyOccurences extends BasicFunction { + + public final static FunctionSignature signature = new FunctionSignature( + new QName("index-key-occurences", UtilModule.NAMESPACE_URI, UtilModule.PREFIX), + "Return the number of occurences for an indexed value. " + + "The first argument specifies the nodes whose content is indexed. " + + "The second argument specifies the value. ", + new SequenceType[] { + new SequenceType(Type.NODE, Cardinality.ZERO_OR_MORE), + new SequenceType(Type.ATOMIC, Cardinality.EXACTLY_ONE) }, + new SequenceType(Type.INTEGER, Cardinality.ZERO_OR_ONE)); + + public IndexKeyOccurences(XQueryContext context) { + super(context, signature); + } + + public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException { + if (context.getProfiler().isEnabled()) { + context.getProfiler().start(this); + context.getProfiler().message(this, Profiler.DEPENDENCIES, "DEPENDENCIES", Dependency.getDependenciesName(this.getDependencies())); + if (contextSequence != null) + context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence); + } + + Sequence result; + if (args[0].isEmpty()) + result = Sequence.EMPTY_SEQUENCE; + else { + NodeSet nodes = args[0].toNodeSet(); + DocumentSet docs = nodes.getDocumentSet(); + ValueOccurrences occur[] = context.getBroker().getValueIndex() + .scanIndexKeys(docs, nodes, (Indexable) args[1]); + if (occur.length == 0) + result= Sequence.EMPTY_SEQUENCE; + else + result = new IntegerValue(occur[0].getOccurrences()); + } + + if (context.getProfiler().isEnabled()) + context.getProfiler().end(this, "", result); + + return result; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-27 09:45:54
|
Revision: 3323 Author: brihaye Date: 2006-04-27 02:45:37 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3323&view=rev Log Message: ----------- Added 2 lookup functions for value indexes Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/util/ValueOccurrences.java trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java Modified: trunk/eXist-1.0/src/org/exist/util/ValueOccurrences.java =================================================================== --- trunk/eXist-1.0/src/org/exist/util/ValueOccurrences.java 2006-04-26 21:36:29 UTC (rev 3322) +++ trunk/eXist-1.0/src/org/exist/util/ValueOccurrences.java 2006-04-27 09:45:37 UTC (rev 3323) @@ -97,4 +97,16 @@ return Constants.INFERIOR; } } + + public String toString() { + StringBuffer buf = new StringBuffer(); + try { + buf.append("Value: '" + value.getStringValue() +"'"); + } catch (XPathException e) { + buf.append("Value: '" + e.getMessage() +"'"); + } + buf.append(" occurences: '" + occurrences +"'"); + buf.append(" documents: '" + docs.getLength() +"'"); + return buf.toString(); + } } Modified: trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java 2006-04-26 21:36:29 UTC (rev 3322) +++ trunk/eXist-1.0/src/org/exist/xmldb/test/CollectionConfigurationTest.java 2006-04-27 09:45:37 UTC (rev 3323) @@ -3,7 +3,6 @@ import junit.framework.TestCase; import org.exist.collections.CollectionConfiguration; -import org.exist.collections.CollectionConfigurationManager; import org.exist.storage.DBBroker; import org.exist.test.TestConstants; import org.exist.xmldb.DatabaseInstanceManager; @@ -49,6 +48,8 @@ + " <index>" + " <create qname=\"a\" type=\"xs:integer\"/>" + " <create qname=\"b\" type=\"xs:string\"/>" + + " <create path=\"//a\" type=\"xs:integer\"/>" + + " <create path=\"//b\" type=\"xs:string\"/>" + " </index>" + "</collection>"; @@ -116,14 +117,22 @@ XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0"); - + //3 numeric values + result = service.query("util:index-key-occurences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + + //3 numeric values result = service.query("util:qname-index-lookup(xs:QName(\"a\"), 1 ) "); assertEquals(3, result.getSize()); //... but 1 string value result = service.query("util:qname-index-lookup(xs:QName(\"b\"), \"1\" ) "); assertEquals(1, result.getSize()); } catch(Exception e) { + e.printStackTrace(); fail(e.getMessage()); } } @@ -147,15 +156,29 @@ .getService("XPathQueryService", "1.0"); // No numeric values because we have no index + result = service.query("util:index-key-occurences( /test/a, 1 ) "); + assertEquals(0, result.getSize()); + // No string value because we have no index + result = service.query("util:index-key-occurences( /test/b, \"1\" ) "); + assertEquals(0, result.getSize()); + + // No numeric values because we have no index result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(0, result.getSize()); // No string value because we have no index result = service.query("util:qname-index-lookup( xs:QName(\"b\"), \"1\" ) "); assertEquals(0, result.getSize()); - + // ...let's activate the index idxConf.reindexCollection(); + //3 numeric values + result = service.query("util:index-key-occurences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + // 3 numeric values result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(3, result.getSize()); @@ -164,6 +187,7 @@ assertEquals(1, result.getSize()); } catch (Exception e) { + e.printStackTrace(); fail(e.getMessage()); } } @@ -183,6 +207,13 @@ testCollection.getService("XPathQueryService", "1.0"); //3 numeric values + result = service.query("util:index-key-occurences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + + //3 numeric values result = service.query("util:qname-index-lookup(xs:QName(\"a\"), 1 ) "); assertEquals(3, result.getSize()); //... but 1 string value @@ -210,6 +241,13 @@ .getService("XPathQueryService", "1.0"); // No numeric values because we have no index + result = service.query("util:index-key-occurences( /test/a, 1 ) "); + assertEquals(0, result.getSize()); + // No string value because we have no index + result = service.query("util:index-key-occurences( /test/b, \"1\" ) "); + assertEquals(0, result.getSize()); + + // No numeric values because we have no index result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(0, result.getSize()); // No string value because we have no index @@ -221,6 +259,13 @@ testCollection.getService("IndexQueryService", "1.0"); idxConf.reindexCollection(); + //3 numeric values + result = service.query("util:index-key-occurences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + // 3 numeric values result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(3, result.getSize()); @@ -260,6 +305,13 @@ "')"); assertEquals(configurationFileName.toString(), result.getResource(0).getContent()); + //3 numeric values + result = service.query("util:index-key-occurences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + // 3 numeric values result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(3, result.getSize()); @@ -300,6 +352,13 @@ assertEquals(configurationFileName.toString(), result.getResource(0).getContent()); // No numeric values because we have no index + result = service.query("util:index-key-occurences( /test/a, 1 ) "); + assertEquals(0, result.getSize()); + // No string value because we have no index + result = service.query("util:index-key-occurences( /test/b, \"1\" ) "); + assertEquals(0, result.getSize()); + + // No numeric values because we have no index result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(0, result.getSize()); // No string value because we have no index @@ -314,6 +373,13 @@ //Adding confMgr.invalidateAll(getName()); in Collection.storeInternal solved the problem //Strange case that needs investigations... -pb + //3 numeric values + result = service.query("util:index-key-occurences(/test/a, 1)"); + assertEquals("3", result.getResource(0).getContent()); + //... but 1 string value + result = service.query("util:index-key-occurences(/test/b, \"1\")"); + assertEquals("1", result.getResource(0).getContent()); + // 3 numeric values result = service.query("util:qname-index-lookup( xs:QName(\"a\"), 1 ) "); assertEquals(3, result.getSize()); Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java 2006-04-26 21:36:29 UTC (rev 3322) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/util/UtilModule.java 2006-04-27 09:45:37 UTC (rev 3323) @@ -66,6 +66,8 @@ new FunctionDef(NodeId.signature, NodeId.class), new FunctionDef(GetNodeById.signature, GetNodeById.class), new FunctionDef(IndexKeys.signature, IndexKeys.class), + new FunctionDef(IndexKeyOccurences.signature, IndexKeyOccurences.class), + new FunctionDef(IndexKeyDocuments.signature, IndexKeyDocuments.class), new FunctionDef(QNameIndexLookup.signature, QNameIndexLookup.class), new FunctionDef(Serialize.signature, Serialize.class), new FunctionDef(BinaryDoc.signature, BinaryDoc.class), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-26 21:37:25
|
Revision: 3322 Author: brihaye Date: 2006-04-26 14:36:29 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3322&view=rev Log Message: ----------- Organized imports Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/backup/Restore.java trunk/eXist-1.0/src/org/exist/client/CollectionXConf.java trunk/eXist-1.0/src/org/exist/client/DocumentView.java trunk/eXist-1.0/src/org/exist/client/IndexDialog.java trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterGenerator.java trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterInfoGenerator.java trunk/eXist-1.0/src/org/exist/cocoon/XMLDBSource.java trunk/eXist-1.0/src/org/exist/collections/CollectionConfigurationManager.java trunk/eXist-1.0/src/org/exist/http/servlets/DigestAuthenticator.java trunk/eXist-1.0/src/org/exist/http/servlets/HttpServletRequestWrapper.java trunk/eXist-1.0/src/org/exist/http/servlets/Log4jInit.java trunk/eXist-1.0/src/org/exist/http/servlets/XQueryServlet.java trunk/eXist-1.0/src/org/exist/http/webdav/methods/Mkcol.java trunk/eXist-1.0/src/org/exist/http/webdav/methods/Move.java trunk/eXist-1.0/src/org/exist/http/webdav/methods/Propfind.java trunk/eXist-1.0/src/org/exist/security/LDAPSecurityManager.java trunk/eXist-1.0/src/org/exist/soap/Admin.java trunk/eXist-1.0/src/org/exist/soap/Query.java trunk/eXist-1.0/src/org/exist/soap/QuerySoapBindingImpl.java trunk/eXist-1.0/src/org/exist/start/Main.java trunk/eXist-1.0/src/org/exist/storage/DBBroker.java trunk/eXist-1.0/src/org/exist/storage/NativeBroker.java trunk/eXist-1.0/src/org/exist/storage/serializers/XIncludeFilter.java trunk/eXist-1.0/src/org/exist/validation/internal/DatabaseResources.java trunk/eXist-1.0/src/org/exist/validation/resolver/eXistCatalogResolver.java trunk/eXist-1.0/src/org/exist/webstart/JnlpJarFiles.java trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollection.java trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollectionManagementService.java trunk/eXist-1.0/src/org/exist/xmldb/RemoteXMLResource.java trunk/eXist-1.0/src/org/exist/xquery/functions/FunEncodeForURI.java trunk/eXist-1.0/src/org/exist/xquery/functions/FunEscapeHTMLURI.java trunk/eXist-1.0/src/org/exist/xquery/functions/FunIRIToURI.java trunk/eXist-1.0/src/org/exist/xquery/functions/FunNamespaceURI.java trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBAbstractCollectionManipulator.java trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBChangeUser.java trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBCreateUser.java trunk/eXist-1.0/src/org/exist/xquery/util/URIUtils.java Modified: trunk/eXist-1.0/src/org/exist/backup/Restore.java =================================================================== --- trunk/eXist-1.0/src/org/exist/backup/Restore.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/backup/Restore.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -8,7 +8,6 @@ import java.util.Date; import java.util.Observable; import java.util.Stack; -import java.util.StringTokenizer; import javax.swing.JDialog; import javax.swing.JFrame; Modified: trunk/eXist-1.0/src/org/exist/client/CollectionXConf.java =================================================================== --- trunk/eXist-1.0/src/org/exist/client/CollectionXConf.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/client/CollectionXConf.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -6,14 +6,12 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; import org.exist.storage.DBBroker; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import org.xmldb.api.DatabaseManager; import org.xmldb.api.base.Collection; import org.xmldb.api.base.Resource; import org.xmldb.api.base.XMLDBException; Modified: trunk/eXist-1.0/src/org/exist/client/DocumentView.java =================================================================== --- trunk/eXist-1.0/src/org/exist/client/DocumentView.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/client/DocumentView.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -19,6 +19,7 @@ * $Id$ */ package org.exist.client; + import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.Dimension; @@ -72,6 +73,7 @@ import org.xmldb.api.base.Resource; import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.XMLResource; + class DocumentView extends JFrame { protected InteractiveClient client; Modified: trunk/eXist-1.0/src/org/exist/client/IndexDialog.java =================================================================== --- trunk/eXist-1.0/src/org/exist/client/IndexDialog.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/client/IndexDialog.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -12,62 +12,31 @@ import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.io.IOException; -import java.net.URL; -import java.util.Iterator; -import java.util.Properties; import java.util.Vector; -import javax.swing.BorderFactory; import javax.swing.Box; -import javax.swing.BoxLayout; import javax.swing.DefaultCellEditor; -import javax.swing.DefaultListModel; -import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; -import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JOptionPane; import javax.swing.JPanel; -import javax.swing.JPasswordField; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.ListSelectionModel; -import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; import javax.swing.table.AbstractTableModel; -import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; -import javax.xml.transform.OutputKeys; -import org.exist.security.User; -import org.xmldb.api.base.Resource; import org.exist.storage.DBBroker; import org.xmldb.api.base.Collection; import org.xmldb.api.base.XMLDBException; -//DOM -import org.w3c.dom.Document; -import org.w3c.dom.DOMException; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.FactoryConfigurationError; -import javax.xml.parsers.ParserConfigurationException; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - - /** * TODO: could loose the member arrays of RangeIndexTableModel, QNameIndexTableModel, and replace with calls to cx * Modified: trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterGenerator.java =================================================================== --- trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterGenerator.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterGenerator.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -1,19 +1,18 @@ //$Id$ package org.exist.cluster.cocoon; -import org.apache.cocoon.ProcessingException; +import java.io.IOException; +import java.util.HashMap; +import java.util.Vector; + import org.apache.cocoon.generation.AbstractGenerator; import org.exist.cluster.ClusterComunication; import org.exist.storage.report.XMLStatistics; +import org.jgroups.Address; +import org.jgroups.stack.IpAddress; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; -import org.jgroups.stack.IpAddress; -import org.jgroups.Address; -import java.io.IOException; -import java.util.Vector; -import java.util.HashMap; - /** * A Cocoon Generator which generates status information about running database instances, * buffer usage and the like. Modified: trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterInfoGenerator.java =================================================================== --- trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterInfoGenerator.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/cluster/cocoon/ClusterInfoGenerator.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -1,21 +1,17 @@ //$Id$ package org.exist.cluster.cocoon; -import org.apache.cocoon.ProcessingException; +import java.io.IOException; + import org.apache.cocoon.generation.AbstractGenerator; import org.exist.cluster.ClusterComunication; import org.exist.cluster.ClusterException; import org.exist.storage.report.XMLStatistics; import org.exist.util.Configuration; +import org.jgroups.Address; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; -import org.jgroups.stack.IpAddress; -import org.jgroups.Address; -import java.io.IOException; -import java.util.Vector; -import java.util.HashMap; - /** * A Cocoon Generator which generates status information about running database instances, * buffer usage and the like. Modified: trunk/eXist-1.0/src/org/exist/cocoon/XMLDBSource.java =================================================================== --- trunk/eXist-1.0/src/org/exist/cocoon/XMLDBSource.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/cocoon/XMLDBSource.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -40,8 +40,6 @@ import org.apache.avalon.framework.logger.Logger; import org.apache.cocoon.CascadingIOException; import org.apache.cocoon.xml.IncludeXMLConsumer; -import org.apache.cocoon.xml.XMLConsumer; -import org.apache.cocoon.xml.dom.DOMStreamer; import org.apache.excalibur.source.ModifiableTraversableSource; import org.apache.excalibur.source.Source; import org.apache.excalibur.source.SourceException; @@ -49,16 +47,12 @@ import org.apache.excalibur.source.SourceUtil; import org.apache.excalibur.source.SourceValidity; import org.apache.excalibur.source.impl.validity.TimeStampValidity; -import org.apache.excalibur.xml.sax.SAXParser; import org.apache.excalibur.xml.sax.XMLizable; -import org.w3c.dom.Document; import org.w3c.dom.Node; import org.xml.sax.ContentHandler; import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; import org.xml.sax.ext.LexicalHandler; import org.xml.sax.helpers.AttributesImpl; -import org.xml.sax.helpers.XMLReaderFactory; import org.xmldb.api.DatabaseManager; import org.xmldb.api.base.Collection; import org.xmldb.api.base.Resource; Modified: trunk/eXist-1.0/src/org/exist/collections/CollectionConfigurationManager.java =================================================================== --- trunk/eXist-1.0/src/org/exist/collections/CollectionConfigurationManager.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/collections/CollectionConfigurationManager.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -38,7 +38,6 @@ import org.exist.util.LockException; import org.exist.util.sanity.SanityCheck; import org.exist.xmldb.XmldbURI; -import org.exist.xquery.Constants; import org.xml.sax.SAXException; /** Modified: trunk/eXist-1.0/src/org/exist/http/servlets/DigestAuthenticator.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/servlets/DigestAuthenticator.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/servlets/DigestAuthenticator.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -29,7 +29,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.exist.security.Base64Coder; import org.exist.security.MD5; import org.exist.security.SecurityManager; Modified: trunk/eXist-1.0/src/org/exist/http/servlets/HttpServletRequestWrapper.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/servlets/HttpServletRequestWrapper.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/servlets/HttpServletRequestWrapper.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -25,9 +25,6 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.StringBufferInputStream; -import java.io.StringReader; -import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.security.Principal; @@ -46,9 +43,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; -import org.apache.tools.ant.filters.StringInputStream; - /** A wrapper for HttpServletRequest * - differentiates between POST parameters in the URL or Content Body * - keeps content Body of the POST request, making it available many times Modified: trunk/eXist-1.0/src/org/exist/http/servlets/Log4jInit.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/servlets/Log4jInit.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/servlets/Log4jInit.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -29,8 +29,8 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import org.apache.log4j.xml.DOMConfigurator; -import org.exist.util.Configuration; /** Modified: trunk/eXist-1.0/src/org/exist/http/servlets/XQueryServlet.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/servlets/XQueryServlet.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/servlets/XQueryServlet.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -38,11 +38,9 @@ import javax.servlet.http.HttpSession; import javax.xml.transform.OutputKeys; -import org.apache.cocoon.ProcessingException; import org.exist.http.Descriptor; import org.exist.source.FileSource; import org.exist.source.Source; -import org.exist.storage.DBBroker; import org.exist.xmldb.CollectionImpl; import org.exist.xmldb.XQueryService; import org.exist.xmldb.XmldbURI; Modified: trunk/eXist-1.0/src/org/exist/http/webdav/methods/Mkcol.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/webdav/methods/Mkcol.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/webdav/methods/Mkcol.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -37,7 +37,6 @@ import org.exist.storage.txn.TransactionManager; import org.exist.storage.txn.Txn; import org.exist.xmldb.XmldbURI; -import org.exist.xquery.Constants; /** Modified: trunk/eXist-1.0/src/org/exist/http/webdav/methods/Move.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/webdav/methods/Move.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/webdav/methods/Move.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -42,7 +42,6 @@ import org.exist.storage.txn.Txn; import org.exist.util.LockException; import org.exist.xmldb.XmldbURI; -import org.exist.xquery.Constants; /** * Implements the WebDAV move method. Modified: trunk/eXist-1.0/src/org/exist/http/webdav/methods/Propfind.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/webdav/methods/Propfind.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/http/webdav/methods/Propfind.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -58,7 +58,6 @@ import org.exist.util.serializer.SAXSerializer; import org.exist.util.serializer.SerializerPool; import org.exist.xmldb.XmldbURI; -import org.exist.xquery.Constants; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; Modified: trunk/eXist-1.0/src/org/exist/security/LDAPSecurityManager.java =================================================================== --- trunk/eXist-1.0/src/org/exist/security/LDAPSecurityManager.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/security/LDAPSecurityManager.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -8,14 +8,13 @@ package org.exist.security; -import org.apache.log4j.Logger; import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; -import java.util.Iterator; import java.util.List; import java.util.Map; + import javax.naming.Context; import javax.naming.NameNotFoundException; import javax.naming.NamingEnumeration; @@ -26,6 +25,8 @@ import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; + +import org.apache.log4j.Logger; import org.exist.security.xacml.ExistPDP; import org.exist.storage.BrokerPool; import org.exist.storage.DBBroker; Modified: trunk/eXist-1.0/src/org/exist/soap/Admin.java =================================================================== --- trunk/eXist-1.0/src/org/exist/soap/Admin.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/soap/Admin.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -7,6 +7,8 @@ package org.exist.soap; +import java.rmi.RemoteException; + public interface Admin extends java.rmi.Remote { /** * Store a new document into the database. The document will be stored using Modified: trunk/eXist-1.0/src/org/exist/soap/Query.java =================================================================== --- trunk/eXist-1.0/src/org/exist/soap/Query.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/soap/Query.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -7,6 +7,8 @@ package org.exist.soap; +import java.rmi.RemoteException; + public interface Query extends java.rmi.Remote { /** * Retrieve a document from the database. Modified: trunk/eXist-1.0/src/org/exist/soap/QuerySoapBindingImpl.java =================================================================== --- trunk/eXist-1.0/src/org/exist/soap/QuerySoapBindingImpl.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/soap/QuerySoapBindingImpl.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -29,7 +29,6 @@ import org.exist.util.Configuration; import org.exist.xmldb.XmldbURI; import org.exist.xquery.AnalyzeContextInfo; -import org.exist.xquery.Constants; import org.exist.xquery.PathExpr; import org.exist.xquery.XQueryContext; import org.exist.xquery.parser.XQueryLexer; Modified: trunk/eXist-1.0/src/org/exist/start/Main.java =================================================================== --- trunk/eXist-1.0/src/org/exist/start/Main.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/start/Main.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -9,12 +9,20 @@ */ package org.exist.start; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FilenameFilter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.StringTokenizer; + import org.exist.storage.BrokerPool; /** @@ -89,18 +97,19 @@ } boolean isAvailable(String classname, Classpath classpath) { - Class check; //unused try { - check = Class.forName(classname); + Class.forName(classname); return true; } catch (ClassNotFoundException e) { + //ignore } ClassLoader loader = classpath.getClassLoader(null); try { - check = loader.loadClass(classname); + loader.loadClass(classname); return true; } catch (ClassNotFoundException e) { + //ignore } return false; Modified: trunk/eXist-1.0/src/org/exist/storage/DBBroker.java =================================================================== --- trunk/eXist-1.0/src/org/exist/storage/DBBroker.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/storage/DBBroker.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -56,7 +56,6 @@ import org.exist.xmldb.XmldbURI; import org.exist.xquery.XQuery; import org.w3c.dom.Document; -import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** Modified: trunk/eXist-1.0/src/org/exist/storage/NativeBroker.java =================================================================== --- trunk/eXist-1.0/src/org/exist/storage/NativeBroker.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/storage/NativeBroker.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -26,14 +26,12 @@ import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.net.URISyntaxException; import java.text.Collator; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Observer; import java.util.Stack; -import java.util.StringTokenizer; import java.util.regex.Matcher; import java.util.regex.Pattern; Modified: trunk/eXist-1.0/src/org/exist/storage/serializers/XIncludeFilter.java =================================================================== --- trunk/eXist-1.0/src/org/exist/storage/serializers/XIncludeFilter.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/storage/serializers/XIncludeFilter.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -23,7 +23,6 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.util.HashMap; Modified: trunk/eXist-1.0/src/org/exist/validation/internal/DatabaseResources.java =================================================================== --- trunk/eXist-1.0/src/org/exist/validation/internal/DatabaseResources.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/validation/internal/DatabaseResources.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -58,11 +58,7 @@ import org.exist.xquery.value.SequenceIterator; import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import org.xmldb.api.base.ErrorCodes; -import org.xmldb.api.base.XMLDBException; - - /** * Helper class for accessing grammars. * @author Dannes Wessels Modified: trunk/eXist-1.0/src/org/exist/validation/resolver/eXistCatalogResolver.java =================================================================== --- trunk/eXist-1.0/src/org/exist/validation/resolver/eXistCatalogResolver.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/validation/resolver/eXistCatalogResolver.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -26,13 +26,11 @@ import javax.xml.transform.Source; import javax.xml.transform.TransformerException; -import javax.xml.transform.URIResolver; import org.apache.log4j.Logger; import org.apache.xml.resolver.Catalog; import org.apache.xml.resolver.CatalogManager; import org.apache.xml.resolver.tools.CatalogResolver; - import org.xml.sax.InputSource; import org.xml.sax.SAXException; Modified: trunk/eXist-1.0/src/org/exist/webstart/JnlpJarFiles.java =================================================================== --- trunk/eXist-1.0/src/org/exist/webstart/JnlpJarFiles.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/webstart/JnlpJarFiles.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -23,8 +23,7 @@ package org.exist.webstart; import java.io.File; -import java.util.regex.Matcher; -import java.util.regex.Pattern; + import org.apache.log4j.Logger; import org.exist.start.LatestFileResolver; Modified: trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollection.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollection.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollection.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -41,7 +41,6 @@ import org.exist.security.Permission; import org.exist.util.Compressor; import org.exist.validation.service.RemoteValidationService; -import org.exist.xquery.Constants; import org.xmldb.api.base.Collection; import org.xmldb.api.base.ErrorCodes; import org.xmldb.api.base.Resource; Modified: trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollectionManagementService.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollectionManagementService.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xmldb/RemoteCollectionManagementService.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -1,5 +1,6 @@ package org.exist.xmldb; + import java.io.IOException; import java.net.URISyntaxException; import java.util.Date; @@ -7,7 +8,6 @@ import org.apache.xmlrpc.XmlRpcClient; import org.apache.xmlrpc.XmlRpcException; -import org.exist.storage.DBBroker; import org.w3c.dom.Document; import org.xmldb.api.base.Collection; import org.xmldb.api.base.ErrorCodes; Modified: trunk/eXist-1.0/src/org/exist/xmldb/RemoteXMLResource.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/RemoteXMLResource.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xmldb/RemoteXMLResource.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -27,9 +27,9 @@ import org.exist.util.Compressor; import org.exist.util.serializer.DOMSerializer; import org.exist.util.serializer.SAXSerializer; -import org.exist.xquery.Constants; import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; +import org.w3c.dom.DocumentType; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.xml.sax.ContentHandler; @@ -43,7 +43,6 @@ import org.xmldb.api.base.ErrorCodes; import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.XMLResource; -import org.w3c.dom.DocumentType; public class RemoteXMLResource implements XMLResource, EXistResource { Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/FunEncodeForURI.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/FunEncodeForURI.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/FunEncodeForURI.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -21,8 +21,6 @@ */ package org.exist.xquery.functions; -import java.io.UnsupportedEncodingException; - import org.exist.dom.QName; import org.exist.xquery.Cardinality; import org.exist.xquery.Dependency; Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/FunEscapeHTMLURI.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/FunEscapeHTMLURI.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/FunEscapeHTMLURI.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -21,8 +21,6 @@ */ package org.exist.xquery.functions; -import java.io.UnsupportedEncodingException; - import org.exist.dom.QName; import org.exist.xquery.Cardinality; import org.exist.xquery.Dependency; Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/FunIRIToURI.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/FunIRIToURI.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/FunIRIToURI.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -21,8 +21,6 @@ */ package org.exist.xquery.functions; -import java.io.UnsupportedEncodingException; - import org.exist.dom.QName; import org.exist.xquery.Cardinality; import org.exist.xquery.Dependency; Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/FunNamespaceURI.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/FunNamespaceURI.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/FunNamespaceURI.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -33,7 +33,6 @@ import org.exist.xquery.value.NodeValue; import org.exist.xquery.value.Sequence; import org.exist.xquery.value.SequenceType; -import org.exist.xquery.value.StringValue; import org.exist.xquery.value.Type; import org.w3c.dom.Node; Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBAbstractCollectionManipulator.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBAbstractCollectionManipulator.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBAbstractCollectionManipulator.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -25,11 +25,8 @@ */ package org.exist.xquery.functions.xmldb; -import java.net.URISyntaxException; - import org.exist.dom.NodeProxy; import org.exist.xmldb.LocalCollection; -import org.exist.xmldb.XmldbURI; import org.exist.xquery.BasicFunction; import org.exist.xquery.FunctionSignature; import org.exist.xquery.XPathException; Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBChangeUser.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBChangeUser.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBChangeUser.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -26,7 +26,6 @@ import org.exist.dom.QName; import org.exist.security.User; -import org.exist.validation.internal.ResourceInputStream; import org.exist.xmldb.LocalCollection; import org.exist.xmldb.UserManagementService; import org.exist.xmldb.XmldbURI; @@ -40,7 +39,6 @@ import org.exist.xquery.value.SequenceType; import org.exist.xquery.value.Type; import org.xmldb.api.base.Collection; -import org.xmldb.api.base.ErrorCodes; import org.xmldb.api.base.XMLDBException; /** Modified: trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBCreateUser.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBCreateUser.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBCreateUser.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -26,8 +26,6 @@ */ package org.exist.xquery.functions.xmldb; -import java.net.URISyntaxException; - import org.exist.dom.QName; import org.exist.security.User; import org.exist.xmldb.LocalCollection; Modified: trunk/eXist-1.0/src/org/exist/xquery/util/URIUtils.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/util/URIUtils.java 2006-04-26 20:54:48 UTC (rev 3321) +++ trunk/eXist-1.0/src/org/exist/xquery/util/URIUtils.java 2006-04-26 21:36:29 UTC (rev 3322) @@ -22,7 +22,6 @@ package org.exist.xquery.util; import java.io.UnsupportedEncodingException; -import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.net.URLEncoder; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gva...@us...> - 2006-04-26 20:55:01
|
Revision: 3321 Author: gvalentino Date: 2006-04-26 13:54:48 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3321&view=rev Log Message: ----------- Fix for editing remote document Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xmlrpc/RpcConnection.java Modified: trunk/eXist-1.0/src/org/exist/xmlrpc/RpcConnection.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmlrpc/RpcConnection.java 2006-04-26 20:30:37 UTC (rev 3320) +++ trunk/eXist-1.0/src/org/exist/xmlrpc/RpcConnection.java 2006-04-26 20:54:48 UTC (rev 3321) @@ -1066,7 +1066,7 @@ groups.addElement(gl[i]); tab.put("groups", groups); if (u.getHome() != null) - tab.put("home", u.getHome()); + tab.put("home", u.getHome().toString()); return tab; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-26 20:15:06
|
Revision: 3319 Author: brihaye Date: 2006-04-26 13:14:55 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3319&view=rev Log Message: ----------- Added some logging for configuration. May be useful. To be continued, ideally using named constants. Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/util/Configuration.java Modified: trunk/eXist-1.0/src/org/exist/util/Configuration.java =================================================================== --- trunk/eXist-1.0/src/org/exist/util/Configuration.java 2006-04-26 20:12:31 UTC (rev 3318) +++ trunk/eXist-1.0/src/org/exist/util/Configuration.java 2006-04-26 20:14:55 UTC (rev 3319) @@ -144,7 +144,7 @@ // Create resolver - LOG.debug("Creating CatalogResolver"); + LOG.debug("Creating eXist catalog resolver"); System.setProperty("xml.catalog.verbosity", "10"); eXistCatalogResolver resolver = new eXistCatalogResolver(true); config.put("resolver", resolver); @@ -291,6 +291,7 @@ throw new DatabaseConfigurationException("element 'module' requires an attribute 'class'"); moduleList[i][0] = uri; moduleList[i][1] = clazz; + LOG.debug("Configured module '" + uri + "' implemented in '" + clazz + "'"); } config.put("xquery.modules", moduleList); } @@ -341,20 +342,24 @@ */ private void configureXUpdate(NodeList xupdates) throws NumberFormatException { Element xupdate = (Element) xupdates.item(0); + String growth = xupdate.getAttribute("growth-factor"); if (growth != null) { config.put("xupdate.growth-factor", new Integer(growth)); + LOG.debug("xupdate.growth-factor: " + config.get("xupdate.growth-factor")); } - String fragmentation = xupdate - .getAttribute("allowed-fragmentation"); - if (fragmentation != null) - config.put("xupdate.fragmentation", new Integer( - fragmentation)); - String consistencyCheck = xupdate - .getAttribute("enable-consistency-checks"); - if (consistencyCheck != null) - config.put("xupdate.consistency-checks", Boolean - .valueOf(consistencyCheck.equals("yes"))); + + String fragmentation = xupdate.getAttribute("allowed-fragmentation"); + if (fragmentation != null) { + config.put("xupdate.fragmentation", new Integer(fragmentation)); + LOG.debug("xupdate.fragmentation: " + config.get("xupdate.fragmentation")); + } + + String consistencyCheck = xupdate.getAttribute("enable-consistency-checks"); + if (consistencyCheck != null) { + config.put("xupdate.consistency-checks", Boolean.valueOf(consistencyCheck.equals("yes"))); + LOG.debug("xupdate.consistency-checks: " + config.get("xupdate.consistency-checks")); + } } /** @@ -362,28 +367,42 @@ */ private void configureSerializer(NodeList serializers) { Element serializer = (Element) serializers.item(0); + String xinclude = serializer.getAttribute("enable-xinclude"); - if (xinclude != null) + if (xinclude != null) { config.put("serialization.enable-xinclude", xinclude); + LOG.debug("serialization.enable-xinclude: " + config.get("serialization.enable-xinclude")); + } + String xsl = serializer.getAttribute("enable-xsl"); - if (xsl != null) + if (xsl != null) { config.put("serialization.enable-xsl", xsl); + LOG.debug("serialization.enable-xsl: " + config.get("serialization.enable-xsl")); + } + String indent = serializer.getAttribute("indent"); - if (indent != null) + if (indent != null) { config.put("serialization.indent", indent); + LOG.debug("serialization.indent: " + config.get("serialization.indent")); + } + String internalId = serializer.getAttribute("add-exist-id"); - if (internalId != null) + if (internalId != null) { config.put("serialization.add-exist-id", internalId); - String tagElementMatches = serializer - .getAttribute("match-tagging-elements"); - if (tagElementMatches != null) - config.put("serialization.match-tagging-elements", - tagElementMatches); - String tagAttributeMatches = serializer - .getAttribute("match-tagging-attributes"); - if (tagAttributeMatches != null) - config.put("serialization.match-tagging-attributes", - tagAttributeMatches); + LOG.debug("serialization.add-exist-id: " + config.get("serialization.add-exist-id")); + } + + String tagElementMatches = serializer.getAttribute("match-tagging-elements"); + if (tagElementMatches != null) { + config.put("serialization.match-tagging-elements", tagElementMatches); + LOG.debug("serialization.match-tagging-elements: " + config.get("serialization.match-tagging-elements")); + } + + String tagAttributeMatches = serializer.getAttribute("match-tagging-attributes"); + if (tagAttributeMatches != null) { + config.put("serialization.match-tagging-attributes", tagAttributeMatches); + LOG.debug("serialization.match-tagging-attributes: " + config.get("serialization.match-tagging-attributes")); + } } /** @@ -406,7 +425,7 @@ config.put("database", mysql); // directory for database files if (dataFiles != null) { - File df = lookup(dataFiles, dbHome); + File df = lookup(dataFiles, dbHome); if (!df.canRead()) throw new DatabaseConfigurationException( "cannot read data directory: " @@ -419,46 +438,46 @@ if (cacheMem.endsWith("M") || cacheMem.endsWith("m")) cacheMem = cacheMem.substring(0, cacheMem.length() - 1); try { - config.put("db-connection.cache-size", new Integer( - cacheMem)); + config.put("db-connection.cache-size", new Integer(cacheMem)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } } if (buffers != null) try { - config.put("db-connection.buffers", - new Integer(buffers)); + config.put("db-connection.buffers", new Integer(buffers)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } if (pageSize != null) try { - config.put("db-connection.page-size", new Integer( - pageSize)); + config.put("db-connection.page-size", new Integer(pageSize)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } if (collBuffers != null) try { - config.put("db-connection.collections.buffers", - new Integer(collBuffers)); + config.put("db-connection.collections.buffers", new Integer(collBuffers)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } if (wordBuffers != null) try { - config.put("db-connection.words.buffers", new Integer( - wordBuffers)); + config.put("db-connection.words.buffers", new Integer(wordBuffers)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } if (elementBuffers != null) try { - config.put("db-connection.elements.buffers", - new Integer(elementBuffers)); + config.put("db-connection.elements.buffers", new Integer(elementBuffers)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } if (freeMem != null) try { - config.put("db-connection.min_free_memory", - new Integer(freeMem)); + config.put("db-connection.min_free_memory", new Integer(freeMem)); } catch (NumberFormatException nfe) { + LOG.warn(nfe); } NodeList securityConf = con.getElementsByTagName("security"); String securityManagerClassName = "org.exist.security.XMLSecurityManager"; @@ -522,6 +541,7 @@ value = option.equals("yes"); } setProperty("db-connection.recovery.enabled", new Boolean(value)); + LOG.debug("db-connection.recovery.enabled: " + config.get("db-connection.recovery.enabled")); option = recovery.getAttribute("sync-on-commit"); value = true; @@ -529,6 +549,7 @@ value = option.equals("yes"); } setProperty("db-connection.recovery.sync-on-commit", new Boolean(value)); + LOG.debug("db-connection.recovery.sync-on-commit: " + config.get("db-connection.recovery.sync-on-commit")); option = recovery.getAttribute("group-commit"); value = false; @@ -536,10 +557,13 @@ value = option.equals("yes"); } setProperty("db-connection.recovery.group-commit", new Boolean(value)); + LOG.debug("db-connection.recovery.group-commit: " + config.get("db-connection.recovery.group-commit")); option = recovery.getAttribute("journal-dir"); - if (option != null) + if (option != null) { setProperty("db-connection.recovery.journal-dir", option); + LOG.debug("db-connection.recovery.journal-dir: " + config.get("db-connection.recovery.journal-dir")); + } option = recovery.getAttribute("size"); if (option != null) { @@ -548,6 +572,7 @@ try { Integer size = new Integer(option); setProperty("db-connection.recovery.size-limit", size); + LOG.debug("db-connection.recovery.size-limit: " + config.get("db-connection.recovery.size-limit")); } catch (NumberFormatException e) { throw new DatabaseConfigurationException("size attribute in recovery section needs to be a number"); } @@ -619,22 +644,22 @@ */ private void configureWatchdog(NodeList watchConf) { Element watchDog = (Element) watchConf.item(0); + String timeout = watchDog.getAttribute("query-timeout"); - String maxOutput = watchDog - .getAttribute("output-size-limit"); if (timeout != null) { try { - config.put("db-connection.watchdog.query-timeout", - new Long(timeout)); + config.put("db-connection.watchdog.query-timeout", new Long(timeout)); } catch (NumberFormatException e) { + LOG.warn(e); } } + + String maxOutput = watchDog.getAttribute("output-size-limit"); if (maxOutput != null) { try { - config.put( - "db-connection.watchdog.output-size-limit", - new Integer(maxOutput)); + config.put("db-connection.watchdog.output-size-limit", new Integer(maxOutput)); } catch (NumberFormatException e) { + LOG.warn(e); } } } @@ -644,39 +669,42 @@ */ private void configureXQueryPool(NodeList queryPoolConf) { Element queryPool = (Element) queryPoolConf.item(0); - String maxStackSize = queryPool - .getAttribute("max-stack-size"); - String maxPoolSize = queryPool.getAttribute("size"); - String timeout = queryPool.getAttribute("timeout"); - String timeoutCheckInterval = queryPool - .getAttribute("timeout-check-interval"); - if (maxStackSize != null) + + String maxStackSize = queryPool.getAttribute("max-stack-size"); + if (maxStackSize != null) { try { - config.put( - "db-connection.query-pool.max-stack-size", - new Integer(maxStackSize)); + config.put("db-connection.query-pool.max-stack-size", new Integer(maxStackSize)); } catch (NumberFormatException e) { + LOG.warn(e); } + } + + String maxPoolSize = queryPool.getAttribute("size"); if (maxPoolSize != null) { try { config.put("db-connection.query-pool.size", new Integer(maxPoolSize)); } catch (NumberFormatException e) { + LOG.warn(e); } } - if (timeout != null) + + String timeout = queryPool.getAttribute("timeout"); + if (timeout != null) { try { - config.put("db-connection.query-pool.timeout", - new Long(timeout)); + config.put("db-connection.query-pool.timeout", new Long(timeout)); } catch (NumberFormatException e) { + LOG.warn(e); } - if (timeoutCheckInterval != null) + } + + String timeoutCheckInterval = queryPool.getAttribute("timeout-check-interval"); + if (timeoutCheckInterval != null) { try { - config - .put( - "db-connection.query-pool.timeout-check-interval", - new Long(timeoutCheckInterval)); + config.put("db-connection.query-pool.timeout-check-interval", new Long(timeoutCheckInterval)); } catch (NumberFormatException e) { + LOG.warn(e); } + } } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-26 20:12:38
|
Revision: 3318 Author: brihaye Date: 2006-04-26 13:12:31 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3318&view=rev Log Message: ----------- Added cgeorg as developer Modified Paths: -------------- trunk/eXist-1.0/webapp/credits.xml Modified: trunk/eXist-1.0/webapp/credits.xml =================================================================== --- trunk/eXist-1.0/webapp/credits.xml 2006-04-26 19:42:44 UTC (rev 3317) +++ trunk/eXist-1.0/webapp/credits.xml 2006-04-26 20:12:31 UTC (rev 3318) @@ -91,6 +91,9 @@ <para>Igor Abade V. Leite (patches)</para> </listitem> <listitem> + <para>Chris Marasti-Georg (developer)</para> + </listitem> + <listitem> <para>Wolfgang Meier (main developer)</para> </listitem> <listitem> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-26 19:42:52
|
Revision: 3317 Author: brihaye Date: 2006-04-26 12:42:44 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3317&view=rev Log Message: ----------- Removed SVN property that wrongly gave a binary type to an XML file Property Changed: ---------------- trunk/eXist-1.0/installer/install.xml.tmpl Property changes on: trunk/eXist-1.0/installer/install.xml.tmpl ___________________________________________________________________ Name: svn:mime-type - application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2006-04-26 19:25:11
|
Revision: 3316 Author: dizzzz Date: 2006-04-26 12:25:00 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3316&view=rev Log Message: ----------- Forgot to change and commit the impl file for the installer Modified Paths: -------------- trunk/eXist-1.0/installer/install.xml.tmpl Modified: trunk/eXist-1.0/installer/install.xml.tmpl =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2006-04-26 17:43:46
|
Revision: 3315 Author: chrisgeorg Date: 2006-04-26 10:43:43 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3315&view=rev Log Message: ----------- And add the tests to a suite! Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xquery/test/AllTests.java Modified: trunk/eXist-1.0/src/org/exist/xquery/test/AllTests.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/test/AllTests.java 2006-04-26 17:34:38 UTC (rev 3314) +++ trunk/eXist-1.0/src/org/exist/xquery/test/AllTests.java 2006-04-26 17:43:43 UTC (rev 3315) @@ -22,11 +22,12 @@ */ package org.exist.xquery.test; -import org.exist.storage.DBBroker; - import junit.framework.Test; import junit.framework.TestSuite; +import org.exist.storage.DBBroker; +import org.exist.xquery.value.test.AnyURITest; + /** * @author Wolfgang Meier (wol...@ex...) */ @@ -41,6 +42,7 @@ //$JUnit-BEGIN$ XPathQueryTest.setURI("xmldb:exist://" + DBBroker.ROOT_COLLECTION); suite.addTestSuite(XQueryFunctionsTest.class); + suite.addTestSuite(JavaFunctionsTest.class); suite.addTestSuite(XPathQueryTest.class); suite.addTestSuite(XQueryTest.class); suite.addTestSuite(ValueIndexTest.class); @@ -51,6 +53,7 @@ suite.addTestSuite(OpNumericTest.class); suite.addTestSuite(FtQueryTest.class); suite.addTestSuite(DocumentUpdateTest.class); + suite.addTestSuite(AnyURITest.class); // suite.addTestSuite(XQueryUseCasesTest.class); //$JUnit-END$ return suite; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2006-04-26 17:34:52
|
Revision: 3314 Author: chrisgeorg Date: 2006-04-26 10:34:38 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3314&view=rev Log Message: ----------- Fixed NPE for java function calls in XQuery, added basic test case Use XmldbURI instead of String in RESTServer Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/http/RESTServer.java trunk/eXist-1.0/src/org/exist/xquery/JavaCall.java Added Paths: ----------- trunk/eXist-1.0/src/org/exist/xquery/test/JavaFunctionsTest.java Modified: trunk/eXist-1.0/src/org/exist/http/RESTServer.java =================================================================== --- trunk/eXist-1.0/src/org/exist/http/RESTServer.java 2006-04-26 15:11:26 UTC (rev 3313) +++ trunk/eXist-1.0/src/org/exist/http/RESTServer.java 2006-04-26 17:34:38 UTC (rev 3314) @@ -936,7 +936,8 @@ response.setHeader("X-XQuery-Cached", "true"); context = compiled.getContext(); } - context.setModuleLoadPath("xmldb:exist://" + resource.getCollection().getURI()); + //TODO: don't hardcode this? + context.setModuleLoadPath(XmldbURI.EMBEDDED_SERVER_URI.append(resource.getCollection().getURI()).toString()); context.setStaticallyKnownDocuments( new XmldbURI[] { resource.getCollection().getURI() } ); Modified: trunk/eXist-1.0/src/org/exist/xquery/JavaCall.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/JavaCall.java 2006-04-26 15:11:26 UTC (rev 3313) +++ trunk/eXist-1.0/src/org/exist/xquery/JavaCall.java 2006-04-26 17:34:38 UTC (rev 3314) @@ -109,6 +109,13 @@ } /* (non-Javadoc) + * @see org.exist.xquery.AbstractExpression#getCardinality() + */ + public int getCardinality() { + return Cardinality.ZERO_OR_MORE; + } + + /* (non-Javadoc) * @see org.exist.xquery.Function#setArguments(java.util.List) */ public void setArguments(List arguments) throws XPathException { Added: trunk/eXist-1.0/src/org/exist/xquery/test/JavaFunctionsTest.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/test/JavaFunctionsTest.java (rev 0) +++ trunk/eXist-1.0/src/org/exist/xquery/test/JavaFunctionsTest.java 2006-04-26 17:34:38 UTC (rev 3314) @@ -0,0 +1,74 @@ +/* + * Created on 17.03.2005 - $Id: XQueryFunctionsTest.java 3080 2006-04-07 22:17:14Z dizzzz $ + */ +package org.exist.xquery.test; + +import junit.framework.TestCase; +import junit.textui.TestRunner; + +import org.exist.storage.DBBroker; +import org.exist.xmldb.DatabaseInstanceManager; +import org.exist.xquery.XPathException; +import org.xmldb.api.DatabaseManager; +import org.xmldb.api.base.Collection; +import org.xmldb.api.base.Database; +import org.xmldb.api.base.ResourceSet; +import org.xmldb.api.base.XMLDBException; +import org.xmldb.api.modules.XPathQueryService; + +/** Tests for various standart XQuery functions + * @author jens + */ +public class JavaFunctionsTest extends TestCase { + + private XPathQueryService service; + private Collection root = null; + private Database database = null; + + public static void main(String[] args) throws XPathException { + TestRunner.run(JavaFunctionsTest.class); + } + + /** Tests simple list functions to make sure java functions are being + * called properly + */ + public void testLists() throws XPathException { + try { + String query = "declare namespace list='java:java.util.ArrayList'; " + + "let $list := list:new() "+ + "let $actions := (list:add($list,'a'),list:add($list,'b'),list:add($list,'c')) "+ + "return list:get($list,1)"; + ResourceSet result = service.query( query ); + String r = (String) result.getResource(0).getContent(); + assertEquals( "b", r ); + } catch (XMLDBException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception { + // initialize driver + Class cl = Class.forName("org.exist.xmldb.DatabaseImpl"); + database = (Database) cl.newInstance(); + database.setProperty("create-database", "true"); + DatabaseManager.registerDatabase(database); + root = DatabaseManager.getCollection("xmldb:exist://" + DBBroker.ROOT_COLLECTION, "admin", null); + service = (XPathQueryService) root.getService( "XQueryService", "1.0" ); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception { + DatabaseManager.deregisterDatabase(database); + DatabaseInstanceManager dim = + (DatabaseInstanceManager) root.getService("DatabaseInstanceManager", "1.0"); + dim.shutdown(); + //System.out.println("tearDown PASSED"); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2006-04-26 15:11:43
|
Revision: 3313 Author: chrisgeorg Date: 2006-04-26 08:11:26 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3313&view=rev Log Message: ----------- Can't pass XmldbURI over XmlRPC! Make it a string. Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xmldb/RemoteUserManagementService.java Modified: trunk/eXist-1.0/src/org/exist/xmldb/RemoteUserManagementService.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/RemoteUserManagementService.java 2006-04-26 15:08:09 UTC (rev 3312) +++ trunk/eXist-1.0/src/org/exist/xmldb/RemoteUserManagementService.java 2006-04-26 15:11:26 UTC (rev 3313) @@ -39,7 +39,7 @@ groups.addElement(gl[i]); params.addElement(groups); if (user.getHome() != null) - params.addElement(user.getHome()); + params.addElement(user.getHome().toString()); parent.getClient().execute("setUser", params); } catch (XmlRpcException e) { throw new XMLDBException(ErrorCodes.VENDOR_ERROR, e.getMessage(), e); @@ -506,7 +506,7 @@ groups.addElement(gl[i]); params.addElement(groups); if (user.getHome() != null) - params.addElement(user.getHome()); + params.addElement(user.getHome().toString()); parent.getClient().execute("setUser", params); } catch (XmlRpcException e) { throw new XMLDBException(ErrorCodes.VENDOR_ERROR, e.getMessage(), e); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-26 15:08:21
|
Revision: 3312 Author: brihaye Date: 2006-04-26 08:08:09 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3312&view=rev Log Message: ----------- Fixed an embedded server serialization problem : attribute foo { "bar" } Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xmldb/LocalXMLResource.java Modified: trunk/eXist-1.0/src/org/exist/xmldb/LocalXMLResource.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xmldb/LocalXMLResource.java 2006-04-26 15:00:52 UTC (rev 3311) +++ trunk/eXist-1.0/src/org/exist/xmldb/LocalXMLResource.java 2006-04-26 15:08:09 UTC (rev 3312) @@ -12,6 +12,7 @@ import org.exist.dom.DocumentImpl; import org.exist.dom.NodeProxy; import org.exist.dom.XMLUtil; +import org.exist.memtree.AttributeImpl; import org.exist.memtree.NodeImpl; import org.exist.security.Permission; import org.exist.security.User; @@ -29,6 +30,7 @@ import org.exist.xquery.XPathException; import org.exist.xquery.value.AtomicValue; import org.exist.xquery.value.NodeValue; +import org.w3c.dom.DocumentType; import org.w3c.dom.Node; import org.xml.sax.ContentHandler; import org.xml.sax.SAXException; @@ -39,7 +41,6 @@ import org.xmldb.api.base.ErrorCodes; import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.XMLResource; -import org.w3c.dom.DocumentType; /** * Local implementation of XMLResource. @@ -356,6 +357,9 @@ } public void setContentAsDOM(Node root) throws XMLDBException { + if (root instanceof AttributeImpl) + throw new XMLDBException(ErrorCodes.WRONG_CONTENT_TYPE, + "SENR0001: can not serialize a standalone attribute"); this.root = root; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2006-04-26 15:01:05
|
Revision: 3311 Author: brihaye Date: 2006-04-26 08:00:52 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3311&view=rev Log Message: ----------- Found an elegant way to handle the polysemy of "." which may be used for both node sequences and atomic values ones despite its expansion to "self::node()" by the query parser. Fixes a problem with queries such as (1,2,3)[xs:decimal(.)] To be implemented in general comparisons if it proves to work correctly Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/xquery/Expression.java trunk/eXist-1.0/src/org/exist/xquery/LocationStep.java trunk/eXist-1.0/src/org/exist/xquery/Predicate.java trunk/eXist-1.0/src/org/exist/xquery/test/XPathQueryTest.java Modified: trunk/eXist-1.0/src/org/exist/xquery/Expression.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/Expression.java 2006-04-26 14:55:28 UTC (rev 3310) +++ trunk/eXist-1.0/src/org/exist/xquery/Expression.java 2006-04-26 15:00:52 UTC (rev 3311) @@ -64,6 +64,8 @@ */ public final static int IN_UPDATE = 8; + public final static int DOT_TEST = 128; + /** * Indicates that no context id is supplied to an expression. */ Modified: trunk/eXist-1.0/src/org/exist/xquery/LocationStep.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/LocationStep.java 2006-04-26 14:55:28 UTC (rev 3310) +++ trunk/eXist-1.0/src/org/exist/xquery/LocationStep.java 2006-04-26 15:00:52 UTC (rev 3311) @@ -149,6 +149,12 @@ if ((contextInfo.getFlags() & SINGLE_STEP_EXECUTION) > 0) { preload = true; } + + //Mark ".", which is expanded as self::node() by the parser + //even though it may *also* be relevant with atomic sequences + if (this.axis == Constants.SELF_AXIS && this.test.getType()== Type.NODE) + contextInfo.addFlag(DOT_TEST); + // TODO : log somewhere ? super.analyze(contextInfo); } Modified: trunk/eXist-1.0/src/org/exist/xquery/Predicate.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/Predicate.java 2006-04-26 14:55:28 UTC (rev 3310) +++ trunk/eXist-1.0/src/org/exist/xquery/Predicate.java 2006-04-26 15:00:52 UTC (rev 3311) @@ -55,6 +55,8 @@ private int outerContextId; + private boolean innerExpressionDot = false; + public Predicate(XQueryContext context) { super(context); } @@ -88,6 +90,9 @@ newContextInfo.setParent(this); super.analyze(newContextInfo); + if ((newContextInfo.getFlags() & DOT_TEST) == DOT_TEST) + innerExpressionDot = true; + // Case 1: predicate expression returns a node set. // Check the returned node set against the context set // and return all nodes from the context, for which the @@ -97,10 +102,12 @@ executionMode = NODE; else executionMode = BOOLEAN; + // Case 2: predicate expression returns a number. } else if (Type.subTypeOf(inner.returnsType(), Type.NUMBER) && inner.getCardinality() == Cardinality.EXACTLY_ONE) { //Just a hint : inner's cardinality may still be potential executionMode = POSITIONAL; + // Case 3: predicate expression evaluates to a boolean. } else executionMode = BOOLEAN; @@ -132,11 +139,9 @@ if (executionMode == BOOLEAN && Type.subTypeOf(inner.returnsType(), Type.NUMBER)) { Sequence innerSeq = inner.eval(contextSequence); //Only if we have an actual *singleton* of numeric items - if (innerSeq.hasOne()) { - //TODO : find a workaround for the polysemy of "." which is expanded as self::node() even when it is not relevant - // (1,2,3)[xs:float(.)] - //Something like : - //if (!(inner instanceof LocationStep && ((LocationStep)inner).axis == Constants.SELF_AXIS)) + if (innerSeq.hasOne()) { + //Atomic sequences will evaluate "." in BOOLEAN mode + if (!innerExpressionDot || Type.subTypeOf(contextSequence.getItemType(), Type.NODE)) recomputedExecutionMode = POSITIONAL; } } @@ -150,19 +155,19 @@ case NODE: if (context.getProfiler().isEnabled()) context.getProfiler().message(this, Profiler.OPTIMIZATION_FLAGS, - "OPTIMIZATION CHOICE", "selectByNodeSet"); + "OPTIMIZATION CHOICE", "Node selection"); result = selectByNodeSet(contextSequence); break; case BOOLEAN: if (context.getProfiler().isEnabled()) context.getProfiler().message(this, Profiler.OPTIMIZATION_FLAGS, - "OPTIMIZATION CHOICE", "evalBoolean"); + "OPTIMIZATION CHOICE", "Boolean evaluation"); result = evalBoolean(contextSequence, inner); break; case POSITIONAL: if (context.getProfiler().isEnabled()) context.getProfiler().message(this, Profiler.OPTIMIZATION_FLAGS, - "OPTIMIZATION CHOICE", "selectByPosition"); + "OPTIMIZATION CHOICE", "Positional evaluation"); result = selectByPosition(outerSequence, contextSequence, mode, inner); break; default: Modified: trunk/eXist-1.0/src/org/exist/xquery/test/XPathQueryTest.java =================================================================== --- trunk/eXist-1.0/src/org/exist/xquery/test/XPathQueryTest.java 2006-04-26 14:55:28 UTC (rev 3310) +++ trunk/eXist-1.0/src/org/exist/xquery/test/XPathQueryTest.java 2006-04-26 15:00:52 UTC (rev 3311) @@ -810,9 +810,15 @@ "return $doc/a[$doc/a/@b or $doc/a/@d]"; result = queryResource(service, "numbers.xml", query, 1); assertXMLEqual("<a b=\"c\" d=\"e\"/>", result.getResource(0) - .getContent().toString()); + .getContent().toString()); + + //Boolean evaluation for "." (atomic sequence) + query = "(1,2,3)[xs:decimal(.)]"; + result = queryResource(service, "numbers.xml", query, 3); + } catch (XMLDBException e) { + e.printStackTrace(); fail(e.getMessage()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2006-04-26 14:55:34
|
Revision: 3310 Author: chrisgeorg Date: 2006-04-26 07:55:28 -0700 (Wed, 26 Apr 2006) ViewCVS: http://svn.sourceforge.net/exist/?rev=3310&view=rev Log Message: ----------- Minor bugfix: NPE if user home was null Modified Paths: -------------- trunk/eXist-1.0/src/org/exist/client/UserDialog.java Modified: trunk/eXist-1.0/src/org/exist/client/UserDialog.java =================================================================== --- trunk/eXist-1.0/src/org/exist/client/UserDialog.java 2006-04-26 14:02:17 UTC (rev 3309) +++ trunk/eXist-1.0/src/org/exist/client/UserDialog.java 2006-04-26 14:55:28 UTC (rev 3310) @@ -415,7 +415,11 @@ groupsModel.clear(); password1.setText(""); password2.setText(""); - homedir.setText(user.getHome().toString()); + if(user.getHome()!=null) { + homedir.setText(user.getHome().toString()); + } else { + homedir.setText(""); + } String[] groups = user.getGroups(); for (int i = 0; i < groups.length; i++) { groupsModel.addElement(groups[i]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |