Skip to content

Commit

Permalink
GADGETS-38: gadget web exception when using port offset.
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffyu committed Feb 5, 2013
1 parent 955b586 commit 9a75721
Show file tree
Hide file tree
Showing 14 changed files with 72 additions and 51 deletions.
4 changes: 2 additions & 2 deletions distribution/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
<groupId>org.overlord.gadgets.server</groupId>
<artifactId>distribution</artifactId>
<packaging>pom</packaging>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
<name>Gadget Server::Distribution</name>

<parent>
<groupId>org.overlord.gadgets.server</groupId>
<artifactId>parent</artifactId>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
</parent>

<properties>
Expand Down
2 changes: 1 addition & 1 deletion distribution/src/main/release/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<project name="GadgetServer_Installer">

<!-- DEFAULT PROPERTY VALUES -->
<property name="as7.home" value="/Users/jeffyu/deploy/switchyard-as7-0.6" />
<property name="as7.home" value="/Users/jeffyu/deploy/switchyard-as7-0.7" />
<property name="deploy.dir" value="${as7.home}/standalone/deployments" />
<property name="version" value="1.0.0-SNAPSHOT" />
<property name="database" value="h2"/>
Expand Down
2 changes: 1 addition & 1 deletion gadget-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.overlord.gadgets.server</groupId>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
2 changes: 1 addition & 1 deletion gadget-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.overlord.gadgets.server</groupId>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
2 changes: 1 addition & 1 deletion gadget-web/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.overlord.gadgets.server</groupId>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>org.overlord.gadgets.server</groupId>
<artifactId>gadget-web</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/
package org.overlord.gadgets.web.client.model;

import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JsArray;

import org.overlord.gadgets.web.shared.dto.*;
Expand Down Expand Up @@ -92,14 +93,15 @@ public static PageResponse<StoreItemModel> getStoreItems(String jsonValue) {
JsArray<JSOModel> resultSets = model.getArray("resultSet");

List<StoreItemModel> items = new ArrayList<StoreItemModel>();

String baseUrl = getBaseUrl();
for (int i = 0; i < resultSets.length(); i++) {
StoreItemModel itemModel = new StoreItemModel();
JSOModel theItem = resultSets.get(i);
itemModel.setId(theItem.getLong("id"));
itemModel.setName(theItem.get("title"));
itemModel.setDescription(theItem.get("description"));
itemModel.setThumbnailUrl(theItem.get("thumbnailUrl"));

itemModel.setThumbnailUrl(theItem.get("thumbnailUrl").replace("${server}", baseUrl));
itemModel.setAuthor(theItem.get("author"));

items.add(itemModel);
Expand All @@ -115,6 +117,13 @@ public static PageResponse<StoreItemModel> getStoreItems(String jsonValue) {
return response;
}

private static String getBaseUrl() {
String pageBaseUrl = GWT.getHostPageBaseURL();
int end = pageBaseUrl.indexOf("gadget-web");
//remote the end slash.
return pageBaseUrl.substring(0, end-1);
}

public static UserModel getUserModel(String jsonValue) {
JSOModel model = JSOModel.fromJson(jsonValue);
UserModel user = new UserModel();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ interface PortletUiBinder extends UiBinder<Widget, Portlet> {}

private static PortletUiBinder uiBinder = GWT.create(PortletUiBinder.class);

private static String urlBase;

private String id;

private String widgetId;
Expand Down Expand Up @@ -88,6 +90,8 @@ private Portlet(final String wid, final String pid) {
this.portalId = pid;
initWidget(uiBinder.createAndBindUi(this));
getElement().setId(id);

urlBase = getGadgetServerUrlBase();

minBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
Expand Down Expand Up @@ -117,7 +121,7 @@ public void onClick(ClickEvent event) {
gadgetSpec.setWidth("100%");
gadgetSpec.setHeight("90%");
gadgetSpec.getElement().setAttribute("scrolling", "auto");
gadgetSpec.setUrl("http://localhost:8080/gadget-server/gadgets/ifr?url=" + wmodel.getSpecUrl() + "&" + getCanvasView());
gadgetSpec.setUrl(urlBase + "gadget-server/gadgets/ifr?url=" + wmodel.getSpecUrl() + "&" + getCanvasView());
}
});

Expand All @@ -128,7 +132,7 @@ public void onClick(ClickEvent event) {
gadgetSpec.setWidth("100%");
gadgetSpec.setHeight("250px");
gadgetSpec.getElement().setAttribute("scrolling", "auto");
gadgetSpec.setUrl("http://localhost:8080/gadget-server/gadgets/ifr?url=" + wmodel.getSpecUrl() + "&" + getHomeView());
gadgetSpec.setUrl(urlBase + "gadget-server/gadgets/ifr?url=" + wmodel.getSpecUrl() + "&" + getHomeView());
}
});

