updated to latest twitter schema

This commit is contained in:
Adrian Cole 2010-07-06 13:31:27 -07:00
parent bff39d81f0
commit 5680ef5c1c
7 changed files with 429 additions and 511 deletions

View File

@ -0,0 +1,82 @@
/**
*
* Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com>
*
* ====================================================================
* 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 org.jclouds.twitter.domain;
import java.util.Arrays;
/**
*
* @author Adrian Cole
*
*/
public class Location {
private String type;
private double[] coordinates;
public Location() {
}
public Location(String type, double[] coordinates) {
this.type = type;
this.coordinates = Arrays.copyOf(coordinates, coordinates.length);
}
public String getType() {
return type;
}
public double[] getCoordinates() {
return coordinates;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Arrays.hashCode(coordinates);
result = prime * result + ((type == null) ? 0 : type.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Location other = (Location) obj;
if (!Arrays.equals(coordinates, other.coordinates))
return false;
if (type == null) {
if (other.type != null)
return false;
} else if (!type.equals(other.type))
return false;
return true;
}
@Override
public String toString() {
return "Location [coordinates=" + Arrays.toString(coordinates) + ", type=" + type + "]";
}
}

View File

@ -31,12 +31,12 @@ public class Status implements Comparable<Status> {
@SerializedName("created_at") @SerializedName("created_at")
private Date createdAt; private Date createdAt;
private boolean favorited; private boolean favorited;
private String geo; private Location geo;
private long id; private long id;
@SerializedName("in_reply_to_screen_name") @SerializedName("in_reply_to_screen_name")
private String inReplyToScreenName; private String inReplyToScreenName;
@SerializedName("in_reply_to_status_id") @SerializedName("in_reply_to_status_id")
private Integer inReplyToStatusId; private Long inReplyToStatusId;
@SerializedName("in_reply_to_user_id") @SerializedName("in_reply_to_user_id")
private Integer inReplyToUserId; private Integer inReplyToUserId;
private String source; private String source;
@ -47,8 +47,14 @@ public class Status implements Comparable<Status> {
public Status() { public Status() {
} }
public Status(Date createdAt, boolean favorited, String geo, long id, public Status(long id, User user, String text) {
String inReplyToScreenName, Integer inReplyToStatusId, Integer inReplyToUserId, this.id = id;
this.user = user;
this.text = text;
}
public Status(Date createdAt, boolean favorited, Location geo, long id,
String inReplyToScreenName, Long inReplyToStatusId, Integer inReplyToUserId,
String source, String text, boolean truncated, User user) { String source, String text, boolean truncated, User user) {
this.createdAt = createdAt; this.createdAt = createdAt;
this.favorited = favorited; this.favorited = favorited;
@ -63,13 +69,15 @@ public class Status implements Comparable<Status> {
this.user = user; this.user = user;
} }
public int compareTo(Status o) {
return (int) ((this == o) ? 0 : id + "".compareTo(o.id + ""));
}
@Override @Override
public int hashCode() { public int hashCode() {
final int prime = 31; final int prime = 31;
int result = 1; int result = 1;
result = prime * result + ((createdAt == null) ? 0 : createdAt.hashCode());
result = prime * result + (int) (id ^ (id >>> 32)); result = prime * result + (int) (id ^ (id >>> 32));
result = prime * result + ((text == null) ? 0 : text.hashCode());
result = prime * result + ((user == null) ? 0 : user.hashCode()); result = prime * result + ((user == null) ? 0 : user.hashCode());
return result; return result;
} }
@ -83,18 +91,8 @@ public class Status implements Comparable<Status> {
if (getClass() != obj.getClass()) if (getClass() != obj.getClass())
return false; return false;
Status other = (Status) obj; Status other = (Status) obj;
if (createdAt == null) {
if (other.createdAt != null)
return false;
} else if (!createdAt.equals(other.createdAt))
return false;
if (id != other.id) if (id != other.id)
return false; return false;
if (text == null) {
if (other.text != null)
return false;
} else if (!text.equals(other.text))
return false;
if (user == null) { if (user == null) {
if (other.user != null) if (other.user != null)
return false; return false;
@ -103,95 +101,57 @@ public class Status implements Comparable<Status> {
return true; return true;
} }
@Override
public String toString() {
return "Status [createdAt=" + createdAt + ", favorited=" + favorited + ", geo=" + geo
+ ", id=" + id + ", inReplyToScreenName=" + inReplyToScreenName
+ ", inReplyToStatusId=" + inReplyToStatusId + ", inReplyToUserId="
+ inReplyToUserId + ", source=" + source + ", text=" + text + ", truncated="
+ truncated + ", user=" + user + "]";
}
public Date getCreatedAt() { public Date getCreatedAt() {
return createdAt; return createdAt;
} }
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public boolean isTruncated() {
return truncated;
}
public void setTruncated(boolean truncated) {
this.truncated = truncated;
}
public Integer getInReplyToStatusId() {
return inReplyToStatusId;
}
public void setInReplyToStatusId(Integer inReplyToStatusId) {
this.inReplyToStatusId = inReplyToStatusId;
}
public Integer getInReplyToUserId() {
return inReplyToUserId;
}
public void setInReplyToUserId(Integer inReplyToUserId) {
this.inReplyToUserId = inReplyToUserId;
}
public boolean isFavorited() { public boolean isFavorited() {
return favorited; return favorited;
} }
public void setFavorited(boolean favorited) { public Location getGeo() {
this.favorited = favorited; return geo;
}
public long getId() {
return id;
} }
public String getInReplyToScreenName() { public String getInReplyToScreenName() {
return inReplyToScreenName; return inReplyToScreenName;
} }
public void setInReplyToScreenName(String inReplyToScreenName) { public Long getInReplyToStatusId() {
this.inReplyToScreenName = inReplyToScreenName; return inReplyToStatusId;
}
public Integer getInReplyToUserId() {
return inReplyToUserId;
}
public String getSource() {
return source;
}
public String getText() {
return text;
}
public boolean isTruncated() {
return truncated;
} }
public User getUser() { public User getUser() {
return user; return user;
} }
public void setUser(User user) {
this.user = user;
}
public int compareTo(Status o) {
return (int) ((this == o) ? 0 : id + "".compareTo(o.id + ""));
}
public void setGeo(String geo) {
this.geo = geo;
}
public String getGeo() {
return geo;
}
} }

View File

@ -40,9 +40,12 @@ public class User implements Comparable<User> {
private int friendsCount; private int friendsCount;
@SerializedName("geo_enabled") @SerializedName("geo_enabled")
private boolean geoEnabled; private boolean geoEnabled;
@SerializedName("contributors_enabled")
private boolean contributorsEnabled;
private long id; private long id;
private String location; private String location;
private String name; private String name;
private String lang;
private boolean notifications; private boolean notifications;
@SerializedName("profile_background_color") @SerializedName("profile_background_color")
private String profileBackgroundColor; private String profileBackgroundColor;
@ -50,6 +53,8 @@ public class User implements Comparable<User> {
private URI profileBackgroundImageUrl; private URI profileBackgroundImageUrl;
@SerializedName("profile_background_tile") @SerializedName("profile_background_tile")
private boolean profileBackgroundTile; private boolean profileBackgroundTile;
@SerializedName("profile_use_background_image")
private boolean profileUseBackgroundImage;
@SerializedName("profile_image_url") @SerializedName("profile_image_url")
private URI profileImageUrl; private URI profileImageUrl;
@SerializedName("profile_link_color") @SerializedName("profile_link_color")
@ -77,9 +82,15 @@ public class User implements Comparable<User> {
} }
public User(long id, String screenName) {
this.id = id;
this.screenName = screenName;
}
public User(Date createdAt, String description, int favouritesCount, int followersCount, public User(Date createdAt, String description, int favouritesCount, int followersCount,
boolean following, int friendsCount, boolean geoEnabled, long id, String location, boolean following, int friendsCount, boolean geoEnabled, boolean contributorsEnabled,
String name, boolean notifications, String profileBackgroundColor, long id, String location, String name, String lang, boolean notifications,
String profileBackgroundColor, boolean profileUseBackgroundImage,
URI profileBackgroundImageUrl, boolean profileBackgroundTile, URI profileImageUrl, URI profileBackgroundImageUrl, boolean profileBackgroundTile, URI profileImageUrl,
String profileLinkColor, String profileSidebarBorderColor, String profileLinkColor, String profileSidebarBorderColor,
String profileSidebarFillColor, String profileTextColor, boolean isProtected, String profileSidebarFillColor, String profileTextColor, boolean isProtected,
@ -91,12 +102,15 @@ public class User implements Comparable<User> {
this.followersCount = followersCount; this.followersCount = followersCount;
this.following = following; this.following = following;
this.friendsCount = friendsCount; this.friendsCount = friendsCount;
this.setGeoEnabled(geoEnabled); this.geoEnabled = geoEnabled;
this.id = id; this.id = id;
this.location = location; this.location = location;
this.name = name; this.name = name;
this.lang = lang;
this.notifications = notifications; this.notifications = notifications;
this.contributorsEnabled = contributorsEnabled;
this.profileBackgroundColor = profileBackgroundColor; this.profileBackgroundColor = profileBackgroundColor;
this.profileUseBackgroundImage = profileUseBackgroundImage;
this.profileBackgroundImageUrl = profileBackgroundImageUrl; this.profileBackgroundImageUrl = profileBackgroundImageUrl;
this.profileBackgroundTile = profileBackgroundTile; this.profileBackgroundTile = profileBackgroundTile;
this.profileImageUrl = profileImageUrl; this.profileImageUrl = profileImageUrl;
@ -113,12 +127,119 @@ public class User implements Comparable<User> {
this.verified = verified; this.verified = verified;
} }
public Date getCreatedAt() {
return createdAt;
}
public String getDescription() {
return description;
}
public int getFavouritesCount() {
return favouritesCount;
}
public int getFollowersCount() {
return followersCount;
}
public boolean isFollowing() {
return following;
}
public int getFriendsCount() {
return friendsCount;
}
public boolean isGeoEnabled() {
return geoEnabled;
}
public long getId() {
return id;
}
public String getLocation() {
return location;
}
public String getName() {
return name;
}
public boolean isNotifications() {
return notifications;
}
public String getProfileBackgroundColor() {
return profileBackgroundColor;
}
public URI getProfileBackgroundImageUrl() {
return profileBackgroundImageUrl;
}
public boolean isProfileBackgroundTile() {
return profileBackgroundTile;
}
public boolean isProfileUseBackgroundImage() {
return profileUseBackgroundImage;
}
public URI getProfileImageUrl() {
return profileImageUrl;
}
public String getProfileLinkColor() {
return profileLinkColor;
}
public String getProfileSidebarBorderColor() {
return profileSidebarBorderColor;
}
public String getProfileSidebarFillColor() {
return profileSidebarFillColor;
}
public String getProfileTextColor() {
return profileTextColor;
}
public boolean isProtected() {
return isProtected;
}
public String getScreenName() {
return screenName;
}
public int getStatusesCount() {
return statusesCount;
}
public String getTimeZone() {
return timeZone;
}
public URI getUrl() {
return url;
}
public int getUtcOffset() {
return utcOffset;
}
public boolean isVerified() {
return verified;
}
@Override @Override
public int hashCode() { public int hashCode() {
final int prime = 31; final int prime = 31;
int result = 1; int result = 1;
result = prime * result + (int) (id ^ (id >>> 32)); result = prime * result + (int) (id ^ (id >>> 32));
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((screenName == null) ? 0 : screenName.hashCode()); result = prime * result + ((screenName == null) ? 0 : screenName.hashCode());
return result; return result;
} }
@ -134,11 +255,6 @@ public class User implements Comparable<User> {
User other = (User) obj; User other = (User) obj;
if (id != other.id) if (id != other.id)
return false; return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (screenName == null) { if (screenName == null) {
if (other.screenName != null) if (other.screenName != null)
return false; return false;
@ -147,204 +263,23 @@ public class User implements Comparable<User> {
return true; return true;
} }
public long getId() { @Override
return id; public String toString() {
} return "User [createdAt=" + createdAt + ", description=" + description + ", favouritesCount="
+ favouritesCount + ", followersCount=" + followersCount + ", following="
public void setId(long id) { + following + ", friendsCount=" + friendsCount + ", geoEnabled=" + geoEnabled
this.id = id; + ", id=" + id + ", isProtected=" + isProtected + ", location=" + location
} + ", name=" + name + ", notifications=" + notifications
+ ", profileBackgroundColor=" + profileBackgroundColor
public String getName() { + ", profileBackgroundImageUrl=" + profileBackgroundImageUrl
return name; + ", profileBackgroundTile=" + profileBackgroundTile + ", profileImageUrl="
} + profileImageUrl + ", profileLinkColor=" + profileLinkColor
+ ", profileSidebarBorderColor=" + profileSidebarBorderColor
public void setName(String name) { + ", profileSidebarFillColor=" + profileSidebarFillColor + ", profileTextColor="
this.name = name; + profileTextColor + ", profileUseBackgroundImage=" + profileUseBackgroundImage
} + ", screenName=" + screenName + ", statusesCount=" + statusesCount + ", timeZone="
+ timeZone + ", url=" + url + ", utcOffset=" + utcOffset + ", verified=" + verified
public String getScreenName() { + "]";
return screenName;
}
public void setScreenName(String screenName) {
this.screenName = screenName;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public URI getProfileImageUrl() {
return profileImageUrl;
}
public void setProfileImageUrl(URI profileImageUrl) {
this.profileImageUrl = profileImageUrl;
}
public URI getUrl() {
return url;
}
public void setUrl(URI url) {
this.url = url;
}
public boolean isProtected() {
return isProtected;
}
public void setProtected(boolean isProtected) {
this.isProtected = isProtected;
}
public int getFollowersCount() {
return followersCount;
}
public void setFollowersCount(int followersCount) {
this.followersCount = followersCount;
}
public String getProfileBackgroundColor() {
return profileBackgroundColor;
}
public void setProfileBackgroundColor(String profileBackgroundColor) {
this.profileBackgroundColor = profileBackgroundColor;
}
public String getProfileTextColor() {
return profileTextColor;
}
public void setProfileTextColor(String profileTextColor) {
this.profileTextColor = profileTextColor;
}
public String getProfileLinkColor() {
return profileLinkColor;
}
public void setProfileLinkColor(String profileLinkColor) {
this.profileLinkColor = profileLinkColor;
}
public String getProfileSidebarFillColor() {
return profileSidebarFillColor;
}
public void setProfileSidebarFillColor(String profileSidebarFillColor) {
this.profileSidebarFillColor = profileSidebarFillColor;
}
public String getProfileSidebarBorderColor() {
return profileSidebarBorderColor;
}
public void setProfileSidebarBorderColor(String profileSidebarBorderColor) {
this.profileSidebarBorderColor = profileSidebarBorderColor;
}
public int getFriendsCount() {
return friendsCount;
}
public void setFriendsCount(int friendsCount) {
this.friendsCount = friendsCount;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public int getFavouritesCount() {
return favouritesCount;
}
public void setFavouritesCount(int favouritesCount) {
this.favouritesCount = favouritesCount;
}
public int getUtcOffset() {
return utcOffset;
}
public void setUtcOffset(int utcOffset) {
this.utcOffset = utcOffset;
}
public String getTimeZone() {
return timeZone;
}
public void setTimeZone(String timeZone) {
this.timeZone = timeZone;
}
public URI getProfileBackgroundImageUrl() {
return profileBackgroundImageUrl;
}
public void setProfileBackgroundImageUrl(URI profileBackgroundImageUrl) {
this.profileBackgroundImageUrl = profileBackgroundImageUrl;
}
public boolean isProfileBackgroundTile() {
return profileBackgroundTile;
}
public void setProfileBackgroundTile(boolean profileBackgroundTile) {
this.profileBackgroundTile = profileBackgroundTile;
}
public int getStatusesCount() {
return statusesCount;
}
public void setStatusesCount(int statusesCount) {
this.statusesCount = statusesCount;
}
public boolean isNotifications() {
return notifications;
}
public void setNotifications(boolean notifications) {
this.notifications = notifications;
}
public boolean isFollowing() {
return following;
}
public void setFollowing(boolean following) {
this.following = following;
}
public boolean isVerified() {
return verified;
}
public void setVerified(boolean verified) {
this.verified = verified;
} }
public int compareTo(User o) { public int compareTo(User o) {
@ -353,11 +288,11 @@ public class User implements Comparable<User> {
return (this == o) ? 0 : screenName.compareTo(o.screenName); return (this == o) ? 0 : screenName.compareTo(o.screenName);
} }
public void setGeoEnabled(boolean geoEnabled) { public boolean isContributorsEnabled() {
this.geoEnabled = geoEnabled; return contributorsEnabled;
} }
public boolean isGeoEnabled() { public String getLang() {
return geoEnabled; return lang;
} }
} }

View File

@ -26,12 +26,16 @@ import java.util.SortedSet;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
import org.jclouds.rest.RestContext; import org.jclouds.rest.RestContext;
import org.jclouds.twitter.domain.Status; import org.jclouds.twitter.domain.Status;
import org.testng.annotations.AfterGroups; import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups; import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
/** /**
* Tests behavior of {@code TwitterClient} * Tests behavior of {@code TwitterClient}
* *
@ -45,11 +49,14 @@ public class TwitterClientLiveTest {
@BeforeGroups(groups = "live") @BeforeGroups(groups = "live")
public void setupClient() throws InterruptedException, ExecutionException, TimeoutException { public void setupClient() throws InterruptedException, ExecutionException, TimeoutException {
String identity = checkNotNull(System.getProperty("jclouds.test.identity"), "jclouds.test.identity"); String identity = checkNotNull(System.getProperty("jclouds.test.identity"),
String credential = checkNotNull(System.getProperty("jclouds.test.credential"), "jclouds.test.credential"); "jclouds.test.identity");
String credential = checkNotNull(System.getProperty("jclouds.test.credential"),
"jclouds.test.credential");
context = createContext(contextSpec("twitter", "http://twitter.com", "1", identity, credential, context = createContext(contextSpec("twitter", "http://twitter.com", "1", identity,
TwitterClient.class, TwitterAsyncClient.class)); credential, TwitterClient.class, TwitterAsyncClient.class), ImmutableSet
.<Module> of(new Log4JLoggingModule()));
connection = context.getApi(); connection = context.getApi();
} }

View File

@ -28,6 +28,7 @@ import java.util.SortedSet;
import org.jclouds.date.DateService; import org.jclouds.date.DateService;
import org.jclouds.date.internal.SimpleDateFormatDateService; import org.jclouds.date.internal.SimpleDateFormatDateService;
import org.jclouds.http.functions.config.ParserModule; import org.jclouds.http.functions.config.ParserModule;
import org.jclouds.twitter.domain.Location;
import org.jclouds.twitter.domain.Status; import org.jclouds.twitter.domain.Status;
import org.jclouds.twitter.domain.User; import org.jclouds.twitter.domain.User;
import org.testng.annotations.Test; import org.testng.annotations.Test;
@ -61,78 +62,40 @@ public class ParseStatusesFromJsonResponseTest {
.of( .of(
new Status( new Status(
dateService.cDateParse("Sat Oct 31 01:45:14 +0000 2009"), dateService.cDateParse("Tue Jun 29 20:41:15 +0000 2010"),
false, false,
new Location("Point", new double[] { 153.08691298, -26.38658779 }),
15138751340l,
"adrianfcole",
15112459535l,
21744326,
null, null,
5303839785l, "@adrianfcole hehe, yes. Still going :) hope you're keeping well!",
null,
null,
null,
"<a href=\"http://www.tweetdeck.com/\" rel=\"nofollow\">TweetDeck</a>",
"RT @jclouds: come find out about #cloud storage and how to access it from #java in palo alto this Tuesday: http://is.gd/4IFA9",
false, false,
new User( new User(
dateService.cDateParse("Sat Apr 26 06:13:08 +0000 2008"), dateService.cDateParse("Sat Jul 26 08:08:17 +0000 2008"),
"Jack of All Trades: Dad to anZel and Arden, VMware, vCloud, Security, Compliance, Former Developer", "London-based South African software geek & amateur photog. Since Nov 2009, travelling the world with @sunflowerkate on an extended honeymoon",
0, 21,
474, 315,
true,
405,
true,
false, false,
199, 15608907,
"Travelling around the world",
"Andrew Newdigate",
"en",
false, false,
14540593, "FFF04D",
"Bay Area, CA",
"Jian Zhen",
false,
"C6E2EE",
URI
.create("http://s.twimg.com/a/1256778767/images/themes/theme2/bg.gif"),
false,
URI
.create("http://a3.twimg.com/profile_images/64445411/30b8b19_bigger_normal.jpg"),
"1F98C7", "C6E2EE", "DAECF4", "663B12", false, "zhenjl",
1981, "Pacific Time (US & Canada)", URI
.create("http://zhen.org"), -28800, false)),
new Status(
dateService.cDateParse("Sat Oct 31 09:35:27 +0000 2009"),
false,
null,
5310690603l,
null,
null,
null,
"<a href=\"http://www.tweetdeck.com/\" rel=\"nofollow\">TweetDeck</a>",
"RT @jclouds: live multi #cloud demo of jclouds connecting to 3 storage clouds from google appengine http://is.gd/4IXMh",
false,
new User(
dateService.cDateParse("Tue Apr 28 15:29:42 +0000 2009"),
"Some random guy who seems to care about cloud collisions at siliconANGLE.com",
245,
572,
false,
325,
false,
36093693,
"San Francisco ",
"James Watters",
false,
"C6E2EE",
URI
.create("http://a1.twimg.com/profile_background_images/24067016/17361976.jpg"),
true, true,
URI URI
.create("http://a3.twimg.com/profile_images/445071063/tiktaalik-transitional-fossil_normal.png"), .create("http://a1.twimg.com/profile_background_images/62032362/_MG_8095_6_7HDR_tonemapped.jpg"),
"1F98C7",
"C6E2EE",
"DAECF4",
"663B12",
false, false,
"wattersjames",
1964,
"Pacific Time (US & Canada)",
URI URI
.create("http://siliconangle.net/ver2/author/jwatters/"), .create("http://a1.twimg.com/profile_images/593267212/many_moon_honeymoon_normal.jpg"),
-28800, false)) "0099CC", "fff8ad", "f6ffd1", "333333", false, "suprememoocow",
987, "Kuala Lumpur", URI.create("http://newdigate.me"), -28800,
false))
); );

View File

@ -2,28 +2,27 @@
<!-- <!--
Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com> Copyright (C) 2009 Cloud Conscious, LLC.
<info@cloudconscious.com>
==================================================================== ====================================================================
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed
Unless required by applicable law or agreed to in writing, software under the License is distributed on an "AS IS" BASIS, WITHOUT
distributed under the License is distributed on an "AS IS" BASIS, WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
See the License for the specific language governing permissions and and limitations under the License.
limitations under the License.
==================================================================== ====================================================================
--> -->
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- <!--
For more configuration infromation and examples see the Apache Log4j For more configuration infromation and examples see the Apache
website: http://logging.apache.org/log4j/ Log4j website: http://logging.apache.org/log4j/
--> -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false"> debug="false">
@ -43,9 +42,9 @@
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" /> <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
<!-- <!--
The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n The full pattern: Date MS Priority [Category]
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) (Thread:NDC) Message\n <param name="ConversionPattern"
%m%n"/> value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
--> -->
</layout> </layout>
</appender> </appender>
@ -65,9 +64,9 @@
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" /> <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
<!-- <!--
The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n The full pattern: Date MS Priority [Category]
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) (Thread:NDC) Message\n <param name="ConversionPattern"
%m%n"/> value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
--> -->
</layout> </layout>
</appender> </appender>
@ -92,14 +91,14 @@
<category name="jclouds.headers"> <category name="jclouds.headers">
<priority value="DEBUG" /> <priority value="DEBUG" />
<appender-ref ref="ASYNCWIRE" /> <appender-ref ref="ASYNCWIRE" />
</category><!-- </category>
<category name="jclouds.wire"> <category name="jclouds.wire">
<priority value="DEBUG" /> <priority value="DEBUG" />
<appender-ref ref="ASYNCWIRE" /> <appender-ref ref="ASYNCWIRE" />
</category> </category>
--><!-- ======================= --> <!-- ======================= -->
<!-- Setup the Root category --> <!-- Setup the Root category -->
<!-- ======================= --> <!-- ======================= -->

View File

@ -1,77 +1,49 @@
[ { "created_at" : "Sat Oct 31 09:35:27 +0000 2009", [{
"favorited": false, "favorited": false,
"geo" : null, "contributors": null,
"id" : 5310690603, "coordinates": {
"in_reply_to_screen_name" : null, "type": "Point",
"in_reply_to_status_id" : null, "coordinates": [153.08691298, -26.38658779]
"in_reply_to_user_id" : null, }, "source": "<a href=\"http://itunes.apple.com/app/twitter/id333903271?mt=8\" rel=\"nofollow\">Twitter for iPhone</a>",
"source" : "<a href=\"http://www.tweetdeck.com/\" rel=\"nofollow\">TweetDeck</a>", "created_at": "Mon May 31 23:22:51 +0000 2010",
"text" : "RT @jclouds: live multi #cloud demo of jclouds connecting to 3 storage clouds from google appengine http://is.gd/4IXMh", "place": null,
"truncated" : false, "user": {
"user" : { "created_at" : "Tue Apr 28 15:29:42 +0000 2009", "statuses_count": 987,
"description" : "Some random guy who seems to care about cloud collisions at siliconANGLE.com",
"favourites_count" : 245,
"followers_count" : 572,
"following" : false,
"friends_count" : 325,
"geo_enabled" : false,
"id" : 36093693,
"location" : "San Francisco ",
"name" : "James Watters",
"notifications": false, "notifications": false,
"profile_background_color" : "C6E2EE", "profile_sidebar_border_color": "fff8ad",
"profile_background_image_url" : "http://a1.twimg.com/profile_background_images/24067016/17361976.jpg", "description": "London-based South African software geek & amateur photog. Since Nov 2009, travelling the world with @sunflowerkate on an extended honeymoon",
"profile_background_tile" : true, "location": "Travelling around the world",
"profile_image_url" : "http://a3.twimg.com/profile_images/445071063/tiktaalik-transitional-fossil_normal.png", "screen_name": "suprememoocow",
"profile_link_color" : "1F98C7", "profile_use_background_image": true,
"profile_sidebar_border_color" : "C6E2EE", "followers_count": 315,
"profile_sidebar_fill_color" : "DAECF4", "contributors_enabled": false,
"profile_text_color" : "663B12", "friends_count": 405,
"lang": "en",
"geo_enabled": true,
"profile_background_color": "FFF04D",
"favourites_count": 21,
"verified": false,
"profile_text_color": "333333",
"following": true,
"time_zone": "Kuala Lumpur",
"created_at": "Sat Jul 26 08:08:17 +0000 2008",
"profile_link_color": "0099CC",
"protected": false, "protected": false,
"screen_name" : "wattersjames", "profile_background_image_url": "http://a1.twimg.com/profile_background_images/62032362/_MG_8095_6_7HDR_tonemapped.jpg",
"statuses_count" : 1964, "name": "Andrew Newdigate",
"time_zone" : "Pacific Time (US & Canada)", "profile_sidebar_fill_color": "f6ffd1",
"url" : "http://siliconangle.net/ver2/author/jwatters/", "url": "http://newdigate.me",
"utc_offset" : -28800, "profile_image_url": "http://a1.twimg.com/profile_images/593267212/many_moon_honeymoon_normal.jpg",
"verified" : false "id": 15608907,
}
},
{ "created_at" : "Sat Oct 31 01:45:14 +0000 2009",
"favorited" : false,
"geo" : null,
"id" : 5303839785,
"in_reply_to_screen_name" : null,
"in_reply_to_status_id" : null,
"in_reply_to_user_id" : null,
"source" : "<a href=\"http://www.tweetdeck.com/\" rel=\"nofollow\">TweetDeck</a>",
"text" : "RT @jclouds: come find out about #cloud storage and how to access it from #java in palo alto this Tuesday: http://is.gd/4IFA9",
"truncated" : false,
"user" : { "created_at" : "Sat Apr 26 06:13:08 +0000 2008",
"description" : "Jack of All Trades: Dad to anZel and Arden, VMware, vCloud, Security, Compliance, Former Developer",
"favourites_count" : 0,
"followers_count" : 474,
"following" : false,
"friends_count" : 199,
"geo_enabled" : false,
"id" : 14540593,
"location" : "Bay Area, CA",
"name" : "Jian Zhen",
"notifications" : false,
"profile_background_color" : "C6E2EE",
"profile_background_image_url" : "http://s.twimg.com/a/1256778767/images/themes/theme2/bg.gif",
"profile_background_tile": false, "profile_background_tile": false,
"profile_image_url" : "http://a3.twimg.com/profile_images/64445411/30b8b19_bigger_normal.jpg", "utc_offset": 28800
"profile_link_color" : "1F98C7", }, "in_reply_to_screen_name": "adrianfcole",
"profile_sidebar_border_color" : "C6E2EE", "truncated": false,
"profile_sidebar_fill_color" : "DAECF4", "in_reply_to_user_id": 21744326,
"profile_text_color" : "663B12", "id": 15138751340,
"protected" : false, "geo": {
"screen_name" : "zhenjl", "type": "Point",
"statuses_count" : 1981, "coordinates": [-26.38658779, 153.08691298]
"time_zone" : "Pacific Time (US & Canada)", }, "in_reply_to_status_id": 15112459535,
"url" : "http://zhen.org", "text": "@adrianfcole hehe, yes. Still going :) hope you're keeping well!"
"utc_offset" : -28800, }]
"verified" : false
}
}
]