From e2be6001a9bef5e097e287d6261f6c69caf0c051 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Sat, 20 Mar 2010 10:18:04 +0100 Subject: [PATCH] Removed Twitter-specific classes from the JSON client archetype. --- .../META-INF/maven/archetype-metadata.xml | 1 - .../resources/archetype-resources/pom.xml | 157 ++++--- .../main/java/__clientName__AsyncClient.java | 18 +- .../src/main/java/__clientName__Client.java | 10 +- .../config/__clientName__ContextModule.java | 1 - .../src/main/java/domain/Status.java | 223 ---------- .../src/main/java/domain/User.java | 390 ------------------ .../ParseStatusesFromJsonResponse.java | 84 ---- .../java/__clientName__AsyncClientTest.java | 3 +- .../java/__clientName__ClientLiveTest.java | 12 +- .../ParseStatusesFromJsonResponseTest.java | 170 -------- .../src/test/resources/test_mentions.json | 77 ---- 12 files changed, 89 insertions(+), 1057 deletions(-) delete mode 100644 archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/Status.java delete mode 100644 archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/User.java delete mode 100644 archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/functions/ParseStatusesFromJsonResponse.java delete mode 100644 archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/functions/ParseStatusesFromJsonResponseTest.java delete mode 100644 archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/resources/test_mentions.json diff --git a/archetypes/json-client-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/json-client-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml index ec02750379..f4b96e1b14 100644 --- a/archetypes/json-client-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/json-client-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -49,7 +49,6 @@ src/test/resources **/*.xml - **/*.json diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/json-client-archetype/src/main/resources/archetype-resources/pom.xml index 5a39109e04..704b336516 100644 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/json-client-archetype/src/main/resources/archetype-resources/pom.xml @@ -1,79 +1,78 @@ -#set( $lcaseClientName = ${clientName.toLowerCase()} ) -#set( $symbol_dollar = '$' ) - - - - - org.jclouds - jclouds-project - 1.0-SNAPSHOT - ../project/pom.xml - - 4.0.0 - ${groupId} - jclouds-${artifactId} - jclouds ${clientName} core - jar - jclouds components to access ${clientName} - - - scm:svn:http://jclouds.googlecode.com/svn/trunk/${lcaseClientName} - scm:svn:https://jclouds.googlecode.com/svn/trunk/${lcaseClientName} - http://jclouds.googlecode.com/svn/trunk/${lcaseClientName} - - - ${clientUser} - ${clientPassword} - - - - ${symbol_dollar}{project.groupId} - jclouds-core - ${symbol_dollar}{project.version} - - - ${symbol_dollar}{project.groupId} - jclouds-core - ${symbol_dollar}{project.version} - test-jar - test - - - log4j - log4j - 1.2.14 - test - - - ${symbol_dollar}{project.groupId} - jclouds-log4j - ${symbol_dollar}{project.version} - test - - - +#set( $lcaseClientName = ${clientName.toLowerCase()} ) +#set( $symbol_dollar = '$' ) + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../project/pom.xml + + ${groupId} + jclouds-${artifactId} + jclouds ${clientName} core + jclouds components to access ${clientName} + + + scm:svn:http://jclouds.googlecode.com/svn/trunk/${lcaseClientName} + scm:svn:https://jclouds.googlecode.com/svn/trunk/${lcaseClientName} + http://jclouds.googlecode.com/svn/trunk/${lcaseClientName} + + + ${clientUser} + ${clientPassword} + + + + ${symbol_dollar}{project.groupId} + jclouds-core + ${symbol_dollar}{project.version} + + + ${symbol_dollar}{project.groupId} + jclouds-core + ${symbol_dollar}{project.version} + test-jar + test + + + log4j + log4j + 1.2.14 + test + + + ${symbol_dollar}{project.groupId} + jclouds-log4j + ${symbol_dollar}{project.version} + test + + + diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__AsyncClient.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__AsyncClient.java index 607f18499c..d79c648524 100644 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__AsyncClient.java +++ b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__AsyncClient.java @@ -44,18 +44,9 @@ */ package ${package}; -import java.util.SortedSet; -import com.google.common.util.concurrent.ListenableFuture; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - import org.jclouds.http.filters.BasicAuthentication; import org.jclouds.rest.annotations.Endpoint; import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import ${package}.domain.Status; -import ${package}.functions.ParseStatusesFromJsonResponse; /** * Provides asynchronous access to ${clientName} via their REST API. @@ -68,10 +59,7 @@ import ${package}.functions.ParseStatusesFromJsonResponse; @Endpoint(${clientName}.class) @RequestFilters(BasicAuthentication.class) public interface ${clientName}AsyncClient { - - @GET - @ResponseParser(ParseStatusesFromJsonResponse.class) - @Path("/statuses/mentions.json") - ListenableFuture> getMyMentions(); - + /* + * TODO: define interface methods for ${clientName} + */ } diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__Client.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__Client.java index 00105d1c2e..9f24ccff70 100644 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__Client.java +++ b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/__clientName__Client.java @@ -44,23 +44,21 @@ */ package ${package}; -import java.util.SortedSet; import java.util.concurrent.TimeUnit; import org.jclouds.concurrent.Timeout; -import ${package}.domain.Status; /** * Provides synchronous access to ${clientName}. *