Expand All @@ -152,7 +156,13 @@ public Portlet(WidgetModel model, int width, String portalId) {
gadgetSpec.getElement().setAttribute("frameborder", "0");
gadgetSpec.setWidth(width - 20 + "px");
gadgetSpec.setHeight("250px");
gadgetSpec.setUrl("http://localhost:8080/gadget-server/gadgets/ifr?url=" + model.getSpecUrl() + "&" + getHomeView());
gadgetSpec.setUrl(urlBase + "gadget-server/gadgets/ifr?url=" + model.getSpecUrl() + "&" + getHomeView());
}

private String getGadgetServerUrlBase() {
String gadgetWebUrlBase = GWT.getHostPageBaseURL();
int end = gadgetWebUrlBase.indexOf("gadget-web");
return gadgetWebUrlBase.substring(0, end);
}


Expand Down Expand Up @@ -251,7 +261,7 @@ public void onClick(ClickEvent event) {
RestfulInvoker.invoke(RequestBuilder.POST, URLBuilder.updatePreferenceURL(Long.valueOf(widgetId)), sbuffer.toString(), new RestfulInvoker.Response(){
public void onResponseReceived(Request request, Response response) {
hideUserPref(id);
gadgetSpec.setUrl("http://localhost:8080/gadget-server/gadgets/ifr?url=" + wmodel.getSpecUrl() + "&" + getHomeView());
gadgetSpec.setUrl(urlBase + "gadget-server/gadgets/ifr?url=" + wmodel.getSpecUrl() + "&" + getHomeView());
reloadIFrame(gadgetSpec.getElement());
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,8 @@ public interface GadgetMetadataService {
public WidgetModel getGadgetMetadata(String gadgetUrl);


public void setGadgetServerRPCUrl(String rpcUrl);


public Gadget getGadgetData(String gadgetUrl);
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,16 @@ public class ShindigGadgetMetadataService implements GadgetMetadataService {

public static final String USER_PREFS = "userPrefs";
public static final String DATA_TYPE = "dataType";

//This is default one when no value was set.
private String rpcUrl = "http://localhost:8080/gadget-server/rpc";



public void setGadgetServerRPCUrl(String rpcUrl) {
this.rpcUrl = rpcUrl;

}

public WidgetModel getGadgetMetadata(String gadgetUrl) {

String responseString = getMetadata(gadgetUrl);
Expand Down Expand Up @@ -146,7 +154,7 @@ private String getMetadata(String gadgetUrl) {
logger.debug("requestContent: {}", postData);
}

ClientRequest request = new ClientRequest(ConfigurationUtil.SHINDIG_RPC_URL);
ClientRequest request = new ClientRequest(this.rpcUrl);
request.accept("application/json").body(MediaType.APPLICATION_JSON, postData);

String responseString = null;
Expand Down Expand Up @@ -196,4 +204,5 @@ public static void main(String[] args) throws Exception {
//svc.getGadgetMetadata("http://sam-gadget.appspot.com/Gadget/SamGadget.gadget.xml");
//svc.getGadgetMetadata("http://localhost:8080/gadgets/rt-gadget/gadget.xml");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -110,20 +110,22 @@ public Response checkUsername(@PathParam("username") String username) {
@GET
@Path("user/{userId}/pages")
@Produces("application/json")
public List<PageModel> getPageModels(@PathParam("userId") long userId) {
public List<PageModel> getPageModels(@PathParam("userId") long userId, @Context HttpServletRequest request) {
List<Page> pages = userManager.getPages(userId);

List<PageModel> pageModels = new ArrayList<PageModel>();
String serverBaseUrl = getServerBaseUrl(request);
metadataService.setGadgetServerRPCUrl(serverBaseUrl + "/gadget-server/rpc");

for (Page page : pages) {
PageModel pageModel = new PageModel();
pageModel.setName(page.getName());
pageModel.setOrder(page.getPageOrder());
pageModel.setColumns(page.getColumns());
pageModel.setId(page.getId());

for (Widget widget :page.getWidgets()) {
WidgetModel widgetModel = metadataService.getGadgetMetadata(widget.getAppUrl());
WidgetModel widgetModel = metadataService.getGadgetMetadata(widget.getAppUrl().replace("${server}", serverBaseUrl));
widgetModel.setWidgetId(widget.getId());
widgetModel.setOrder(widget.getOrder());

Expand All @@ -137,6 +139,18 @@ public List<PageModel> getPageModels(@PathParam("userId") long userId) {

return pageModels;
}

private String getServerBaseUrl(HttpServletRequest request) {
String scheme = request.getScheme();
String serverName = request.getServerName();
int serverPort = request.getServerPort();
StringBuilder sbuilder = new StringBuilder();
sbuilder.append(scheme).append("://").append(serverName);
if ((serverPort != 80) && (serverPort != 443)) {
sbuilder.append(":" + serverPort);
}
return sbuilder.toString();
}

private void populateWidgetsDefaultValue(Widget widget, WidgetModel widgetModel) {
if (widget.getPrefs() != null && widget.getPrefs().size() > 0) {
Expand Down Expand Up @@ -215,5 +229,9 @@ private Response createJsonResponse(Object wrapper) {
String json = gson.toJson(wrapper);
return Response.ok(json).type("application/json").build();
}

public static void main(String[] args) throws Exception {
System.out.println("${server}/gadgets-server/test".replace("${server}", "http://localhost:8080"));
}

}
8 changes: 4 additions & 4 deletions gadget-web/src/main/webapp/WEB-INF/classes/import.sql
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ INSERT INTO GS_USER(`ID`, `NAME`, `DISPLAY_NAME`, `PASSWD`, `USER_ROLE`) VALUES(
INSERT INTO GS_USER_GROUP(`USER_ID`, `GROUP_ID`) VALUES(1, 1);


INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Response Time','Red Hat','jeffyu@overlord.com','Response Time Gadget','http://localhost:8080/gadgets/rt-gadget/thumbnail.png','http://localhost:8080/gadgets/rt-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Situation Gadget','Red Hat','jeffyu@overlord.com','Situation Gadget','http://localhost:8080/gadgets/situation-gadget/thumbnail.png','http://localhost:8080/gadgets/situation-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Call Trace Gadget','Red Hat','jeffyu@overlord.com','Call Trace Gadget','http://localhost:8080/gadgets/calltrace-gadget/thumbnail.png','http://localhost:8080/gadgets/calltrace-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Service Overview Gadget','Red Hat','jeffyu@overlord.com','Service Overview Gadget','http://localhost:8080/gadgets/so-gadget/thumbnail.png','http://localhost:8080/gadgets/so-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Response Time','Red Hat','jeffyu@overlord.com','Response Time Gadget','${server}/gadgets/rt-gadget/thumbnail.png','${server}/gadgets/rt-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Situation Gadget','Red Hat','jeffyu@overlord.com','Situation Gadget','${server}/gadgets/situation-gadget/thumbnail.png','${server}/gadgets/situation-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Call Trace Gadget','Red Hat','jeffyu@overlord.com','Call Trace Gadget','${server}/gadgets/calltrace-gadget/thumbnail.png','${server}/gadgets/calltrace-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Service Overview Gadget','Red Hat','jeffyu@overlord.com','Service Overview Gadget','${server}/gadgets/so-gadget/thumbnail.png','${server}/gadgets/so-gadget/gadget.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Date & Time','Google','admin@google.com','Add a clock to your page. Click edit to change it to the color of your choice','http://gadgets.adwebmaster.net/images/gadgets/datetimemulti/thumbnail_en.jpg','http://www.gstatic.com/ig/modules/datetime_v3/datetime_v3.xml');
INSERT INTO GS_GADGET(`GADGET_TITLE`,`GADGET_AUTHOR`,`GADGET_AUTHOR_EMAIL`,`GADGET_DESCRIPTION`,`GADGET_THUMBNAIL_URL`,`GADGET_URL`) VALUES('Economic Data - ALFRED Graph','Research Department','webmaster@research.stlouisfed.org','Vintage Economic Data from the Federal Reserve Bank of St. Louis','http://research.stlouisfed.org/gadgets/images/alfredgraphgadgetthumbnail.png','http://research.stlouisfed.org/gadgets/code/alfredgraph.xml');
2 changes: 1 addition & 1 deletion gadgets/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>parent</artifactId>
<groupId>org.overlord.gadgets.server</groupId>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>org.overlord.gadgets.server</groupId>
<artifactId>gadgets</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.overlord.gadgets.server</groupId>
<artifactId>parent</artifactId>
<version>1.0.0.20130107-M3</version>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Gadget Server</name>
<url>http://www.jboss.org/overlord</url>
Expand Down

0 comments on commit 9a75721

Please sign in to comment.