diff --git a/README.md b/README.md
index 411d8ede..9bcb1f17 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,9 @@ V3-JAVA-SDK
**Continuous Integration:** [](https://travis-ci.org/intuit/QuickBooks-V3-Java-SDK)
+**Maven:** [](http://search.maven.org/#artifactdetails%7Ccom.intuit.quickbooks-online%7Cipp-v3-java-devkit%7C2.9.0%7C)
+[](http://search.maven.org/#artifactdetails%7Ccom.intuit.quickbooks-online%7Cipp-v3-java-data%7C2.9.0%7C)
+
**License:** [](http://www.apache.org/licenses/LICENSE-2.0)
@@ -31,6 +34,7 @@ The QuickBooks Online Java SDK provides a set of Java class libraries that make
* ipp-v3-java-devkit-assembly - builds final deployment package (zip) which includes everything
* ipp-v3-java-devkit-shaded-assembly - builds lightweight version (some dependencies excluded)
* ipp-v3-java-devkit-javadoc - contains javadoc for data and devkit classes
+* ipp-java-qbapihelper - contains Quickbooks API Helper methods for OAuth, Disconnect and Reconnect API
## System Requirements
The SDK works on JDK 1.6 and above.
diff --git a/ipp-java-qbapihelper/pom.xml b/ipp-java-qbapihelper/pom.xml
new file mode 100644
index 00000000..6f38e2c9
--- /dev/null
+++ b/ipp-java-qbapihelper/pom.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+ 4.0.0
+
+ ipp-v3-java-devkit-pom
+ com.intuit.quickbooks-online
+ 2.9.1
+
+ ipp-java-qbapihelper
+ 2.9.1
+ jar
+ Quickbooks API Helper for Oauth
+ Quickbooks API Helper Project for OAuth, Disconnect and Reconnect
+
+
+
+
+ testng.xml
+
+
+
+
+
+
+ oauth.signpost
+ signpost-core
+ 1.2.1.1
+
+
+ oauth.signpost
+ signpost-commonshttp4
+ 1.2
+
+
+ net.sf.kxml
+ kxml2
+ 2.2.2
+
+
+ org.testng
+ testng
+ 6.1.1
+ test
+
+
+ javax.servlet
+ servlet-api
+ 2.4
+ provided
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.5
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.2
+
+
+ org.openid4java
+ openid4java
+ 0.9.8
+
+
+ org.slf4j
+ slf4j-api
+ 1.6.4
+
+
+
+
+
+
+
+
+ ${basedir}/src/test/resources
+
+
+
+
+ ${basedir}/src/main/resources
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.5.1
+
+ 1.6
+ 1.6
+
+
+
+ maven-jar-plugin
+
+
+
+ fully.qualified.MainClass
+
+
+
+
+
+
+ maven-assembly-plugin
+
+ ${project.artifactId}-${project.version}
+
+ jar-with-dependencies
+
+
+
+
+ qb-helper
+ package
+
+ single
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/IAPlatformClient.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/IAPlatformClient.java
new file mode 100644
index 00000000..46f9ce7c
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/IAPlatformClient.java
@@ -0,0 +1,184 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+package com.intuit.ia.connection;
+
+/**
+ *
+ * This class exposes APIs for disconnect (disconnect) and fetching blue dot menu dropdown(getAppMenu)
+ */
+
+import java.util.List;
+import java.util.Map;
+
+import org.openid4java.discovery.Identifier;
+
+import com.intuit.ia.exception.ConnectionException;
+import com.intuit.ia.exception.OAuthException;
+import com.intuit.ia.exception.OpenIdException;
+
+public class IAPlatformClient {
+
+ private PlatformHttpClient httpClient;
+
+ private OAuthHelper oAuthHelper;
+ private OpenIdHelper openIdHelper;
+
+ public IAPlatformClient() {
+ openIdHelper = new OpenIdHelper();
+ oAuthHelper = new OAuthHelper();
+ }
+
+ /**
+ * Disconnects the user from quickbooks
+ *
+ * @throws ConnectionException
+ */
+ public PlatformResponse disconnect(String consumerKey, String consumerSecret,
+ String accessToken, String accessTokenSecret)
+ throws ConnectionException {
+ httpClient = new PlatformHttpClient(consumerKey, consumerSecret,
+ accessToken, accessTokenSecret);
+ return this.httpClient.disconnect();
+ }
+ /**
+ * getCurrentUser the user from quickbooks
+ *
+ * @throws ConnectionException
+ */
+ public User getcurrentUser(String consumerKey, String consumerSecret,
+ String accessToken, String accessTokenSecret)
+ throws ConnectionException {
+ httpClient = new PlatformHttpClient(consumerKey, consumerSecret,
+ accessToken, accessTokenSecret);
+ User user = null;;
+ try {
+ user = this.httpClient.getCurrentUser();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return user;
+ }
+
+ /**
+ * Get App Menu returns list of all the applications that are linked with
+ * the selected company
+ *
+ * @return List: Returns HTML as a list of Strings
+ * @throws ConnectionException
+ *
+ */
+ public List getAppMenu(String consumerKey, String consumerSecret,
+ String accessToken, String accessTokenSecret)
+ throws ConnectionException {
+ try {
+ List menulist;
+ httpClient = new PlatformHttpClient(consumerKey, consumerSecret,
+ accessToken, accessTokenSecret);
+ menulist = this.httpClient.getAppMenu();
+ return menulist;
+ } catch (ConnectionException conEx) {
+ throw conEx;
+ } catch (Exception e) {
+ throw new ConnectionException("Failed to fetch appmenu: "
+ + e.getMessage());
+ }
+ }
+
+ public Map getRequestTokenAndSecret(String consumerKey,
+ String consumerSecret) throws OAuthException {
+ return oAuthHelper.getRequestToken(consumerKey, consumerSecret);
+ }
+
+ /**
+ *
+ * @param requestToken
+ * @return authorizeUrl
+ * @throws OAuthException
+ *
+ * This API will prepare the authorization URL and return it back
+ */
+
+ public String getOauthAuthorizeUrl(String requestToken)
+ throws OAuthException {
+
+ return oAuthHelper.getAuthorizeUrl(requestToken);
+
+ }
+
+ /**
+ *
+ * Gets the accesstoken and accesstokensecret
+ *
+ * @param verofierCode
+ * @param requestToken
+ * (After the user authorization)
+ * @param requestTokensecret
+ * @return Map : where accesstoken will be in the key "accessToken"
+ * and accesstokensecret will be in key "accessTokenSecret"
+ *
+ */
+
+ public Map getOAuthAccessToken(String verifierCode,
+ String requestToken, String requestTokenSecret, String consumerKey,
+ String consumerSecret) throws OAuthException {
+
+ return oAuthHelper.getAccessToken(verifierCode, requestToken,
+ requestTokenSecret, consumerKey, consumerSecret);
+ }
+
+ /**
+ * Gets the authorization url for OpenId
+ *
+ * @throws
+ *
+ *
+ */
+
+ public String getOpenIdAuthorizeUrl() throws OpenIdException {
+
+ return openIdHelper.initOpenIdFlow();
+ }
+
+ /**
+ *
+ * @param receivingUrl
+ * @param parameterMap
+ * @return Identifier : the OpenId Identifier
+ * @throws OpenIdException
+ */
+ public Identifier verifyOpenIdResponse(String receivingUrl,
+ Map parameterMap) throws OpenIdException {
+ return openIdHelper.verifyResponse(receivingUrl, parameterMap);
+ }
+
+ /**
+ *
+ * @param consumerKey
+ * @param consumerSecret
+ * @param accessToken
+ * @param accessTokenSecret
+ * @throws ConnectionException
+ */
+ public PlatformResponse reConnect(String consumerKey, String consumerSecret,
+ String accessToken, String accessTokenSecret)
+ throws ConnectionException {
+
+ httpClient = new PlatformHttpClient(consumerKey, consumerSecret,
+ accessToken, accessTokenSecret);
+ return this.httpClient.reConnect();
+ }
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/OAuthHelper.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/OAuthHelper.java
new file mode 100644
index 00000000..b2b6d9f4
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/OAuthHelper.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+package com.intuit.ia.connection;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+import oauth.signpost.OAuthConsumer;
+import oauth.signpost.basic.DefaultOAuthConsumer;
+import oauth.signpost.exception.OAuthCommunicationException;
+import oauth.signpost.exception.OAuthExpectationFailedException;
+import oauth.signpost.exception.OAuthMessageSignerException;
+import oauth.signpost.http.HttpParameters;
+
+import org.slf4j.Logger;
+
+import com.intuit.ia.exception.OAuthException;
+import com.intuit.ia.utils.IAHelperConfig;
+import com.intuit.ia.utils.LoggerImpl;
+import com.intuit.ia.utils.PlatformConstants;
+
+class OAuthHelper {
+
+ private IAHelperConfig config;
+
+ public OAuthHelper() {
+ config = IAHelperConfig.getInstance();
+ }
+
+ protected Logger logger = LoggerImpl.getInstance();
+
+ public Map getRequestToken(String consumerkey,
+ String consumersecret) throws OAuthException {
+
+ logger.debug("Inside getRequestToken, Consumer Key and Secret: "
+ + consumerkey + " " + consumersecret);
+ String callback_url = config
+ .getProperty(PlatformConstants.OAUTH_CALLBACK_URL);
+ logger.debug("callback URL: " + callback_url);
+ OAuthConsumer ouathconsumer = new DefaultOAuthConsumer(consumerkey,
+ consumersecret);
+ try {
+ HttpParameters additionalParams = new HttpParameters();
+ additionalParams.put("oauth_callback",
+ URLEncoder.encode(callback_url, "UTF-8"));
+ ouathconsumer.setAdditionalParameters(additionalParams);
+ } catch (UnsupportedEncodingException e) {
+ logger.debug("Failed to get request token :" + e.getMessage());
+ throw new OAuthException(e.getMessage(), e);
+ }
+
+ String requestret = "";
+ String requestToken = "";
+ String requestTokenSecret = "";
+
+ try {
+ String signedRequestTokenUrl = ouathconsumer.sign(config
+ .getProperty(PlatformConstants.REQUEST_TOKEN_URL));
+ logger.debug("signedRequestTokenUrl: " + signedRequestTokenUrl);
+
+ URL url;
+
+ url = new URL(signedRequestTokenUrl);
+
+ HttpURLConnection httpconnection = (HttpURLConnection) url
+ .openConnection();
+
+ httpconnection.setRequestMethod("GET");
+ httpconnection
+ .setRequestProperty("Content-type", "application/xml");
+ httpconnection.setRequestProperty("Content-Length", "0");
+ if (httpconnection != null) {
+ BufferedReader rd = new BufferedReader(new InputStreamReader(
+ httpconnection.getInputStream()));
+ StringBuffer sb = new StringBuffer();
+ String line;
+ while ((line = rd.readLine()) != null) {
+ sb.append(line);
+
+ }
+ rd.close();
+ requestret = sb.toString();
+ }
+ String[] requestTokenSections = requestret.split("&");
+
+ for (int i = 0; i < requestTokenSections.length; i++) {
+ String[] currentElements = requestTokenSections[i].split("=");
+
+ if (currentElements[0].equalsIgnoreCase("oauth_token")) {
+ requestToken = currentElements[1];
+ } else if (currentElements[0]
+ .equalsIgnoreCase("oauth_token_secret")) {
+ requestTokenSecret = currentElements[1];
+ }
+ }
+
+ Map requesttokenmap = new HashMap();
+ requesttokenmap.put("requestToken", requestToken);
+ requesttokenmap.put("requestTokenSecret", requestTokenSecret);
+ return requesttokenmap;
+
+ } catch (OAuthMessageSignerException e) {
+ // LOG.error(e.getLocalizedMessage());
+ } catch (OAuthExpectationFailedException e) {
+ // LOG.error(e.getLocalizedMessage());
+ } catch (OAuthCommunicationException e) {
+ // LOG.error(e.getLocalizedMessage());
+ } catch (MalformedURLException e) {
+ // LOG.error(e.getLocalizedMessage());
+ } catch (IOException e) {
+ // LOG.error(e.getLocalizedMessage());
+ }
+ logger.debug("Error: Failed to get request token.");
+ return null;
+
+ }
+
+ public String getAuthorizeUrl(String requestToken) throws OAuthException {
+
+ String authorizeURL = "";
+
+ try {
+ authorizeURL = config.getProperty(PlatformConstants.AUTHORIZE_URL)
+ + "?oauth_token=" + requestToken;
+ } catch (Exception e) {
+ // LOG.error(e.getLocalizedMessage());
+
+ }
+
+ logger.debug("Authorize URL: " + authorizeURL);
+ return authorizeURL;
+
+ }
+
+ public Map getAccessToken(String verifierCode,
+ String requestToken, String requestTokenSecret, String consumerkey,
+ String consumersecret) throws OAuthException {
+ String accessToken = "";
+ String accessTokenSecret = "";
+ String accesTokenUrl = "";
+ Map accesstokenmap = new HashMap();
+ try {
+ OAuthConsumer consumer = new DefaultOAuthConsumer(consumerkey,
+ consumersecret);
+ consumer.setTokenWithSecret(requestToken, requestTokenSecret);
+ HttpParameters additionalParams = new HttpParameters();
+ additionalParams.put("oauth_callback", "oob");
+ additionalParams.put("oauth_verifier", verifierCode);
+ consumer.setAdditionalParameters(additionalParams);
+ accesTokenUrl = IAHelperConfig.getInstance().getProperty(
+ PlatformConstants.ACCESS_TOKEN_URL);
+ logger.debug("Access token url : " + accesTokenUrl);
+ String signedURL = consumer.sign(accesTokenUrl);
+ URL url = new URL(signedURL);
+ HttpURLConnection urlConnection = (HttpURLConnection) url
+ .openConnection();
+ urlConnection.setRequestMethod("GET");
+ urlConnection.setRequestProperty("Content-type", "application/xml");
+ urlConnection.setRequestProperty("Content-Length", "0");
+
+ String accesstokenresponse = "";
+ if (urlConnection != null) {
+ BufferedReader rd = new BufferedReader(new InputStreamReader(
+ urlConnection.getInputStream()));
+ StringBuffer sb = new StringBuffer();
+ String line;
+ while ((line = rd.readLine()) != null) {
+ sb.append(line);
+ }
+ rd.close();
+ accesstokenresponse = sb.toString();
+ }
+ if (accesstokenresponse != null) {
+ String[] responseElements = accesstokenresponse.split("&");
+ if (responseElements.length > 1) {
+ accessToken = responseElements[1].split("=")[1];
+ accessTokenSecret = responseElements[0].split("=")[1];
+ accesstokenmap.put("accessToken", accessToken);
+ accesstokenmap.put("accessTokenSecret", accessTokenSecret);
+ return accesstokenmap;
+ }
+ }
+ } catch (Exception e) {
+ logger.debug("Failed to get access token :" + e.getMessage());
+ throw new OAuthException(e.getMessage(), e);
+ }
+ return accesstokenmap;
+ }
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/OpenIdHelper.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/OpenIdHelper.java
new file mode 100644
index 00000000..4b729006
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/OpenIdHelper.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+package com.intuit.ia.connection;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.openid4java.OpenIDException;
+import org.openid4java.association.AssociationSessionType;
+import org.openid4java.consumer.ConsumerException;
+import org.openid4java.consumer.ConsumerManager;
+import org.openid4java.consumer.InMemoryConsumerAssociationStore;
+import org.openid4java.consumer.InMemoryNonceVerifier;
+import org.openid4java.consumer.VerificationResult;
+import org.openid4java.discovery.DiscoveryException;
+import org.openid4java.discovery.DiscoveryInformation;
+import org.openid4java.discovery.Identifier;
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.MessageException;
+import org.openid4java.message.ParameterList;
+import org.openid4java.message.ax.FetchRequest;
+import org.slf4j.Logger;
+
+import com.intuit.ia.exception.OpenIdException;
+import com.intuit.ia.utils.IAHelperConfig;
+import com.intuit.ia.utils.LoggerImpl;
+import com.intuit.ia.utils.PlatformConstants;
+
+/*
+ * This is a utility class for OpenID routines.
+ */
+
+public class OpenIdHelper {
+
+ private Logger logger = LoggerImpl.getInstance();
+ private ConsumerManager consumerManager = null;
+ private DiscoveryInformation discoveryInfo;
+
+ /**
+ *
+ * @param receivingUrl
+ * @param parameterMap
+ * @return OpenId Identifier
+ * @throws OpenIdException
+ */
+ public Identifier verifyResponse(String receivingUrl,
+ Map parameterMap) throws OpenIdException {
+ try {
+
+ if (consumerManager == null) {
+ logger.debug("The ConsumerManager is null");
+ }
+ final ParameterList response = new ParameterList(parameterMap);
+ final VerificationResult verification = consumerManager.verify(
+ receivingUrl, response, discoveryInfo);
+
+ // Examine the verification result
+ final Identifier verified = verification.getVerifiedId();
+ return verified; // Success.
+
+ } catch (OpenIDException e) {
+ logger.debug("OpenID exception :" + e.getMessage());
+ throw new OpenIdException(e.getMessage());
+ }
+ }
+
+ /**
+ *
+ * @return String:the openID auth url
+ * @throws OpenIdException
+ * @throws OpenIDException
+ */
+ public String initOpenIdFlow() throws OpenIdException {
+
+ final List discoveries = new ArrayList();
+ consumerManager = new ConsumerManager();
+ consumerManager.setAssociations(new InMemoryConsumerAssociationStore());
+ consumerManager.setNonceVerifier(new InMemoryNonceVerifier(5000));
+ consumerManager.setMinAssocSessEnc(AssociationSessionType.DH_SHA256);
+ DiscoveryInformation discovered = null;
+ String openIdProviderUrl;
+ openIdProviderUrl = IAHelperConfig.getInstance().getProperty(PlatformConstants.OPENID_PROVIDER_URL);
+ try {
+ logger.debug("OpenID Provider URL = " + openIdProviderUrl);
+ discovered = new DiscoveryInformation(new URL(openIdProviderUrl));
+ } catch (DiscoveryException e) {
+ logger.debug("Failed to obtain discovery information :" + e.getMessage());
+ throw new OpenIdException(e.getMessage(),e);
+ } catch (MalformedURLException me) {
+ logger.debug("Malformed URL :" + me.getMessage());
+ throw new OpenIdException(me.getMessage(),me);
+ }
+ discoveries.add(discovered);
+ discoveryInfo = consumerManager.associate(discoveries);
+ final FetchRequest fetch = FetchRequest.createFetchRequest();
+ try {
+ fetch.addAttribute("FirstName",
+ "http://axschema.org/namePerson/first", true);
+ fetch.addAttribute("LastName",
+ "http://axschema.org/namePerson/last", true);
+ fetch.addAttribute("Email", "http://axschema.org/contact/email",
+ true);
+ fetch.addAttribute("RealmId", "http://axschema.org/intuit/realmId",
+ true);
+ } catch (MessageException e) {
+ // LOG.error(e.getLocalizedMessage());
+ throw new OpenIdException(e.getMessage(), e);
+ }
+
+ fetch.setCount("Email", 3);
+ String openIdReturnUrl;
+ openIdReturnUrl = IAHelperConfig.getInstance().getProperty(PlatformConstants.OPENID_RETURN_URL);
+ AuthRequest authReq = null;
+ logger.debug("openIdReturnUrl = " + openIdReturnUrl);
+ try {
+ authReq = consumerManager.authenticate(discoveryInfo,openIdReturnUrl);
+ authReq.addExtension(fetch);
+ } catch (MessageException e) {
+ logger.debug("Message exception while init flow : " + e.getMessage());
+ } catch (ConsumerException e) {
+ logger.debug("Consumer exception : " + e.getMessage());
+ }
+
+ return authReq.getDestinationUrl(true);
+ }
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/PlatformHttpClient.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/PlatformHttpClient.java
new file mode 100644
index 00000000..468e9363
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/PlatformHttpClient.java
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.connection;
+/**
+ *
+ * This class implements the disconnect and getAppMenu API by invoking appropriate end point urls configured
+ */
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+import org.kxml2.kdom.Document;
+import org.kxml2.kdom.Element;
+import org.slf4j.Logger;
+
+import com.intuit.ia.exception.ConnectionException;
+import com.intuit.ia.utils.IAHelperConfig;
+import com.intuit.ia.utils.LoggerImpl;
+import com.intuit.ia.utils.PlatformConstants;
+import com.intuit.ia.utils.WebUtils;
+
+import oauth.signpost.OAuthConsumer;
+import oauth.signpost.basic.DefaultOAuthConsumer;
+import oauth.signpost.signature.AuthorizationHeaderSigningStrategy;
+
+class PlatformHttpClient {
+
+
+ private Map requestHeaders = new Hashtable();
+ private HttpURLConnection connection;
+ private int timeout = 1200;
+ private OAuthConsumer oauthConsumer;
+ private String urlString;
+ Logger logger = LoggerImpl.getInstance();
+ public PlatformHttpClient(String consumerKey,String consumerSecret,String accessToken,String accessTokenSecret) {
+
+ this.oauthConsumer = new DefaultOAuthConsumer(consumerKey, consumerSecret);
+ oauthConsumer.setTokenWithSecret(accessToken, accessTokenSecret);
+ oauthConsumer.setSigningStrategy(new AuthorizationHeaderSigningStrategy());
+ }
+
+ private void openConnection() throws Exception {
+ requestHeaders.put("Content-type", "application/xml");
+ requestHeaders.put("Content-Length", "0");
+ doGet();
+ }
+
+ public PlatformResponse disconnect() throws ConnectionException {
+
+ try {
+ urlString = IAHelperConfig.getInstance().getProperty(PlatformConstants.DISCON_URL_KEY);
+
+ openConnection();
+ if (connection != null) {
+
+ Document respDoc = getResponseXmlDocument();
+
+ PlatformResponse response = new PlatformResponse();
+ response.setErrorCode(WebUtils.getElementText(respDoc.getRootElement(), "ErrorCode"));
+ response.setErrorMessage(WebUtils.getElementText(respDoc.getRootElement(), "ErrorMessage"));
+ response.setServerTime(WebUtils.getElementText(respDoc.getRootElement(), "ServerTime"));
+
+ if (!response.getErrorCode().equals("0")) {
+ throw new ConnectionException(response.getErrorMessage(), response.getErrorCode());
+ }
+ return response;
+ }
+
+ } catch (ConnectionException conEx) {
+ throw conEx;
+ }
+
+ catch (Exception e) {
+ throw new ConnectionException("Failed to disconnect: "
+ + e.getCause() + " " + e.getMessage());
+ }
+ return null;
+ }
+
+ public List getAppMenu() throws Exception {
+ List respList = new ArrayList();
+
+ try {
+ urlString = IAHelperConfig.getInstance().getProperty(PlatformConstants.APP_URL_KEY);
+ logger.debug("The url string is :" + urlString);
+ openConnection();
+ StringBuffer sb = new StringBuffer();
+
+ if (connection != null) {
+ BufferedReader rd = new BufferedReader(new InputStreamReader(
+ connection.getInputStream()));
+ String line;
+ while ((line = rd.readLine()) != null) {
+ sb.append(line);
+ respList.add(line);
+ }
+ rd.close();
+ }
+ } catch (Exception e) {
+ throw new Exception("Failed to get App Menu: " + e.getCause() + " "
+ + e.getMessage());
+ }
+
+ return respList;
+ }
+
+ private void doGet() throws Exception {
+
+ String timeOutString;
+ URL url = new URL(urlString);
+ Proxy httpProxy = null;
+ String host;
+ String port;
+ try {
+ host = IAHelperConfig.getInstance().getProperty(PlatformConstants.HTTP_PROXY_HOST_KEY);
+ port = IAHelperConfig.getInstance().getProperty(PlatformConstants.HTTP_PROXY_PORT_KEY);
+ if (host != null && port != null) {
+ httpProxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(
+ host, Integer.parseInt(port)));
+ this.connection = (HttpURLConnection) url
+ .openConnection(httpProxy);
+ } else {
+ this.connection = (HttpURLConnection) url.openConnection();
+ }
+
+ } catch (ClassCastException e) {
+ throw new IllegalArgumentException("Not an HTTP URL");
+ }
+ try{
+ // Set the request method
+ this.connection.setRequestMethod(PlatformConstants.HTTP_VERB_GET);
+ timeOutString = IAHelperConfig.getInstance().getProperty("time_out");
+ if(timeOutString != null)
+ timeout = Integer.parseInt(timeOutString);
+ this.connection.setConnectTimeout(timeout);
+ logger.debug("Proceeding for signing");
+ // For OAuth authentication.
+ if (oauthConsumer != null) {
+ oauthConsumer.sign(this.connection);
+ }
+ }
+ catch(Exception e)
+ {
+
+ logger.debug("Exception occured in preparing the request :" + e.getMessage());
+ }
+ }
+
+ public Document getResponseXmlDocument() throws IOException {
+
+ InputStream inputStream = null;
+ Document responseDocument;
+ try {
+
+ inputStream = connection.getInputStream();
+ responseDocument = WebUtils.createXmlDocument(inputStream);
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ this.connection.disconnect();
+ this.connection = null;
+ }
+ return responseDocument;
+ }
+
+ public PlatformResponse reConnect() throws ConnectionException {
+
+ try {
+
+ urlString = IAHelperConfig.getInstance().getProperty(PlatformConstants.RECONNECT_URL_KEY);
+ openConnection();
+ if (connection != null) {
+
+ Document respDoc = getResponseXmlDocument();
+
+ PlatformResponse response = new PlatformResponse();
+ response.setErrorCode(WebUtils.getElementText(respDoc.getRootElement(), "ErrorCode"));
+ response.setErrorMessage(WebUtils.getElementText(respDoc.getRootElement(), "ErrorMessage"));
+ response.setOauthToken(WebUtils.getElementText(respDoc.getRootElement(), "OAuthToken"));
+ response.setOauthTokenSecret(WebUtils.getElementText(respDoc.getRootElement(), "OAuthTokenSecret"));
+ response.setServerTime(WebUtils.getElementText(respDoc.getRootElement(), "ServerTime"));
+
+ if (!response.getErrorCode().equals("0")) {
+ throw new ConnectionException(response.getErrorMessage(), response.getErrorCode());
+ }
+ return response;
+ }
+
+ } catch (ConnectionException conEx) {
+ throw conEx;
+ }
+
+ catch (Exception e) {
+ throw new ConnectionException("Failed to reconnect: "
+ + e.getCause() + " " + e.getMessage());
+ }
+ return null;
+ }
+ public User getCurrentUser() throws Exception {
+ User user = null;
+
+ try {
+ urlString = IAHelperConfig.getInstance().getProperty(PlatformConstants.CURRENT_USER_URL);
+ logger.debug("The url string is :" + urlString);
+ openConnection();
+
+ if (connection != null) {
+ Document respDoc = getResponseXmlDocument();
+ String errorCode = WebUtils.getElementText(respDoc.getRootElement(), "ErrorCode");
+ String errorMsg = WebUtils.getElementText(respDoc.getRootElement(), "ErrorMessage");
+ if (!errorCode.equals("0")) {
+ throw new ConnectionException(errorMsg, errorCode);
+ }else
+ {
+ user= new User();
+ Element e = WebUtils.getElementByTagName(respDoc.getRootElement(), "User");
+ user.setEmailAddress(WebUtils.getElementText(e, "EmailAddress"));
+ user.setFirstName(WebUtils.getElementText(respDoc.getRootElement(), "FirstName"));
+ user.setIsVerified(WebUtils.getElementText(respDoc.getRootElement(), "IsVerified"));
+ user.setLastName(WebUtils.getElementText(respDoc.getRootElement(), "LastName"));
+ }
+ }
+ } catch (Exception e) {
+ throw new Exception("Failed to get CurrentUser: " + e.getCause() + " "
+ + e.getMessage());
+ }
+ return user;
+ }
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/PlatformResponse.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/PlatformResponse.java
new file mode 100644
index 00000000..13d794cd
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/PlatformResponse.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.connection;
+
+/**
+ * Class to hold response entities for disconnect/reconnect endpoint
+ *
+ * @author dderose
+ *
+ */
+public class PlatformResponse {
+
+ private String errorCode;
+
+ private String errorMessage;
+
+ private String serverTime;
+
+ private String oauthToken;
+
+ private String oauthTokenSecret;
+
+ public String getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+
+ public String getServerTime() {
+ return serverTime;
+ }
+
+ public void setServerTime(String serverTime) {
+ this.serverTime = serverTime;
+ }
+
+ public String getOauthToken() {
+ return oauthToken;
+ }
+
+ public void setOauthToken(String oauthToken) {
+ this.oauthToken = oauthToken;
+ }
+
+ public String getOauthTokenSecret() {
+ return oauthTokenSecret;
+ }
+
+ public void setOauthTokenSecret(String oauthTokenSecret) {
+ this.oauthTokenSecret = oauthTokenSecret;
+ }
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/User.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/User.java
new file mode 100644
index 00000000..9921a0fc
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/connection/User.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+package com.intuit.ia.connection;
+
+/**
+ * @author PVIJAYAKUMAR
+ *
+ */
+public class User {
+
+ /**
+ * @return the firstName
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+ /**
+ * @param firstName the firstName to set
+ */
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+ /**
+ * @return the lastName
+ */
+ public String getLastName() {
+ return lastName;
+ }
+ /**
+ * @param lastName the lastName to set
+ */
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+ /**
+ * @return the emailAddress
+ */
+ public String getEmailAddress() {
+ return emailAddress;
+ }
+ /**
+ * @param emailAddress the emailAddress to set
+ */
+ public void setEmailAddress(String emailAddress) {
+ this.emailAddress = emailAddress;
+ }
+ /**
+ * @return the isVerified
+ */
+ public String getIsVerified() {
+ return isVerified;
+ }
+ /**
+ * @param isVerified the isVerified to set
+ */
+ public void setIsVerified(String isVerified) {
+ this.isVerified = isVerified;
+ }
+
+
+ private String firstName;
+ private String lastName;
+ private String emailAddress;
+ private String isVerified;
+
+
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/ConnectionException.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/ConnectionException.java
new file mode 100644
index 00000000..9ebfcd25
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/ConnectionException.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.exception;
+
+public class ConnectionException extends IAException {
+
+ private static final long serialVersionUID = 12222114441L;
+
+public ConnectionException(String errorMessage){
+ super(errorMessage);
+
+}
+
+
+public ConnectionException(String errorMessage,String errorCode){
+ super(errorMessage,errorCode);
+}
+public ConnectionException(String errorMessage,Throwable e){
+ super(errorMessage,e);
+}
+
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/IAException.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/IAException.java
new file mode 100644
index 00000000..f9c16c32
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/IAException.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.exception;
+/**
+ * This class represents the connection exception thrown by the jar
+ */
+public class IAException extends Exception {
+
+
+ private static final long serialVersionUID = 1222211112L;
+
+ private String errorMessage;
+ private String errorCode;
+
+ public IAException(String errorMessage,String errorCode){
+ super(errorMessage);
+ this.errorMessage = errorMessage;
+ this.errorCode = errorCode;
+ }
+ public IAException(String errorMessage){
+ super(errorMessage);
+ this.errorMessage = errorMessage;
+ }
+ public IAException(String errorMessage,Throwable cause){
+ super(errorMessage,cause);
+ this.errorMessage = errorMessage;
+
+ }
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+ public String getErrorCode() {
+ return errorCode;
+ }
+
+
+ @Override
+ public String toString(){
+
+ return "Error Code: " + errorCode + ",Error Message: "+ errorMessage;
+
+ }
+
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/OAuthException.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/OAuthException.java
new file mode 100644
index 00000000..c832379e
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/OAuthException.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.exception;
+
+public class OAuthException extends IAException {
+
+ private static final long serialVersionUID = 12222113331L;
+
+ public OAuthException(String errorMessage,String errorCode){
+ super(errorMessage,errorCode);
+
+ }
+ public OAuthException(String errorMessage){
+ super(errorMessage);
+ }
+
+
+ public OAuthException(String errorMessage,Throwable e){
+ super(errorMessage,e);
+ }
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/OpenIdException.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/OpenIdException.java
new file mode 100644
index 00000000..f8b13d4b
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/exception/OpenIdException.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.exception;
+
+/**
+ *
+ * This represents a custom OpenId Exception
+ *
+ */
+public class OpenIdException extends IAException {
+
+ private static final long serialVersionUID = 12222115551L;
+
+ public OpenIdException(String errorMessage,String errorCode){
+ super(errorMessage,errorCode);
+
+ }
+ public OpenIdException(String errorMessage){
+ super(errorMessage);
+ }
+
+ public OpenIdException(String errorMessage,Throwable e){
+ super(errorMessage,e);
+ }
+
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/IAHelperConfig.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/IAHelperConfig.java
new file mode 100644
index 00000000..6ffc565a
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/IAHelperConfig.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.utils;
+
+import java.io.InputStream;
+import java.util.Properties;
+
+public class IAHelperConfig {
+
+ private static final String PROP_FILE_NAME = "ia.properties";
+ private static Properties prop = new Properties();
+ private static IAHelperConfig configObj = null;
+
+ private IAHelperConfig() {
+
+ }
+
+ public static synchronized IAHelperConfig getInstance() {
+
+ if (configObj == null) {
+ configObj = new IAHelperConfig();
+ configObj.readProperties();
+ }
+ return configObj;
+ }
+
+ private void readProperties() {
+
+ InputStream input = null;
+ try {
+
+ input = getClass().getClassLoader().getResourceAsStream(PROP_FILE_NAME);
+ prop.load(input);
+
+ } catch (Exception e) {
+
+ } finally {
+ if (input != null) {
+ try {
+ input.close();
+ } catch (Exception e) {
+
+ }
+ }
+ }
+
+ }
+
+ public String getProperty(String key) {
+ return prop.getProperty(key);
+ }
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/LoggerImpl.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/LoggerImpl.java
new file mode 100644
index 00000000..5e03919a
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/LoggerImpl.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * Wrapper class for our chosen log provider. Currently java.util.logging. If you want to route logging through
+ * another logger, check the documentation of that logger on how to intercept java.util.logging.
+ *
+ * @see http://www.oracle.com/technology/pub/articles/hunter_logging.html.
+ * @see http://www.slf4j.org/legacy.html
+ */
+public class LoggerImpl {
+
+ private volatile Logger slf4jLogger;
+
+ private static Logger sInstance;
+
+ public static Logger getInstance() {
+ if (null == sInstance) {
+ sInstance = new LoggerImpl().getLogger();
+
+ }
+ return sInstance;
+ }
+
+ /**
+ * Initializes the Logger using the ipp-logging.properties file (as a resource from classpath). If
+ * this fails it attempts to reset the configuration to JVM defaults.
+ */
+ private LoggerImpl() {}
+
+ public Logger getLogger() {
+ if (null == slf4jLogger) {
+ synchronized (this) {
+ if (null == slf4jLogger) {
+ slf4jLogger = LoggerFactory.getLogger("com.intuit.iahelper");
+ }
+ }
+ }
+ return slf4jLogger;
+ }
+
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/PlatformConstants.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/PlatformConstants.java
new file mode 100644
index 00000000..37f0698f
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/PlatformConstants.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.utils;
+
+public class PlatformConstants {
+
+
+ public static final String OAUTH_CONSUMER_KEY="oauth_consumer_key";
+ public static final String OAUTH_CONSUMER_SECRET="oauth_consumer_secret";
+ public static final String OAUTH_CALLBACK_URL="oauth_callback_url";
+ public static final String REQUEST_TOKEN_URL="request_token_url";
+ public static final String AUTHORIZE_URL="authorize_url";
+ public static final String ACCESS_TOKEN_URL="access_token_url";
+ public static final String OPENID_PROVIDER_URL="openid_provider_url";
+ public static final String OPENID_RETURN_URL="openid_return_url";
+ public static final String RECONNECT_URL_KEY="reconnect_url";
+ public static final String HTTP_VERB_GET = "GET";
+ public static final String APP_URL_KEY = "app_menu_url";
+ public static final String CURRENT_USER_URL = "current_user_url";
+ public static final String DISCON_URL_KEY = "disconnect_url";
+ public static final String HTTP_PROXY_HOST_KEY = "http.proxy.host";
+ public static final String HTTP_PROXY_PORT_KEY = "http.proxy.port";
+ public static final String KEYSTORE = "keystore";
+ public static final String KEYSTORE_PASSWORD = "keystore.password";
+}
diff --git a/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/WebUtils.java b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/WebUtils.java
new file mode 100644
index 00000000..c80ed340
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/java/com/intuit/ia/utils/WebUtils.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Vector;
+
+import org.kxml2.io.KXmlParser;
+import org.kxml2.kdom.Document;
+import org.kxml2.kdom.Element;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+public class WebUtils {
+
+ static public XmlPullParser createUTF8Parser(InputStream inputStream)
+ throws XmlPullParserException {
+ XmlPullParser parser = new KXmlParser();
+ parser.setInput(inputStream, "UTF-8");
+ return parser;
+ }
+
+ static public Document createXmlDocument(InputStream inputStream)
+ throws IOException {
+ Document document = null;
+ try {
+ XmlPullParser parser = createUTF8Parser(inputStream);
+ parser.setInput(new InputStreamReader(inputStream));
+ parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
+ document = new Document();
+ document.parse(parser);
+ } catch (XmlPullParserException e) {
+ e.printStackTrace();
+ }
+
+ return document;
+ }
+
+ public static String getElementText(Element element, String childElementName) {
+ Element node = getElementByTagName(element, childElementName);
+ if (node != null) {
+ return getElementText(node);
+ }
+ return null;
+ }
+
+ static public String getElementText(Element element) {
+ String elementText = null;
+
+ if (element != null) {
+ int numChildren = element.getChildCount();
+ if (numChildren == 0) {
+ elementText = null;
+ } else if (numChildren == 1) {
+ elementText = element.getText(0);
+ } else {
+ // compound value - treat as multiline
+ StringBuffer stringBuffer = new StringBuffer();
+ for (int i = 0; i < numChildren; i++) {
+ Object childNode = element.getChild(i);
+ if (childNode instanceof String) {
+ stringBuffer.append(childNode);
+ }
+ }
+ elementText = stringBuffer.toString();
+ }
+ }
+ return elementText;
+ }
+ static public Element getElementByTagName(Element element,
+ String elementName) {
+ Element[] elements = getElementsByTagName(element, elementName);
+ if (elements.length == 1) {
+ return elements[0];
+ } else {
+ return null;
+ }
+ }
+
+ static public Element[] getElementsByTagName(Element element,
+ String elementName) {
+ Vector elementList = new Vector();
+ int lastFoundIndex = element.indexOf(null, elementName, 0);
+ while (lastFoundIndex != -1) {
+ elementList.addElement(element.getElement(lastFoundIndex));
+ if (lastFoundIndex != -1) {
+ lastFoundIndex = element.indexOf(null, elementName,
+ lastFoundIndex + 1);
+ }
+ }
+ Element[] elements = new Element[elementList.size()];
+ elementList.copyInto(elements);
+ return elements;
+ }
+
+
+
+
+}
diff --git a/ipp-java-qbapihelper/src/main/resources/ia.properties b/ipp-java-qbapihelper/src/main/resources/ia.properties
new file mode 100644
index 00000000..000dfd1c
--- /dev/null
+++ b/ipp-java-qbapihelper/src/main/resources/ia.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2017 Intuit
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###############################################################################
+app_menu_url=https://appcenter.intuit.com/api/v1/Account/AppMenu
+current_user_url=https://appcenter.intuit.com/api/v1/user/current
+disconnect_url=https://appcenter.intuit.com/api/v1/Connection/Disconnect
+reconnect_url=https://appcenter.intuit.com/api/v1/Connection/reconnect
\ No newline at end of file
diff --git a/ipp-java-qbapihelper/src/test/java/com/intuit/ia/connection/IATest.java b/ipp-java-qbapihelper/src/test/java/com/intuit/ia/connection/IATest.java
new file mode 100644
index 00000000..78919b0e
--- /dev/null
+++ b/ipp-java-qbapihelper/src/test/java/com/intuit/ia/connection/IATest.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Intuit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+package com.intuit.ia.connection;
+
+import java.util.List;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.intuit.ia.exception.ConnectionException;
+import com.intuit.ia.utils.IAHelperConfig;
+
+public class IATest {
+
+ @Test
+ public void testOAuthIAAPIs() {
+
+ IAPlatformClient clientObj = new IAPlatformClient();
+ invokeAPIs(clientObj);
+ }
+
+ private void invokeAPIs(IAPlatformClient clientObj) {
+ List appMenuList = null;
+ User user = null;
+ boolean isException = false;
+ IAHelperConfig conObj = IAHelperConfig.getInstance();
+ String consumerKey = conObj.getProperty("oauth_consumer_key");
+ String consumerSecret = conObj.getProperty("oauth_consumer_secret");
+ String accessToken = conObj.getProperty("access_token");
+ String accessTokenSecret = conObj.getProperty("access_token_secret");
+
+ try {
+ appMenuList = clientObj.getAppMenu(consumerKey, consumerSecret,
+ accessToken, accessTokenSecret);
+ Assert.assertNotNull(appMenuList);
+ Assert.assertNotSame(appMenuList.size(), 0);
+ System.out.println(appMenuList.toString());
+ } catch (Exception e1) {
+ isException = true;
+ }
+ try {
+ user = clientObj.getcurrentUser(consumerKey, consumerSecret,
+ accessToken, accessTokenSecret);
+ Assert.assertNotNull(user.getEmailAddress());
+ System.out.println(user.getEmailAddress());
+ } catch (Exception e1) {
+ isException = true;
+ }
+ try {
+
+ clientObj.reConnect(consumerKey, consumerSecret, accessToken,
+ accessTokenSecret);
+
+ } catch (ConnectionException e) {
+ // isException = true;
+ System.out.println(e.toString());
+ }
+ /*try {
+ clientObj.disconnect(consumerKey, consumerSecret, accessToken,
+ accessTokenSecret);
+ } catch (ConnectionException e) {
+ isException = true;
+ System.out.println(e.toString());
+ }
+ Assert.assertFalse(isException, "Failed to perform the operation");*/
+
+ }
+
+}
diff --git a/ipp-java-qbapihelper/src/test/resources/ia.properties b/ipp-java-qbapihelper/src/test/resources/ia.properties
new file mode 100644
index 00000000..1000ff29
--- /dev/null
+++ b/ipp-java-qbapihelper/src/test/resources/ia.properties
@@ -0,0 +1,77 @@
+###############################################################################
+# Copyright (c) 2017 Intuit
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###############################################################################
+#This is the properties file for connection helper jar
+
+#Specify the Blue dot AppMenu URL here
+app_menu_url=https://appcenter.intuit.com/api/v1/Account/AppMenu
+
+#Specify the get Current User URL here
+current_user_url=https://appcenter.intuit.com/api/v1/user/current
+
+#Specify the Disconnect URL here
+disconnect_url=https://appcenter.intuit.com/api/v1/Connection/Disconnect
+
+#specify the reconnect url
+reconnect_url=https://appcenter.intuit.com/api/v1/Connection/Reconnect
+
+#Specify the Consumer Secret
+oauth_consumer_secret=
+
+#Specify the Consumer Key
+oauth_consumer_key=
+
+#Specify the access token
+access_token=
+
+#Specify Acces token secret
+access_token_secret=
+
+#Specify Http Timeout
+time_out=1200
+
+#This is the request token url
+request_token_url=https://oauth.intuit.com/oauth/v1/get_request_token
+
+# The following 2 URLs point to the OAuth and OpenID servlets on your site:
+openid_return_url=http://localhost:8080/IntuitAnywhere/verifyopenid.htm
+
+oauth_callback_url=http://localhost:8080/IntuitAnywhere/accesstoken.htm
+
+
+# The next URL is used in the menuProxy and grantUrl parameters of the intuit.ipp.anywhere.setup()
+# call in the JSP files.
+app_url=http://localhost:8080/IntuitAnywhere
+
+# The next 3 URLs point to intuit.com services.
+openid_provider_url=https://openid.intuit.com/OpenId/Provider
+
+oauth_url=https://oauth.intuit.com
+
+appcenter_url=https://appcenter.intuit.com
+
+authorize_url=https://appcenter.intuit.com/Connect/Begin
+
+access_token_url=https://oauth.intuit.com/oauth/v1/get_access_token
+#Configuring HTTP Proxy
+#------------------------------------------------
+
+#Specify the HTTP Proxy Host
+#http_proxy_host=localhost
+
+#Specify the HTTP Proxy Port
+#http_proxy_port=8888
+
+
diff --git a/ipp-java-qbapihelper/testng-full.xml b/ipp-java-qbapihelper/testng-full.xml
new file mode 100644
index 00000000..254c989f
--- /dev/null
+++ b/ipp-java-qbapihelper/testng-full.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ipp-java-qbapihelper/testng.xml b/ipp-java-qbapihelper/testng.xml
new file mode 100644
index 00000000..91bbe266
--- /dev/null
+++ b/ipp-java-qbapihelper/testng.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/ipp-v3-java-data/pom.xml b/ipp-v3-java-data/pom.xml
index 568f1097..7dd7c958 100755
--- a/ipp-v3-java-data/pom.xml
+++ b/ipp-v3-java-data/pom.xml
@@ -4,13 +4,13 @@
com.intuit.quickbooks-online
ipp-v3-java-devkit-pom
- 2.9.0
+ 2.9.1
ipp-v3-java-data
IPP V3 Java - Data Project
IPP Java V3 DevKit Data project - FMS Entities generation
- 2.9.0
+ 2.9.1
UTF-8
@@ -40,15 +40,15 @@
test
- org.codehaus.jackson
- jackson-core-asl
- 1.9.13
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.8.8
- org.codehaus.jackson
- jackson-mapper-asl
- 1.9.13
-
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.8.8
+
diff --git a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/DataChangeEvent.java b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/DataChangeEvent.java
index e88ddb6a..a8eb46ff 100644
--- a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/DataChangeEvent.java
+++ b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/DataChangeEvent.java
@@ -17,7 +17,7 @@
import java.util.List;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class DataChangeEvent {
@@ -34,3 +34,4 @@ public void setEntities(List entities) {
}
+
diff --git a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/Entity.java b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/Entity.java
index dcbeae52..587df92f 100644
--- a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/Entity.java
+++ b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/Entity.java
@@ -15,7 +15,7 @@
*******************************************************************************/
package com.intuit.ipp.data;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Entity {
diff --git a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/EventNotification.java b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/EventNotification.java
index ad8a9837..260fb165 100644
--- a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/EventNotification.java
+++ b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/EventNotification.java
@@ -15,7 +15,7 @@
*******************************************************************************/
package com.intuit.ipp.data;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class EventNotification {
@@ -38,3 +38,4 @@ public void setDataChangeEvent(DataChangeEvent dataChangeEvent) {
}
+
diff --git a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/WebhooksEvent.java b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/WebhooksEvent.java
index 5f29e2a0..cea59b29 100644
--- a/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/WebhooksEvent.java
+++ b/ipp-v3-java-data/src/main/java/com/intuit/ipp/data/WebhooksEvent.java
@@ -17,7 +17,7 @@
import java.util.List;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
/**
* Wrapper class for the webhooks payload
@@ -37,3 +37,4 @@ public void setEventNotifications(List eventNotifications) {
}
}
+
diff --git a/ipp-v3-java-devkit-assembly/pom.xml b/ipp-v3-java-devkit-assembly/pom.xml
index 1cc814c8..492dca44 100755
--- a/ipp-v3-java-devkit-assembly/pom.xml
+++ b/ipp-v3-java-devkit-assembly/pom.xml
@@ -15,17 +15,17 @@
com.intuit.quickbooks-online
ipp-v3-java-devkit-pom
- 2.9.0
+ 2.9.1
ipp-v3-java-devkit-assembly
pom
IPP Java Devkit Assembly (${project.version})
IPP Java V3 DevKit assembly
- 2.9.0
+ 2.9.1
- 2.9.0
- 2.9.0
+ 2.9.1
+ 2.9.1
diff --git a/ipp-v3-java-devkit-shaded-assembly/pom.xml b/ipp-v3-java-devkit-shaded-assembly/pom.xml
index 072bd840..5938a58f 100755
--- a/ipp-v3-java-devkit-shaded-assembly/pom.xml
+++ b/ipp-v3-java-devkit-shaded-assembly/pom.xml
@@ -15,17 +15,17 @@
com.intuit.quickbooks-online
ipp-v3-java-devkit-pom
- 2.9.0
+ 2.9.1
ipp-v3-java-devkit-shaded-assembly
pom
IPP Java Devkit Assembly Shaded (${project.version})
IPP Java V3 DevKit assembly
- 2.9.0
+ 2.9.1
- 2.9.0
- 2.9.0
+ 2.9.1
+ 2.9.1
diff --git a/ipp-v3-java-devkit/pom.xml b/ipp-v3-java-devkit/pom.xml
index 31a05cd5..63947049 100755
--- a/ipp-v3-java-devkit/pom.xml
+++ b/ipp-v3-java-devkit/pom.xml
@@ -6,11 +6,11 @@
ipp-v3-java-devkit-pom
com.intuit.quickbooks-online
- 2.9.0
+ 2.9.1
ipp-v3-java-devkit
- 2.9.0
+ 2.9.1
jar
IPP V3 Java Devkit - Development Project
IPP Java V3 DevKit Project - Core
@@ -22,22 +22,22 @@
-
+
com.intuit.quickbooks-online
ipp-v3-java-data
- 2.9.0
+ 2.9.1
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.2.6
-
- javax.xml.bind
- jaxb-api
- 2.2.6
-
- org.testng
- testng
- 6.9.10
- test
-
+ org.testng
+ testng
+ 6.9.10
+ test
+
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/interceptors/PrepareRequestInterceptor.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/interceptors/PrepareRequestInterceptor.java
index 5ba7418d..271cb8c3 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/interceptors/PrepareRequestInterceptor.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/interceptors/PrepareRequestInterceptor.java
@@ -431,7 +431,8 @@ private boolean isKeyValueExpected(String key) {
|| key.equals(RequestElements.REPORT_PARAM_QZURL)
|| key.equals(RequestElements.REPORT_PARAM_AGING_PERIOD)
|| key.equals(RequestElements.REPORT_PARAM_NUM_PERIOD)
- || key.equals(RequestElements.REPORT_PARAM_REPORT_DT);
+ || key.equals(RequestElements.REPORT_PARAM_REPORT_DT)
+ || key.equals(RequestElements.REPORT_PARAM_COLUMNS);
}
/**
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/security/OAuthAuthorizer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/security/OAuthAuthorizer.java
index 43940eb0..cb9b7bfb 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/security/OAuthAuthorizer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/security/OAuthAuthorizer.java
@@ -96,9 +96,16 @@ private OAuthAuthorizer(String consumerKey, String consumerSecret) {
* @param accessTokenSecret the access token secret
*/
public OAuthAuthorizer(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret) {
- this(consumerKey, consumerSecret);
- oAuthConsumer.setTokenWithSecret(accessToken, accessTokenSecret);
+ this(trim(consumerKey), trim(consumerSecret));
+ oAuthConsumer.setTokenWithSecret(trim(accessToken), trim(accessTokenSecret));
oAuthConsumer.setSigningStrategy(new AuthorizationHeaderSigningStrategy());
}
+
+ private static String trim(String key) {
+ if (key == null) {
+ return null;
+ }
+ return key.trim();
+ }
}
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/AttachableResponseDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/AttachableResponseDeserializer.java
index 90a98d48..d3ef4d55 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/AttachableResponseDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/AttachableResponseDeserializer.java
@@ -18,15 +18,17 @@
import java.io.IOException;
import java.util.Iterator;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.Attachable;
import com.intuit.ipp.data.AttachableResponse;
@@ -59,9 +61,9 @@ public AttachableResponse deserialize(JsonParser jp, DeserializationContext desC
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the QueryResponse as a tree
JsonNode jn = jp.readValueAsTree();
@@ -70,16 +72,16 @@ public AttachableResponse deserialize(JsonParser jp, DeserializationContext desC
AttachableResponse qr = new AttachableResponse();
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
//Attributes
if (key.equalsIgnoreCase(FAULT)) {
- qr.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
+ qr.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
} else if (key.equalsIgnoreCase(ATTACHABLE)) {
- qr.setAttachable(mapper.readValue(jn.get(ATTACHABLE), Attachable.class));
+ qr.setAttachable(mapper.treeToValue(jn.get(ATTACHABLE), Attachable.class));
}
}
return qr;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemRequestSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemRequestSerializer.java
index 0571fc30..fd27aa8a 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemRequestSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemRequestSerializer.java
@@ -17,14 +17,15 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializerProvider;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
import com.intuit.ipp.data.BatchItemRequest;
import com.intuit.ipp.data.CDCQuery;
@@ -163,10 +164,10 @@ private ObjectMapper getObjectMapper() {
ObjectMapper mapper = new ObjectMapper();
AnnotationIntrospector primary = new JacksonAnnotationIntrospector();
AnnotationIntrospector secondary = new JaxbAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
mapper.setAnnotationIntrospector(pair);
- mapper.setSerializationInclusion(Inclusion.NON_NULL);
+ mapper.setSerializationInclusion(Include.NON_NULL);
return mapper;
}
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemResponseDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemResponseDeserializer.java
index af021f13..6484a4ec 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemResponseDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/BatchItemResponseDeserializer.java
@@ -20,17 +20,19 @@
import javax.xml.bind.JAXBElement;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.BatchItemResponse;
import com.intuit.ipp.data.CDCResponse;
@@ -98,9 +100,9 @@ public BatchItemResponse deserialize(JsonParser jp, DeserializationContext desCo
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the QueryResponse as a tree
JsonNode jn = jp.readValueAsTree();
@@ -109,19 +111,19 @@ public BatchItemResponse deserialize(JsonParser jp, DeserializationContext desCo
BatchItemResponse qr = new BatchItemResponse();
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
//Attributes
if (key.equalsIgnoreCase(FAULT)) {
- qr.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
+ qr.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
continue;
} else if (key.equalsIgnoreCase(REPORT)) {
- qr.setReport(mapper.readValue(jn.get(REPORT), Report.class));
+ qr.setReport(mapper.treeToValue(jn.get(REPORT), Report.class));
} else if (key.equalsIgnoreCase(BID)) {
- qr.setBId(jn.get(BID).getTextValue());
+ qr.setBId(jn.get(BID).textValue());
} else if (key.equals(QUERYRESPONSE)) {
qr.setQueryResponse(getQueryResponse(jn.get(key)));
} else if (key.equals(CDC_QUERY_RESPONSE)) {
@@ -133,7 +135,7 @@ public BatchItemResponse deserialize(JsonParser jp, DeserializationContext desCo
if (JsonResourceTypeLocator.lookupType(entity) != null) {
// set the CustomFieldDefinition deserializer
registerModulesForCustomFieldDef(mapper);
- Object intuitType = mapper.readValue(jn.get(key), JsonResourceTypeLocator.lookupType(entity));
+ Object intuitType = mapper.treeToValue(jn.get(key), JsonResourceTypeLocator.lookupType(entity));
if (intuitType instanceof IntuitEntity) {
intuitResponseDeserializerHelper.updateBigDecimalScale((IntuitEntity) intuitType);
JAXBElement extends IntuitEntity> intuitObject = objFactory
@@ -160,7 +162,7 @@ private QueryResponse getQueryResponse(JsonNode jsonNode) throws IOException {
mapper.registerModule(simpleModule);
- return mapper.readValue(jsonNode, QueryResponse.class);
+ return mapper.treeToValue(jsonNode, QueryResponse.class);
}
/**
@@ -177,7 +179,7 @@ private CDCResponse getCDCQueryResponse(JsonNode jsonNode) throws IOException {
mapper.registerModule(simpleModule);
- return mapper.readValue(jsonNode, CDCResponse.class);
+ return mapper.treeToValue(jsonNode, CDCResponse.class);
}
/**
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CDCQueryResponseDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CDCQueryResponseDeserializer.java
index 1b478dd9..8e034e93 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CDCQueryResponseDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CDCQueryResponseDeserializer.java
@@ -20,17 +20,19 @@
import java.util.Iterator;
import java.util.List;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.CDCResponse;
import com.intuit.ipp.data.Fault;
@@ -71,9 +73,9 @@ public CDCResponse deserialize(JsonParser jp, DeserializationContext desContext)
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the QueryResponse as a tree
JsonNode jn = jp.readValueAsTree();
@@ -82,17 +84,17 @@ public CDCResponse deserialize(JsonParser jp, DeserializationContext desContext)
CDCResponse qr = new CDCResponse();
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
//Attributes
if (key.equals(FAULT)) {
- qr.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
+ qr.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
continue;
} else if (key.equals(SIZE)) {
- qr.setSize(jn.get(SIZE).getIntValue());
+ qr.setSize(jn.get(SIZE).intValue());
} else if (key.equals(QUERY_RESPONSE)) {
JsonNode jn1 = jn.get(key);
if (jn1.isArray()) {
@@ -128,6 +130,6 @@ private QueryResponse getQueryResponse(JsonNode jsonNode) throws IOException {
mapper.registerModule(simpleModule);
- return mapper.readValue(jsonNode, QueryResponse.class);
+ return mapper.treeToValue(jsonNode, QueryResponse.class);
}
}
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CustomFieldDefinitionDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CustomFieldDefinitionDeserializer.java
index 9450c19c..da86de1f 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CustomFieldDefinitionDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/CustomFieldDefinitionDeserializer.java
@@ -20,15 +20,17 @@
import java.util.Iterator;
import java.util.List;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.CustomField;
import com.intuit.ipp.data.CustomFieldDefinition;
@@ -63,9 +65,9 @@ public CustomFieldDefinition deserialize(JsonParser jp, DeserializationContext d
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the CustomFieldDefinition as a tree
JsonNode jn = jp.readValueAsTree();
@@ -74,7 +76,7 @@ public CustomFieldDefinition deserialize(JsonParser jp, DeserializationContext d
CustomFieldDefinition qr = null;
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
@@ -89,7 +91,7 @@ public CustomFieldDefinition deserialize(JsonParser jp, DeserializationContext d
Iterator iteJson = jn1.iterator();
while (iteJson.hasNext()) {
JsonNode jn2 = iteJson.next();
- customFields.add(mapper.readValue(jn2, CustomField.class));
+ customFields.add(mapper.treeToValue(jn2, CustomField.class));
}
qr.setCustomField(customFields);
@@ -111,7 +113,7 @@ public CustomFieldDefinition deserialize(JsonParser jp, DeserializationContext d
private CustomFieldDefinition getCustomFieldDefinitionType(JsonNode jn) throws IOException {
if (jn.isArray()) {
JsonNode jn1 = jn.get(0);
- String type = jn1.get(TYPE).getTextValue();
+ String type = jn1.get(TYPE).textValue();
try {
return (CustomFieldDefinition) Class.forName("com.intuit.ipp.data." + type + "CustomFieldDefinition").newInstance();
} catch (Exception e) {
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IEntitySerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IEntitySerializer.java
index 5f800400..9f02e561 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IEntitySerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IEntitySerializer.java
@@ -13,9 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*******************************************************************************/
-/**
- *
- */
package com.intuit.ipp.serialization;
import com.intuit.ipp.core.Response;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IntuitResponseDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IntuitResponseDeserializer.java
index 717b230e..3a890fb7 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IntuitResponseDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/IntuitResponseDeserializer.java
@@ -16,40 +16,33 @@
package com.intuit.ipp.serialization;
import java.io.IOException;
+import java.lang.Class;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.xml.bind.JAXBElement;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
-
-import com.intuit.ipp.data.AttachableResponse;
-import com.intuit.ipp.data.BatchItemResponse;
-import com.intuit.ipp.data.CDCResponse;
-import com.intuit.ipp.data.Columns;
-import com.intuit.ipp.data.CustomFieldDefinition;
-import com.intuit.ipp.data.Fault;
-import com.intuit.ipp.data.IntuitEntity;
-import com.intuit.ipp.data.IntuitResponse;
-import com.intuit.ipp.data.OLBStatus;
-import com.intuit.ipp.data.OLBTransaction;
-import com.intuit.ipp.data.ObjectFactory;
-import com.intuit.ipp.data.QueryResponse;
-import com.intuit.ipp.data.Report;
-import com.intuit.ipp.data.ReportHeader;
-import com.intuit.ipp.data.Rows;
-import com.intuit.ipp.data.SyncErrorResponse;
+import com.intuit.ipp.data.*;
+import com.intuit.ipp.util.Config;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+
import com.intuit.ipp.util.DateUtils;
import com.intuit.ipp.util.Logger;
@@ -149,10 +142,10 @@ public IntuitResponse deserialize(JsonParser jp, DeserializationContext desConte
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the QueryResponse as a tree
@@ -166,36 +159,36 @@ public IntuitResponse deserialize(JsonParser jp, DeserializationContext desConte
List attachableResponses = null;
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
//Attributes
if (key.equalsIgnoreCase(FAULT)) {
- qr.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
+ qr.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
continue;
} else if (key.equalsIgnoreCase(REPORT)) {
- qr.setReport(mapper.readValue(jn.get(REPORT), Report.class));
+ qr.setReport(mapper.treeToValue(jn.get(REPORT), Report.class));
} else if (key.equalsIgnoreCase(HEADER)) {
- ReportHeader header = mapper.readValue(jn.get(HEADER), ReportHeader.class);
+ ReportHeader header = mapper.treeToValue(jn.get(HEADER), ReportHeader.class);
report.setHeader(header);
} else if (key.equalsIgnoreCase(ROWS)) {
- Rows rows= mapper.readValue(jn.get(ROWS), Rows.class);
+ Rows rows= mapper.treeToValue(jn.get(ROWS), Rows.class);
report.setRows(rows);
} else if (key.equalsIgnoreCase(COLUMNS)) {
- Columns columns= mapper.readValue(jn.get(COLUMNS), Columns.class);
+ Columns columns= mapper.treeToValue(jn.get(COLUMNS), Columns.class);
report.setColumns(columns);
} else if (key.equalsIgnoreCase(REQUESTID)) {
- qr.setRequestId(jn.get(REQUESTID).getTextValue());
+ qr.setRequestId(jn.get(REQUESTID).textValue());
} else if (key.equals(TIME)) {
try {
- qr.setTime(DateUtils.getDateFromString(jn.get(TIME).getTextValue()));
+ qr.setTime(DateUtils.getDateFromString(jn.get(TIME).textValue()));
} catch (Exception e) {
LOG.error("Exception while converting to date", e);
}
} else if (key.equals(STATUS)) {
- qr.setStatus(jn.get(STATUS).getTextValue());
+ qr.setStatus(jn.get(STATUS).textValue());
} else if (key.equals(SYNC_ERROR_RESPONSE)) {
//qr.setSyncErrorResponse(mapper.readValue(jn.get(SYNC_ERROR_RESPONSE), SyncErrorResponse.class));
qr.setSyncErrorResponse(getSyncErrorResponse(jn.get(key)));
@@ -248,7 +241,7 @@ public IntuitResponse deserialize(JsonParser jp, DeserializationContext desConte
if (JsonResourceTypeLocator.lookupType(entity) != null) {
// set the CustomFieldDefinition deserializer
registerModulesForCustomFieldDef(mapper);
- Object intuitType = mapper.readValue(jn.get(key), JsonResourceTypeLocator.lookupType(entity));
+ Object intuitType = mapper.treeToValue(jn.get(key), JsonResourceTypeLocator.lookupType(entity));
if (intuitType instanceof IntuitEntity) {
intuitResponseDeserializerHelper.updateBigDecimalScale((IntuitEntity) intuitType);
@@ -327,9 +320,9 @@ private QueryResponse getQueryResponse(JsonNode jsonNode) throws IOException {
simpleModule.addDeserializer(QueryResponse.class, new QueryResponseDeserializer());
mapper.registerModule(simpleModule);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- return mapper.readValue(jsonNode, QueryResponse.class);
+ return mapper.treeToValue(jsonNode, QueryResponse.class);
}
/**
@@ -345,9 +338,9 @@ private CDCResponse getCDCQueryResponse(JsonNode jsonNode) throws IOException {
simpleModule.addDeserializer(CDCResponse.class, new CDCQueryResponseDeserializer());
mapper.registerModule(simpleModule);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- return mapper.readValue(jsonNode, CDCResponse.class);
+ return mapper.treeToValue(jsonNode, CDCResponse.class);
}
/**
@@ -363,9 +356,9 @@ private BatchItemResponse getBatchItemResponse(JsonNode jsonNode) throws IOExcep
simpleModule.addDeserializer(BatchItemResponse.class, new BatchItemResponseDeserializer());
mapper.registerModule(simpleModule);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- return mapper.readValue(jsonNode, BatchItemResponse.class);
+ return mapper.treeToValue(jsonNode, BatchItemResponse.class);
}
/**
@@ -381,9 +374,9 @@ private AttachableResponse getAttachableResponse(JsonNode jsonNode) throws IOExc
simpleModule.addDeserializer(AttachableResponse.class, new AttachableResponseDeserializer());
mapper.registerModule(simpleModule);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- return mapper.readValue(jsonNode, AttachableResponse.class);
+ return mapper.treeToValue(jsonNode, AttachableResponse.class);
}
/**
@@ -395,7 +388,7 @@ private void registerModulesForCustomFieldDef(ObjectMapper objectMapper) {
SimpleModule simpleModule = new SimpleModule("CustomFieldDefinition", new Version(1, 0, 0, null));
simpleModule.addDeserializer(CustomFieldDefinition.class, new CustomFieldDefinitionDeserializer());
objectMapper.registerModule(simpleModule);
- objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
private SyncErrorResponse getSyncErrorResponse(JsonNode jsonNode) throws IOException {
@@ -405,9 +398,9 @@ private SyncErrorResponse getSyncErrorResponse(JsonNode jsonNode) throws IOExcep
simpleModule.addDeserializer(SyncErrorResponse.class, new SyncErrorResponseDeserializer());
mapper.registerModule(simpleModule);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- return mapper.readValue(jsonNode, SyncErrorResponse.class);
+ return mapper.treeToValue(jsonNode, SyncErrorResponse.class);
}
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/JSONSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/JSONSerializer.java
index 646876e9..56d72dda 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/JSONSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/JSONSerializer.java
@@ -17,14 +17,16 @@
import javax.xml.bind.JAXBElement;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.core.Response;
import com.intuit.ipp.data.APCreditCardOperationEnum;
@@ -194,10 +196,10 @@ public String serialize(T object) throws SerializationException {
ObjectMapper mapper = new ObjectMapper();
AnnotationIntrospector primary = new JacksonAnnotationIntrospector();
AnnotationIntrospector secondary = new JaxbAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
mapper.setAnnotationIntrospector(pair);
- mapper.setSerializationInclusion(Inclusion.NON_NULL);
+ mapper.setSerializationInclusion(Include.NON_NULL);
registerModulesForEnum(mapper);
@@ -237,7 +239,7 @@ public Response deserialize(String json, Class> cl) throws SerializationExcept
simpleModule = new SimpleModule("TaxServiceDeserializer", new Version(1, 0, 0, null));
simpleModule.addDeserializer(TaxService.class, new TaxServiceDeserializer());
mapper.registerModule(simpleModule);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/QueryResponseDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/QueryResponseDeserializer.java
index 12a57e78..f1b6434f 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/QueryResponseDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/QueryResponseDeserializer.java
@@ -20,17 +20,19 @@
import javax.xml.bind.JAXBElement;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.CustomFieldDefinition;
import com.intuit.ipp.data.Fault;
@@ -88,9 +90,9 @@ public QueryResponse deserialize(JsonParser jp, DeserializationContext desContex
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the QueryResponse as a tree
JsonNode jn = jp.readValueAsTree();
@@ -99,21 +101,21 @@ public QueryResponse deserialize(JsonParser jp, DeserializationContext desContex
QueryResponse qr = new QueryResponse();
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
//Attributes
if (key.equals(FAULT)) {
- qr.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
+ qr.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
continue;
} else if (key.equals(STARTPOSITION)) {
- qr.setStartPosition(jn.get(STARTPOSITION).getIntValue());
+ qr.setStartPosition(jn.get(STARTPOSITION).intValue());
} else if (key.equals(MAXRESULTS)) {
- qr.setMaxResults(jn.get(MAXRESULTS).getIntValue());
+ qr.setMaxResults(jn.get(MAXRESULTS).intValue());
} else if (key.equals(TOTALCOUNT)) {
- qr.setTotalCount(jn.get(TOTALCOUNT).getIntValue());
+ qr.setTotalCount(jn.get(TOTALCOUNT).intValue());
} else {
// It has to be an IntuitEntity
//Check if the entity is in the resource locator
@@ -129,7 +131,7 @@ public QueryResponse deserialize(JsonParser jp, DeserializationContext desContex
// set the CustomFieldDefinition deserializer
registerModulesForCustomFieldDef(mapper);
//Force the data to be casted to its type
- Object intuitType = mapper.readValue(jn2, JsonResourceTypeLocator.lookupType(key));
+ Object intuitType = mapper.treeToValue(jn2, JsonResourceTypeLocator.lookupType(key));
//Double check
if (intuitType instanceof IntuitEntity) {
intuitResponseDeserializerHelper.updateBigDecimalScale((IntuitEntity) intuitType);
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorDeserializer.java
index da545d1a..79bc4470 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorDeserializer.java
@@ -20,17 +20,21 @@
import javax.xml.bind.JAXBElement;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.Error;
import com.intuit.ipp.data.IntuitEntity;
@@ -78,9 +82,9 @@ public SyncError deserialize(JsonParser jp, DeserializationContext desContext) t
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//Read the QueryResponse as a tree
JsonNode jn = jp.readValueAsTree();
@@ -89,7 +93,7 @@ public SyncError deserialize(JsonParser jp, DeserializationContext desContext) t
SyncError se = new SyncError();
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
@@ -100,7 +104,7 @@ public SyncError deserialize(JsonParser jp, DeserializationContext desContext) t
} else if (key.equals(QBVERSION)) {
se.setQBVersion(getSyncObject(jn.get(key)));
} else if(key.equals(ERROR)) {
- se.setError(mapper.readValue(jn.get(key),Error.class));
+ se.setError(mapper.treeToValue(jn.get(key),Error.class));
}
}
@@ -115,11 +119,12 @@ public SyncError deserialize(JsonParser jp, DeserializationContext desContext) t
*/
private SyncObject getSyncObject(JsonNode jsonNode) {
+ String name = null;
JsonNode jn1 =null;
SyncObject syncObject = new SyncObject();
- Iterator ite = jsonNode.getFieldNames();
+ Iterator ite = jsonNode.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
@@ -130,7 +135,7 @@ private SyncObject getSyncObject(JsonNode jsonNode) {
try {
//Force the data to be casted to its type
- Object intuitType = mapper.readValue(jn1, JsonResourceTypeLocator.lookupType(key));
+ Object intuitType = mapper.treeToValue(jn1, JsonResourceTypeLocator.lookupType(key));
//Double check
if (intuitType instanceof IntuitEntity) {
JAXBElement extends IntuitEntity> intuitObject = objFactory
@@ -154,4 +159,3 @@ private SyncObject getSyncObject(JsonNode jsonNode) {
}
-
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorResponseDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorResponseDeserializer.java
index c3155bed..b45b929d 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorResponseDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/SyncErrorResponseDeserializer.java
@@ -16,6 +16,7 @@
package com.intuit.ipp.serialization;
import java.io.IOException;
+import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -23,24 +24,31 @@
import java.util.Iterator;
import java.util.List;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
-
+import javax.xml.bind.JAXBElement;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+
+import com.intuit.ipp.data.CustomFieldDefinition;
+import com.intuit.ipp.data.Fault;
+import com.intuit.ipp.data.IntuitEntity;
+import com.intuit.ipp.data.QueryResponse;
import com.intuit.ipp.data.SyncError;
import com.intuit.ipp.data.SyncErrorResponse;
public class SyncErrorResponseDeserializer extends JsonDeserializer {
-
/**
* variable STARTPOSITION
@@ -61,8 +69,7 @@ public class SyncErrorResponseDeserializer extends JsonDeserializer ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
//Attributes
if (key.equals(STARTPOSITION)) {
- sr.setStartPosition(jn.get(STARTPOSITION).getIntValue());
+ sr.setStartPosition(jn.get(STARTPOSITION).intValue());
} else if (key.equals(MAXRESULTS)) {
- sr.setMaxResults(jn.get(MAXRESULTS).getIntValue());
+ sr.setMaxResults(jn.get(MAXRESULTS).intValue());
} else if (key.equals(TOTALCOUNT)) {
- sr.setTotalCount(jn.get(TOTALCOUNT).getIntValue());
+ sr.setTotalCount(jn.get(TOTALCOUNT).intValue());
} else if (key.equals(LATESTUPLOADTIME)) {
try {
- sr.setLatestUploadTime(date.parse(jn.get(LATESTUPLOADTIME).getTextValue()));
+ sr.setLatestUploadTime(date.parse(jn.get(LATESTUPLOADTIME).textValue()));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -110,7 +117,7 @@ public SyncErrorResponse deserialize(JsonParser jp, DeserializationContext desCo
if (JsonResourceTypeLocator.lookupType(key) != null) {
JsonNode jn1 = jn.get(key);
- List syncErrorlist = new ArrayList();
+ List syncErrorlist = new ArrayList();
if (jn1.isArray()) {
@@ -143,7 +150,7 @@ private SyncError getSyncError(JsonNode jsonNode) throws IOException {
mapper.registerModule(simpleModule);
- return mapper.readValue(jsonNode, SyncError.class);
+ return mapper.treeToValue(jsonNode, SyncError.class);
}
}
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/TaxServiceDeserializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/TaxServiceDeserializer.java
index 2e19c2dc..d0487ba4 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/TaxServiceDeserializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/TaxServiceDeserializer.java
@@ -21,15 +21,18 @@
import java.util.Iterator;
import java.util.List;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.map.AnnotationIntrospector;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
-import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.intuit.ipp.data.Fault;
import com.intuit.ipp.data.IntuitResponse;
@@ -61,10 +64,10 @@ public TaxService deserialize(JsonParser jp, DeserializationContext desContext)
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//mapper.setPropertyNamingStrategy(PascalCaseStrategy);
@@ -72,7 +75,7 @@ public TaxService deserialize(JsonParser jp, DeserializationContext desContext)
JsonNode jn = jp.readValueAsTree();
//Iterate over the field names
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
//Create the QueryResponse to be returned
IntuitResponse qr = new IntuitResponse();
@@ -85,14 +88,14 @@ public TaxService deserialize(JsonParser jp, DeserializationContext desContext)
//Attributes
if (key.equalsIgnoreCase(FAULT)) {
- qr.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
- taxService.setFault(mapper.readValue(jn.get(FAULT), Fault.class));
+ qr.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
+ taxService.setFault(mapper.treeToValue(jn.get(FAULT), Fault.class));
continue;
} else if(key.equalsIgnoreCase("TaxCode")){
- taxService.setTaxCode(mapper.readValue(jn.get(key),String.class));
+ taxService.setTaxCode(mapper.treeToValue(jn.get(key),String.class));
} else if(key.equalsIgnoreCase("TaxCodeId"))
{
- taxService.setTaxCodeId(mapper.readValue(jn.get(key),String.class));
+ taxService.setTaxCodeId(mapper.treeToValue(jn.get(key),String.class));
} else if(key.equalsIgnoreCase("TaxRateDetails"))
{
//add a loop to read all tax rate details
@@ -122,31 +125,31 @@ private TaxRateDetails getTaxRateDetails(JsonNode jn) throws IOException
//Make the mapper JAXB annotations aware
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
- AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
- mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
+ AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
+ mapper.setAnnotationIntrospector(pair);
- mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- Iterator ite = jn.getFieldNames();
+ Iterator ite = jn.fieldNames();
while (ite.hasNext()) {
String key = ite.next();
if(key.equalsIgnoreCase("TaxRateName")){
- taxRateDetails.setTaxRateName(mapper.readValue(jn.get(key),String.class));
+ taxRateDetails.setTaxRateName(mapper.treeToValue(jn.get(key),String.class));
} else if (key.equalsIgnoreCase("RateValue"))
{
- taxRateDetails.setRateValue(mapper.readValue(jn.get(key),BigDecimal.class));
+ taxRateDetails.setRateValue(mapper.treeToValue(jn.get(key),BigDecimal.class));
}
else if (key.equalsIgnoreCase("TaxAgencyId"))
{
- taxRateDetails.setTaxAgencyId(mapper.readValue(jn.get(key),String.class));
+ taxRateDetails.setTaxAgencyId(mapper.treeToValue(jn.get(key),String.class));
} else if (key.equalsIgnoreCase("TaxApplicableOn"))
{
- taxRateDetails.setTaxApplicableOn(mapper.readValue(jn.get(key),TaxRateApplicableOnEnum.class));
+ taxRateDetails.setTaxApplicableOn(mapper.treeToValue(jn.get(key),TaxRateApplicableOnEnum.class));
} else if (key.equalsIgnoreCase("TaxRateId"))
{
- taxRateDetails.setTaxRateId(mapper.readValue(jn.get(key),String.class));
+ taxRateDetails.setTaxRateId(mapper.treeToValue(jn.get(key),String.class));
}
}
return taxRateDetails;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/APCreditCardOperationEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/APCreditCardOperationEnumJsonSerializer.java
index c0312d0e..58ed6d2b 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/APCreditCardOperationEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/APCreditCardOperationEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.APCreditCardOperationEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountClassificationEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountClassificationEnumJsonSerializer.java
index d497b125..d315552e 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountClassificationEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountClassificationEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.AccountClassificationEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountSubTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountSubTypeEnumJsonSerializer.java
index acaad489..aae773f4 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountSubTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountSubTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.AccountSubTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountTypeEnumJsonSerializer.java
index 08a942ed..a3269ac3 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AccountTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.AccountTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AcquiredAsEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AcquiredAsEnumJsonSerializer.java
index dd562161..a6390ea5 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AcquiredAsEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AcquiredAsEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.AcquiredAsEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AttachableCategoryEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AttachableCategoryEnumJsonSerializer.java
index a33d678b..b744e555 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AttachableCategoryEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/AttachableCategoryEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.AttachableCategoryEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillPaymentTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillPaymentTypeEnumJsonSerializer.java
index d6cfa503..e87bc7f1 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillPaymentTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillPaymentTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.BillPaymentTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillableStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillableStatusEnumJsonSerializer.java
index 0bf0d583..01e07574 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillableStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/BillableStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.BillableStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCAVSMatchEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCAVSMatchEnumJsonSerializer.java
index ae6558de..2eb9f1d0 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCAVSMatchEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCAVSMatchEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CCAVSMatchEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCPaymentStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCPaymentStatusEnumJsonSerializer.java
index cb9935e3..59ad91a2 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCPaymentStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCPaymentStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CCPaymentStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCSecurityCodeMatchEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCSecurityCodeMatchEnumJsonSerializer.java
index c183b796..fa7bf4e9 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCSecurityCodeMatchEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCSecurityCodeMatchEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CCSecurityCodeMatchEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnModeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnModeEnumJsonSerializer.java
index 06ee012e..6cd8fc59 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnModeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnModeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CCTxnModeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnTypeEnumJsonSerializer.java
index 74f4388e..e1e8c192 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CCTxnTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CCTxnTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ColTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ColTypeEnumJsonSerializer.java
index 947e9527..b67c55b8 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ColTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ColTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.ColumnTypeEnum;
/**
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ContactTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ContactTypeEnumJsonSerializer.java
index 2077860a..1d41e1a4 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ContactTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ContactTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.ContactTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CreditCardTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CreditCardTypeEnumJsonSerializer.java
index 9a83d790..cdbec6f6 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CreditCardTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CreditCardTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CreditCardTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomFieldTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomFieldTypeEnumJsonSerializer.java
index 5a6356a6..e3363409 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomFieldTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomFieldTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CustomFieldTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomerTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomerTypeEnumJsonSerializer.java
index de9e2250..ce760490 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomerTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/CustomerTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.CustomerTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/DayOfWeekEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/DayOfWeekEnumJsonSerializer.java
index ddf8ff63..aebd77b2 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/DayOfWeekEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/DayOfWeekEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.DayOfWeekEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailAddressTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailAddressTypeEnumJsonSerializer.java
index dc45245b..855378b1 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailAddressTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailAddressTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.EmailAddressTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailStatusEnumJsonSerializer.java
index 32d95539..7f4f1089 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmailStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.EmailStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmployeeTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmployeeTypeEnumJsonSerializer.java
index 832bcb03..2dff6168 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmployeeTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EmployeeTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.EmployeeTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityStatusEnumJsonSerializer.java
index 21442eb3..97633f18 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.EntityStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityTypeEnumJsonSerializer.java
index 922ceb17..8f56c594 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EntityTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.EntityTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EstimateStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EstimateStatusEnumJsonSerializer.java
index ab90559d..3f91925d 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EstimateStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/EstimateStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.EstimateStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/FaultTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/FaultTypeEnumJsonSerializer.java
index 9630ff47..03fc3de3 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/FaultTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/FaultTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.FaultTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GenderEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GenderEnumJsonSerializer.java
index 37bdff86..2cd58ccd 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GenderEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GenderEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.Gender;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GlobalTaxCalculationEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GlobalTaxCalculationEnumJsonSerializer.java
index 8dba45a9..fa5341e4 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GlobalTaxCalculationEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/GlobalTaxCalculationEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.GlobalTaxCalculationEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/IdDomainEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/IdDomainEnumJsonSerializer.java
index 4cb141dc..e3cf2a2d 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/IdDomainEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/IdDomainEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.IdDomainEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ItemTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ItemTypeEnumJsonSerializer.java
index 2c84b7a7..ac6085be 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ItemTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ItemTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.ItemTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/JobStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/JobStatusEnumJsonSerializer.java
index 77ced1b4..56d2b145 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/JobStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/JobStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.JobStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/LineDetailTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/LineDetailTypeEnumJsonSerializer.java
index 8cbf1411..efde8076 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/LineDetailTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/LineDetailTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.LineDetailTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/MonthEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/MonthEnumJsonSerializer.java
index ba615688..6ac2c441 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/MonthEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/MonthEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.MonthEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/OperationEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/OperationEnumJsonSerializer.java
index a0947efb..d57a2d01 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/OperationEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/OperationEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.OperationEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaySalesTaxEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaySalesTaxEnumJsonSerializer.java
index f5ccbb86..e1baff44 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaySalesTaxEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaySalesTaxEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PaySalesTaxEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentMethodEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentMethodEnumJsonSerializer.java
index dcd32fdf..fe3693e5 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentMethodEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentMethodEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PaymentMethodEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentStatusEnumJsonSerializer.java
index d420b502..1e0963b6 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PaymentStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentTypeEnumJsonSerializer.java
index e01f272f..73ce5b97 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PaymentTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PaymentTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PerItemAdjustEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PerItemAdjustEnumJsonSerializer.java
index 49fe46af..68aad78c 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PerItemAdjustEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PerItemAdjustEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PerItemAdjustEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PhysicalAddressTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PhysicalAddressTypeEnumJsonSerializer.java
index 2b34b20c..26ffdb6c 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PhysicalAddressTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PhysicalAddressTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PhysicalAddressTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PostingTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PostingTypeEnumJsonSerializer.java
index 5d13d02b..e842ef15 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PostingTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PostingTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PostingTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PriceLevelTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PriceLevelTypeEnumJsonSerializer.java
index b11f5a75..1ac9e4a3 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PriceLevelTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PriceLevelTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PriceLevelTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PrintStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PrintStatusEnumJsonSerializer.java
index 00728b6f..417a3292 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PrintStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PrintStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PrintStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PurchaseOrderStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PurchaseOrderStatusEnumJsonSerializer.java
index c0563c64..b3066758 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PurchaseOrderStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/PurchaseOrderStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.PurchaseOrderStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/QboEstimateStatusEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/QboEstimateStatusEnumJsonSerializer.java
index a0d98bcc..b55d195e 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/QboEstimateStatusEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/QboEstimateStatusEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.QboEstimateStatusEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReimbursableTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReimbursableTypeEnumJsonSerializer.java
index d4330091..ed985040 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReimbursableTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReimbursableTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.ReimbursableTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportBasisEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportBasisEnumJsonSerializer.java
index 1afd85d4..84a342b1 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportBasisEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportBasisEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.ReportBasisEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportNameEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportNameEnumJsonSerializer.java
index 8046a0a6..a5b95214 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportNameEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/ReportNameEnumJsonSerializer.java
@@ -1,18 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2017 Intuit
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
//package com.intuit.ipp.serialization.custom;
//
//import java.io.IOException;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/RoundingMethodEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/RoundingMethodEnumJsonSerializer.java
index b6ed2a83..ff47fc8a 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/RoundingMethodEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/RoundingMethodEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.RoundingMethodEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesRepTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesRepTypeEnumJsonSerializer.java
index 21ad53d3..93f5e7a2 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesRepTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesRepTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.SalesRepTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesTermTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesTermTypeEnumJsonSerializer.java
index 42ee3368..de42df70 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesTermTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SalesTermTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.SalesTermTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialItemTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialItemTypeEnumJsonSerializer.java
index c3047152..3347956f 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialItemTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialItemTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.SpecialItemTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialTaxTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialTaxTypeEnumJsonSerializer.java
index f7f2478e..9dfdfe6a 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialTaxTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SpecialTaxTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.SpecialTaxTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SummarizeColumnsByEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SummarizeColumnsByEnumJsonSerializer.java
index 709a5f0b..fb159d03 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SummarizeColumnsByEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SummarizeColumnsByEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.SummarizeColumnsByEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SymbolPositionEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SymbolPositionEnumJsonSerializer.java
index f6654382..96eb1d5b 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SymbolPositionEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/SymbolPositionEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.SymbolPositionEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxApplicableOnEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxApplicableOnEnumJsonSerializer.java
index 6393c8ed..6779fded 100644
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxApplicableOnEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxApplicableOnEnumJsonSerializer.java
@@ -16,9 +16,9 @@
package com.intuit.ipp.serialization.custom;
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TaxApplicableOnEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateApplicableOnEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateApplicableOnEnumJsonSerializer.java
index 00e1744d..dc788ece 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateApplicableOnEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateApplicableOnEnumJsonSerializer.java
@@ -16,9 +16,9 @@
package com.intuit.ipp.serialization.custom;
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TaxRateApplicableOnEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateDisplayTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateDisplayTypeEnumJsonSerializer.java
index f9b59491..7205d6d9 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateDisplayTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxRateDisplayTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TaxRateDisplayTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxTypeApplicablityEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxTypeApplicablityEnumJsonSerializer.java
index 0ad759f6..7f7d20a6 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxTypeApplicablityEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TaxTypeApplicablityEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TaxTypeApplicablityEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneDeviceTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneDeviceTypeEnumJsonSerializer.java
index 9b422eec..123c9273 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneDeviceTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneDeviceTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TelephoneDeviceTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneNumberTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneNumberTypeEnumJsonSerializer.java
index 100f29f7..57d7b079 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneNumberTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TelephoneNumberTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TelephoneNumberTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TemplateTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TemplateTypeEnumJsonSerializer.java
index b1fe4c80..7b6eadc7 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TemplateTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TemplateTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TemplateTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeActivityTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeActivityTypeEnumJsonSerializer.java
index 5b6f2f8c..09406cf5 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeActivityTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeActivityTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TimeActivityTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeEntryUsedForPaychecksEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeEntryUsedForPaychecksEnumJsonSerializer.java
index 1cd991f6..abd6ae0d 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeEntryUsedForPaychecksEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TimeEntryUsedForPaychecksEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TimeEntryUsedForPaychecksEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TxnTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TxnTypeEnumJsonSerializer.java
index 0cead8f6..4cb98f61 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TxnTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/TxnTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.TxnTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMBaseTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMBaseTypeEnumJsonSerializer.java
index 33352f6d..5c9d06d5 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMBaseTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMBaseTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.UOMBaseTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMFeatureTypeEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMFeatureTypeEnumJsonSerializer.java
index 7a289110..edd41949 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMFeatureTypeEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/UOMFeatureTypeEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.UOMFeatureTypeEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/WeekEnumJsonSerializer.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/WeekEnumJsonSerializer.java
index b257b24c..01fafc6c 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/WeekEnumJsonSerializer.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/custom/WeekEnumJsonSerializer.java
@@ -17,9 +17,9 @@
import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
import com.intuit.ipp.data.WeekEnum;
diff --git a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/services/WebhooksService.java b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/services/WebhooksService.java
index 53089e46..32c91165 100755
--- a/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/services/WebhooksService.java
+++ b/ipp-v3-java-devkit/src/main/java/com/intuit/ipp/services/WebhooksService.java
@@ -24,9 +24,9 @@
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.intuit.ipp.util.StringUtils;
import com.intuit.ipp.data.WebhooksEvent;
diff --git a/ipp-v3-java-devkit/src/main/resources/ippdevkit.properties b/ipp-v3-java-devkit/src/main/resources/ippdevkit.properties
index b5c1a280..ad18f7fb 100755
--- a/ipp-v3-java-devkit/src/main/resources/ippdevkit.properties
+++ b/ipp-v3-java-devkit/src/main/resources/ippdevkit.properties
@@ -2,7 +2,7 @@
## Devkit Version
# This version has to be updated according to the pom version
-version = 2.9.0
+version = 2.9.1
# This is to have the request source to be sent to IDS request header
request.source = V3JavaSDK
diff --git a/ipp-v3-java-devkit/src/test/resources/ippdevkit.properties b/ipp-v3-java-devkit/src/test/resources/ippdevkit.properties
index 0e0f30a7..84bbd3b7 100755
--- a/ipp-v3-java-devkit/src/test/resources/ippdevkit.properties
+++ b/ipp-v3-java-devkit/src/test/resources/ippdevkit.properties
@@ -1,7 +1,7 @@
### IPP Dev Kit helper properties
## Devkit version
-version = 2.9.0
+version = 2.9.1
# This is to have the request source to be sent to IDS request header
request.source = V3JavaSDK
diff --git a/pom.xml b/pom.xml
index d2f92e2e..ce215985 100755
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.intuit.quickbooks-online
ipp-v3-java-devkit-pom
- 2.9.0
+ 2.9.1
pom
IPP V3 Java DevKit
https://github.com/intuit/QuickBooks-V3-Java-SDK
@@ -14,6 +14,7 @@
ipp-v3-java-data
ipp-v3-java-devkit
+ ipp-java-qbapihelper
@@ -30,11 +31,6 @@
jaxb2-basics-runtime
0.6.3
-
- org.codehaus.jackson
- jackson-jaxrs
- 1.9.7
-
org.slf4j
slf4j-api
@@ -99,11 +95,6 @@
gson
1.7.1
-
- org.codehaus.jackson
- jackson-xc
- 1.9.7
-
org.apache.maven.plugins
maven-shade-plugin
@@ -145,6 +136,36 @@
jaxb-impl
2.2.7
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.8.8
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.8.8
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.8.8
+
+
+ com.fasterxml.jackson.jaxrs
+ jackson-jaxrs-json-provider
+ 2.8.8
+
+
+ com.fasterxml.jackson.module
+ jackson-module-jaxb-annotations
+ 2.8.8
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-joda
+ 2.8.8
+