diff --git a/build.gradle b/build.gradle index e2ed85f..0b39afd 100644 --- a/build.gradle +++ b/build.gradle @@ -38,10 +38,13 @@ dependencies { compile group: 'com.google.guava', name: 'guava', version: '11.0.1' + // XML compile 'jdom:jdom:1.0' - testCompile 'junit:junit:3.8.1' + // TEST + testCompile group: 'junit', name: 'junit', version: '4.12' + // DOCS docs "com.ossez.docresources:ossez-doc-resources:${docResourcesVersion}@zip" } diff --git a/pom.xml b/pom.xml index 7155994..f9d35df 100644 --- a/pom.xml +++ b/pom.xml @@ -29,12 +29,15 @@ 1.0 false + + junit junit - 3.8.1 + 4.12 test + log4j log4j diff --git a/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java b/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java index dcb131d..11f7b68 100644 --- a/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java @@ -1,197 +1,200 @@ package com.ossez.reoc.rets.client; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.HashSet; import java.util.Set; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - +/** + * @author YuCheng Hu + */ public class LoginResponse extends KeyValueResponse { - private static final String BROKER_KEY = "Broker"; - private static final String MEMBER_NAME_KEY = "MemberName"; - private static final String METADATA_VER_KEY = "MetadataVersion"; - private static final String MIN_METADATA_VER_KEY = "MinMetadataVersion"; - private static final String USER_INFO_KEY = "User"; - private static final String OFFICE_LIST_KEY = "OfficeList"; - private static final String BALANCE_KEY = "Balance"; - private static final String TIMEOUT_KEY = "TimeoutSeconds"; - private static final String PWD_EXPIRE_KEY = "Expr"; - private static final String METADATA_TIMESTAMP_KEY = "MetadataTimestamp"; - private static final String MIN_METADATA_TIMESTAMP_KEY = "MinMetadataTimestamp"; - private static final Log LOG = LogFactory.getLog(LoginResponse.class); + private static final String BROKER_KEY = "Broker"; + private static final String MEMBER_NAME_KEY = "MemberName"; + private static final String METADATA_VER_KEY = "MetadataVersion"; + private static final String MIN_METADATA_VER_KEY = "MinMetadataVersion"; + private static final String USER_INFO_KEY = "User"; + private static final String OFFICE_LIST_KEY = "OfficeList"; + private static final String BALANCE_KEY = "Balance"; + private static final String TIMEOUT_KEY = "TimeoutSeconds"; + private static final String PWD_EXPIRE_KEY = "Expr"; + private static final String METADATA_TIMESTAMP_KEY = "MetadataTimestamp"; + private static final String MIN_METADATA_TIMESTAMP_KEY = "MinMetadataTimestamp"; + private static final Log LOG = LogFactory.getLog(LoginResponse.class); - private String sessionId; - private String memberName; - private String userInformation; - private String broker; - private String metadataVersion; - private String minMetadataVersion; - private String metadataTimestamp; - private String minMetadataTimestamp; - private String officeList; - private String balance; - private int sessionTimeout; - private String passwordExpiration; - private CapabilityUrls capabilityUrls; - private Set brokerCodes; + private String sessionId; + private String memberName; + private String userInformation; + private String broker; + private String metadataVersion; + private String minMetadataVersion; + private String metadataTimestamp; + private String minMetadataTimestamp; + private String officeList; + private String balance; + private int sessionTimeout; + private String passwordExpiration; + private CapabilityUrls capabilityUrls; + private Set brokerCodes; - public LoginResponse(String loginUrl) { - super(); - this.brokerCodes = new HashSet(); - URL url = null; - try { - url = new URL(loginUrl); - } catch (MalformedURLException e) { - LOG.warn("Bad URL: " + loginUrl); - } - this.capabilityUrls = new CapabilityUrls(url); - } + public LoginResponse(String loginUrl) { + super(); + this.brokerCodes = new HashSet(); + URL url = null; + try { + url = new URL(loginUrl); + } catch (MalformedURLException e) { + LOG.warn("Bad URL: " + loginUrl); + } + this.capabilityUrls = new CapabilityUrls(url); + } - public LoginResponse() { - super(); - this.capabilityUrls = new CapabilityUrls(); - } + public LoginResponse() { + super(); + this.capabilityUrls = new CapabilityUrls(); + } - @Override - public void parse(InputStream stream, RetsVersion version) throws RetsException { - super.parse(stream, version); - if (ReplyCode.BROKER_CODE_REQUIRED.equals(this.mReplyCode)) { - throw new BrokerCodeRequredException(this.brokerCodes); - } - } + @Override + public void parse(InputStream stream, RetsVersion version) throws RetsException { + super.parse(stream, version); + if (ReplyCode.BROKER_CODE_REQUIRED.equals(this.mReplyCode)) { + throw new BrokerCodeRequredException(this.brokerCodes); + } + } - @Override - protected boolean isValidReplyCode(int replyCode) { - return (super.isValidReplyCode(replyCode) || ReplyCode.BROKER_CODE_REQUIRED.equals(replyCode)); - } + @Override + protected boolean isValidReplyCode(int replyCode) { + return (super.isValidReplyCode(replyCode) || ReplyCode.BROKER_CODE_REQUIRED.equals(replyCode)); + } - @Override - protected void handleKeyValue(String key, String value) throws RetsException { - if (ReplyCode.BROKER_CODE_REQUIRED.equals(this.mReplyCode)) { - if (matchKey(key, BROKER_KEY)) { - String[] strings = StringUtils.split(value, ","); - if (strings.length > 0 && strings.length < 3) { - this.brokerCodes.add(strings); - } else { - throw new RetsException("Invalid broker/branch code: " + value); - } - } - } + @Override + protected void handleKeyValue(String key, String value) throws RetsException { + if (ReplyCode.BROKER_CODE_REQUIRED.equals(this.mReplyCode)) { + if (matchKey(key, BROKER_KEY)) { + String[] strings = StringUtils.split(value, ","); + if (strings.length > 0 && strings.length < 3) { + this.brokerCodes.add(strings); + } else { + throw new RetsException("Invalid broker/branch code: " + value); + } + } + } - if (matchKey(key, BROKER_KEY)) { - this.broker = value; - } else if (matchKey(key, MEMBER_NAME_KEY)) { - this.memberName = value; - } else if (matchKey(key, METADATA_VER_KEY)) { - this.metadataVersion = value; - } else if (matchKey(key, MIN_METADATA_VER_KEY)) { - this.minMetadataVersion = value; - } else if (matchKey(key, METADATA_TIMESTAMP_KEY)) { - this.metadataTimestamp = value; - } else if (matchKey(key, MIN_METADATA_TIMESTAMP_KEY)) { - this.minMetadataTimestamp = value; - } else if (matchKey(key, USER_INFO_KEY)) { - this.userInformation = value; - } else if (matchKey(key, OFFICE_LIST_KEY)) { - this.officeList = value; - } else if (matchKey(key, BALANCE_KEY)) { - this.balance = value; - } else if (matchKey(key, TIMEOUT_KEY)) { - this.sessionTimeout = NumberUtils.toInt(value); - } else if (matchKey(key, PWD_EXPIRE_KEY)) { - this.passwordExpiration = value; - } else if (matchKey(key, CapabilityUrls.ACTION_URL)) { - this.capabilityUrls.setActionUrl(value); - } else if (matchKey(key, CapabilityUrls.CHANGE_PASSWORD_URL)) { - this.capabilityUrls.setChangePasswordUrl(value); - } else if (matchKey(key, CapabilityUrls.GET_OBJECT_URL)) { - this.capabilityUrls.setGetObjectUrl(value); - } else if (matchKey(key, CapabilityUrls.LOGIN_URL)) { - this.capabilityUrls.setLoginUrl(value); - } else if (matchKey(key, CapabilityUrls.LOGIN_COMPLETE_URL)) { - this.capabilityUrls.setLoginCompleteUrl(value); - } else if (matchKey(key, CapabilityUrls.LOGOUT_URL)) { - this.capabilityUrls.setLogoutUrl(value); - } else if (matchKey(key, CapabilityUrls.SEARCH_URL)) { - this.capabilityUrls.setSearchUrl(value); - } else if (matchKey(key, CapabilityUrls.GET_METADATA_URL)) { - this.capabilityUrls.setGetMetadataUrl(value); - } else if (matchKey(key, CapabilityUrls.UPDATE_URL)) { - this.capabilityUrls.setUpdateUrl(value); - }else if (matchKey(key, CapabilityUrls.SERVER_INFO_URL)) { - this.capabilityUrls.setServerInfo(value); - LOG.warn("Depreciated: " + key + " -> " + value); - } else if (matchKey(key, "Get")) { - LOG.warn("Found bad key: Get -> " + value); - // FIX ME: Should not get this - } else { - if (key.substring(0, 2).equalsIgnoreCase("X-")) { - LOG.warn("Unknown experimental key: " + key + " -> " + value); - } else { - assertStrictWarning(LOG, "Invalid login response key: " + key + " -> " + value); - } - } - } + if (matchKey(key, BROKER_KEY)) { + this.broker = value; + } else if (matchKey(key, MEMBER_NAME_KEY)) { + this.memberName = value; + } else if (matchKey(key, METADATA_VER_KEY)) { + this.metadataVersion = value; + } else if (matchKey(key, MIN_METADATA_VER_KEY)) { + this.minMetadataVersion = value; + } else if (matchKey(key, METADATA_TIMESTAMP_KEY)) { + this.metadataTimestamp = value; + } else if (matchKey(key, MIN_METADATA_TIMESTAMP_KEY)) { + this.minMetadataTimestamp = value; + } else if (matchKey(key, USER_INFO_KEY)) { + this.userInformation = value; + } else if (matchKey(key, OFFICE_LIST_KEY)) { + this.officeList = value; + } else if (matchKey(key, BALANCE_KEY)) { + this.balance = value; + } else if (matchKey(key, TIMEOUT_KEY)) { + this.sessionTimeout = NumberUtils.toInt(value); + } else if (matchKey(key, PWD_EXPIRE_KEY)) { + this.passwordExpiration = value; + } else if (matchKey(key, CapabilityUrls.ACTION_URL)) { + this.capabilityUrls.setActionUrl(value); + } else if (matchKey(key, CapabilityUrls.CHANGE_PASSWORD_URL)) { + this.capabilityUrls.setChangePasswordUrl(value); + } else if (matchKey(key, CapabilityUrls.GET_OBJECT_URL)) { + this.capabilityUrls.setGetObjectUrl(value); + } else if (matchKey(key, CapabilityUrls.LOGIN_URL)) { + this.capabilityUrls.setLoginUrl(value); + } else if (matchKey(key, CapabilityUrls.LOGIN_COMPLETE_URL)) { + this.capabilityUrls.setLoginCompleteUrl(value); + } else if (matchKey(key, CapabilityUrls.LOGOUT_URL)) { + this.capabilityUrls.setLogoutUrl(value); + } else if (matchKey(key, CapabilityUrls.SEARCH_URL)) { + this.capabilityUrls.setSearchUrl(value); + } else if (matchKey(key, CapabilityUrls.GET_METADATA_URL)) { + this.capabilityUrls.setGetMetadataUrl(value); + } else if (matchKey(key, CapabilityUrls.UPDATE_URL)) { + this.capabilityUrls.setUpdateUrl(value); + } else if (matchKey(key, CapabilityUrls.SERVER_INFO_URL)) { + this.capabilityUrls.setServerInfo(value); + LOG.warn("Depreciated: " + key + " -> " + value); + } else if (matchKey(key, "Get")) { + LOG.warn("Found bad key: Get -> " + value); + // FIX ME: Should not get this + } else { + if (key.substring(0, 2).equalsIgnoreCase("X-")) { + LOG.warn("Unknown experimental key: " + key + " -> " + value); + } else { + assertStrictWarning(LOG, "Invalid login response key: " + key + " -> " + value); + } + } + } - public String getMemberName() { - return this.memberName; - } + public String getMemberName() { + return this.memberName; + } - public String getUserInformation() { - return this.userInformation; - } + public String getUserInformation() { + return this.userInformation; + } - public String getBroker() { - return this.broker; - } + public String getBroker() { + return this.broker; + } - public String getMetadataVersion() { - return this.metadataVersion; - } + public String getMetadataVersion() { + return this.metadataVersion; + } - public String getMinMetadataVersion() { - return this.minMetadataVersion; - } - - public String getMetadataTimestamp() { - return this.metadataTimestamp; - } + public String getMinMetadataVersion() { + return this.minMetadataVersion; + } - public String getMinMetadataTimestamp() { - return this.minMetadataTimestamp; - } + public String getMetadataTimestamp() { + return this.metadataTimestamp; + } - public String getOfficeList() { - return this.officeList; - } + public String getMinMetadataTimestamp() { + return this.minMetadataTimestamp; + } - public String getBalance() { - return this.balance; - } + public String getOfficeList() { + return this.officeList; + } - public int getSessionTimeout() { - return this.sessionTimeout; - } + public String getBalance() { + return this.balance; + } - public String getPasswordExpiration() { - return this.passwordExpiration; - } + public int getSessionTimeout() { + return this.sessionTimeout; + } - public CapabilityUrls getCapabilityUrls() { - return this.capabilityUrls; - } + public String getPasswordExpiration() { + return this.passwordExpiration; + } - public String getSessionId() { - return this.sessionId; - } + public CapabilityUrls getCapabilityUrls() { + return this.capabilityUrls; + } - public void setSessionId(String sessionId) { - this.sessionId = sessionId; - } + public String getSessionId() { + return this.sessionId; + } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } } diff --git a/src/main/java/com/ossez/reoc/rets/client/RetsHttpResponse.java b/src/main/java/com/ossez/reoc/rets/client/RetsHttpResponse.java index d8afb19..3665d8e 100644 --- a/src/main/java/com/ossez/reoc/rets/client/RetsHttpResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/RetsHttpResponse.java @@ -1,27 +1,26 @@ package com.ossez.reoc.rets.client; -import java.util.Map; import java.io.InputStream; +import java.util.Map; /** * Interface for retrieving useful header fields from a RETS HTTP response - * * + * @author YuCheng Hu */ - public interface RetsHttpResponse { - public int getResponseCode() throws RetsException; + public int getResponseCode() throws RetsException; - public Map getHeaders() throws RetsException; + public Map getHeaders() throws RetsException; - public String getHeader(String hdr) throws RetsException; + public String getHeader(String hdr) throws RetsException; - public String getCookie(String cookie) throws RetsException; + public String getCookie(String cookie) throws RetsException; - public String getCharset() throws RetsException; - - public InputStream getInputStream() throws RetsException; + public String getCharset() throws RetsException; - public Map getCookies() throws RetsException; + public InputStream getInputStream() throws RetsException; + + public Map getCookies() throws RetsException; }