svn commit: r1211393 - in /commons/proper/compress/trunk/src: main/java/org/apache/commons/compress/archivers/tar/ test/java/org/apache/commons/compress/archivers/tar/
Author: bodewig Date: Wed Dec 7 11:34:34 2011 New Revision: 1211393 URL: http://svn.apache.org/viewvc?rev=1211393view=rev Log: Allow PAX headers to set sizes bigger than 8GiB. COMPRESS-163. Based on patch by John Kodis Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java?rev=1211393r1=1211392r2=1211393view=diff == --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java Wed Dec 7 11:34:34 2011 @@ -572,6 +572,20 @@ public class TarArchiveEntry implements } /** + * Set this entry's file size. + * + * pInvoked by input stream when reading a PAX header./p + * @throws IllegalArgumentException if the size is lt; 0 + * @since Apache Commons Compress 1.4 + */ +void adjustSize(long size) { +if (size 0){ +throw new IllegalArgumentException(Size is out of range: + size); +} +this.size = size; +} + +/** * Indicates in case of a sparse file if an extension sparse header * follows. * Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java?rev=1211393r1=1211392r2=1211393view=diff == --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java Wed Dec 7 11:34:34 2011 @@ -229,6 +229,11 @@ public class TarArchiveInputStream exten readGNUSparse(); } +// If the size of the next element in the archive has changed +// due to a new size being reported in the posix header +// information, we update entrySize here so that it contains +// the correct value. +entrySize = currEntry.getSize(); return currEntry; } @@ -341,7 +346,7 @@ public class TarArchiveInputStream exten } else if (uname.equals(key)){ currEntry.setUserName(val); } else if (size.equals(key)){ -currEntry.setSize(Long.parseLong(val)); +currEntry.adjustSize(Long.parseLong(val)); } } } Modified: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java?rev=1211393r1=1211392r2=1211393view=diff == --- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java (original) +++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java Wed Dec 7 11:34:34 2011 @@ -115,4 +115,17 @@ public class TarArchiveEntryTest extends } catch (IllegalArgumentException expected) { } } + +public void testAdjustFileSize(){ +TarArchiveEntry t = new TarArchiveEntry(); +t.adjustSize(0); +t.adjustSize(1); +try { +t.adjustSize(-1); +fail(Should have generated IllegalArgumentException); +} catch (IllegalArgumentException expected) { +} +t.adjustSize(0777L); +t.adjustSize(01000L); +} }
svn commit: r1211405 - in /commons/proper/compress/trunk/src: changes/changes.xml test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java test/resources/8.posix.tar.gz test/resources/8.sta
Author: bodewig Date: Wed Dec 7 12:14:59 2011 New Revision: 1211405 URL: http://svn.apache.org/viewvc?rev=1211405view=rev Log: test that proves PAX archives with big entries are read correctly. COMPRESS-16 Added: commons/proper/compress/trunk/src/test/resources/8.posix.tar.gz (with props) commons/proper/compress/trunk/src/test/resources/8.star.tar.gz - copied unchanged from r1211389, commons/proper/compress/trunk/src/test/resources/8.tar.gz Removed: commons/proper/compress/trunk/src/test/resources/8.tar.gz Modified: commons/proper/compress/trunk/src/changes/changes.xml commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java Modified: commons/proper/compress/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/changes/changes.xml?rev=1211405r1=1211404r2=1211405view=diff == --- commons/proper/compress/trunk/src/changes/changes.xml (original) +++ commons/proper/compress/trunk/src/changes/changes.xml Wed Dec 7 12:14:59 2011 @@ -57,14 +57,15 @@ The action type attribute can be add,u GZipCompressorInputStream now optionally supports reading of concatenated .gz files. /action - action issue=COMPRESS-16 type=update date=2011-12-05 -The tar package can now read archives that use GNU extensions -for files that are longer than 8 GByte. - /action action issue=COMPRESS-164 type=fix date=2011-12-05 ZipFile didn't work properly for archives using unicode extra fields rather than UTF-8 filenames and the EFS-Flag. /action + action issue=COMPRESS-16 type=update date=2011-12-07 +The tar package can now read archives that use star/GNU/BSD +extensions for files that are longer than 8 GByte as well as +archives that use the POSIX/PAX variant. + /action /release release version=1.3 date=2011-11-01 description=Release 1.3 - API compatible to 1.2 but requires Java5 at runtime Modified: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java?rev=1211405r1=1211404r2=1211405view=diff == --- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java (original) +++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java Wed Dec 7 12:14:59 2011 @@ -30,13 +30,22 @@ import org.apache.commons.compress.compr public class BigFilesIT { @Test -public void readFileBiggerThan8GByte() throws Exception { +public void readFileBiggerThan8GByteStar() throws Exception { +readFileBiggerThan8GByte(/8.star.tar.gz); +} + +@Test +public void readFileBiggerThan8GBytePosix() throws Exception { +readFileBiggerThan8GByte(/8.posix.tar.gz); +} + +private void readFileBiggerThan8GByte(String name) throws Exception { GzipCompressorInputStream in = null; TarArchiveInputStream tin = null; try { in = new GzipCompressorInputStream(BigFilesIT.class - .getResourceAsStream(/8.tar.gz)); + .getResourceAsStream(name)); tin = new TarArchiveInputStream(in); TarArchiveEntry e = tin.getNextTarEntry(); assertNotNull(e); Added: commons/proper/compress/trunk/src/test/resources/8.posix.tar.gz URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/resources/8.posix.tar.gz?rev=1211405view=auto == Binary file - no diff available. Propchange: commons/proper/compress/trunk/src/test/resources/8.posix.tar.gz -- svn:mime-type = application/octet-stream
svn commit: r1211428 - in /commons/proper/jexl/trunk: ./ src/main/java/org/apache/commons/jexl3/ src/main/java/org/apache/commons/jexl3/annotations/ src/main/java/org/apache/commons/jexl3/internal/ sr
Author: henrib Date: Wed Dec 7 13:22:36 2011 New Revision: 1211428 URL: http://svn.apache.org/viewvc?rev=1211428view=rev Log: JEXL-123: Removed subproject jexl-compat (unused); Added NoJexl annotation that allows to completely shield a package/class/etc. from JEXL introspection (JEXL wide sanbdox); Remaining Javadoc / import issues; Checkstyle ok, Cobertura ok, findugs ok Added: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/annotations/ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/annotations/NoJexl.java (with props) commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/annotations/package.html - copied, changed from r1209060, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/package.html commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/introspection/Permissions.java (with props) Modified: commons/proper/jexl/trunk/pom.xml commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlBuilder.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlEvalContext.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JxltEngine.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/Engine.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/introspection/AbstractExecutor.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/introspection/ArrayIterator.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/SandboxTest.java commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/UnifiedJEXLTest.java Modified: commons/proper/jexl/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/pom.xml?rev=1211428r1=1211427r2=1211428view=diff == --- commons/proper/jexl/trunk/pom.xml (original) +++ commons/proper/jexl/trunk/pom.xml Wed Dec 7 13:22:36 2011 @@ -111,12 +111,14 @@ scopetest/scope /dependency !-- For JSR-223 API -- +!-- dependency groupIdorg.apache.bsf/groupId artifactIdbsf-api/artifactId version3.1/version scopeprovided/scope /dependency +-- /dependencies properties Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlBuilder.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlBuilder.java?rev=1211428r1=1211427r2=1211428view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlBuilder.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlBuilder.java Wed Dec 7 13:22:36 2011 @@ -85,6 +85,10 @@ public class JexlBuilder { * The cache size. */ protected int cache = -1; +/** + * The class loader. + */ +protected ClassLoader loader = null; /** * Sets the JexlUberspect instance the engine will use. @@ -130,6 +134,21 @@ public class JexlBuilder { public Log logger() { return this.logger; } + +/** + * Sets the class loader to use. + * @param l the class loader + * @return this builder + */ +public JexlBuilder loader(ClassLoader l) { +this.loader = l; +return this; +} + +/** @return the class loader */ +public ClassLoader loader() { +return loader; +} /** * Sets whether the engine will throw JexlException during evaluation when an error is triggered. Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlEvalContext.java URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlEvalContext.java?rev=1211428r1=1211427r2=1211428view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlEvalContext.java (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/JexlEvalContext.java Wed Dec 7 13:22:36 2011 @@ -53,10 +53,10 @@ public class JexlEvalContext implements * Creates a MapContext wrapping an existing user provided vars. * pThe supplied vars should be null only in derived classes that override the get/set/has methods. * For a default vars context with a code supplied vars, use the
svn commit: r1211465 - in /commons/proper/compress/trunk/src: main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java test/java/org/apache/commons/compress/archivers/tar/TarArch
Author: bodewig Date: Wed Dec 7 15:01:27 2011 New Revision: 1211465 URL: http://svn.apache.org/viewvc?rev=1211465view=rev Log: prove parsing of PAX headers works correctly. COMPRESS-167 Added: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java (with props) Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java?rev=1211465r1=1211464r2=1211465view=diff == --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java Wed Dec 7 15:01:27 2011 @@ -272,9 +272,21 @@ public class TarArchiveInputStream exten // make sure GC doesn't close this before we are done } }; +MapString, String headers = null; +try { +headers = parsePaxHeaders(br); +} finally { +// NO-OP but makes FindBugs happy +br.close(); +} + +getNextEntry(); // Get the actual file entry +applyPaxHeadersToCurrentEntry(headers); +} + +MapString, String parsePaxHeaders(Reader br) throws IOException { MapString, String headers = new HashMapString, String(); // Format is length keyword=value\n; -try { while(true){ // get length int ch; int len = 0; @@ -315,12 +327,10 @@ public class TarArchiveInputStream exten break; } } -} finally { -// NO-OP but makes FindBugs happy -br.close(); -} +return headers; +} -getNextEntry(); // Get the actual file entry +private void applyPaxHeadersToCurrentEntry(MapString, String headers) { /* * The following headers are defined for Pax. * atime, ctime, mtime, charset: cannot use these without changing TarArchiveEntry fields Added: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java?rev=1211465view=auto == --- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java (added) +++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java Wed Dec 7 15:01:27 2011 @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.commons.compress.archivers.tar; + +import java.io.StringReader; +import java.util.Map; +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +public class TarArchiveInputStreamTest { + +@Test +public void readSimplePaxHeader() throws Exception { +MapString, String headers = new TarArchiveInputStream(null) +.parsePaxHeaders(new StringReader(30 atime=1321711775.972059463\n)); +assertEquals(1, headers.size()); +assertEquals(1321711775.972059463, headers.get(atime)); +} + +@Test +public void readPaxHeaderWithEmbeddedNewline() throws Exception { +MapString, String headers = new TarArchiveInputStream(null) +.parsePaxHeaders(new StringReader(28 comment=line1\nline2\nand3\n)); +assertEquals(1, headers.size()); +assertEquals(line1\nline2\nand3, headers.get(comment)); +} +} \ No newline at end of file Propchange:
svn commit: r1211466 - /commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java
Author: bodewig Date: Wed Dec 7 15:02:45 2011 New Revision: 1211466 URL: http://svn.apache.org/viewvc?rev=1211466view=rev Log: whitespace Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java?rev=1211466r1=1211465r2=1211466view=diff == --- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java (original) +++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java Wed Dec 7 15:02:45 2011 @@ -287,46 +287,46 @@ public class TarArchiveInputStream exten MapString, String parsePaxHeaders(Reader br) throws IOException { MapString, String headers = new HashMapString, String(); // Format is length keyword=value\n; -while(true){ // get length -int ch; -int len = 0; -int read = 0; -while((ch = br.read()) != -1){ -read++; -if (ch == ' '){ // End of length string -// Get keyword -StringBuffer sb = new StringBuffer(); -while((ch = br.read()) != -1){ -read++; -if (ch == '='){ // end of keyword -String keyword = sb.toString(); -// Get rest of entry -char[] cbuf = new char[len-read]; -int got = br.read(cbuf); -if (got != len - read){ -throw new IOException(Failed to read - + Paxheader. Expected - + (len - read) - + chars, read - + got); -} -// Drop trailing NL -String value = new String(cbuf, 0, - len - read - 1); -headers.put(keyword, value); -break; +while(true){ // get length +int ch; +int len = 0; +int read = 0; +while((ch = br.read()) != -1){ +read++; +if (ch == ' '){ // End of length string +// Get keyword +StringBuffer sb = new StringBuffer(); +while((ch = br.read()) != -1){ +read++; +if (ch == '='){ // end of keyword +String keyword = sb.toString(); +// Get rest of entry +char[] cbuf = new char[len-read]; +int got = br.read(cbuf); +if (got != len - read){ +throw new IOException(Failed to read + + Paxheader. Expected + + (len - read) + + chars, read + + got); } -sb.append((char) ch); +// Drop trailing NL +String value = new String(cbuf, 0, + len - read - 1); +headers.put(keyword, value); +break; } -break; // Processed single header +sb.append((char) ch); } -len *= 10; -len += ch - '0'; -} -if (ch == -1){ // EOF -break; +break; // Processed single header } +len *= 10; +len += ch - '0'; } +if (ch == -1){ // EOF +break; +} +} return headers; }
svn commit: r1211487 - /commons/proper/email/trunk/pom.xml
Author: sebb Date: Wed Dec 7 16:01:27 2011 New Revision: 1211487 URL: http://svn.apache.org/viewvc?rev=1211487view=rev Log: Update to current plugin versions; default the clirr previous version Modified: commons/proper/email/trunk/pom.xml Modified: commons/proper/email/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/pom.xml?rev=1211487r1=1211486r2=1211487view=diff == --- commons/proper/email/trunk/pom.xml (original) +++ commons/proper/email/trunk/pom.xml Wed Dec 7 16:01:27 2011 @@ -331,7 +331,7 @@ plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-changes-plugin/artifactId -version2.0/version +version${commons.changes.version}/version configuration issueLinkTemplate%URL%/%ISSUE%/issueLinkTemplate /configuration @@ -346,7 +346,7 @@ plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-checkstyle-plugin/artifactId -version2.1/version +version2.7/version configuration configLocation${basedir}/conf/checkstyle.xml/configLocation enableRulesSummaryfalse/enableRulesSummary @@ -356,21 +356,12 @@ plugin groupIdorg.codehaus.mojo/groupId artifactIdclirr-maven-plugin/artifactId -version2.2.2/version -configuration -comparisonArtifacts -comparisonArtifact -groupIdorg.apache.commons/groupId -artifactIdcommons-email/artifactId -version1.2/version -/comparisonArtifact -/comparisonArtifacts -/configuration +version${commons.clirr.version}/version /plugin plugin groupIdorg.codehaus.mojo/groupId artifactIdfindbugs-maven-plugin/artifactId -version1.2/version +version2.3.2/version configuration thresholdNormal/threshold effortDefault/effort
svn commit: r1211562 - /commons/proper/codec/tags/CODEC_1_4/
Author: sebb Date: Wed Dec 7 17:45:48 2011 New Revision: 1211562 URL: http://svn.apache.org/viewvc?rev=1211562view=rev Log: 1.4RC4 vote succeeded; create GA tag Added: commons/proper/codec/tags/CODEC_1_4/ - copied from r1211561, commons/proper/codec/tags/CODEC_1_4_RC4/
svn commit: r1211567 - /commons/proper/collections/tags/COLLECTIONS_3_2_1/
Author: sebb Date: Wed Dec 7 17:49:32 2011 New Revision: 1211567 URL: http://svn.apache.org/viewvc?rev=1211567view=rev Log: COLLECTIONS_3_2_1_RC1 vote succeeded; creating GA tag Added: commons/proper/collections/tags/COLLECTIONS_3_2_1/ - copied from r1211566, commons/proper/collections/tags/COLLECTIONS_3_2_1_RC1/
svn commit: r1211579 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html
Author: henrib Date: Wed Dec 7 18:11:57 2011 New Revision: 1211579 URL: http://svn.apache.org/viewvc?rev=1211579view=rev Log: JEXL-123: Revamped package documentation Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html?rev=1211579r1=1211578r2=1211579view=diff == --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/package.html Wed Dec 7 18:11:57 2011 @@ -27,6 +27,7 @@ lia href=#usageUsing JEXL/a/li lia href=#configurationConfiguring JEXL/a/li lia href=#customizationCustomizing JEXL/a/li +lia href=#extensionExtending JEXL/a/li /ul h2a name=introIntroduction/a/h2 @@ -37,29 +38,29 @@ h2a name=exampleA Brief Example/a/h2 p -When evaluating expressions, JEXL merges an -{@link org.apache.commons.jexl3.Expression} +In its simplest form, JEXL merges an +{@link org.apache.commons.jexl3.JexlExpression} with a -{@link org.apache.commons.jexl3.JexlContext}. +{@link org.apache.commons.jexl3.JexlContext} when evaluating expressions. An Expression is created using {@link org.apache.commons.jexl3.JexlEngine#createExpression(java.lang.String)}, passing a String containing valid JEXL syntax. A simple JexlContext can be created using a {@link org.apache.commons.jexl3.MapContext} instance; a map of variables that will be internally wrapped can be optionally provided through its constructor. -The following example, takes a variable named foo, and -invokes the bar() method on the property innerFoo: +The following example, takes a variable named 'car', and +invokes the checkStatus() method on the property 'engine' /p pre // Create a JexlEngine (could reuse one instead) JexlEngine jexl = new JexlEngine(); -// Create an expression object -String jexlExp = foo.innerFoo.bar(); +// Create an expression object equivalent to 'car.getEngine().checkStatus()': +String jexlExp = car.engine.checkStatus(); Expression e = jexl.createExpression( jexlExp ); - +// The car we have to handle coming as an argument... +Car car = theCarThatWeHandle; // Create a context and add data JexlContext jc = new MapContext(); -jc.set(foo, new Foo() ); - +jc.set(car, car ); // Now evaluate the expression, getting the result Object o = e.evaluate(jc); /pre @@ -74,14 +75,16 @@ /ul h3a name=usage_noteImportant note/a/h3 +The public API classes start with 'Jexl*' or 'Jxl*'. The only public packages you should use are: ul liorg.apache.commons.jexl3/li liorg.apache.commons.jexl3.introspection/li /ul -The following packages follow a use at your own maintenance cost policy. +The following packages follow a use at your own maintenance cost policy; these are only intended to be used +for extending JEXL. Their classes and methods are not guaranteed to remain compatible in subsequent versions. -If you think you need to use some of their features, it might be a good idea to check with +If you think you need to use directly some of their features or methods, it might be a good idea to check with the community through the mailing list first. ul liorg.apache.commons.jexl3.parser/li @@ -143,9 +146,10 @@ The main methods are: /p ul -li{@link org.apache.commons.jexl3.JexlEngine#createExpression}/li li{@link org.apache.commons.jexl3.JexlEngine#createScript}/li -li{@link org.apache.commons.jexl3.Expression#evaluate}/li +li{@link org.apache.commons.jexl3.JexlScript#execute}/li +li{@link org.apache.commons.jexl3.JexlEngine#createExpression}/li +li{@link org.apache.commons.jexl3.JexlExpression#evaluate}/li /ul The following example illustrates their usage: pre @@ -154,9 +158,9 @@ JexlContext jc = new MapContext(); jc.set(quuxClass, quux.class); -Expression create = jexl.createExpression(quux = new(quuxClass, 'xuuq', 100)); -Expression assign = jexl.createExpression(quux.froboz.value = 10); -
svn commit: r1211586 - /commons/proper/dbutils/tags/DBUTILS_1_3/
Author: sebb Date: Wed Dec 7 18:37:25 2011 New Revision: 1211586 URL: http://svn.apache.org/viewvc?rev=1211586view=rev Log: DBUTILS_1_3_RC4 succeeded; creating GA tag Added: commons/proper/dbutils/tags/DBUTILS_1_3/ (props changed) - copied from r1211585, commons/proper/dbutils/tags/DBUTILS_1_3_RC4/ Propchange: commons/proper/dbutils/tags/DBUTILS_1_3/ -- --- svn:ignore (added) +++ svn:ignore Wed Dec 7 18:37:25 2011 @@ -0,0 +1,5 @@ +target +maven.log +.classpath +.project +*.log Propchange: commons/proper/dbutils/tags/DBUTILS_1_3/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Dec 7 18:37:25 2011 @@ -0,0 +1,2 @@ +/commons/sandbox/dbutils/bugfixing:741987-747450 +/commons/sandbox/dbutils/java5:741988-832184
svn commit: r1211627 - /commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml
Author: simonetripodi Date: Wed Dec 7 20:51:43 2011 New Revision: 1211627 URL: http://svn.apache.org/viewvc?rev=1211627view=rev Log: updated constructor documenation to current codebase Modified: commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml Modified: commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml?rev=1211627r1=1211626r2=1211627view=diff == --- commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml (original) +++ commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml Wed Dec 7 20:51:43 2011 @@ -24,21 +24,23 @@ limitations under the License. /properties body section name=Constructor based rule - pOne of the known limit of the old Digester releases is that the + pOne of the missing features of the old Digester releases is that the a href=../apidocs/org/apache/commons/digester3/ObjectCreateRule.htmlObjectCreateRule/a works just with the default empty constructor./p pOne limit that cannot be exceeded is the fact that constructor arguments cannot be extracted from inner XML elements; that's because the codeObjectCreateRule/code creates the object when the related XML element codebegins/code, otherwise properties could not be set when parsing nested elements./p - pOn the other hand, constructor arguments can still be extracted from iattributes/i of the matching - XML element for whom the codeObjectCreateRule/code is triggered./p + pThat is no longer true :) Constructor arguments can be extracted from iattributes/i and + inested elements/iof the matching XML element for whom the codeObjectCreateRule/code is triggered./p pbNOTE/b this feature is available since release 3.2./p subsection name=Using plain old Digester APIs -pcodeObjectCreateRule/code has a new API to configure the constructor arguments that have to be extracted -from the of the matching XML element attributes; given for example the XML snippet below:/p +pcodeObjectCreateRule/code has new APIs to configure the constructor arguments types; given for example +the XML snippet below:/p sourcelt;rootgt; - lt;bean super=true rate=9.99 /gt; + lt;bean super=truegt; +lt;rategt;9.99lt;rate/gt; + lt;/beangt; lt;/rootgt;/source pThat has to be mapped to the bean:/p sourceclass MyBean @@ -52,12 +54,12 @@ limitations under the License. }/source pThen the codeDigester/code instance can be configured as below:/p sourceObjectCreateRule createRule = new ObjectCreateRule( MyBean.class ); -createRule.addConstructorArgument( rate, java.lang.Double.class ); -createRule.addConstructorArgument( super, java.lang.Boolean.class ); +createRule.setConstructorArgumentTypes( boolean.class, double.class ); Digester digester = new Digester(); -digester.addRule( root/bean, createRule );/source -pbNOTE/b The order that the arguments are expressed matters!/p +digester.addRule( root/bean, createRule ); +digester.addCallParam( root/bean, 1, super ); +digester.addCallParam( root/bean/rate, 0 );/source /subsection subsection name=Using the RulesBinder APIs @@ -69,9 +71,10 @@ digester.addRule( root/bean, createRul protected void configure() { forPattern( root/bean ) -.createObject().ofType( MyBean.class ) -.addConstructorArgument( rate ).ofType( Double.class ) -.addConstructorArgument( super ).ofType( Boolean.class ); +.createObject().ofType( MyBean.class ).usingConstructor( boolean.class, double.class ) +.then() +.callParam().fromAttribute( super ).ofIndex( 1 ); +forPattern( root/bean/rate ).callParam().ofIndex( 0 ); } } );/source @@ -86,14 +89,13 @@ digester.addRule( root/bean, createRul { @ObjectCreate( pattern = root/bean ) -public MyBean( @Attribute( rate ) Double rate, @Attribute( super ) Boolean super ) +public MyBean( @CallParam( pattern = root/bean/rate ) Double rate, + @CallParam( pattern = root/bean, attributeName = super ) Boolean super ) { ... } }/source -pbNOTE/b it is not possible in Java, using reflection, retrieving constructors/methods arguments names, -that's why the codeAttribute/code annotation has to be added./p /subsection subsection name=Using the XML meta-descriptor @@ -101,9 +103,11 @@ digester.addRule( root/bean, createRul a new inner element codelt;constructor-argumentgt;/code:/p sourcelt;digester-rulesgt; lt;pattern value=root/beangt; -lt;object-create-rule classname=MyBeangt; +lt;object-create-rule classname=MyBean +
svn commit: r1211655 - /commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml
Author: simonetripodi Date: Wed Dec 7 21:51:59 2011 New Revision: 1211655 URL: http://svn.apache.org/viewvc?rev=1211655view=rev Log: added the default constructor arguments description Modified: commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml Modified: commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml?rev=1211655r1=1211654r2=1211655view=diff == --- commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml (original) +++ commons/proper/digester/trunk/src/site/xdoc/guide/constructor.xml Wed Dec 7 21:51:59 2011 @@ -113,5 +113,14 @@ digester.addCallParam( root/bean/rate, lt;/digester-rulesgt;/source /subsection /section + +section name=Default constructor arguments + pIn order to provide that feature, Digester relies on codeCGLIB/code that needs to proxy the class of the + target object, to avoid constructors issues users can use the + codeObjectCreateRule#setDefaultConstructorArguments(Object...)/code method to give safe construction + params to the constructor when creating the proxy; that method could be useful also when one parameter needs to + take a static value while the other is handled with a codeCallParam/code rule. If these are not specified, + the super constructor is called with nulls for Objects and default values for primitives./p +/section /body /document
svn commit: r1211674 - in /commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder: BinderClassLoader.java DigesterLoader.java
Author: simonetripodi Date: Wed Dec 7 22:18:29 2011 New Revision: 1211674 URL: http://svn.apache.org/viewvc?rev=1211674view=rev Log: fixed findbugs issue: classloader must be created inside a privileged action Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/BinderClassLoader.java commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/DigesterLoader.java Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/BinderClassLoader.java URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/BinderClassLoader.java?rev=1211674r1=1211673r2=1211674view=diff == --- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/BinderClassLoader.java (original) +++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/BinderClassLoader.java Wed Dec 7 22:18:29 2011 @@ -1,9 +1,5 @@ package org.apache.commons.digester3.binder; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -23,6 +19,14 @@ import java.util.Map; * under the License. */ +import static java.lang.System.getSecurityManager; +import static java.security.AccessController.doPrivileged; + +import java.security.PrivilegedAction; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + final class BinderClassLoader extends ClassLoader { @@ -42,9 +46,28 @@ final class BinderClassLoader PRIMITIVE_TYPES = Collections.unmodifiableMap( primitiveTypes ); } +public static BinderClassLoader createBinderClassLoader( final ClassLoader adaptedClassLoader ) +{ +PrivilegedActionBinderClassLoader action = new PrivilegedActionBinderClassLoader() +{ + +public BinderClassLoader run() +{ +return new BinderClassLoader( adaptedClassLoader ); +} + +}; + +if ( getSecurityManager() != null ) +{ +return doPrivileged( action ); +} +return action.run(); +} + private final ClassLoader adaptedClassLoader; -public BinderClassLoader( ClassLoader adaptedClassLoader ) +private BinderClassLoader( ClassLoader adaptedClassLoader ) { this.adaptedClassLoader = adaptedClassLoader; } Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/DigesterLoader.java URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/DigesterLoader.java?rev=1211674r1=1211673r2=1211674view=diff == --- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/DigesterLoader.java (original) +++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/binder/DigesterLoader.java Wed Dec 7 22:18:29 2011 @@ -19,6 +19,8 @@ package org.apache.commons.digester3.bin * under the License. */ +import static org.apache.commons.digester3.binder.BinderClassLoader.createBinderClassLoader; + import java.io.PrintWriter; import java.io.StringWriter; import java.net.MalformedURLException; @@ -196,7 +198,7 @@ public final class DigesterLoader throw new IllegalArgumentException( Parameter 'classLoader' cannot be null ); } -this.classLoader = new BinderClassLoader( classLoader ); +this.classLoader = createBinderClassLoader( classLoader ); return this; }
svn commit: r1211676 - /commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java
Author: simonetripodi Date: Wed Dec 7 22:21:15 2011 New Revision: 1211676 URL: http://svn.apache.org/viewvc?rev=1211676view=rev Log: fixed findbugs issue: string format wants 2 arguments but is given 3 in Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java?rev=1211676r1=1211675r2=1211676view=diff == --- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java (original) +++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Wed Dec 7 22:21:15 2011 @@ -367,7 +367,7 @@ public class ObjectCreateRule if ( constructor == null ) { -throw new SAXException( format( [ObjectCreateRule]{%s} Class '%s' does not have a construcor with types, +throw new SAXException( format( [ObjectCreateRule]{%s} Class '%s' does not have a construcor with types %s, getDigester().getMatch(), clazz.getName(), Arrays.toString( constructorArgumentTypes ) ) );
svn commit: r1211681 - /commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java
Author: simonetripodi Date: Wed Dec 7 22:35:51 2011 New Revision: 1211681 URL: http://svn.apache.org/viewvc?rev=1211681view=rev Log: removed synchronizations that caused findbugs issues, the Digester is not anyway thread-safety by definition so that should not be an issue - unless users start sharing same Digester instances across multiple threads Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java?rev=1211681r1=1211680r2=1211681view=diff == --- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java (original) +++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Wed Dec 7 22:35:51 2011 @@ -54,7 +54,6 @@ public class ObjectCreateRule DeferredConstructionCallback( Constructor? constructor, Object[] constructorArgs ) { -super(); this.constructor = constructor; this.constructorArgs = constructorArgs; } @@ -62,13 +61,10 @@ public class ObjectCreateRule public Object intercept( Object obj, Method method, Object[] args, MethodProxy proxy ) throws Throwable { -boolean hasDelegate; -synchronized ( this ) { -hasDelegate = delegate != null; -if ( !hasDelegate ) -{ -invocations.add( new RecordedInvocation( method, args ) ); -} +boolean hasDelegate = delegate != null; +if ( !hasDelegate ) +{ +invocations.add( new RecordedInvocation( method, args ) ); } if ( hasDelegate ) { return proxy.invoke( delegate, args ); @@ -76,7 +72,7 @@ public class ObjectCreateRule return proxy.invokeSuper( obj, args ); } -synchronized void establishDelegate() +void establishDelegate() throws Exception { convertTo( constructor.getParameterTypes(), constructorArgs ); @@ -147,31 +143,26 @@ public class ObjectCreateRule DeferredConstructionCallback callback = new DeferredConstructionCallback(constructor, constructorArguments); Object result; + if ( factory == null ) { -synchronized ( this ) +Enhancer enhancer = new Enhancer(); +enhancer.setSuperclass( clazz ); +enhancer.setCallback( callback ); +enhancer.setClassLoader( digester.getClassLoader() ); +enhancer.setInterceptDuringConstruction(false); +if ( hasDefaultConstructor ) { -// check again for null now that we're in the synchronized block: -if ( factory == null ) -{ -Enhancer enhancer = new Enhancer(); -enhancer.setSuperclass( clazz ); -enhancer.setCallback( callback ); -enhancer.setClassLoader( digester.getClassLoader() ); -enhancer.setInterceptDuringConstruction(false); -if ( hasDefaultConstructor ) -{ -result = enhancer.create(); -} -else -{ -result = enhancer.create( constructor.getParameterTypes(), constructorArguments ); -} -factory = (Factory) result; -return result; -} +result = enhancer.create(); } +else +{ +result = enhancer.create( constructor.getParameterTypes(), constructorArguments ); +} +factory = (Factory) result; +return result; } + if ( hasDefaultConstructor ) { result = factory.newInstance( callback ); @@ -359,22 +350,16 @@ public class ObjectCreateRule { if ( proxyManager == null ) { -synchronized ( this ) -{ -if ( proxyManager == null ) -{ -Constructor? constructor = getAccessibleConstructor( clazz, constructorArgumentTypes ); +Constructor? constructor = getAccessibleConstructor( clazz, constructorArgumentTypes ); -if ( constructor == null ) -
svn commit: r1211687 - /commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java
Author: simonetripodi Date: Wed Dec 7 22:51:22 2011 New Revision: 1211687 URL: http://svn.apache.org/viewvc?rev=1211687view=rev Log: format violations reported by checkstyle Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java?rev=1211687r1=1211686r2=1211687view=diff == --- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java (original) +++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Wed Dec 7 22:51:22 2011 @@ -66,7 +66,8 @@ public class ObjectCreateRule { invocations.add( new RecordedInvocation( method, args ) ); } -if ( hasDelegate ) { +if ( hasDelegate ) +{ return proxy.invoke( delegate, args ); } return proxy.invokeSuper( obj, args ); @@ -99,7 +100,7 @@ public class ObjectCreateRule ProxyManager( Class? clazz, Constructor? constructor, Object[] constructorArguments, Digester digester ) { this.clazz = clazz; -hasDefaultConstructor = getAccessibleConstructor(clazz, new Class[0]) != null; +hasDefaultConstructor = getAccessibleConstructor( clazz, new Class[0] ) != null; this.constructor = constructor; Class?[] argTypes = constructor.getParameterTypes(); templateConstructorArguments = new Object[argTypes.length]; @@ -107,14 +108,14 @@ public class ObjectCreateRule { for ( int i = 0; i templateConstructorArguments.length; i++ ) { -if ( argTypes[i].equals(boolean.class) ) +if ( argTypes[i].equals( boolean.class ) ) { templateConstructorArguments[i] = Boolean.FALSE; continue; } if ( argTypes[i].isPrimitive() ) { -templateConstructorArguments[i] = convert(0, argTypes[i]); +templateConstructorArguments[i] = convert( 0, argTypes[i] ); continue; } templateConstructorArguments[i] = null; @@ -140,7 +141,8 @@ public class ObjectCreateRule arraycopy( templateConstructorArguments, 0, constructorArguments, 0, constructorArguments.length ); digester.pushParams( constructorArguments ); -DeferredConstructionCallback callback = new DeferredConstructionCallback(constructor, constructorArguments); +DeferredConstructionCallback callback = +new DeferredConstructionCallback( constructor, constructorArguments ); Object result; @@ -150,7 +152,7 @@ public class ObjectCreateRule enhancer.setSuperclass( clazz ); enhancer.setCallback( callback ); enhancer.setClassLoader( digester.getClassLoader() ); -enhancer.setInterceptDuringConstruction(false); +enhancer.setInterceptDuringConstruction( false ); if ( hasDefaultConstructor ) { result = enhancer.create(); @@ -175,10 +177,11 @@ public class ObjectCreateRule return result; } -void finalize( Object proxy ) throws Exception +void finalize( Object proxy ) +throws Exception { digester.popParams(); -( ( DeferredConstructionCallback ) ( (Factory) proxy).getCallback( 0 ) ).establishDelegate(); +( (DeferredConstructionCallback) ( (Factory) proxy ).getCallback( 0 ) ).establishDelegate(); } } @@ -359,7 +362,7 @@ public class ObjectCreateRule clazz.getName(), Arrays.toString( constructorArgumentTypes ) ) ); } -proxyManager = new ProxyManager(clazz, constructor, defaultConstructorArguments, getDigester()); +proxyManager = new ProxyManager( clazz, constructor, defaultConstructorArguments, getDigester() ); } instance = proxyManager.createProxy(); } @@ -377,7 +380,7 @@ public class ObjectCreateRule if ( proxyManager != null ) { -proxyManager.finalize(top); +proxyManager.finalize( top ); } if ( getDigester().getLogger().isDebugEnabled() )
svn commit: r1211690 - /commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java
Author: simonetripodi Date: Wed Dec 7 22:53:11 2011 New Revision: 1211690 URL: http://svn.apache.org/viewvc?rev=1211690view=rev Log: added missing javadocs parameters Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java?rev=1211690r1=1211689r2=1211690view=diff == --- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java (original) +++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/ObjectCreateRule.java Wed Dec 7 22:53:11 2011 @@ -276,6 +276,7 @@ public class ObjectCreateRule /** * Allows users to specify constructor argument types. * + * @param constructorArgumentTypes the constructor argument types * @since 3.2 */ public void setConstructorArgumentTypes( Class?... constructorArgumentTypes ) @@ -294,6 +295,7 @@ public class ObjectCreateRule * not supplied by a {@link CallParamRule}, the corresponding item from this array will be used * to construct the final object as well. * + * @param the default constructor arguments. * @since 3.2 */ public void setDefaultConstructorArguments( Object... constructorArguments )
svn commit: r1211727 - /commons/proper/jexl/branches/2.0/pom.xml
Author: sebb Date: Thu Dec 8 01:07:55 2011 New Revision: 1211727 URL: http://svn.apache.org/viewvc?rev=1211727view=rev Log: Create test jar Modified: commons/proper/jexl/branches/2.0/pom.xml Modified: commons/proper/jexl/branches/2.0/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/pom.xml?rev=1211727r1=1211726r2=1211727view=diff == --- commons/proper/jexl/branches/2.0/pom.xml (original) +++ commons/proper/jexl/branches/2.0/pom.xml Thu Dec 8 01:07:55 2011 @@ -201,6 +201,17 @@ /execution /executions /plugin +plugin + groupIdorg.apache.maven.plugins/groupId + artifactIdmaven-jar-plugin/artifactId + executions +execution + goals +goaltest-jar/goal + /goals +/execution + /executions +/plugin /plugins /build
svn commit: r1211730 - /commons/proper/jexl/branches/2.0/pom.xml
Author: sebb Date: Thu Dec 8 01:35:37 2011 New Revision: 1211730 URL: http://svn.apache.org/viewvc?rev=1211730view=rev Log: Remove temporary work-rounds Modified: commons/proper/jexl/branches/2.0/pom.xml Modified: commons/proper/jexl/branches/2.0/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/pom.xml?rev=1211730r1=1211729r2=1211730view=diff == --- commons/proper/jexl/branches/2.0/pom.xml (original) +++ commons/proper/jexl/branches/2.0/pom.xml Thu Dec 8 01:35:37 2011 @@ -130,39 +130,14 @@ commons.release.2.binary.suffix / commons.jira.idJEXL/commons.jira.id commons.jira.pid12310479/commons.jira.pid -!-- Temp fix until parent POM is updated -- -project.build.sourceEncodingUTF-8/project.build.sourceEncoding - project.reporting.outputEncodingUTF-8/project.reporting.outputEncoding /properties build -!-- temporarily override the parent POM (v 11) until that is updated -- -resources -resource -directory${basedir}/directory -targetPathMETA-INF/targetPath -includes -includeNOTICE.txt/include -includeLICENSE.txt/include -/includes -/resource -resource -directorysrc/main/resources/directory -/resource -/resources plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId /plugin -!-- workaround MRELEASE-424 when publishing -- -plugin -groupIdorg.apache.maven.plugins/groupId -artifactIdmaven-release-plugin/artifactId -configuration -mavenExecutorIdforked-path/mavenExecutorId -/configuration -/plugin plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-surefire-plugin/artifactId
svn commit: r1211731 - /commons/proper/jexl/branches/2.0/pom.xml
Author: sebb Date: Thu Dec 8 01:36:27 2011 New Revision: 1211731 URL: http://svn.apache.org/viewvc?rev=1211731view=rev Log: Fix SVN location Modified: commons/proper/jexl/branches/2.0/pom.xml Modified: commons/proper/jexl/branches/2.0/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/pom.xml?rev=1211731r1=1211730r2=1211731view=diff == --- commons/proper/jexl/branches/2.0/pom.xml (original) +++ commons/proper/jexl/branches/2.0/pom.xml Thu Dec 8 01:36:27 2011 @@ -36,9 +36,9 @@ /issueManagement scm - connectionscm:svn:http://svn.apache.org/repos/asf/commons/proper/jexl/trunk/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/commons/proper/jexl/trunk/developerConnection -urlhttp://svn.apache.org/viewvc/commons/proper/jexl/trunk/url + connectionscm:svn:http://svn.apache.org/repos/asf/commons/proper/jexl/branches/2.0/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/commons/proper/jexl/branches/2.0/developerConnection + urlhttp://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/url /scm distributionManagement
svn commit: r1211732 - /commons/proper/jexl/branches/2.0/pom.xml
Author: sebb Date: Thu Dec 8 01:36:53 2011 New Revision: 1211732 URL: http://svn.apache.org/viewvc?rev=1211732view=rev Log: Now RC2 Modified: commons/proper/jexl/branches/2.0/pom.xml Modified: commons/proper/jexl/branches/2.0/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/pom.xml?rev=1211732r1=1211731r2=1211732view=diff == --- commons/proper/jexl/branches/2.0/pom.xml (original) +++ commons/proper/jexl/branches/2.0/pom.xml Thu Dec 8 01:36:53 2011 @@ -125,7 +125,7 @@ commons.componentidjexl/commons.componentid commons.release.version2.1/commons.release.version !-- The RC version used in the staging repository URL. -- -commons.rc.versionRC1/commons.rc.version +commons.rc.versionRC2/commons.rc.version commons.release.2.version1.1/commons.release.2.version commons.release.2.binary.suffix / commons.jira.idJEXL/commons.jira.id
svn commit: r1211733 - in /commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2: ./ pom.xml
Author: sebb Date: Thu Dec 8 01:53:49 2011 New Revision: 1211733 URL: http://svn.apache.org/viewvc?rev=1211733view=rev Log: Tag 2.1 RC2 Added: commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/ - copied from r1211732, commons/proper/jexl/branches/2.0/ Modified: commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/pom.xml Modified: commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/pom.xml?rev=1211733r1=1211732r2=1211733view=diff == --- commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/pom.xml (original) +++ commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/pom.xml Thu Dec 8 01:53:49 2011 @@ -24,7 +24,7 @@ modelVersion4.0.0/modelVersion groupIdorg.apache.commons/groupId artifactIdcommons-jexl/artifactId -version2.1-SNAPSHOT/version +version2.1/version nameCommons JEXL/name inceptionYear2001/inceptionYear descriptionThe Commons Jexl library is an implementation of the JSTL Expression Language with extensions./description @@ -36,9 +36,9 @@ /issueManagement scm - connectionscm:svn:http://svn.apache.org/repos/asf/commons/proper/jexl/branches/2.0/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/commons/proper/jexl/branches/2.0/developerConnection - urlhttp://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/url + connectionscm:svn:http://svn.apache.org/repos/asf/commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/developerConnection + urlhttp://svn.apache.org/viewvc/commons/proper/jexl/tags/COMMONS_JEXL_2_1-RC2/url /scm distributionManagement
svn commit: r1211743 - /commons/proper/commons-parent/trunk/pom.xml
Author: sebb Date: Thu Dec 8 02:17:08 2011 New Revision: 1211743 URL: http://svn.apache.org/viewvc?rev=1211743view=rev Log: Drop deprecated aggregate:false from jxr configuration Modified: commons/proper/commons-parent/trunk/pom.xml Modified: commons/proper/commons-parent/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/commons-parent/trunk/pom.xml?rev=1211743r1=1211742r2=1211743view=diff == --- commons/proper/commons-parent/trunk/pom.xml (original) +++ commons/proper/commons-parent/trunk/pom.xml Thu Dec 8 02:17:08 2011 @@ -479,10 +479,6 @@ groupIdorg.apache.maven.plugins/groupId artifactIdmaven-jxr-plugin/artifactId version${commons.jxr.version}/version -configuration -!-- TODO Deprecated. since 2.3. Use the goals jxr:aggregate and jxr:test-aggregate instead. -- - aggregatefalse/aggregate -/configuration /plugin plugin groupIdorg.apache.maven.plugins/groupId