Author: scottbw
Date: Wed Jun 29 11:30:15 2011
New Revision: 1141050

URL: http://svn.apache.org/viewvc?rev=1141050&view=rev
Log:
Fix for WOOKIE-111. I've added widget.server.scheme/host/port properties to 
widgetserver.properties which you can use to override the defaults (based on 
current request context) and removed the wookie.port (etc) properties from 
build.properties as these aren't actually used for anything now, and are 
confusing.

Modified:
    incubator/wookie/trunk/build.properties
    
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
    incubator/wookie/trunk/src/widgetserver.properties

Modified: incubator/wookie/trunk/build.properties
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/build.properties?rev=1141050&r1=1141049&r2=1141050&view=diff
==============================================================================
--- incubator/wookie/trunk/build.properties (original)
+++ incubator/wookie/trunk/build.properties Wed Jun 29 11:30:15 2011
@@ -3,11 +3,6 @@ version=0.9.1-SNAPSHOT
 # Run arguments to use when running in developer mode
 run.args="port=8080"
 
-# URL components for Wookie base URL
-wookie.domain=localhost
-wookie.port=8080
-wookie.path=wookie/
-
 # Uncomment to include Extra features
 include.extra.features
 # Uncomment to include Scratchpad features

Modified: 
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java?rev=1141050&r1=1141049&r2=1141050&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
 (original)
+++ 
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
 Wed Jun 29 11:30:15 2011
@@ -324,15 +324,23 @@ public class WidgetInstancesController e
                String url = "";
 
                IStartFile[] startFiles = 
instance.getWidget().getStartFiles().toArray(new 
IStartFile[instance.getWidget().getStartFiles().size()]);
-        IStartFile sf = (IStartFile) 
LocalizationUtils.getLocalizedElement(startFiles, new 
String[]{instance.getLang()}, instance.getWidget().getDefaultLocale());
+    IStartFile sf = (IStartFile) 
LocalizationUtils.getLocalizedElement(startFiles, new 
String[]{instance.getLang()}, instance.getWidget().getDefaultLocale());
                // Try default locale if no appropriate localization found
                if (sf == null) sf = (IStartFile) 
LocalizationUtils.getLocalizedElement(startFiles, null, 
instance.getWidget().getDefaultLocale());
                // No start file found, so throw an exception
                if (sf == null) throw new IOException("No start file located 
for widget "+instance.getWidget().getGuid());
                
-               URL urlWidget =  new URL(request.getScheme() ,
-                               request.getServerName() ,
-                               request.getServerPort() , sf.getUrl());
+               // Use settings defined in properties if available, otherwise 
use the request context
+        Configuration properties = (Configuration) 
request.getSession().getServletContext().getAttribute("properties"); 
//$NON-NLS-1$
+        String scheme = request.getScheme();
+        String serverName = request.getServerName();
+        int serverPort = request.getServerPort();
+        String path = sf.getUrl();
+        if (properties.getString("widget.server.scheme")!=null && 
!properties.getString("widget.server.scheme").trim().equals("")) scheme = 
properties.getString("widget.server.scheme"); //$NON-NLS-1$ //$NON-NLS-2$ 
//$NON-NLS-3$
+        if (properties.getString("widget.server.host")!=null && 
!properties.getString("widget.server.host").trim().equals("")) serverName = 
properties.getString("widget.server.host"); //$NON-NLS-1$ //$NON-NLS-2$ 
//$NON-NLS-3$
+        if (properties.getString("widget.server.port")!=null && 
!properties.getString("widget.server.port").trim().equals("")) serverPort = 
Integer.parseInt(properties.getString("widget.server.port")); //$NON-NLS-1$ 
//$NON-NLS-2$ //$NON-NLS-3$
+
+               URL urlWidget =  new URL(scheme, serverName, serverPort, path);
                
                if (urlWidget.getQuery() != null){
                        url+= urlWidget + "&idkey=" + instance.getIdKey()  
//$NON-NLS-1$

Modified: incubator/wookie/trunk/src/widgetserver.properties
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/widgetserver.properties?rev=1141050&r1=1141049&r2=1141050&view=diff
==============================================================================
--- incubator/wookie/trunk/src/widgetserver.properties (original)
+++ incubator/wookie/trunk/src/widgetserver.properties Wed Jun 29 11:30:15 2011
@@ -5,6 +5,14 @@ widget.web.page=http://incubator.apache.
 # Keep this true while developing, but set to false for a build
 widget.debug=true
 #######################################################################
+# By default Wookie will use the same scheme/host/port it is being
+# served from when generating URLs for widgets. By changing these
+# settings you can override this, for example when deploying Wookie
+# using a virtual host configuration.
+#widget.server.scheme=
+#widget.server.hostname=
+#widget.server.port=
+#######################################################################
 ## Sending emails
 widget.email.server=localhost
 widget.email.port=25


Reply via email to