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();