diff --git a/pom.xml b/pom.xml index 9b0606b5e6..bc6b07e6bb 100644 --- a/pom.xml +++ b/pom.xml @@ -24,55 +24,15 @@ 4.0.0 commons-configuration2 - 2.10.1-SNAPSHOT + 3.0.0-SNAPSHOT Apache Commons Configuration 2001 - Tools to assist in the reading of configuration/preferences files in various formats; requires Java 8. + Tools to assist in the reading of configuration/preferences files in + various formats - - configuration - org.apache.commons.configuration2 - 2.10.1 - 2.10.2 - (Java 8 or above) - commons-configuration-${commons.release.2.version} - 1.10 - (old 1.x version) - CONFIGURATION - 12310467 - 1.8 - 1.8 - https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-configuration - - - org.apache.commons.beanutils.*;resolution:=optional, - org.apache.commons.codec.*;resolution:=optional, - org.apache.commons.jxpath.*;resolution:=optional, - org.apache.xml.resolver.*;resolution:=optional, - javax.servlet.*;resolution:=optional, - org.apache.commons.jexl2.*;resolution:=optional, - org.apache.commons.vfs2.*;resolution:=optional, - org.springframework.*;resolution:=optional, - com.fasterxml.jackson.*;resolution:=optional, - org.yaml.snakeyaml.*;resolution:=optional, - * - - 2.23.1 - 2.0.12 - - 5.3.33 - false - - 2.10.0 - RC1 - true - scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid} - 2024-03-12T23:55:07Z - - https://commons.apache.org/proper/commons-configuration/ @@ -98,6 +58,233 @@ + + + Daniel Rall + dlr + dlr@finemaltcoding.com + CollabNet, Inc. + + Java Developer + + + + + Jason van Zyl + jvanzyl + jason@zenplex.com + Zenplex + + Java Developer + + + + + Martin Poeschl + mpoeschl + mpoeschl@marmot.at + tucana.at + + Java Developer + + + + + dIon Gillard + dion + dion@multitask.com.au + Multitask Consulting + + Java Developer + + + + + Henning P. Schmiedehausen + henning + hps@intermeta.de + INTERMETA - Gesellschaft fuer Mehrwertdienste mbH + 2 + + Java Developer + + + + + Eric Pugh + epugh + epugh@upstate.com + upstate.com + + Java Developer + + + + + Brian E. Dunbar + bdunbar + bdunbar@dunbarconsulting.org + dunbarconsulting.org + + Java Developer + + + + + Emmanuel Bourg + ebourg + ebourg@apache.org + Ariane Software + +1 + + Java Developer + + + + + Oliver Heger + oheger + oheger@apache.org + Bosch Software Innovations + +1 + + Java Developer + + + + + Jörg Schaible + joehni + joerg.schaible@gmx.de + +1 + + Java Developer + + + + + Ralph Goers + rgoers + rgoers@apache.org + Intuit + -8 + + Java Developer + + + + + ggregory + Gary Gregory + ggregory at apache.org + https://www.garygregory.com + The Apache Software Foundation + https://www.apache.org/ + + PMC Member + + America/New_York + + https://people.apache.org/~ggregory/img/garydgregory80.png + + + + + Claude Warren + claudenw + claude@apache.org + 0 + + Java Developer + + + + + Rob Tompkins + chtompki + chtompki@apache.org + -4 + + Java Developer + + + + + + + Konstantin Shaposhnikov + ksh@scand.com + scand.com + + + + Jamie M. Guillemette + JMGuillemette@gmail.com + TD Bank + + + + Jorge Ferrer + jorge.ferrer@gmail.com + + + + + Gabriele Garuglieri + gabriele.garuglieri@infoblu.it + Infoblu S.p.A + + + + Nicolas De Loof + nicolas.deloof@gmail.com + Cap Gemini + + + + Oliver Kopp + koppdev@gmail.com + + + + Dennis Kieselhorst + deki@apache.org + IRIAN Deutschland + + + + Raviteja Lokineni + raviteja.lokineni@gmail.com + + + + Vincent Maurin + vincent.maurin.fr@gmail.com + glispa GmbH + + + + The Alchemist + kap4020@gmail.com + + + + Pascal Essiembre + pascal.essiembre@norconex.com + Norconex Inc. + https://www.norconex.com + + developer + + -4 + + + + Patrick Schmidt + patrick.schmidt@codecamp.de + + + org.apache.commons @@ -216,9 +403,9 @@ - javax.servlet - servlet-api - 2.5 + jakarta.servlet + jakarta.servlet-api + 6.0.0 provided true @@ -337,14 +524,59 @@ test - - org.slf4j - slf4j-nop - ${slf4j.version} - test - + + org.slf4j + slf4j-nop + ${slf4j.version} + test + + + + + + configuration + org.apache.commons.configuration2 + 2.10.0 + 2.10.1 + (Java 8 or above) + commons-configuration-${commons.release.2.version} + 1.10 + (old 1.x version) + CONFIGURATION + 12310467 + 1.8 + 1.8 + + https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-configuration + + + + org.apache.commons.beanutils.*;resolution:=optional, + org.apache.commons.codec.*;resolution:=optional, + org.apache.commons.jxpath.*;resolution:=optional, + org.apache.xml.resolver.*;resolution:=optional, + javax.servlet.*;resolution:=optional, + org.apache.commons.jexl2.*;resolution:=optional, + org.apache.commons.vfs2.*;resolution:=optional, + org.springframework.*;resolution:=optional, + com.fasterxml.jackson.*;resolution:=optional, + org.yaml.snakeyaml.*;resolution:=optional, + * + + 2.23.1 + 2.0.12 + + 5.3.32 + + false - + + 3.0.0-SNAPSHOT + RC1 + true + scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid} + 2024-03-12T23:55:07Z + clean verify apache-rat:check japicmp:cmp checkstyle:check spotbugs:check pmd:check pmd:cpd-check javadoc:javadoc @@ -627,231 +859,4 @@ - - - Daniel Rall - dlr - dlr@finemaltcoding.com - CollabNet, Inc. - - Java Developer - - - - - Jason van Zyl - jvanzyl - jason@zenplex.com - Zenplex - - Java Developer - - - - - Martin Poeschl - mpoeschl - mpoeschl@marmot.at - tucana.at - - Java Developer - - - - - dIon Gillard - dion - dion@multitask.com.au - Multitask Consulting - - Java Developer - - - - - Henning P. Schmiedehausen - henning - hps@intermeta.de - INTERMETA - Gesellschaft fuer Mehrwertdienste mbH - 2 - - Java Developer - - - - - Eric Pugh - epugh - epugh@upstate.com - upstate.com - - Java Developer - - - - - Brian E. Dunbar - bdunbar - bdunbar@dunbarconsulting.org - dunbarconsulting.org - - Java Developer - - - - - Emmanuel Bourg - ebourg - ebourg@apache.org - Ariane Software - +1 - - Java Developer - - - - - Oliver Heger - oheger - oheger@apache.org - Bosch Software Innovations - +1 - - Java Developer - - - - - Jörg Schaible - joehni - joerg.schaible@gmx.de - +1 - - Java Developer - - - - - Ralph Goers - rgoers - rgoers@apache.org - Intuit - -8 - - Java Developer - - - - - ggregory - Gary Gregory - ggregory at apache.org - https://www.garygregory.com - The Apache Software Foundation - https://www.apache.org/ - - PMC Member - - America/New_York - - https://people.apache.org/~ggregory/img/garydgregory80.png - - - - - Claude Warren - claudenw - claude@apache.org - 0 - - Java Developer - - - - - Rob Tompkins - chtompki - chtompki@apache.org - -4 - - Java Developer - - - - - - - Konstantin Shaposhnikov - ksh@scand.com - scand.com - - - - Jamie M. Guillemette - JMGuillemette@gmail.com - TD Bank - - - - Jorge Ferrer - jorge.ferrer@gmail.com - - - - - Gabriele Garuglieri - gabriele.garuglieri@infoblu.it - Infoblu S.p.A - - - - Nicolas De Loof - nicolas.deloof@gmail.com - Cap Gemini - - - - Oliver Kopp - koppdev@gmail.com - - - - Dennis Kieselhorst - deki@apache.org - IRIAN Deutschland - - - - Raviteja Lokineni - raviteja.lokineni@gmail.com - - - - Vincent Maurin - vincent.maurin.fr@gmail.com - glispa GmbH - - - - The Alchemist - kap4020@gmail.com - - - - Pascal Essiembre - pascal.essiembre@norconex.com - Norconex Inc. - https://www.norconex.com - - developer - - -4 - - - - Patrick Schmidt - patrick.schmidt@codecamp.de - - - diff --git a/src/main/java/org/apache/commons/configuration2/DataConfiguration.java b/src/main/java/org/apache/commons/configuration2/DataConfiguration.java index 574256f643..6dd0396b37 100644 --- a/src/main/java/org/apache/commons/configuration2/DataConfiguration.java +++ b/src/main/java/org/apache/commons/configuration2/DataConfiguration.java @@ -45,7 +45,7 @@ *
  • {@link java.util.Calendar}
  • *
  • {@link java.awt.Color}
  • *
  • {@link java.net.InetAddress}
  • - *
  • {@code javax.mail.internet.InternetAddress} (requires Javamail in the classpath)
  • + *
  • {@code jakarta.mail.internet.InternetAddress} (requires Javamail in the classpath)
  • *
  • {@code jakarta.mail.internet.InternetAddress} (requires Javamail 2.+ in the classpath)
  • *
  • {@link Enum}
  • * diff --git a/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java b/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java index b45a1d9070..307d9de3e6 100644 --- a/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java +++ b/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java @@ -67,8 +67,8 @@ public final class PropertyConverter { /** Constant for the argument classes of the Number constructor that takes a String. */ private static final Class[] CONSTR_ARGS = {String.class}; - /** The fully qualified name of {@code javax.mail.internet.InternetAddress}, as used in the javamail-1.* API. */ - private static final String INTERNET_ADDRESS_CLASSNAME_JAVAX = "javax.mail.internet.InternetAddress"; + /** The fully qualified name of {@code jakarta.mail.internet.InternetAddress}, as used in the javamail-1.* API. */ + private static final String INTERNET_ADDRESS_CLASSNAME_JAVAX = "jakarta.mail.internet.InternetAddress"; /** The fully qualified name of {@code jakarta.mail.internet.InternetAddress}, as used in the javamail-2.0+ API. */ private static final String INTERNET_ADDRESS_CLASSNAME_JAKARTA = "jakarta.mail.internet.InternetAddress"; @@ -152,7 +152,7 @@ public static Object to(final Class cls, final Object value, final DefaultCon } else if (Color.class.equals(cls)) { return toColor(value); } else if (cls.getName().equals(INTERNET_ADDRESS_CLASSNAME_JAVAX)) { - // javamail-1.* With javax.mail.* namespace. + // javamail-1.* With jakarta.mail.* namespace. return toInternetAddress(value, INTERNET_ADDRESS_CLASSNAME_JAVAX); } else if (cls.getName().equals(INTERNET_ADDRESS_CLASSNAME_JAKARTA)) { // javamail-2.0+, with jakarta.mail.* namespace. diff --git a/src/main/java/org/apache/commons/configuration2/web/ServletConfiguration.java b/src/main/java/org/apache/commons/configuration2/web/ServletConfiguration.java index e0deedb814..188054b205 100644 --- a/src/main/java/org/apache/commons/configuration2/web/ServletConfiguration.java +++ b/src/main/java/org/apache/commons/configuration2/web/ServletConfiguration.java @@ -21,8 +21,8 @@ import java.util.Enumeration; import java.util.Iterator; -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletConfig; /** * A configuration wrapper around a {@link ServletConfig}. This configuration is read only, adding or removing a diff --git a/src/main/java/org/apache/commons/configuration2/web/ServletContextConfiguration.java b/src/main/java/org/apache/commons/configuration2/web/ServletContextConfiguration.java index ab31109601..16fff0d90e 100644 --- a/src/main/java/org/apache/commons/configuration2/web/ServletContextConfiguration.java +++ b/src/main/java/org/apache/commons/configuration2/web/ServletContextConfiguration.java @@ -21,8 +21,8 @@ import java.util.Enumeration; import java.util.Iterator; -import javax.servlet.Servlet; -import javax.servlet.ServletContext; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletContext; /** * A configuration wrapper to read the initialization parameters of a servlet context. This configuration is read only, diff --git a/src/main/java/org/apache/commons/configuration2/web/ServletFilterConfiguration.java b/src/main/java/org/apache/commons/configuration2/web/ServletFilterConfiguration.java index 676fbfc389..06d4499f34 100644 --- a/src/main/java/org/apache/commons/configuration2/web/ServletFilterConfiguration.java +++ b/src/main/java/org/apache/commons/configuration2/web/ServletFilterConfiguration.java @@ -21,7 +21,7 @@ import java.util.Enumeration; import java.util.Iterator; -import javax.servlet.FilterConfig; +import jakarta.servlet.FilterConfig; /** * A configuration wrapper around a {@link FilterConfig}. This configuration is read only, adding or removing a property diff --git a/src/main/java/org/apache/commons/configuration2/web/ServletRequestConfiguration.java b/src/main/java/org/apache/commons/configuration2/web/ServletRequestConfiguration.java index 3c85eaa1dd..3efcf18620 100644 --- a/src/main/java/org/apache/commons/configuration2/web/ServletRequestConfiguration.java +++ b/src/main/java/org/apache/commons/configuration2/web/ServletRequestConfiguration.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Map; -import javax.servlet.ServletRequest; +import jakarta.servlet.ServletRequest; /** * A configuration wrapper to read the parameters of a servlet request. This configuration is read only, adding or diff --git a/src/test/java/org/apache/commons/configuration2/MockInitialContextFactory.java b/src/test/java/org/apache/commons/configuration2/MockInitialContextFactory.java index c9ce346204..622c6afe48 100644 --- a/src/test/java/org/apache/commons/configuration2/MockInitialContextFactory.java +++ b/src/test/java/org/apache/commons/configuration2/MockInitialContextFactory.java @@ -16,20 +16,15 @@ */ package org.apache.commons.configuration2; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - +import javax.naming.*; +import javax.naming.spi.InitialContextFactory; import java.util.ArrayList; import java.util.Hashtable; import java.util.Iterator; import java.util.List; -import javax.naming.Context; -import javax.naming.NameClassPair; -import javax.naming.NameNotFoundException; -import javax.naming.NamingEnumeration; -import javax.naming.NamingException; -import javax.naming.spi.InitialContextFactory; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; /** * A mock implementation of the {@code InitialContextFactory} interface. This implementation will return a mock context @@ -79,26 +74,36 @@ public void close() throws NamingException { */ public static final String PROP_CYCLES = "useCycles"; - /** Constant for the name of the missing property. */ + /** + * Constant for the name of the missing property. + */ private static final String MISSING_PROP = "/missing"; - /** Constant for the name of the prefix. */ + /** + * Constant for the name of the prefix. + */ private static final String PREFIX = "test/"; - /** An array with the names of the supported properties. */ + /** + * An array with the names of the supported properties. + */ private static final String[] PROP_NAMES = {"key", "key2", "short", "boolean", "byte", "double", "float", "integer", "long", "onlyinjndi"}; - /** An array with the values of the supported properties. */ + /** + * An array with the values of the supported properties. + */ private static final String[] PROP_VALUES = {"jndivalue", "jndivalue2", "1", "true", "10", "10.25", "20.25", "10", "1000000", "true"}; - /** An array with properties that are requested, but are not in the context. */ + /** + * An array with properties that are requested, but are not in the context. + */ private static final String[] MISSING_NAMES = {"missing/list", "test/imaginarykey", "foo/bar"}; /** * Adds a new name-and-value pair to list of {@link NameClassPair}s. * * @param pairs the list to add to - * @param name the name + * @param name the name * @param value the value */ private void addEnumPair(final List pairs, final String name, final Object value) { @@ -110,8 +115,8 @@ private void addEnumPair(final List pairs, final String name, fin * Binds a property value to the mock context. * * @param mockCtx the context - * @param name the name of the property - * @param value the value of the property + * @param name the name of the property + * @param value the value of the property */ private void bind(final Context mockCtx, final String name, final String value) throws NamingException { when(mockCtx.lookup(name)).thenReturn(value); @@ -122,7 +127,7 @@ private void bind(final Context mockCtx, final String name, final String value) * Configures the mock to expect a call for a non existing property. * * @param mockCtx the mock - * @param name the name of the property + * @param name the name of the property */ private void bindError(final Context mockCtx, final String name) throws NamingException { when(mockCtx.lookup(name)).thenThrow(new NameNotFoundException("unknown property")); @@ -152,7 +157,7 @@ private Context createCtxMock(final String prefix) throws NamingException { * Creates and initializes a naming enumeration. This is a shortcut of wrapping the result of * {@link #createNameClassPairs(String[], Object[])} in an instance of {@link ListBasedNamingEnumeration}. * - * @param names the names contained in the iteration + * @param names the names contained in the iteration * @param values the corresponding values * @return the mock for the enumeration */ @@ -163,7 +168,7 @@ private NamingEnumeration createNamingEnumeration(final String[] /** * Creates and initializes a list of {@link NameClassPair}s that can be used to create a naming enumeration. * - * @param names the names contained in the iteration + * @param names the names contained in the iteration * @param values the corresponding values * @return the mock for the enumeration */ @@ -199,7 +204,7 @@ public Context getInitialContext(@SuppressWarnings("rawtypes") final Hashtable e if (useCycles) { when(mockTopCtx.lookup("cycle")).thenReturn(mockCycleCtx); when(mockTopCtx.list("")).thenAnswer(invocation -> - createNamingEnumeration(new String[] {"test", "cycle"}, new Object[] {mockPrfxCtx, mockCycleCtx})); + createNamingEnumeration(new String[]{"test", "cycle"}, new Object[]{mockPrfxCtx, mockCycleCtx})); when(mockCycleCtx.list("")).thenAnswer(invocation -> { final List pairs = createNameClassPairs(PROP_NAMES, PROP_VALUES); addEnumPair(pairs, "cycleCtx", mockCycleCtx); @@ -207,7 +212,7 @@ public Context getInitialContext(@SuppressWarnings("rawtypes") final Hashtable e }); when(mockCycleCtx.lookup("cycleCtx")).thenReturn(mockCycleCtx); } else { - when(mockTopCtx.list("")).thenAnswer(invocation -> createNamingEnumeration(new String[] {"test"}, new Object[] {mockPrfxCtx})); + when(mockTopCtx.list("")).thenAnswer(invocation -> createNamingEnumeration(new String[]{"test"}, new Object[]{mockPrfxCtx})); } return mockBaseCtx; } diff --git a/src/test/java/org/apache/commons/configuration2/web/TestServletConfiguration.java b/src/test/java/org/apache/commons/configuration2/web/TestServletConfiguration.java index 0a2c65e8e5..5aeb6979a6 100644 --- a/src/test/java/org/apache/commons/configuration2/web/TestServletConfiguration.java +++ b/src/test/java/org/apache/commons/configuration2/web/TestServletConfiguration.java @@ -23,9 +23,9 @@ import java.util.Properties; -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.http.HttpServlet; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.http.HttpServlet; import org.apache.commons.configuration2.AbstractConfiguration; import org.apache.commons.configuration2.TestAbstractConfiguration; diff --git a/src/test/java/org/apache/commons/configuration2/web/TestServletContextConfiguration.java b/src/test/java/org/apache/commons/configuration2/web/TestServletContextConfiguration.java index 35bf5b15fa..7f39505fc2 100644 --- a/src/test/java/org/apache/commons/configuration2/web/TestServletContextConfiguration.java +++ b/src/test/java/org/apache/commons/configuration2/web/TestServletContextConfiguration.java @@ -23,10 +23,10 @@ import java.util.Properties; -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServlet; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServlet; import org.apache.commons.configuration2.AbstractConfiguration; import org.apache.commons.configuration2.TestAbstractConfiguration; diff --git a/src/test/java/org/apache/commons/configuration2/web/TestServletFilterConfiguration.java b/src/test/java/org/apache/commons/configuration2/web/TestServletFilterConfiguration.java index 7341e3bcdf..d2e21fe531 100644 --- a/src/test/java/org/apache/commons/configuration2/web/TestServletFilterConfiguration.java +++ b/src/test/java/org/apache/commons/configuration2/web/TestServletFilterConfiguration.java @@ -19,12 +19,16 @@ import static org.junit.jupiter.api.Assertions.assertThrows; +import java.util.Collections; import java.util.Enumeration; +import java.util.List; import java.util.Properties; +import java.util.stream.Collectors; -import javax.servlet.FilterConfig; -import javax.servlet.ServletContext; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletContext; +import org.apache.commons.collections.iterators.IteratorEnumeration; import org.apache.commons.configuration2.AbstractConfiguration; import org.apache.commons.configuration2.TestAbstractConfiguration; import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler; @@ -47,9 +51,12 @@ public String getInitParameter(final String key) { return parameters.getProperty(key); } + + @Override - public Enumeration getInitParameterNames() { - return parameters.keys(); + public Enumeration getInitParameterNames() { + final List keys = parameters.keySet().stream().filter(o -> o instanceof String).map(o -> (String) o).collect(Collectors.toList()); + return Collections.enumeration(keys); } @Override diff --git a/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java b/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java index c8492ec4e0..58af8aee5c 100644 --- a/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java +++ b/src/test/java/org/apache/commons/configuration2/web/TestServletRequestConfiguration.java @@ -26,7 +26,7 @@ import java.util.HashMap; import java.util.List; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.apache.commons.configuration2.AbstractConfiguration; import org.apache.commons.configuration2.BaseConfiguration;