diff --git a/.classpath b/.classpath
index 2062d39..4a67902 100644
--- a/.classpath
+++ b/.classpath
@@ -1,8 +1,32 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index ea8c4bf..ec23a61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,6 @@
-/target
+/target
+.settings
+.classpath
+podio-java
+.project
+.factorypath
diff --git a/.project b/.project
index cd0f51a..e7a3349 100644
--- a/.project
+++ b/.project
@@ -1,23 +1,36 @@
-
-
- podio-java
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.m2e.core.maven2Builder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.m2e.core.maven2Nature
-
-
+
+
+ podio-java
+
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.wst.validation.validationbuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jem.workbench.JavaEMFNature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+ org.eclipse.wst.common.project.facet.core.nature
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index 861406d..4c28b1a 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,4 @@
-#Wed Dec 22 15:42:05 CET 2010
eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/test/java=UTF-8
encoding/=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index eacf108..00f1aa1 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,3 @@
-#Fri Oct 22 23:39:37 CEST 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
@@ -10,4 +9,5 @@ org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.processAnnotations=enabled
org.eclipse.jdt.core.compiler.source=1.6
diff --git a/LICENSE b/LICENSE
index d7462bc..1a3ed08 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,20 +1,20 @@
-Copyright (c) 2010-2011 Podio
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+Copyright (c) 2010-2011 Podio
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.markdown b/README.markdown
index 4345e48..cae9013 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,7 @@
-Podio Java API Client
----------------------
-
-This is the Java client for the [Podio](http://podio.com) API. Detailed documentation for the API is available on https://developers.podio.com. There you will find details on how to create an API key and use the API.
-
-An introduction to the Java client is also available at https://developers.podio.com/clients/java
+Podio Java API Client
+---------------------
+
+This is the Java client for the [Podio](http://podio.com) API. Detailed documentation for the API is available on https://developers.podio.com. There you will find details on how to create an API key and use the API.
+
+An introduction to the Java client is also available at https://developers.podio.com/clients/java
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 8cbef39..873e551 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,161 +1,169 @@
-
- 4.0.0
-
-
- org.sonatype.oss
- oss-parent
- 5
-
-
- com.podio
- api
- jar
-
- api
- 0.7.10-SNAPSHOT
- The official Java wrapper for the Podio API
- http://podio.com
-
-
- scm:git:git@github.com:podio/podio-java.git
- scm:git:git@github.com:podio/podio-java.git
- git@github.com:podio/podio-java.git
-
-
-
-
- maven-compiler-plugin
- 2.3.2
-
- 1.6
- 1.6
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.7
-
-
-
-
- Hudson
- http://hudson.ohoist.com/job/PodioJava/
-
-
-
- MIT
- http://creativecommons.org/licenses/MIT/
-
-
-
-
- holm
- Christian Holm
- holm@podio.com
-
-
-
-
- maven2-repository.dev.java.net
- Java.net Repository for Maven
- http://download.java.net/maven/2/
- default
-
-
- oss-joda-money
- OSS joda money
- http://oss.sonatype.org/content/repositories/joda-snapshots/
-
-
-
- UTF-8
-
-
-
-
- junit
- junit
- 4.12
-
-
- com.sun.jersey
- jersey-client
- 1.18.3
-
-
- com.sun.jersey.contribs
- jersey-multipart
- 1.18.3
-
-
- com.sun.jersey
- jersey-json
- 1.18.3
- compile
-
-
- org.eclipse.jetty
- jetty-client
- 9.2.7.v20150116
-
-
- org.codehaus.jackson
- jackson-jaxrs
- 1.9.13
-
-
- org.codehaus.jackson
- jackson-core-asl
- 1.9.13
-
-
- org.codehaus.jackson
- jackson-mapper-asl
- 1.9.13
-
-
- org.codehaus.jackson
- jackson-xc
- 1.9.13
-
-
- joda-time
- joda-time
- 2.7
-
-
- org.joda
- joda-money
- 0.10.0
- true
-
-
- org.apache.commons
- commons-io
- 1.3.2
- jar
- compile
-
-
- commons-beanutils
- commons-beanutils
- 1.9.2
-
-
-
-
-
-
- org.codehaus.mojo
- cobertura-maven-plugin
- 2.6
-
-
- html
-
-
-
-
-
-
+
+ 4.0.0
+
+
+ org.sonatype.oss
+ oss-parent
+ 5
+
+
+ com.podio
+ api
+ jar
+
+ api
+ 0.7.10-SNAPSHOT
+ The official Java wrapper for the Podio API
+ http://podio.com
+
+
+ scm:git:git@github.com:podio/podio-java.git
+ scm:git:git@github.com:podio/podio-java.git
+ git@github.com:podio/podio-java.git
+
+
+
+
+ maven-compiler-plugin
+ 2.3.2
+
+ 1.6
+ 1.6
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.7
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.12.4
+
+ true
+
+
+
+
+
+ Hudson
+ http://hudson.ohoist.com/job/PodioJava/
+
+
+
+ MIT
+ http://creativecommons.org/licenses/MIT/
+
+
+
+
+ holm
+ Christian Holm
+ holm@podio.com
+
+
+
+
+ maven2-repository.dev.java.net
+ Java.net Repository for Maven
+ http://download.java.net/maven/2/
+ default
+
+
+ oss-joda-money
+ OSS joda money
+ http://oss.sonatype.org/content/repositories/joda-snapshots/
+
+
+
+ UTF-8
+
+
+
+
+ junit
+ junit
+ 4.12
+
+
+ com.sun.jersey
+ jersey-client
+ 1.18.3
+
+
+ com.sun.jersey.contribs
+ jersey-multipart
+ 1.18.3
+
+
+ com.sun.jersey
+ jersey-json
+ 1.18.3
+ compile
+
+
+ org.eclipse.jetty
+ jetty-client
+ 9.2.7.v20150116
+
+
+ org.codehaus.jackson
+ jackson-jaxrs
+ 1.9.13
+
+
+ org.codehaus.jackson
+ jackson-core-asl
+ 1.9.13
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+ 1.9.13
+
+
+ org.codehaus.jackson
+ jackson-xc
+ 1.9.13
+
+
+ joda-time
+ joda-time
+ 2.7
+
+
+ org.joda
+ joda-money
+ 0.10.0
+ true
+
+
+ org.apache.commons
+ commons-io
+ 1.3.2
+ jar
+ compile
+
+
+ commons-beanutils
+ commons-beanutils
+ 1.9.2
+
+
+
+
+
+
+ org.codehaus.mojo
+ cobertura-maven-plugin
+ 2.6
+
+
+ html
+
+
+
+
+
+
diff --git a/src/main/java/com/podio/APIApplicationException.java b/src/main/java/com/podio/APIApplicationException.java
index fc2c5ae..e0a5921 100644
--- a/src/main/java/com/podio/APIApplicationException.java
+++ b/src/main/java/com/podio/APIApplicationException.java
@@ -1,50 +1,50 @@
-package com.podio;
-
-import java.util.Map;
-
-import com.sun.jersey.api.client.ClientResponse.Status;
-
-public class APIApplicationException extends RuntimeException {
-
- private static final long serialVersionUID = -4533177892434958205L;
-
- private final Status status;
-
- private final String error;
-
- private final String description;
-
- private final Map parameters;
-
- public APIApplicationException(Status status, String error,
- String description, Map parameters) {
- super();
- this.status = status;
- this.error = error;
- this.description = description;
- this.parameters = parameters;
- }
-
- @Override
- public String toString() {
- return "APIException [status=" + status + ", error=" + error
- + ", description=" + description + ", parameters=" + parameters
- + "]";
- }
-
- public Status getStatus() {
- return status;
- }
-
- public String getError() {
- return error;
- }
-
- public String getDescription() {
- return description;
- }
-
- public Map getParameters() {
- return parameters;
- }
-}
+package com.podio;
+
+import java.util.Map;
+
+import com.sun.jersey.api.client.ClientResponse.Status;
+
+public class APIApplicationException extends RuntimeException {
+
+ private static final long serialVersionUID = -4533177892434958205L;
+
+ private final Status status;
+
+ private final String error;
+
+ private final String description;
+
+ private final Map parameters;
+
+ public APIApplicationException(Status status, String error,
+ String description, Map parameters) {
+ super();
+ this.status = status;
+ this.error = error;
+ this.description = description;
+ this.parameters = parameters;
+ }
+
+ @Override
+ public String toString() {
+ return "APIException [status=" + status + ", error=" + error
+ + ", description=" + description + ", parameters=" + parameters
+ + "]";
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public String getError() {
+ return error;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Map getParameters() {
+ return parameters;
+ }
+}
diff --git a/src/main/java/com/podio/APIFactory.java b/src/main/java/com/podio/APIFactory.java
index 75a38c0..31e14c0 100644
--- a/src/main/java/com/podio/APIFactory.java
+++ b/src/main/java/com/podio/APIFactory.java
@@ -1,31 +1,31 @@
-package com.podio;
-
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * Factory to make it simple to get a specific API to work with
- */
-public class APIFactory {
-
- private final ResourceFactory resourceFactory;
-
- public APIFactory(ResourceFactory resourceFactory) {
- super();
- this.resourceFactory = resourceFactory;
- }
-
- public T getAPI(Class apiClass) {
- try {
- return apiClass.getConstructor(ResourceFactory.class).newInstance(
- this.resourceFactory);
- } catch (InstantiationException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- } catch (InvocationTargetException e) {
- throw new RuntimeException(e);
- } catch (NoSuchMethodException e) {
- throw new RuntimeException(e);
- }
- }
-}
+package com.podio;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * Factory to make it simple to get a specific API to work with
+ */
+public class APIFactory {
+
+ private final ResourceFactory resourceFactory;
+
+ public APIFactory(ResourceFactory resourceFactory) {
+ super();
+ this.resourceFactory = resourceFactory;
+ }
+
+ public T getAPI(Class apiClass) {
+ try {
+ return apiClass.getConstructor(ResourceFactory.class).newInstance(
+ this.resourceFactory);
+ } catch (InstantiationException e) {
+ throw new RuntimeException(e);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException(e);
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/main/java/com/podio/APITransportException.java b/src/main/java/com/podio/APITransportException.java
index 936c721..9569b5f 100644
--- a/src/main/java/com/podio/APITransportException.java
+++ b/src/main/java/com/podio/APITransportException.java
@@ -1,10 +1,10 @@
-package com.podio;
-
-public class APITransportException extends RuntimeException {
-
- private static final long serialVersionUID = 5668433811286152593L;
-
- public APITransportException(Throwable cause) {
- super(cause);
- }
-}
+package com.podio;
+
+public class APITransportException extends RuntimeException {
+
+ private static final long serialVersionUID = 5668433811286152593L;
+
+ public APITransportException(Throwable cause) {
+ super(cause);
+ }
+}
diff --git a/src/main/java/com/podio/BaseAPI.java b/src/main/java/com/podio/BaseAPI.java
index 3e8415a..453cc60 100644
--- a/src/main/java/com/podio/BaseAPI.java
+++ b/src/main/java/com/podio/BaseAPI.java
@@ -1,14 +1,14 @@
-package com.podio;
-
-public abstract class BaseAPI {
-
- private final ResourceFactory resourceFactory;
-
- public BaseAPI(ResourceFactory resourceFactory) {
- this.resourceFactory = resourceFactory;
- }
-
- protected ResourceFactory getResourceFactory() {
- return resourceFactory;
- }
-}
+package com.podio;
+
+public abstract class BaseAPI {
+
+ private final ResourceFactory resourceFactory;
+
+ public BaseAPI(ResourceFactory resourceFactory) {
+ this.resourceFactory = resourceFactory;
+ }
+
+ protected ResourceFactory getResourceFactory() {
+ return resourceFactory;
+ }
+}
diff --git a/src/main/java/com/podio/CustomJacksonJsonProvider.java b/src/main/java/com/podio/CustomJacksonJsonProvider.java
index bd4090c..1336891 100644
--- a/src/main/java/com/podio/CustomJacksonJsonProvider.java
+++ b/src/main/java/com/podio/CustomJacksonJsonProvider.java
@@ -1,34 +1,34 @@
-package com.podio;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
-
-import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
-import org.codehaus.jackson.map.ObjectMapper;
-
-/**
- * Custom jackson provider to accept multiple kinds of data as JSON
- */
-@Consumes({ MediaType.APPLICATION_JSON, "text/json", "text/javascript",
- "application/x-javascript", "text/plain" })
-public class CustomJacksonJsonProvider extends JacksonJsonProvider {
-
- public CustomJacksonJsonProvider(ObjectMapper mapper) {
- super(mapper);
- }
-
- @Override
- protected boolean isJsonType(MediaType mediaType) {
- if (super.isJsonType(mediaType)) {
- return true;
- }
-
- return mediaType != null
- && (mediaType.getType().equalsIgnoreCase("text") && mediaType
- .getSubtype().equals("javascript"))
- || (mediaType.getType().equalsIgnoreCase("application") && mediaType
- .getSubtype().equals("x-javascript"))
- || (mediaType.getType().equalsIgnoreCase("text") && mediaType
- .getSubtype().equals("plain"));
- }
-}
+package com.podio;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.core.MediaType;
+
+import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
+import org.codehaus.jackson.map.ObjectMapper;
+
+/**
+ * Custom jackson provider to accept multiple kinds of data as JSON
+ */
+@Consumes({ MediaType.APPLICATION_JSON, "text/json", "text/javascript",
+ "application/x-javascript", "text/plain" })
+public class CustomJacksonJsonProvider extends JacksonJsonProvider {
+
+ public CustomJacksonJsonProvider(ObjectMapper mapper) {
+ super(mapper);
+ }
+
+ @Override
+ protected boolean isJsonType(MediaType mediaType) {
+ if (super.isJsonType(mediaType)) {
+ return true;
+ }
+
+ return mediaType != null
+ && (mediaType.getType().equalsIgnoreCase("text") && mediaType
+ .getSubtype().equals("javascript"))
+ || (mediaType.getType().equalsIgnoreCase("application") && mediaType
+ .getSubtype().equals("x-javascript"))
+ || (mediaType.getType().equalsIgnoreCase("text") && mediaType
+ .getSubtype().equals("plain"));
+ }
+}
diff --git a/src/main/java/com/podio/DryRunFilter.java b/src/main/java/com/podio/DryRunFilter.java
index e70c260..1a6ea48 100644
--- a/src/main/java/com/podio/DryRunFilter.java
+++ b/src/main/java/com/podio/DryRunFilter.java
@@ -1,23 +1,23 @@
-package com.podio;
-
-import com.sun.jersey.api.client.ClientHandlerException;
-import com.sun.jersey.api.client.ClientRequest;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.filter.ClientFilter;
-
-/**
- * Used to put the API in testmode
- */
-public class DryRunFilter extends ClientFilter {
-
- @Override
- public ClientResponse handle(ClientRequest cr)
- throws ClientHandlerException {
- if (!cr.getURI().getPath().startsWith("/oauth")) {
- cr.getHeaders().putSingle("X-Podio-Dry-Run", "steYut44");
- }
-
- return getNext().handle(cr);
- }
-
-}
+package com.podio;
+
+import com.sun.jersey.api.client.ClientHandlerException;
+import com.sun.jersey.api.client.ClientRequest;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.filter.ClientFilter;
+
+/**
+ * Used to put the API in testmode
+ */
+public class DryRunFilter extends ClientFilter {
+
+ @Override
+ public ClientResponse handle(ClientRequest cr)
+ throws ClientHandlerException {
+ if (!cr.getURI().getPath().startsWith("/oauth")) {
+ cr.getHeaders().putSingle("X-Podio-Dry-Run", "steYut44");
+ }
+
+ return getNext().handle(cr);
+ }
+
+}
diff --git a/src/main/java/com/podio/ExceptionFilter.java b/src/main/java/com/podio/ExceptionFilter.java
index 95e135f..aa77f99 100644
--- a/src/main/java/com/podio/ExceptionFilter.java
+++ b/src/main/java/com/podio/ExceptionFilter.java
@@ -1,39 +1,40 @@
-package com.podio;
-
-import java.util.Map;
-
-import javax.ws.rs.core.Response.Status.Family;
-
-import com.sun.jersey.api.client.ClientHandlerException;
-import com.sun.jersey.api.client.ClientRequest;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
-import com.sun.jersey.api.client.filter.ClientFilter;
-
-public class ExceptionFilter extends ClientFilter {
-
- @SuppressWarnings("unchecked")
- @Override
- public ClientResponse handle(ClientRequest cr)
- throws ClientHandlerException {
- try {
- ClientResponse response = getNext().handle(cr);
- if (response.getClientResponseStatus() == null
- || response.getClientResponseStatus().getFamily() != Family.SUCCESSFUL) {
- Map errorData = response
- .getEntity(new GenericType