Author: desruisseaux
Date: Mon Feb 23 16:56:53 2015
New Revision: 1661716
URL: http://svn.apache.org/r1661716
Log:
Workaround for a JDK bug: ServiceLoader does not support usage of 2 iterators
before one iteration is finished.
To workaround this bug, we use the LazySet internal class.
Added:
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
(with props)
sis/ip-review/LazySet.xhtml (with props)
sis/ip-review/rev/10796/LazySet.xhtml (with props)
sis/ip-review/rev/20874/LazySet.xhtml (with props)
Modified:
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/OperationMethodSet.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
Modified:
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java?rev=1661716&r1=1661715&r2=1661716&view=diff
==============================================================================
---
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
[UTF-8] (original)
+++
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
[UTF-8] Mon Feb 23 16:56:53 2015
@@ -44,6 +44,7 @@ import org.opengis.referencing.operation
import org.opengis.util.FactoryException;
import org.opengis.util.NoSuchIdentifierException;
+import org.apache.sis.internal.util.LazySet;
import org.apache.sis.internal.util.Constants;
import org.apache.sis.internal.referencing.Formulas;
import org.apache.sis.internal.referencing.ReferencingUtilities;
@@ -226,7 +227,25 @@ public class DefaultMathTransformFactory
* @see #reload()
*/
public DefaultMathTransformFactory() {
- this(ServiceLoader.load(OperationMethod.class));
+ /*
+ * WORKAROUND for a JDK bug: ServiceLoader do not support usage of two
Iterator.
+ * Steps to reproduce:
+ *
+ * ServiceLoader<ServiceLoaderTest> loader =
ServiceLoader.load(ServiceLoaderTest.class);
+ *
+ * Iterator<ServiceLoaderTest> it1 = loader.iterator();
+ * assertTrue ( it1.hasNext() );
+ * assertNotNull( it1.next()) );
+ *
+ * Iterator<ServiceLoaderTest> it2 = loader.iterator();
+ * assertTrue ( it1.hasNext()) );
+ * assertTrue ( it2.hasNext()) );
+ * assertNotNull( it1.next()) );
+ * assertNotNull( it2.next()) ); //
ConcurrentModificationException here !!!
+ *
+ * Wrapping the ServiceLoader in a LazySet avoid this issue.
+ */
+ this(new
LazySet<>(ServiceLoader.load(OperationMethod.class).iterator()));
}
/**
@@ -294,6 +313,7 @@ public class DefaultMathTransformFactory
*/
@Override
public Set<OperationMethod> getAvailableMethods(final Class<? extends
SingleOperation> type) {
+ ArgumentChecks.ensureNonNull("type", type);
OperationMethodSet set;
synchronized (methodsByType) {
set = methodsByType.get(type);
@@ -455,6 +475,7 @@ public class DefaultMathTransformFactory
}
if (Double.isNaN(actual)) {
parameter.setValue(expected, unit);
+ return false;
}
return true;
}
Modified:
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/OperationMethodSet.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/OperationMethodSet.java?rev=1661716&r1=1661715&r2=1661716&view=diff
==============================================================================
---
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/OperationMethodSet.java
[UTF-8] (original)
+++
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/OperationMethodSet.java
[UTF-8] Mon Feb 23 16:56:53 2015
@@ -116,7 +116,8 @@ final class OperationMethodSet extends A
}
// Maintenance note: following check shall be consistent with the one
in 'contains(Object)'.
if (method instanceof DefaultOperationMethod) {
- if (!type.isAssignableFrom(((DefaultOperationMethod)
method).getOperationType())) {
+ final Class<? extends SingleOperation> c =
((DefaultOperationMethod) method).getOperationType();
+ if (c != null && !type.isAssignableFrom(c)) {
return false;
}
}
@@ -217,7 +218,8 @@ final class OperationMethodSet extends A
public boolean contains(final Object object) {
// Maintenance note: following check shall be consistent with the one
in 'transfer()'.
if (object instanceof DefaultOperationMethod) {
- if (!type.isAssignableFrom(((DefaultOperationMethod)
object).getOperationType())) {
+ final Class<? extends SingleOperation> c =
((DefaultOperationMethod) object).getOperationType();
+ if (c != null && !type.isAssignableFrom(c)) {
return false;
}
} else if (!(object instanceof OperationMethod)) {
Added:
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java?rev=1661716&view=auto
==============================================================================
---
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
(added)
+++
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
[UTF-8] Mon Feb 23 16:56:53 2015
@@ -0,0 +1,168 @@
+/*
+ * 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.sis.internal.util;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.AbstractSet;
+import java.util.NoSuchElementException;
+
+
+/**
+ * An immutable set built from an iterator, which will be filled only when
needed.
+ * This implementation do <strong>not</strong> check if all elements in the
iterator
+ * are really unique; we assume that it was already verified by the caller.
+ *
+ * @param <E> The type of elements in the set.
+ *
+ * @author Martin Desruisseaux (IRD)
+ * @since 0.6
+ * @version 0.6
+ * @module
+ */
+public final class LazySet<E> extends AbstractSet<E> {
+ /**
+ * The iterator to use for filling this set, or {@code null} if the
iteration is over.
+ */
+ private Iterator<? extends E> iterator;
+
+ /**
+ * The elements in this set. This array will grown as needed.
+ */
+ private E[] elements;
+
+ /**
+ * The current position in the iteration. This position will be
incremented as long as
+ * there is some elements remaining in the iterator.
+ */
+ private int position;
+
+ /**
+ * Constructs a set to be filled using the specified iterator.
+ * Iteration in the given iterator will occurs only when needed.
+ *
+ * @param iterator The iterator to use for filling the set.
+ */
+ @SuppressWarnings("unchecked")
+ public LazySet(final Iterator<? extends E> iterator) {
+ this.iterator = iterator;
+ elements = (E[]) new Object[4];
+ }
+
+ /**
+ * Returns {@code true} if the {@link #iterator} is non-null and have more
elements to return.
+ */
+ private boolean hasNext() {
+ if (iterator != null) {
+ if (iterator.hasNext()) {
+ return true;
+ }
+ iterator = null;
+ }
+ return false;
+ }
+
+ /**
+ * Tests if this set has no element.
+ *
+ * @return {@code true} if this set has no element.
+ */
+ @Override
+ public boolean isEmpty() {
+ return (position == 0) && !hasNext();
+ }
+
+ /**
+ * Returns the number of elements in this set. Invoking this method
+ * forces the set to immediately iterates through all remaining elements.
+ *
+ * @return Number of elements in the iterator.
+ */
+ @Override
+ public int size() {
+ if (iterator != null) {
+ while (iterator.hasNext()) {
+ addNext();
+ }
+ iterator = null;
+ }
+ return position;
+ }
+
+ /**
+ * Adds the next element from the iterator to this set. This method does
not check if more
+ * element were available; the check must have been done before to invoke
this method.
+ */
+ private void addNext() {
+ if (position >= elements.length) {
+ elements = Arrays.copyOf(elements, position*2);
+ }
+ elements[position++] = iterator.next();
+ }
+
+ /**
+ * Returns {@code true} if an element exists at the given index.
+ * The element is not loaded immediately.
+ *
+ * <p><strong>NOTE: This method is for use by iterators only.</strong>
+ * It is not suited for more general usage since it does not check for
+ * negative index and for skipped elements.</p>
+ */
+ final boolean exists(final int index) {
+ return (index < position) || hasNext();
+ }
+
+ /**
+ * Returns the element at the specified position in this set.
+ *
+ * @param index The index at which to get an element.
+ * @return The element at the requested index.
+ */
+ final E get(final int index) {
+ if (index >= position) {
+ if (hasNext()) {
+ addNext();
+ } else {
+ throw new NoSuchElementException();
+ }
+ }
+ return elements[index];
+ }
+
+ /**
+ * Returns an iterator over the elements contained in this set.
+ * This is not the same iterator than the one given to the constructor.
+ *
+ * @return An iterator over the elements in this set.
+ */
+ @Override
+ public Iterator<E> iterator() {
+ return new Iterator<E>() {
+ private int cursor;
+
+ @Override
+ public boolean hasNext() {
+ return exists(cursor);
+ }
+
+ @Override
+ public E next() {
+ return get(cursor++);
+ }
+ };
+ }
+}
Propchange:
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
------------------------------------------------------------------------------
svn:mime-type = text/plain;charset=UTF-8
Modified:
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
URL:
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties?rev=1661716&r1=1661715&r2=1661716&view=diff
==============================================================================
---
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
[ISO-8859-1] (original)
+++
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
[ISO-8859-1] Mon Feb 23 16:56:53 2015
@@ -22,5 +22,5 @@ IgnoredPropertiesAfterFirst_1 = Des pr
IgnoredPropertyAssociatedTo_1 = Une propri\u00e9t\u00e9 associ\u00e9e \u00e0
\u2018{0}\u2019 a \u00e9t\u00e9 ignor\u00e9e.
PropertyHiddenBy_2 = La propri\u00e9t\u00e9
\u00ab\u202f{0}\u202f\u00bb est masqu\u00e9e par \u00ab\u202f{1}\u202f\u00bb.
LocalesDiscarded = Des textes ont \u00e9t\u00e9 ignor\u00e9s
pour certaines langues.
-MismatchedEllipsoidAxisLength_3 = Le param\u00e8tre
\u00ab\u202f{1}\u202f\u00bb aurait pu \u00eatre omis. Mais il lui a
\u00e9t\u00e9 donn\u00e9 la {2} qui ne correspond pas \u00e0 la d\u00e9finition
de l'ellipso\u00efde \u00ab\u202f{0}\u202f\u00bb.
+MismatchedEllipsoidAxisLength_3 = Le param\u00e8tre
\u00ab\u202f{1}\u202f\u00bb aurait pu \u00eatre omis. Mais il lui a
\u00e9t\u00e9 donn\u00e9 la valeur {2} qui ne correspond pas \u00e0 la
d\u00e9finition de l'ellipso\u00efde \u00ab\u202f{0}\u202f\u00bb.
UnparsableValueStoredAsText_2 = La valeur \u00ab\u202f{1}\u202f\u00bb ne
peut pas \u00eatre interpr\u00e9t\u00e9e comme une instance de \u2018{0}\u2019.
Elle est donc m\u00e9moris\u00e9e sous sa forme textuelle, mais sera
ignor\u00e9e par certains traitements.
Modified:
sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java?rev=1661716&r1=1661715&r2=1661716&view=diff
==============================================================================
---
sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
[UTF-8] (original)
+++
sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
[UTF-8] Mon Feb 23 16:56:53 2015
@@ -26,7 +26,7 @@ import org.junit.BeforeClass;
*
* @author Martin Desruisseaux (Geomatys)
* @since 0.3
- * @version 0.5
+ * @version 0.6
* @module
*/
@Suite.SuiteClasses({
@@ -78,6 +78,7 @@ import org.junit.BeforeClass;
org.apache.sis.util.collection.CodeListSetTest.class,
org.apache.sis.internal.util.CollectionsExtTest.class,
org.apache.sis.internal.util.AbstractMapTest.class,
+ org.apache.sis.internal.util.LazySetTest.class,
// GeoAPI most basic types.
org.apache.sis.internal.util.DefinitionURITest.class,
Added: sis/ip-review/LazySet.xhtml
URL:
http://svn.apache.org/viewvc/sis/ip-review/LazySet.xhtml?rev=1661716&view=auto
==============================================================================
--- sis/ip-review/LazySet.xhtml (added)
+++ sis/ip-review/LazySet.xhtml Mon Feb 23 16:56:53 2015
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>LazySet history</title>
+ <style type="text/css" media="all">
+ @import url("./reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>LazySet history</h1>
+ <p>Click on the commit message for inspecting the <code>diff</code> and how
the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:1
http://svn.osgeo.org/geotools/trunk/modules/library/metadata/src/main/java/org/geotools/resources/LazySet.java</code></blockquote>
+<table>
+ <tr>
+ <th>Rev.</th>
+ <th>Date</th>
+ <th>Author</th>
+ <th class="last">Message</th>
+ </tr>
+<tr><td class="rev">30640</td><td>2008-06-12</td><td>acuster</td><td>Copyright
headers: lib/metadata, this time with feeling (and the el in Toolkit)</td></tr>
+<tr><td class="rev">30637</td><td>2008-06-12</td><td>acuster</td><td>Copyright
headers: lib/metadata, now normalized to LGPL v2.1 only</td></tr>
+<tr><td class="rev">30519</td><td>2008-06-05</td><td>acuster</td><td>Metadata
header cleanup and copyright review.</td></tr>
+<tr><td class="rev">30258</td><td>2008-05-08</td><td>acuster</td><td>Reshuffle
the top level repo: drop uDig, move up trunk, tags, and branches.</td></tr>
+<tr><td class="rev">30257</td><td>2008-05-08</td><td>acuster</td><td>Move
trunk/gt/ directory contents up to trunk/ and drop gt</td></tr>
+<tr><td class="rev">28922</td><td>2008-01-24</td><td>acuster</td><td>Bump the
(at)since version to 2.5 since WKTParser was cut from 2.4</td></tr>
+<tr><td class="rev">28540</td><td>2007-12-29</td><td>acuster</td><td>Hide
buttons which are not yet used</td></tr>
+<tr><td
class="rev">27923</td><td>2007-11-18</td><td>desruisseaux</td><td>Applying some
more generic types, especially in the factory package. Required slight changes
in the way FactoryRegistry is used, as documented in
http://docs.codehaus.org/display/GEOTOOLS/Fixing+compilation+errors</td></tr>
+<tr><td
class="rev">27575</td><td>2007-10-22</td><td>desruisseaux</td><td>Converted
Java source files from ISO-LATIN-1 encoding to UTF-8 (GEOT-1516).</td></tr>
+<tr><td
class="rev">27500</td><td>2007-10-15</td><td>desruisseaux</td><td>First round
of Java 5 generic types applied to org.geotools.resources and org.geotools.util
packages. As a side effect, removed the deprecated
org.geotools.resources.TestData class (moved to org.geotools.test).</td></tr>
+<tr><td
class="rev">22443</td><td>2006-10-27</td><td>desruisseaux</td><td>Splitted
referencing, extracting metadata in their own module (GEOT-983). As a side
effect, replaced some calls of CRSUtilities.foo(...) by CRS.foo(...).</td></tr>
+<tr><td
class="rev">22327</td><td>2006-10-23</td><td>desruisseaux</td><td>GEOT-982:
regroup 'module', 'plugin', 'ext' and 'unsupported' in a common
directory.</td></tr>
+<tr><td
class="rev">22315</td><td>2006-10-22</td><td>desruisseaux</td><td>Reorganisation
of directory tree structure (GEOT-982) phase 1: moved 'src' to
'src/main/java'.</td></tr>
+<tr><td class="rev">20874</td><td>2006-08-07</td><td
class="unav">jgarnett</td><td><a href="rev/20874/LazySet.xhtml">ip
review</a></td></tr>
+<tr><td
class="rev">17672</td><td>2006-01-19</td><td>desruisseaux</td><td>Added @source
tag.</td></tr>
+<tr><td
class="rev">17660</td><td>2006-01-18</td><td>desruisseaux</td><td>Fixed SVN
attributes, including the addition of URL attribute.</td></tr>
+<tr><td
class="rev">15350</td><td>2005-08-16</td><td>desruisseaux</td><td>Merged the
'split-main' branch to trunk (GEOT-662)</td></tr>
+<tr><td
class="rev">15256</td><td>2005-08-09</td><td>desruisseaux</td><td>Extraction of
referencing module from main</td></tr>
+<tr><td
class="rev">15255</td><td>2005-08-09</td><td>desruisseaux</td><td>Prepare
branch for splitting main</td></tr>
+<tr><td
class="rev">14834</td><td>2005-07-20</td><td>desruisseaux</td><td>Reorganized
I18N resources</td></tr>
+<tr><td
class="rev">13925</td><td>2005-05-30</td><td>desruisseaux</td><td>Added @since
javadoc tag</td></tr>
+<tr><td
class="rev">11001</td><td>2005-02-02</td><td>desruisseaux</td><td>Fixed wrong
encoding in main/src</td></tr>
+<tr><td class="rev">10796</td><td>2005-01-28</td><td
class="unav">dzwiers</td><td><a href="rev/10796/LazySet.xhtml">imports
cleaned</a></td></tr>
+<tr><td class="rev">6440</td><td>2004-06-13</td><td>desruisseaux</td><td>Added
GeocentricTransform / Added registry service in TransformFactory / Refactored
JUnit tests</td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/LazySet.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/LazySet.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/10796/LazySet.xhtml
URL:
http://svn.apache.org/viewvc/sis/ip-review/rev/10796/LazySet.xhtml?rev=1661716&view=auto
==============================================================================
--- sis/ip-review/rev/10796/LazySet.xhtml (added)
+++ sis/ip-review/rev/10796/LazySet.xhtml Mon Feb 23 16:56:53 2015
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>LazySet changes for revisions 10795:10796</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>LazySet changes for revisions 10795:10796</h1>
+<p>Changes in this commit seem to be the result of some "<cite>auto
reformat</cite>" tool execution.
+The <cite>Java</cite> - <cite>GeoAPI</cite> - <cite>GeoTools</cite> import
ordering is altered,
+imports used only in Javadoc are lost and the encoding of non-ASCII characters
is broken.
+This commit has been reverted, except for the removal of really unused imports
which are keep removed.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change
--ignore-all-space --ignore-eol-style" -r10795:10796
http://svn.osgeo.org/geotools/trunk/modules/library/metadata/src/main/java/org/geotools/resources/LazySet.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 10795</th><th>Revision 10796</th></tr>
+<tr><td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2004, Geotools Project Managment Committee (PMC)
+<span class="del"> * (C) 2004, Institut de Recherche pour le
Développement</span>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public</pre></td>
+<td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2004, Geotools Project Managment Committee (PMC)
+<span class="add"> * (C) 2004, Institut de Recherche pour le
D�veloppement</span>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General
Public</pre></td></tr>
+<tr><td><pre>package org.geotools.resources;
+
+// J2SE direct dependencies
+import java.util.Iterator;
+<span class="del">import java.util.AbstractSet;</span>
+
+
+/**</pre></td>
+<td><pre>package org.geotools.resources;
+
+// J2SE direct dependencies
+<span class="add">import java.util.AbstractSet;</span>
+import java.util.Iterator;
+
+
+/**</pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/10796/LazySet.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/10796/LazySet.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/20874/LazySet.xhtml
URL:
http://svn.apache.org/viewvc/sis/ip-review/rev/20874/LazySet.xhtml?rev=1661716&view=auto
==============================================================================
--- sis/ip-review/rev/20874/LazySet.xhtml (added)
+++ sis/ip-review/rev/20874/LazySet.xhtml Mon Feb 23 16:56:53 2015
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>LazySet changes for revisions 20873:20874</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>LazySet changes for revisions 20873:20874</h1>
+<p>Changes in GeoTools header only. The removal of the "<cite>or (at your
option) any later version</cite>" clause
+must be keep in Geotk for every classes having contribution from a developer
other than those who accepted re-licensing.
+This header does not apply to Apache SIS, since the above-cited contributions
are omitted.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change
--ignore-all-space --ignore-eol-style" -r20873:20874
http://svn.osgeo.org/geotools/trunk/modules/library/metadata/src/main/java/org/geotools/resources/LazySet.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 20873</th><th>Revision 20874</th></tr>
+<tr><td><pre>/*
+<span class="del"> * Geotools 2 - OpenSource mapping toolkit</span>
+<span class="del"> * (C) 2004, Geotools Project Managment Committee
(PMC)</span>
+ * (C) 2004, Institut de Recherche pour le Développement
+ *
+ * This library is free software; you can redistribute it and/or</pre></td>
+<td><pre>/*
+<span class="add"> * GeoTools - OpenSource mapping toolkit</span>
+<span class="add"> * http://geotools.org</span>
+<span class="add"> * (C) 2004-2006, Geotools Project Managment Committee
(PMC)</span>
+ * (C) 2004, Institut de Recherche pour le Développement
+ *
+ * This library is free software; you can redistribute it
and/or</pre></td></tr>
+<tr><td><pre> * 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.
+<span class="del"> *</span>
+<span class="del"> * You should have received a copy of the GNU Lesser
General Public</span>
+<span class="del"> * License along with this library; if not, write to the
Free Software</span>
+<span class="del"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA</span>
+ */
+package org.geotools.resources;</pre></td>
+<td><pre> * 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.
+ */
+package org.geotools.resources;</pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/20874/LazySet.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/20874/LazySet.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html