Added proxy functionality
This commit is contained in:
+10
-5
@@ -39,11 +39,6 @@
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
@@ -59,6 +54,16 @@
|
||||
<artifactId>jackson-mapper-lgpl</artifactId>
|
||||
<version>1.9.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
@@ -15,13 +15,14 @@ package com.moviejukebox.themoviedb;
|
||||
import com.moviejukebox.themoviedb.model.*;
|
||||
import com.moviejukebox.themoviedb.tools.ApiUrl;
|
||||
import com.moviejukebox.themoviedb.tools.FilteringLayout;
|
||||
import com.moviejukebox.themoviedb.tools.WebBrowser;
|
||||
import com.moviejukebox.themoviedb.wrapper.*;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
|
||||
@@ -87,6 +88,30 @@ public class TheMovieDb {
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the proxy information
|
||||
* @param host
|
||||
* @param port
|
||||
* @param username
|
||||
* @param password
|
||||
*/
|
||||
public void setProxy(String host, String port, String username, String password) {
|
||||
WebBrowser.setProxyHost(host);
|
||||
WebBrowser.setProxyPort(port);
|
||||
WebBrowser.setProxyUsername(username);
|
||||
WebBrowser.setProxyPassword(password);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the connection and read time out values
|
||||
* @param connect
|
||||
* @param read
|
||||
*/
|
||||
public void setTimeout(int connect, int read) {
|
||||
WebBrowser.setWebTimeoutConnect(connect);
|
||||
WebBrowser.setWebTimeoutRead(read);
|
||||
}
|
||||
|
||||
/**
|
||||
* Search Movies This is a good starting point to start finding movies on
|
||||
* TMDb. The idea is to be a quick and light method so you can iterate
|
||||
@@ -96,7 +121,8 @@ public class TheMovieDb {
|
||||
public List<MovieDb> searchMovie(String movieName, String language, boolean allResults) {
|
||||
try {
|
||||
URL url = tmdbSearchMovie.getQueryUrl(movieName, language, 1);
|
||||
WrapperResultList resultList = mapper.readValue(url, WrapperResultList.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperResultList resultList = mapper.readValue(webPage, WrapperResultList.class);
|
||||
return resultList.getResults();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to find movie: " + ex.getMessage());
|
||||
@@ -115,7 +141,8 @@ public class TheMovieDb {
|
||||
public MovieDb getMovieInfo(int movieId, String language) {
|
||||
try {
|
||||
URL url = tmdbMovieInfo.getIdUrl(movieId, language);
|
||||
return mapper.readValue(url, MovieDb.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
return mapper.readValue(webPage, MovieDb.class);
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie info: " + ex.getMessage());
|
||||
}
|
||||
@@ -133,7 +160,8 @@ public class TheMovieDb {
|
||||
public MovieDb getMovieInfoImdb(String imdbId, String language) {
|
||||
try {
|
||||
URL url = tmdbMovieInfo.getIdUrl(imdbId, language);
|
||||
return mapper.readValue(url, MovieDb.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
return mapper.readValue(webPage, MovieDb.class);
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie info: " + ex.getMessage());
|
||||
}
|
||||
@@ -151,7 +179,8 @@ public class TheMovieDb {
|
||||
public List<AlternativeTitle> getMovieAlternativeTitles(int movieId, String country) {
|
||||
try {
|
||||
URL url = tmdbMovieAltTitles.getIdUrl(movieId, country);
|
||||
WrapperAlternativeTitles at = mapper.readValue(url, WrapperAlternativeTitles.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperAlternativeTitles at = mapper.readValue(webPage, WrapperAlternativeTitles.class);
|
||||
return at.getTitles();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie alternative titles: " + ex.getMessage());
|
||||
@@ -171,7 +200,8 @@ public class TheMovieDb {
|
||||
|
||||
try {
|
||||
URL url = tmdbMovieCasts.getIdUrl(movieId);
|
||||
WrapperMovieCasts mc = mapper.readValue(url, WrapperMovieCasts.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperMovieCasts mc = mapper.readValue(webPage, WrapperMovieCasts.class);
|
||||
|
||||
// Add a cast member
|
||||
for (PersonCast cast : mc.getCast()) {
|
||||
@@ -206,7 +236,8 @@ public class TheMovieDb {
|
||||
List<Artwork> artwork = new ArrayList<Artwork>();
|
||||
try {
|
||||
URL url = tmdbMovieImages.getIdUrl(movieId, language);
|
||||
WrapperImages mi = mapper.readValue(url, WrapperImages.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperImages mi = mapper.readValue(webPage, WrapperImages.class);
|
||||
|
||||
// Add all the posters to the list
|
||||
for (Artwork poster : mi.getPosters()) {
|
||||
@@ -237,7 +268,8 @@ public class TheMovieDb {
|
||||
public List<Keyword> getMovieKeywords(int movieId) {
|
||||
try {
|
||||
URL url = tmdbMovieKeywords.getIdUrl(movieId);
|
||||
WrapperMovieKeywords mk = mapper.readValue(url, WrapperMovieKeywords.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperMovieKeywords mk = mapper.readValue(webPage, WrapperMovieKeywords.class);
|
||||
return mk.getKeywords();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie keywords: " + ex.getMessage());
|
||||
@@ -256,7 +288,8 @@ public class TheMovieDb {
|
||||
public List<ReleaseInfo> getMovieReleaseInfo(int movieId, String language) {
|
||||
try {
|
||||
URL url = tmdbMovieReleaseInfo.getIdUrl(movieId);
|
||||
WrapperReleaseInfo ri = mapper.readValue(url, WrapperReleaseInfo.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperReleaseInfo ri = mapper.readValue(webPage, WrapperReleaseInfo.class);
|
||||
return ri.getCountries();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie release information: " + ex.getMessage());
|
||||
@@ -276,7 +309,8 @@ public class TheMovieDb {
|
||||
List<Trailer> trailers = new ArrayList<Trailer>();
|
||||
try {
|
||||
URL url = tmdbMovieTrailers.getIdUrl(movieId);
|
||||
WrapperTrailers wt = mapper.readValue(url, WrapperTrailers.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperTrailers wt = mapper.readValue(webPage, WrapperTrailers.class);
|
||||
|
||||
// Add the trailer to the return list along with it's source
|
||||
for (Trailer trailer : wt.getQuicktime()) {
|
||||
@@ -306,7 +340,8 @@ public class TheMovieDb {
|
||||
public List<Translation> getMovieTranslations(int movieId) {
|
||||
try {
|
||||
URL url = tmdbMovieTranslations.getIdUrl(movieId);
|
||||
WrapperTranslations wt = mapper.readValue(url, WrapperTranslations.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperTranslations wt = mapper.readValue(webPage, WrapperTranslations.class);
|
||||
return wt.getTranslations();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie tranlations: " + ex.getMessage());
|
||||
@@ -326,7 +361,8 @@ public class TheMovieDb {
|
||||
public CollectionInfo getCollectionInfo(int movieId, String language) {
|
||||
try {
|
||||
URL url = tmdbCollectionInfo.getIdUrl(movieId);
|
||||
return mapper.readValue(url, CollectionInfo.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
return mapper.readValue(webPage, CollectionInfo.class);
|
||||
} catch (IOException ex) {
|
||||
return new CollectionInfo();
|
||||
}
|
||||
@@ -380,7 +416,8 @@ public class TheMovieDb {
|
||||
|
||||
try {
|
||||
URL url = tmdbSearchPeople.getQueryUrl(personName, "", 1);
|
||||
WrapperPerson resultList = mapper.readValue(url, WrapperPerson.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperPerson resultList = mapper.readValue(webPage, WrapperPerson.class);
|
||||
return resultList.getResults();
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to find person: " + ex.getMessage());
|
||||
@@ -398,7 +435,8 @@ public class TheMovieDb {
|
||||
public Person getPersonInfo(int personId) {
|
||||
try {
|
||||
URL url = tmdbPersonInfo.getIdUrl(personId);
|
||||
return mapper.readValue(url, Person.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
return mapper.readValue(webPage, Person.class);
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get movie info: " + ex.getMessage());
|
||||
return new Person();
|
||||
@@ -418,7 +456,8 @@ public class TheMovieDb {
|
||||
|
||||
try {
|
||||
URL url = tmdbPersonCredits.getIdUrl(personId);
|
||||
WrapperPersonCredits pc = mapper.readValue(url, WrapperPersonCredits.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperPersonCredits pc = mapper.readValue(webPage, WrapperPersonCredits.class);
|
||||
|
||||
// Add a cast member
|
||||
for (PersonCredit cast : pc.getCast()) {
|
||||
@@ -450,7 +489,8 @@ public class TheMovieDb {
|
||||
|
||||
try {
|
||||
URL url = tmdbPersonImages.getIdUrl(personId);
|
||||
WrapperImages images = mapper.readValue(url, WrapperImages.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
WrapperImages images = mapper.readValue(webPage, WrapperImages.class);
|
||||
|
||||
// Update the image type
|
||||
for (Artwork artwork : images.getProfiles()) {
|
||||
@@ -473,7 +513,8 @@ public class TheMovieDb {
|
||||
public MovieDb getLatestMovie() {
|
||||
try {
|
||||
URL url = tmdbLatestMovie.getIdUrl("");
|
||||
return mapper.readValue(url, MovieDb.class);
|
||||
String webPage = WebBrowser.request(url);
|
||||
return mapper.readValue(webPage, MovieDb.class);
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to get latest movie: " + ex.getMessage());
|
||||
return new MovieDb();
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
*/
|
||||
package com.moviejukebox.themoviedb.model;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.codehaus.jackson.annotate.JsonAnySetter;
|
||||
import org.codehaus.jackson.annotate.JsonProperty;
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
package com.moviejukebox.themoviedb.model;
|
||||
|
||||
import java.util.List;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.codehaus.jackson.annotate.JsonAnySetter;
|
||||
import org.codehaus.jackson.annotate.JsonProperty;
|
||||
|
||||
@@ -17,7 +17,7 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2012 YAMJ Members
|
||||
* http://code.google.com/p/moviejukebox/people/list
|
||||
*
|
||||
* Web: http://code.google.com/p/moviejukebox/
|
||||
*
|
||||
* This software is licensed under a Creative Commons License
|
||||
* See this page: http://code.google.com/p/moviejukebox/wiki/License
|
||||
*
|
||||
* For any reuse or distribution, you must make clear to others the
|
||||
* license terms of this work.
|
||||
*/
|
||||
package com.moviejukebox.themoviedb.tools;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.StringWriter;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.UnsupportedCharsetException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* Web browser with simple cookies support
|
||||
*/
|
||||
public final class WebBrowser {
|
||||
|
||||
private static Map<String, String> browserProperties = new HashMap<String, String>();
|
||||
private static Map<String, Map<String, String>> cookies = new HashMap<String, Map<String, String>>();
|
||||
private static String proxyHost = null;
|
||||
private static String proxyPort = null;
|
||||
private static String proxyUsername = null;
|
||||
private static String proxyPassword = null;
|
||||
private static String proxyEncodedPassword = null;
|
||||
private static int webTimeoutConnect = 25000; // 25 second timeout
|
||||
private static int webTimeoutRead = 90000; // 90 second timeout
|
||||
|
||||
// Hide the constructor
|
||||
protected WebBrowser() {
|
||||
// prevents calls from subclass
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate the browser properties
|
||||
*/
|
||||
private static void populateBrowserProperties() {
|
||||
if (browserProperties.isEmpty()) {
|
||||
browserProperties.put("User-Agent", "Mozilla/5.25 Netscape/5.0 (Windows; I; Win95)");
|
||||
}
|
||||
}
|
||||
|
||||
public static String request(String url) throws IOException {
|
||||
return request(new URL(url));
|
||||
}
|
||||
|
||||
public static URLConnection openProxiedConnection(URL url) throws IOException {
|
||||
if (proxyHost != null) {
|
||||
System.getProperties().put("proxySet", "true");
|
||||
System.getProperties().put("proxyHost", proxyHost);
|
||||
System.getProperties().put("proxyPort", proxyPort);
|
||||
}
|
||||
|
||||
URLConnection cnx = url.openConnection();
|
||||
|
||||
if (proxyUsername != null) {
|
||||
cnx.setRequestProperty("Proxy-Authorization", proxyEncodedPassword);
|
||||
}
|
||||
|
||||
return cnx;
|
||||
}
|
||||
|
||||
public static String request(URL url) throws IOException {
|
||||
StringWriter content = null;
|
||||
|
||||
try {
|
||||
content = new StringWriter();
|
||||
|
||||
BufferedReader in = null;
|
||||
URLConnection cnx = null;
|
||||
try {
|
||||
cnx = openProxiedConnection(url);
|
||||
|
||||
sendHeader(cnx);
|
||||
readHeader(cnx);
|
||||
|
||||
in = new BufferedReader(new InputStreamReader(cnx.getInputStream(), getCharset(cnx)));
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) {
|
||||
content.write(line);
|
||||
}
|
||||
} finally {
|
||||
if (in != null) {
|
||||
in.close();
|
||||
}
|
||||
if (cnx != null && cnx instanceof HttpURLConnection) {
|
||||
((HttpURLConnection) cnx).disconnect();
|
||||
}
|
||||
}
|
||||
return content.toString();
|
||||
} finally {
|
||||
if (content != null) {
|
||||
content.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void sendHeader(URLConnection cnx) {
|
||||
populateBrowserProperties();
|
||||
|
||||
// send browser properties
|
||||
for (Map.Entry<String, String> browserProperty : browserProperties.entrySet()) {
|
||||
cnx.setRequestProperty(browserProperty.getKey(), browserProperty.getValue());
|
||||
}
|
||||
// send cookies
|
||||
String cookieHeader = createCookieHeader(cnx);
|
||||
if (!cookieHeader.isEmpty()) {
|
||||
cnx.setRequestProperty("Cookie", cookieHeader);
|
||||
}
|
||||
}
|
||||
|
||||
private static String createCookieHeader(URLConnection cnx) {
|
||||
String host = cnx.getURL().getHost();
|
||||
StringBuilder cookiesHeader = new StringBuilder();
|
||||
for (Map.Entry<String, Map<String, String>> domainCookies : cookies.entrySet()) {
|
||||
if (host.endsWith(domainCookies.getKey())) {
|
||||
for (Map.Entry<String, String> cookie : domainCookies.getValue().entrySet()) {
|
||||
cookiesHeader.append(cookie.getKey());
|
||||
cookiesHeader.append("=");
|
||||
cookiesHeader.append(cookie.getValue());
|
||||
cookiesHeader.append(";");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cookiesHeader.length() > 0) {
|
||||
// remove last ; char
|
||||
cookiesHeader.deleteCharAt(cookiesHeader.length() - 1);
|
||||
}
|
||||
return cookiesHeader.toString();
|
||||
}
|
||||
|
||||
private static void readHeader(URLConnection cnx) {
|
||||
// read new cookies and update our cookies
|
||||
for (Map.Entry<String, List<String>> header : cnx.getHeaderFields().entrySet()) {
|
||||
if ("Set-Cookie".equals(header.getKey())) {
|
||||
for (String cookieHeader : header.getValue()) {
|
||||
String[] cookieElements = cookieHeader.split(" *; *");
|
||||
if (cookieElements.length >= 1) {
|
||||
String[] firstElem = cookieElements[0].split(" *= *");
|
||||
String cookieName = firstElem[0];
|
||||
String cookieValue = firstElem.length > 1 ? firstElem[1] : null;
|
||||
String cookieDomain = null;
|
||||
// find cookie domain
|
||||
for (int i = 1; i < cookieElements.length; i++) {
|
||||
String[] cookieElement = cookieElements[i].split(" *= *");
|
||||
if ("domain".equals(cookieElement[0])) {
|
||||
cookieDomain = cookieElement.length > 1 ? cookieElement[1] : null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (cookieDomain == null) {
|
||||
// if domain isn't set take current host
|
||||
cookieDomain = cnx.getURL().getHost();
|
||||
}
|
||||
Map<String, String> domainCookies = cookies.get(cookieDomain);
|
||||
if (domainCookies == null) {
|
||||
domainCookies = new HashMap<String, String>();
|
||||
cookies.put(cookieDomain, domainCookies);
|
||||
}
|
||||
// add or replace cookie
|
||||
domainCookies.put(cookieName, cookieValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Charset getCharset(URLConnection cnx) {
|
||||
Charset charset = null;
|
||||
// content type will be string like "text/html; charset=UTF-8" or "text/html"
|
||||
String contentType = cnx.getContentType();
|
||||
if (contentType != null) {
|
||||
// changed 'charset' to 'harset' in regexp because some sites send 'Charset'
|
||||
Matcher m = Pattern.compile("harset *=[ '\"]*([^ ;'\"]+)[ ;'\"]*").matcher(contentType);
|
||||
if (m.find()) {
|
||||
String encoding = m.group(1);
|
||||
try {
|
||||
charset = Charset.forName(encoding);
|
||||
} catch (UnsupportedCharsetException e) {
|
||||
// there will be used default charset
|
||||
}
|
||||
}
|
||||
}
|
||||
if (charset == null) {
|
||||
charset = Charset.defaultCharset();
|
||||
}
|
||||
|
||||
return charset;
|
||||
}
|
||||
|
||||
public static String getProxyHost() {
|
||||
return proxyHost;
|
||||
}
|
||||
|
||||
public static void setProxyHost(String myProxyHost) {
|
||||
WebBrowser.proxyHost = myProxyHost;
|
||||
}
|
||||
|
||||
public static String getProxyPort() {
|
||||
return proxyPort;
|
||||
}
|
||||
|
||||
public static void setProxyPort(String myProxyPort) {
|
||||
WebBrowser.proxyPort = myProxyPort;
|
||||
}
|
||||
|
||||
public static String getProxyUsername() {
|
||||
return proxyUsername;
|
||||
}
|
||||
|
||||
public static void setProxyUsername(String myProxyUsername) {
|
||||
WebBrowser.proxyUsername = myProxyUsername;
|
||||
}
|
||||
|
||||
public static String getProxyPassword() {
|
||||
return proxyPassword;
|
||||
}
|
||||
|
||||
public static void setProxyPassword(String myProxyPassword) {
|
||||
WebBrowser.proxyPassword = myProxyPassword;
|
||||
|
||||
if (proxyUsername != null) {
|
||||
proxyEncodedPassword = proxyUsername + ":" + proxyPassword;
|
||||
proxyEncodedPassword = "Basic " + new String(Base64.encodeBase64((proxyUsername + ":" + proxyPassword).getBytes()));
|
||||
}
|
||||
}
|
||||
|
||||
public static int getWebTimeoutConnect() {
|
||||
return webTimeoutConnect;
|
||||
}
|
||||
|
||||
public static int getWebTimeoutRead() {
|
||||
return webTimeoutRead;
|
||||
}
|
||||
|
||||
public static void setWebTimeoutConnect(int webTimeoutConnect) {
|
||||
WebBrowser.webTimeoutConnect = webTimeoutConnect;
|
||||
}
|
||||
|
||||
public static void setWebTimeoutRead(int webTimeoutRead) {
|
||||
WebBrowser.webTimeoutRead = webTimeoutRead;
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,7 @@ import com.moviejukebox.themoviedb.model.*;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.List;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.*;
|
||||
|
||||
Reference in New Issue
Block a user