Author: tchemit Date: 2012-07-12 18:55:57 +0200 (Thu, 12 Jul 2012) New Revision: 845 Url: http://nuiton.org/repositories/revision/maven-helper-plugin/845 Log: fixes #2183: Introduce a RequestFactory instead of using it inside the rest client fixes #2182: updates to commons lang 3 Added: trunk/src/main/java/org/nuiton/io/rest/AbstractRequestFactory.java trunk/src/main/java/org/nuiton/io/rest/RequestFactory.java Modified: trunk/pom.xml trunk/src/main/java/org/nuiton/io/rest/DefaultRestClientConfiguration.java trunk/src/main/java/org/nuiton/io/rest/RestClient.java trunk/src/main/java/org/nuiton/io/rest/RestRequest.java trunk/src/main/java/org/nuiton/io/rest/RestRequestBuilder.java trunk/src/main/java/org/nuiton/io/xpp3/DefaultDataConverter.java trunk/src/main/java/org/nuiton/io/xpp3/PropertyMapper.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/pom.xml 2012-07-12 16:55:57 UTC (rev 845) @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- #%L - Maven helper plugin - - $Id$ - $HeadURL$ + Helper Maven plugin %% Copyright (C) 2009 - 2010 Tony Chemit, CodeLutin %% @@ -23,7 +20,9 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> @@ -56,8 +55,8 @@ </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> </dependency> <dependency> @@ -146,7 +145,7 @@ <version>${mavenVersion}</version> <scope>provided</scope> </dependency> - + <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> @@ -222,7 +221,7 @@ <artifactId>log4j</artifactId> <scope>test</scope> </dependency> - + <dependency> <groupId>velocity</groupId> <artifactId>velocity</artifactId> @@ -245,7 +244,7 @@ <id>tchemit</id> <email>chemit at codelutin dot com</email> <organization>CodeLutin</organization> - <timezone>+2</timezone> + <timezone>Europe/Paris</timezone> <roles> <role>Lead</role> <role>Developer</role> @@ -256,7 +255,7 @@ <id>ymartel</id> <email>martel at codelutin dot com</email> <organization>CodeLutin</organization> - <timezone>+2</timezone> + <timezone>Europe/Paris</timezone> <roles> <role>Developer</role> </roles> @@ -268,9 +267,15 @@ <!-- ************************************************************* --> <scm> - <connection>scm:svn:http://svn.nuiton.org/svn/maven-helper-plugin/trunk</connection> - <developerConnection>scm:svn:http://svn.nuiton.org/svn/maven-helper-plugin/trunk</developerConnection> - <url>http://www.nuiton.org/repositories/browse/maven-helper-plugin/trunk</url> + <connection> + scm:svn:http://svn.nuiton.org/svn/maven-helper-plugin/trunk + </connection> + <developerConnection> + scm:svn:http://svn.nuiton.org/svn/maven-helper-plugin/trunk + </developerConnection> + <url> + http://www.nuiton.org/repositories/browse/maven-helper-plugin/trunk + </url> </scm> <distributionManagement> @@ -301,11 +306,6 @@ <!-- documentation is in apt --> <siteSourcesType>apt</siteSourcesType> - <!-- Stay on jdk5 (requirement for some other project using this - library) --> - <maven.compiler.source>1.5</maven.compiler.source> - <maven.compiler.target>1.5</maven.compiler.target> - </properties> <build> @@ -487,7 +487,7 @@ </plugins> </build> - + </profile> <!-- prepare the assembly at release time --> @@ -527,7 +527,7 @@ </plugins> </build> - + </profile> <!-- run the IT at release time --> Added: trunk/src/main/java/org/nuiton/io/rest/AbstractRequestFactory.java =================================================================== --- trunk/src/main/java/org/nuiton/io/rest/AbstractRequestFactory.java (rev 0) +++ trunk/src/main/java/org/nuiton/io/rest/AbstractRequestFactory.java 2012-07-12 16:55:57 UTC (rev 845) @@ -0,0 +1,57 @@ +package org.nuiton.io.rest; + +import com.google.common.collect.Maps; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Map; + +/** + * Abstract implementation of {@link RequestFactory}. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.5 + */ +public abstract class AbstractRequestFactory implements RequestFactory { + + public static final DateFormat DATE_FORMAT = + new SimpleDateFormat("yyyy-MM-dd"); + + /** registred requests */ + protected final Map<String, RestRequestBuilder> requestBuilders; + + public AbstractRequestFactory() { + requestBuilders = Maps.newTreeMap(); + } + + /** {@inheritDoc} */ + public void addRequestBuilder(RestRequestBuilder builder) { + String name = builder.getName(); + if (requestBuilders.containsKey(name)) { + throw new IllegalArgumentException("a request builder with name " + + name + " already exists."); + } + requestBuilders.put(name, builder); + } + + /** {@inheritDoc} */ + public RestRequest getRequest(String id, Object... args) { + + RestRequest r; + RestRequestBuilder builder = requestBuilders.get(id); + if (builder == null) { + + throw new IllegalArgumentException( + "Could not find any request builder for request named '" + + id + "'"); + } + r = builder.create(args); + if (r == null) { + throw new IllegalArgumentException( + "Could not find any request named '" + id + + "' using builder " + builder); + } + return r; + } + +} Modified: trunk/src/main/java/org/nuiton/io/rest/DefaultRestClientConfiguration.java =================================================================== --- trunk/src/main/java/org/nuiton/io/rest/DefaultRestClientConfiguration.java 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/src/main/java/org/nuiton/io/rest/DefaultRestClientConfiguration.java 2012-07-12 16:55:57 UTC (rev 845) @@ -25,8 +25,8 @@ package org.nuiton.io.rest; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.lang.builder.ToStringStyle; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import java.net.URL; Added: trunk/src/main/java/org/nuiton/io/rest/RequestFactory.java =================================================================== --- trunk/src/main/java/org/nuiton/io/rest/RequestFactory.java (rev 0) +++ trunk/src/main/java/org/nuiton/io/rest/RequestFactory.java 2012-07-12 16:55:57 UTC (rev 845) @@ -0,0 +1,35 @@ +package org.nuiton.io.rest; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +/** + * Factory of {@link RestRequest}. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.5 + */ +public interface RequestFactory { + + public static final DateFormat DATE_FORMAT = + new SimpleDateFormat("yyyy-MM-dd"); + + void addDefaultRequests(); + + /** + * Add a request into the factory. + * + * @param builder the new request to add + */ + void addRequestBuilder(RestRequestBuilder builder); + + /** + * Obtain a request given his id and the args given. + * + * @param id id of the request + * @param args args passed to build the request + * @return the new request + */ + RestRequest getRequest(String id, Object... args); + +} Modified: trunk/src/main/java/org/nuiton/io/rest/RestClient.java =================================================================== --- trunk/src/main/java/org/nuiton/io/rest/RestClient.java 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/src/main/java/org/nuiton/io/rest/RestClient.java 2012-07-12 16:55:57 UTC (rev 845) @@ -30,8 +30,6 @@ import java.io.IOException; import java.io.InputStream; -import java.util.Map; -import java.util.TreeMap; /** * Abtract REST client. @@ -49,15 +47,13 @@ /** rest session */ protected RestSession session; - /** registred requests */ - protected final Map<String, RestRequestBuilder> requestBuilders; - /** - * Add the default available requests for this client. - * <p/> - * <b>Note:</b> This method is invoked in the constructor of the client. + * Obtains the underlying factory of requests. + * + * @return the factory of requests + * @since 1.5 */ - protected abstract void addDefaultRequests(); + public abstract RequestFactory getRequestFactory(); /** * Open the client. @@ -82,12 +78,9 @@ protected abstract void close(RestSession session) throws IOException; public RestClient() { - requestBuilders = new TreeMap<String, RestRequestBuilder>(); - addDefaultRequests(); } public RestClient(RestClientConfiguration configuration) { - this(); this.configuration = configuration; } @@ -97,11 +90,7 @@ * @param builder the new request to add */ public void addRequestBuilder(RestRequestBuilder builder) { - String name = builder.getName(); - if (requestBuilders.containsKey(name)) { - throw new IllegalArgumentException("a request builder with name " + name + " already exists."); - } - requestBuilders.put(name, builder); + getRequestFactory().addRequestBuilder(builder); } /** @@ -112,12 +101,7 @@ * @return the new request */ public RestRequest getRequest(String id, Object... args) { - RestRequestBuilder builder = requestBuilders.get(id); - if (builder == null) { - // pas de builder de requete... - return null; - } - RestRequest r = builder.create(args); + RestRequest r = getRequestFactory().getRequest(id, args); return r; } Modified: trunk/src/main/java/org/nuiton/io/rest/RestRequest.java =================================================================== --- trunk/src/main/java/org/nuiton/io/rest/RestRequest.java 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/src/main/java/org/nuiton/io/rest/RestRequest.java 2012-07-12 16:55:57 UTC (rev 845) @@ -26,6 +26,7 @@ package org.nuiton.io.rest; import java.io.File; +import java.net.URL; import java.util.Map; /** @@ -44,6 +45,21 @@ */ String[] getParameters(); + /** + * @return {@code true} if request has some attachments. + * @since 1.5 + */ + boolean containsAttachments(); + /** @return the map of attachment to pass to request */ Map<String, File> getAttachments(); + + /** + * Obtain the full url of the request. + * + * @param baseUrl the base url to use + * @return the full url for this request + * @since 1.5 + */ + String toPath(URL baseUrl); } Modified: trunk/src/main/java/org/nuiton/io/rest/RestRequestBuilder.java =================================================================== --- trunk/src/main/java/org/nuiton/io/rest/RestRequestBuilder.java 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/src/main/java/org/nuiton/io/rest/RestRequestBuilder.java 2012-07-12 16:55:57 UTC (rev 845) @@ -25,13 +25,15 @@ package org.nuiton.io.rest; +import java.io.Serializable; + /** * The contract of a request builder. * * @author tchemit <chemit@codelutin.com> * @since 1.0.3 */ -public interface RestRequestBuilder { +public interface RestRequestBuilder extends Serializable { /** @return the unique name of the request builder */ String getName(); Modified: trunk/src/main/java/org/nuiton/io/xpp3/DefaultDataConverter.java =================================================================== --- trunk/src/main/java/org/nuiton/io/xpp3/DefaultDataConverter.java 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/src/main/java/org/nuiton/io/xpp3/DefaultDataConverter.java 2012-07-12 16:55:57 UTC (rev 845) @@ -35,7 +35,6 @@ public enum DefaultDataConverter implements DataConverter { Boolean { - @Override public Object convert(String t) throws Exception { Object r = java.lang.Boolean.valueOf(t); @@ -43,7 +42,6 @@ } }, Short { - @Override public Object convert(String t) throws Exception { Object r = java.lang.Short.valueOf(t); @@ -51,7 +49,6 @@ } }, Integer { - @Override public Object convert(String t) throws Exception { Object r = java.lang.Integer.valueOf(t); @@ -59,7 +56,6 @@ } }, Long { - @Override public Object convert(String t) throws Exception { Object r = java.lang.Long.valueOf(t); @@ -67,7 +63,6 @@ } }, Float { - @Override public Object convert(String t) throws Exception { Object r = java.lang.Float.valueOf(t); @@ -75,7 +70,6 @@ } }, Double { - @Override public Object convert(String t) throws Exception { Object r = java.lang.Double.valueOf(t); @@ -83,7 +77,6 @@ } }, Text { - @Override public Object convert(String t) throws Exception { return t; Modified: trunk/src/main/java/org/nuiton/io/xpp3/PropertyMapper.java =================================================================== --- trunk/src/main/java/org/nuiton/io/xpp3/PropertyMapper.java 2012-07-12 16:53:52 UTC (rev 844) +++ trunk/src/main/java/org/nuiton/io/xpp3/PropertyMapper.java 2012-07-12 16:55:57 UTC (rev 845) @@ -26,8 +26,8 @@ package org.nuiton.io.xpp3; import com.google.common.base.Function; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codehaus.plexus.util.xml.pull.XmlPullParser;
participants (1)
-
tchemit@users.nuiton.org