* * @see ${clientName}AsyncClient - * @see + * @see * @author ${author} */ @Timeout(duration = 4, timeUnit = TimeUnit.SECONDS) public interface ${clientName}Client { - - SortedSet getMyMentions(); - + /* + * TODO: define interface methods for ${clientName} + */ } diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/config/__clientName__ContextModule.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/config/__clientName__ContextModule.java index f0d140595e..fccef43caf 100644 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/config/__clientName__ContextModule.java +++ b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/config/__clientName__ContextModule.java @@ -49,7 +49,6 @@ import javax.inject.Singleton; import org.jclouds.http.functions.config.ParserModule.CDateAdapter; import org.jclouds.http.functions.config.ParserModule.DateAdapter; -import org.jclouds.http.functions.config.ParserModule; import org.jclouds.lifecycle.Closer; import org.jclouds.rest.RestContext; import org.jclouds.rest.internal.RestContextImpl; diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/Status.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/Status.java deleted file mode 100644 index b2124efd62..0000000000 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/Status.java +++ /dev/null @@ -1,223 +0,0 @@ -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * 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. - * ==================================================================== - */ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -/** - *Date - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 ${package}.domain; - -import java.util.Date; - -import com.google.gson.annotations.SerializedName; - -/** - * - * @author ${author} - * - */ -public class Status implements Comparable { - @SerializedName("created_at") - private Date createdAt; - private boolean favorited; - private String geo; - private long id; - @SerializedName("in_reply_to_screen_name") - private String inReplyToScreenName; - @SerializedName("in_reply_to_status_id") - private Integer inReplyToStatusId; - @SerializedName("in_reply_to_user_id") - private Integer inReplyToUserId; - private String source; - private String text; - private boolean truncated; - private User user; - - public Status() { - } - - public Status(Date createdAt, boolean favorited, String geo, long id, - String inReplyToScreenName, Integer inReplyToStatusId, Integer inReplyToUserId, - String source, String text, boolean truncated, User user) { - this.createdAt = createdAt; - this.favorited = favorited; - this.geo = geo; - this.id = id; - this.inReplyToScreenName = inReplyToScreenName; - this.inReplyToStatusId = inReplyToStatusId; - this.inReplyToUserId = inReplyToUserId; - this.source = source; - this.text = text; - this.truncated = truncated; - this.user = user; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((createdAt == null) ? 0 : createdAt.hashCode()); - result = prime * result + (int) (id ^ (id >>> 32)); - result = prime * result + ((text == null) ? 0 : text.hashCode()); - result = prime * result + ((user == null) ? 0 : user.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; - 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) - return false; - if (text == null) { - if (other.text != null) - return false; - } else if (!text.equals(other.text)) - return false; - if (user == null) { - if (other.user != null) - return false; - } else if (!user.equals(other.user)) - return false; - return true; - } - - public Date getCreatedAt() { - 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() { - return favorited; - } - - public void setFavorited(boolean favorited) { - this.favorited = favorited; - } - - public String getInReplyToScreenName() { - return inReplyToScreenName; - } - - public void setInReplyToScreenName(String inReplyToScreenName) { - this.inReplyToScreenName = inReplyToScreenName; - } - - public User getUser() { - 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; - } -} \ No newline at end of file diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/User.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/User.java deleted file mode 100644 index 2ab6285ee5..0000000000 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/domain/User.java +++ /dev/null @@ -1,390 +0,0 @@ -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * 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. - * ==================================================================== - */ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 ${package}.domain; - -import java.net.URI; - -import java.util.Date; - -import com.google.gson.annotations.SerializedName; - -/** - * - * @author ${author} - */ -public class User implements Comparable { - @SerializedName("created_at") - private Date createdAt; - private String description; - @SerializedName("favourites_count") - private int favouritesCount; - @SerializedName("followers_count") - private int followersCount; - private boolean following; - @SerializedName("friends_count") - private int friendsCount; - @SerializedName("geo_enabled") - private boolean geoEnabled; - private long id; - private String location; - private String name; - private boolean notifications; - @SerializedName("profile_background_color") - private String profileBackgroundColor; - @SerializedName("profile_background_image_url") - private URI profileBackgroundImageUrl; - @SerializedName("profile_background_tile") - private boolean profileBackgroundTile; - @SerializedName("profile_image_url") - private URI profileImageUrl; - @SerializedName("profile_link_color") - private String profileLinkColor; - @SerializedName("profile_sidebar_border_color") - private String profileSidebarBorderColor; - @SerializedName("profile_sidebar_fill_color") - private String profileSidebarFillColor; - @SerializedName("profile_text_color") - private String profileTextColor; - @SerializedName("protected") - private boolean isProtected; - @SerializedName("screen_name") - private String screenName; - @SerializedName("statuses_count") - private int statusesCount; - @SerializedName("time_zone") - private String timeZone; - private URI url; - @SerializedName("utc_offset") - private int utcOffset; - private boolean verified; - - public User() { - - } - - public User(Date createdAt, String description, int favouritesCount, int followersCount, - boolean following, int friendsCount, boolean geoEnabled, long id, String location, - String name, boolean notifications, String profileBackgroundColor, - URI profileBackgroundImageUrl, boolean profileBackgroundTile, URI profileImageUrl, - String profileLinkColor, String profileSidebarBorderColor, - String profileSidebarFillColor, String profileTextColor, boolean isProtected, - String screenName, int statusesCount, String timeZone, URI url, int utcOffset, - boolean verified) { - this.createdAt = createdAt; - this.description = description; - this.favouritesCount = favouritesCount; - this.followersCount = followersCount; - this.following = following; - this.friendsCount = friendsCount; - this.setGeoEnabled(geoEnabled); - this.id = id; - this.location = location; - this.name = name; - this.notifications = notifications; - this.profileBackgroundColor = profileBackgroundColor; - this.profileBackgroundImageUrl = profileBackgroundImageUrl; - this.profileBackgroundTile = profileBackgroundTile; - this.profileImageUrl = profileImageUrl; - this.profileLinkColor = profileLinkColor; - this.profileSidebarBorderColor = profileSidebarBorderColor; - this.profileSidebarFillColor = profileSidebarFillColor; - this.profileTextColor = profileTextColor; - this.isProtected = isProtected; - this.screenName = screenName; - this.statusesCount = statusesCount; - this.timeZone = timeZone; - this.url = url; - this.utcOffset = utcOffset; - this.verified = verified; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (int) (id ^ (id >>> 32)); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((screenName == null) ? 0 : screenName.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; - User other = (User) obj; - if (id != other.id) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (screenName == null) { - if (other.screenName != null) - return false; - } else if (!screenName.equals(other.screenName)) - return false; - return true; - } - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - 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) { - if (screenName == null) - return -1; - return (this == o) ? 0 : screenName.compareTo(o.screenName); - } - - public void setGeoEnabled(boolean geoEnabled) { - this.geoEnabled = geoEnabled; - } - - public boolean isGeoEnabled() { - return geoEnabled; - } -} \ No newline at end of file diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/functions/ParseStatusesFromJsonResponse.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/functions/ParseStatusesFromJsonResponse.java deleted file mode 100644 index 865a6a337b..0000000000 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/main/java/functions/ParseStatusesFromJsonResponse.java +++ /dev/null @@ -1,84 +0,0 @@ -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * 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. - * ==================================================================== - */ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 ${package}.functions; - -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Type; -import java.util.SortedSet; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.http.functions.ParseJson; -import ${package}.domain.Status; - -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -/** - * This parses {@link Status} from a json string. - * - * @author ${author} - */ -@Singleton -public class ParseStatusesFromJsonResponse extends ParseJson> { - - @Inject - public ParseStatusesFromJsonResponse(Gson gson) { - super(gson); - } - - public SortedSet apply(InputStream stream) { - Type setType = new TypeToken>() { - }.getType(); - try { - return gson.fromJson(new InputStreamReader(stream, "UTF-8"), setType); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException("jclouds requires UTF-8 encoding", e); - } - } -} \ No newline at end of file diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__AsyncClientTest.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__AsyncClientTest.java index 0aed05dbc0..ba27c1c540 100644 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__AsyncClientTest.java +++ b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__AsyncClientTest.java @@ -60,7 +60,6 @@ import org.jclouds.logging.Logger.LoggerFactory; import org.jclouds.rest.RestClientTest; import org.jclouds.rest.internal.GeneratedHttpRequest; import org.jclouds.rest.internal.RestAnnotationProcessor; -import ${package}.functions.ParseStatusesFromJsonResponse; import org.jclouds.encryption.EncryptionService; import org.testng.annotations.Test; @@ -85,7 +84,7 @@ public class ${clientName}AsyncClientTest extends RestClientTest<${clientName}As assertHeadersEqual(httpMethod, ""); assertPayloadEquals(httpMethod, null); - assertResponseParserClassEquals(method, httpMethod, ParseStatusesFromJsonResponse.class); + assertResponseParserClassEquals(method, httpMethod, "TODO: insert expected response class"); assertSaxResponseParserClassEquals(method, null); assertExceptionParserClassEquals(method, null); diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__ClientLiveTest.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__ClientLiveTest.java index 090d7393fb..afc158c710 100644 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__ClientLiveTest.java +++ b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/__clientName__ClientLiveTest.java @@ -47,10 +47,7 @@ package ${package}; import static com.google.common.base.Preconditions.checkNotNull; -import java.util.SortedSet; - import org.jclouds.logging.log4j.config.Log4JLoggingModule; -import ${package}.domain.Status; import org.testng.annotations.BeforeGroups; import org.testng.annotations.Test; @@ -73,10 +70,7 @@ public class ${clientName}ClientLiveTest { .getApi(); } - @Test - public void testGetMyMentions() { - SortedSet response = connection.getMyMentions(); - assert (response.size() > 0); - } - + /* + * TODO: add tests for ${clientName} interface methods + */ } diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/functions/ParseStatusesFromJsonResponseTest.java b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/functions/ParseStatusesFromJsonResponseTest.java deleted file mode 100644 index b918f45f5d..0000000000 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/java/functions/ParseStatusesFromJsonResponseTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * 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. - * ==================================================================== - */ -#set( $symbol_pound = '#' ) -#set( $symbol_dollar = '$' ) -#set( $symbol_escape = '\' ) -/** - * - * Copyright (C) 2009 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 ${package}.functions; - -import static org.testng.Assert.assertEquals; - -import java.io.InputStream; -import java.net.URI; -import java.net.UnknownHostException; -import java.util.SortedSet; - -import org.jclouds.http.functions.config.ParserModule; -import ${package}.domain.Status; -import ${package}.domain.User; -import org.jclouds.date.DateService; -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSortedSet; -import com.google.gson.Gson; -import com.google.inject.Guice; -import com.google.inject.Injector; - -/** - * Tests behavior of {@code ParseStatusesFromJsonResponse} - * - * @author ${author} - */ -@Test(groups = "unit", testName = "twitter.ParseStatusesFromJsonResponseTest") -public class ParseStatusesFromJsonResponseTest { - - Injector i = Guice.createInjector(new ParserModule() { - @Override - protected void configure() { - bind(DateAdapter.class).to(CDateAdapter.class); - super.configure(); - } - }); - DateService dateService = new SimpleDateFormatDateService(); - - public void testApplyInputStreamDetails() throws UnknownHostException { - InputStream is = getClass().getResourceAsStream("/test_mentions.json"); - - SortedSet expects = ImmutableSortedSet - .of( - - new Status( - dateService.cDateParse("Sat Oct 31 01:45:14 +0000 2009"), - false, - null, - 5303839785l, - null, - null, - null, - "TweetDeck", - "RT @jclouds: come find out about ${symbol_pound}cloud storage and how to access it from ${symbol_pound}java in palo alto this Tuesday: http://is.gd/4IFA9", - false, - new User( - dateService.cDateParse("Sat Apr 26 06:13:08 +0000 2008"), - "Jack of All Trades: Dad to anZel and Arden, VMware, vCloud, Security, Compliance, Former Developer", - 0, - 474, - false, - 199, - false, - 14540593, - "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, - "TweetDeck", - "RT @jclouds: live multi ${symbol_pound}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, - URI - .create("http://a3.twimg.com/profile_images/445071063/tiktaalik-transitional-fossil_normal.png"), - "1F98C7", - "C6E2EE", - "DAECF4", - "663B12", - false, - "wattersjames", - 1964, - "Pacific Time (US & Canada)", - URI - .create("http://siliconangle.net/ver2/author/jwatters/"), - -28800, false)) - - ); - - ParseStatusesFromJsonResponse parser = new ParseStatusesFromJsonResponse(i - .getInstance(Gson.class)); - SortedSet response = parser.apply(is); - assertEquals(response, expects); - } -} diff --git a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/resources/test_mentions.json b/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/resources/test_mentions.json deleted file mode 100644 index 19e6deb04a..0000000000 --- a/archetypes/json-client-archetype/src/main/resources/archetype-resources/src/test/resources/test_mentions.json +++ /dev/null @@ -1,77 +0,0 @@ -[ { "created_at" : "Sat Oct 31 09:35:27 +0000 2009", - "favorited" : false, - "geo" : null, - "id" : 5310690603, - "in_reply_to_screen_name" : null, - "in_reply_to_status_id" : null, - "in_reply_to_user_id" : null, - "source" : "TweetDeck", - "text" : "RT @jclouds: live multi #cloud demo of jclouds connecting to 3 storage clouds from google appengine http://is.gd/4IXMh", - "truncated" : false, - "user" : { "created_at" : "Tue Apr 28 15:29:42 +0000 2009", - "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, - "profile_background_color" : "C6E2EE", - "profile_background_image_url" : "http://a1.twimg.com/profile_background_images/24067016/17361976.jpg", - "profile_background_tile" : true, - "profile_image_url" : "http://a3.twimg.com/profile_images/445071063/tiktaalik-transitional-fossil_normal.png", - "profile_link_color" : "1F98C7", - "profile_sidebar_border_color" : "C6E2EE", - "profile_sidebar_fill_color" : "DAECF4", - "profile_text_color" : "663B12", - "protected" : false, - "screen_name" : "wattersjames", - "statuses_count" : 1964, - "time_zone" : "Pacific Time (US & Canada)", - "url" : "http://siliconangle.net/ver2/author/jwatters/", - "utc_offset" : -28800, - "verified" : false - } - }, - { "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" : "TweetDeck", - "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_image_url" : "http://a3.twimg.com/profile_images/64445411/30b8b19_bigger_normal.jpg", - "profile_link_color" : "1F98C7", - "profile_sidebar_border_color" : "C6E2EE", - "profile_sidebar_fill_color" : "DAECF4", - "profile_text_color" : "663B12", - "protected" : false, - "screen_name" : "zhenjl", - "statuses_count" : 1981, - "time_zone" : "Pacific Time (US & Canada)", - "url" : "http://zhen.org", - "utc_offset" : -28800, - "verified" : false - } - } -] \ No newline at end of file