diff --git a/pom.xml b/pom.xml index a5a0b691..afd2672f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.google.oauth-client google-oauth-client - 1.20.0 + 1.23.0 com.googlecode.json-simple @@ -78,13 +78,13 @@ github UTF-8 UTF-8 - 1.7 + 1.8 Xero-Java-SDK - maven-deploy-plugin + maven3-deploy-plugin 2.8.1 internal.repo::default::file://${project.build.directory}/mvn-repo diff --git a/src/main/java/com/xero/api/OAuthRequestResource.java b/src/main/java/com/xero/api/OAuthRequestResource.java index b32eb935..82328354 100644 --- a/src/main/java/com/xero/api/OAuthRequestResource.java +++ b/src/main/java/com/xero/api/OAuthRequestResource.java @@ -284,6 +284,10 @@ public final Map execute() throws IOException,XeroApiException content = "DELETED"; } if (code != 200 && code != 204) { + Header rateHeader = response.getFirstHeader("x-rate-limit-problem"); + if (rateHeader != null) { + content += "&rate=" + rateHeader.getValue().toLowerCase(); + } XeroApiException e = new XeroApiException(code,content); throw e; } diff --git a/src/main/java/com/xero/api/XeroClient.java b/src/main/java/com/xero/api/XeroClient.java index 4f6c9aba..46756e08 100644 --- a/src/main/java/com/xero/api/XeroClient.java +++ b/src/main/java/com/xero/api/XeroClient.java @@ -1694,11 +1694,13 @@ public List getTrackingCategories() throws IOException { } } - public List getTrackingCategories(Date modifiedAfter, String where, String order) + public List getTrackingCategories(Date modifiedAfter, String where, String order, + Boolean includeArchived) throws IOException { Map params = new HashMap<>(); addToMapIfNotNull(params, "Where", where); addToMapIfNotNull(params, "order", order); + addToMapIfNotNull(params, "includeArchived", includeArchived); Response responseObj = get("TrackingCategories", modifiedAfter, params); if (responseObj.getTrackingCategories() == null) { diff --git a/src/main/java/com/xero/api/jaxb/XeroJAXBMarshaller.java b/src/main/java/com/xero/api/jaxb/XeroJAXBMarshaller.java index 7c35f399..da1b1ea0 100644 --- a/src/main/java/com/xero/api/jaxb/XeroJAXBMarshaller.java +++ b/src/main/java/com/xero/api/jaxb/XeroJAXBMarshaller.java @@ -20,9 +20,6 @@ * cannot create the marshaller or unmarshaller */ public class XeroJAXBMarshaller { - - private final Marshaller marshaller; - private final Unmarshaller unmarshaller; static final JAXBContext context = initContext(); private static JAXBContext initContext() { @@ -34,20 +31,13 @@ private static JAXBContext initContext() { } public XeroJAXBMarshaller() { - try { - //context = JAXBContext.newInstance("com.xero.model"); - marshaller = context.createMarshaller(); - unmarshaller = context.createUnmarshaller(); - } catch (Exception e) { - throw new XeroClientException(e.getMessage(), e); - } } public String marshall(JAXBElement object) { try { StringWriter writer = new StringWriter(); - marshaller.marshal(object, writer); + context.createMarshaller().marshal(object, writer); return writer.toString(); } catch (JAXBException e) { throw new IllegalStateException("Error marshalling request object " + object.getClass(), e); @@ -57,7 +47,7 @@ public String marshall(JAXBElement object) { public T unmarshall(String responseBody, Class clazz) throws UnsupportedEncodingException { try { Source source = new StreamSource(new StringReader(responseBody)); - return unmarshaller.unmarshal(source, clazz).getValue(); + return context.createUnmarshaller().unmarshal(source, clazz).getValue(); } catch (JAXBException e) { throw new IllegalStateException("Error unmarshalling response: " + responseBody, e); } diff --git a/src/main/java/com/xero/example/RequestResourceServlet.java b/src/main/java/com/xero/example/RequestResourceServlet.java index 8db96ad0..8a6a434c 100755 --- a/src/main/java/com/xero/example/RequestResourceServlet.java +++ b/src/main/java/com/xero/example/RequestResourceServlet.java @@ -982,7 +982,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) String deleteTrackingCategoryOption = client.deleteTrackingCategoryOption(newTrackingCategory.get(0).getTrackingCategoryID(),newTrackingCategoryOption.get(0).getTrackingOptionID()); messages.add("Delete TrackingCategory Option - : " + deleteTrackingCategoryOption); - List TrackingCategoryWhere = client.getTrackingCategories(null,"Status==\"ACTIVE\"",null); + List TrackingCategoryWhere = client.getTrackingCategories(null,"Status==\"ACTIVE\"",null, false); messages.add("Get a TrackingCategory with WHERE clause - Name : " + TrackingCategoryWhere.get(0).getName()); List TrackingCategoryList = client.getTrackingCategories();