+1 Matt, last I head this was not working.

-Ryan

Email: [email protected]
Phone: 978-899-3041
developerWorks Profile



From:   Matthew G Marum/Raleigh/IBM@IBMUS
To:     [email protected], 
Date:   05/16/2011 09:26 AM
Subject:        dev-remailer still working?



fwiw, I also don't get notes from dev-remailer. Are we sure that alias is 
still working? I don't have a good way to find out about outstanding 
patches unless I'm added as a reviewer or they are brought up here on the 
mailing list.

Matt Marum

Li Xu---05/15/2011 11:57:47 PM---Hi, John Thanks for the comments. Both of 
your concerns makes sense to me.


From:

Li Xu/Raleigh/IBM@IBMUS

To:

[email protected]

Date:

05/15/2011 11:57 PM

Subject:

Re: svn commit: r1102446 - in /shindig/trunk: config/ 
content/samplecontainer/examples/commoncontainer/ 
java/common/src/main/java/org/apache/shindig/common/servlet/ 
java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ 
java/server/src/main/webap



Hi, John
Thanks for the comments. Both of your concerns makes sense to me.
Using system.properties to pass along information is not ideal. It's added 
because we experienced problem that threadLocal variable is null in forked 
threads. It will be great if the solution can hold information with forked 
threads.
I agree there may be some use case that would require a fixed set of host 
and port. Settings in web.xml sounds ideal. JVM settings limits one 
instance per JVM...loading from web.xml probably makes more sense. So the 
logic will be like this? 1. some fixed setting ( eg. web.xml or other ) 2. 
if #1 is not set, always fall back to value originated from ServletRequest 
3. fallback testing server/port like jetty host/port
what do you think?

I do like the idea about solving the values in ContainerConfig. In fact I 
did look at that possibility a little before. The problem I encountered is 
that JsonContainerConfig maybe already built before servlet request comes 
in. Also it doesn't have the nature to allow modification( could be wrong, 
still on the path to understand all these...) ... it will be great if the 
solution could solve this.

thanks,
li






John Hjelmstad ---05/14/2011 01:33:11 PM---Hi Li, Comments inline.

From:

John Hjelmstad <[email protected]>

To:

[email protected]

Date:

05/14/2011 01:33 PM

Subject:

Re: svn commit: r1102446 - in /shindig/trunk: config/ 
content/samplecontainer/examples/commoncontainer/ 
java/common/src/main/java/org/apache/shindig/common/servlet/ 
java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ 
java/server/src/main/webap



Hi Li,

Comments inline.

On Fri, May 13, 2011 at 3:26 PM, Li Xu <[email protected]> wrote:

> hello,
> I wish we see your comments before committing. A Provider pattern sounds
> nice. I have a couple of questions regarding the patch under 4527056.
>
Agree about having been able to comment earlier. I suspect dev-remailer@ 
no
longer sends to my account, or perhaps it somehow got spam-filtered. Will
check.

>
> The patch submitted under r1102446 will always take host/port from 
servlet
> request, thus it won't take static value setting up in web.xml. We 
probably
> missed some use case here, is there any reason for not taking host/port 
from
> ServletRequest? I checked the new patch submited under 4527056, it still
> requires setting up shindig.host/shindig.port in web.xml or as jvm 
setting.
> it will be great help if you could please explain a little.
>
The logic of your patch seemed fine to me, particularly for the default 
use
case. My concern was over A) the code's side effects (System.setProperty 
in
particular), and B) the fact that there's no *other* way to set this
information.

Within our installation, we have a separate means for obtaining this
information. It's a similar implementation, but one that picks up
significantly more information. It sets up a RequestContext object with
various items like request type, query params, path info, some derived
contextual data, and so on. It propagates this information along forked
threads as well and is used in various ways. The underlying impl is 
similar
- a set of Filters that contribute to a carefully-managed ThreadLocal - 
but
the main point is that we'd prefer to be able to inject Host (et al) using
it rather than a parallel method.

Following on to my comments from before, IMO the best place for this logic
is in ContainerConfig. Putting %host% substitution logic there means that
all downstream classes get it without code modification.

Admittedly, ContainerConfig is a little awkward to augment today. It's 
done
through subclassing. I'd suggesting introducing an Injected list of
ConfigModifiers that can perform these edits. WDYT?

--j

>
> thanks,
> li
>
>
>
>
> [image: Inactive hide details for John Hjelmstad ---05/13/2011 04:15:37
> PM---Hi all, This CL unfortunately suffers from a lot of static]John
> Hjelmstad ---05/13/2011 04:15:37 PM---Hi all, This CL unfortunately 
suffers
> from a lot of static cling. There's no way to
>
>
> From:
> John Hjelmstad <[email protected]>
> To:
> [email protected]
> Date:
> 05/13/2011 04:15 PM
> Subject:
> Re: svn commit: r1102446 - in /shindig/trunk: config/
> content/samplecontainer/examples/commoncontainer/
> java/common/src/main/java/org/apache/shindig/common/servlet/
> java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/
> java/server/src/main/webap
> ------------------------------
>
>
>
> Hi all,
>
> This CL unfortunately suffers from a lot of static cling. There's no way 
to
> customize this behavior, and the default behavior ends up having odd 
side
> effects like getting and setting system properties, many of which are
> irrelevant, and tightly monitored, in production environments.
>
> I've temporarily pulled this logic out into a provider pattern:
> http://codereview.appspot.com/4527056/
>
> ...so that users aren't forced into this behavior.
>
> This said, I actually feel that the better solution for this is to put
> host-substitution logic into ContainerConfig. All these config values 
come
> from there anyway.
>
> --j
>
> On Thu, May 12, 2011 at 1:00 PM, <[email protected]> wrote:
>
> > Author: woodser
> > Date: Thu May 12 20:00:18 2011
> > New Revision: 1102446
> >
> > URL: http://svn.apache.org/viewvc?rev=1102446&view=rev
> > Log:
> > Committing Li Xu's patch to detect host & port from 
HttpServletRequest.
> >
> > Codereview: http://codereview.appspot.com/4534049/
> > JIRA: https://issues.apache.org/jira/browse/SHINDIG-1534
> >
> > Added:
> >
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HostFilter.java
> >
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/ServletRequestContext.java
> > Modified:
> >    shindig/trunk/config/container.js
> >
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/gadgetCollections.json
> >
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/viewController.js
> >
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
> >
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
> >
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
> >
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
> >    shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
> >
> > Modified: shindig/trunk/config/container.js
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/config/container.js?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > --- shindig/trunk/config/container.js (original)
> > +++ shindig/trunk/config/container.js Thu May 12 20:00:18 2011
> > @@ -103,10 +103,13 @@
> >  //"gadgets.securityTokenKeyFile" : "/path/to/key/file.txt",
> >
> >  // URI for the default shindig test instance.
> > -"defaultShindigTestHost": "http://${SERVER_HOST}:${SERVER_PORT}";,
> > +//"defaultShindigTestHost": "http://${SERVER_HOST}:${SERVER_PORT}";,
> > +"defaultShindigTestHost":"http://%host%";,
> > +
> >
> >  // Authority (host:port without scheme) for the proxy and concat
> servlets.
> > -"defaultShindigProxyConcatAuthority": 
"${SERVER_HOST}:${SERVER_PORT}",
> > +//"defaultShindigProxyConcatAuthority": 
"${SERVER_HOST}:${SERVER_PORT}",
> > +"defaultShindigProxyConcatAuthority":"%host%",
> >
> >  // OS 2.0 Gadget DOCTYPE: used in Gadgets with @specificationVersion 
2.0
> > or greater and
> >  // quirksmode on Gadget has not been set.
> >
> > Modified:
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/gadgetCollections.json
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/content/samplecontainer/examples/commoncontainer/gadgetCollections.json?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/gadgetCollections.json
> > (original)
> > +++
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/gadgetCollections.json
> > Thu May 12 20:00:18 2011
> > @@ -4,22 +4,22 @@
> >             "name": "Publish Subscribe Demo",
> >             "Description": "This is a sample pub/sub demo showcasing 
the
> > pubsub-2 feature",
> >             "apps" : [
> > -                     {"name": "publisher", "url": "
> > http://localhost:8080/container/sample-pubsub-2-publisher.xml"},
> > -                     {"name": "subscriber", "url": "
> > http://localhost:8080/container/sample-pubsub-2-subscriber.xml"}
> > +                     {"name": "publisher", "url":
> > "/container/sample-pubsub-2-publisher.xml"},
> > +                     {"name": "subscriber", "url":
> > "/container/sample-pubsub-2-subscriber.xml"}
> >                      ]
> >              },
> >              {
> >             "name": "Activity Streams Sample",
> >             "Description": "Simple gadget to test base ActivityStreams
> > implementation in features",
> >             "apps" : [
> > -                     {"name": "ActivityStreams Sample", "url": "
> >
> 
http://localhost:8080/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml

> > "}
> > +                     {"name": "ActivityStreams Sample", "url":
> > "/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml"}
> >                      ]
> >              },
> >                          {
> >             "name": "Sample Media Items Gadget",
> >             "Description": "This is a sample pub/sub demo showcasing 
the
> > pubsub-2 feature",
> >             "apps" : [
> > -                     {"name": "publisher", "url": "
> > http://localhost:8080/samplecontainer/examples/media/Media.xml"}
> > +                     {"name": "publisher", "url":
> > "/samplecontainer/examples/media/Media.xml"}
> >                      ]
> >              },
> >              {
> >
> > Modified:
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/viewController.js
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/content/samplecontainer/examples/commoncontainer/viewController.js?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/viewController.js
> > (original)
> > +++
> >
> 
shindig/trunk/content/samplecontainer/examples/commoncontainer/viewController.js
> > Thu May 12 20:00:18 2011
> > @@ -45,7 +45,11 @@ $(function() {
> >                          $.each(data.collections, function(i,data){
> >                                 var optionVal = [];
> >                                 $.each(data.apps, function(i,data){
> > -                                     optionVal.push(data.url);
> > +                                  if (data.url.indexOf("http") < 0){
> > +
> >  optionVal.push(location.protocol+"//"+location.host+data.url);
> > +                                  }else{
> > +                                        optionVal.push(data.url);
> > +                                  }
> >                                 });
> >                             $('#gadgetCollection').append('<option
> > value="'+ optionVal.toString() + '">' + data.name +'</option>');
> >                           });
> >
> > Added:
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HostFilter.java
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HostFilter.java?rev=1102446&view=auto

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HostFilter.java
> > (added)
> > +++
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HostFilter.java
> > Thu May 12 20:00:18 2011
> > @@ -0,0 +1,50 @@
> > +/*
> > + * 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 org.apache.shindig.common.servlet;
> > +
> > +import java.io.IOException;
> > +
> > +import javax.servlet.Filter;
> > +import javax.servlet.FilterConfig;
> > +import javax.servlet.FilterChain;
> > +import javax.servlet.ServletContext;
> > +import javax.servlet.ServletException;
> > +import javax.servlet.ServletRequest;
> > +import javax.servlet.ServletResponse;
> > +
> > +
> > +
> > +
> > +/**
> > + * A Filter that can cache ServletRequest information in ThreadLocal
> > variable
> > + */
> > +public class HostFilter implements Filter {
> > +
> > +  public void doFilter(ServletRequest request, ServletResponse 
response,
> > FilterChain chain) throws IOException, ServletException {
> > +    ServletRequestContext.setRequestInfo(request);
> > +    chain.doFilter(request, response);
> > +  }
> > +
> > +  public void destroy() {
> > +  }
> > +
> > +  public void init(FilterConfig arg0) throws ServletException {
> > +  }
> > +}
> >
> > Added:
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/ServletRequestContext.java
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/ServletRequestContext.java?rev=1102446&view=auto

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/ServletRequestContext.java
> > (added)
> > +++
> >
> 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/ServletRequestContext.java
> > Thu May 12 20:00:18 2011
> > @@ -0,0 +1,105 @@
> > +/*
> > + * 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 org.apache.shindig.common.servlet;
> > +
> > +import javax.servlet.ServletRequest;
> > +
> > +public class ServletRequestContext {
> > +
> > +  public static void setRequestInfo(ServletRequest req) {
> > +    String auth = req.getServerName() + ":" + req.getServerPort();
> > +       String fullAuth = req.getScheme() + "://" + auth;
> > +       authority.set(auth);
> > +       fullAuthority.set(fullAuth);
> > +
> > +       System.setProperty("authority",auth);
> > +       System.setProperty("fullAuthority", fullAuth);
> > +  }
> > +
> > +  /**
> > +   * A Thread Local holder for authority -- host + port
> > +   */
> > +  private static ThreadLocal<String> authority = new
> > ThreadLocal<String>();
> > +
> > +  /**
> > +   * A Thread Local holder for full authority -- scheme + host + port
> > +   */
> > +  private static ThreadLocal<String> fullAuthority = new
> > ThreadLocal<String>();
> > +
> > +
> > +  public static String getAuthority() {
> > +
> > +    String retVal = authority.get();
> > +    if (retVal == null) {
> > +      retVal = System.getProperty("authority");
> > +      if (retVal == null){
> > +       retVal = getDefaultAuthority();
> > +      }
> > +    }
> > +    return retVal;
> > +  }
> > +
> > +  private static String getDefaultAuthority() {
> > +
> > +    String retVal = System.getProperty("defaultAuthority");
> > +       if (retVal == null){
> > +         retVal = getServerHostname()+":"+getServerPort();
> > +         System.setProperty("defaultAuthority", retVal);
> > +       }
> > +       return retVal;
> > +
> > +  }
> > +
> > +  public static String getFullAuthority() {
> > +
> > +       String retVal = fullAuthority.get();
> > +    if (retVal == null) {
> > +      retVal = System.getProperty("fullAuthority");
> > +      if (retVal == null){
> > +        retVal = getDefaultFullAuthority();
> > +         }
> > +       }
> > +    return retVal;
> > +
> > +  }
> > +
> > +  private static String getDefaultFullAuthority() {
> > +
> > +    String retVal = System.getProperty("defaultFullAuthority");
> > +    if ( retVal != null ){
> > +         retVal = "http://"+getServerHostname()+":"+getServerPort();
> > +         System.setProperty("defaultFullAuthority", retVal);
> > +       }
> > +       return retVal;
> > +
> > +  }
> > +
> > +  private static String getServerPort() {
> > +       return System.getProperty("shindig.port") != null ?
> > System.getProperty("shindig.port") :
> > +         System.getProperty("jetty.port") != null ?
> > System.getProperty("jetty.port") :
> > +         "8080";
> > +  }
> > +
> > +  private static String getServerHostname() {
> > +       return System.getProperty("shindig.host") != null ?
> > System.getProperty("shindig.host") :
> > +         System.getProperty("jetty.host") != null ?
> > System.getProperty("jetty.host") :
> > +         "localhost";
> > +  }
> > +
> > +}
> >
> > Modified:
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
> > (original)
> > +++
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
> > Thu May 12 20:00:18 2011
> > @@ -24,6 +24,7 @@ import com.google.inject.Inject;
> >  import com.google.inject.name.Named;
> >
> >  import org.apache.commons.lang.StringEscapeUtils;
> > +import org.apache.shindig.common.servlet.ServletRequestContext;
> >  import org.apache.shindig.common.uri.Uri;
> >  import org.apache.shindig.common.uri.UriBuilder;
> >  import org.apache.shindig.config.ContainerConfig;
> > @@ -222,6 +223,8 @@ public class DefaultConcatUriManager imp
> >       throw new RuntimeException(
> >           "Missing required config '" + key + "' for container: " +
> > container);
> >     }
> > +    val = val.replace("%host%", 
ServletRequestContext.getAuthority());
> > +
> >     return val;
> >   }
> >
> >
> > Modified:
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
> > (original)
> > +++
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
> > Thu May 12 20:00:18 2011
> > @@ -27,6 +27,7 @@ import org.apache.commons.lang.StringUti
> >  import org.apache.shindig.auth.SecurityToken;
> >  import org.apache.shindig.auth.SecurityTokenCodec;
> >  import org.apache.shindig.auth.SecurityTokenException;
> > +import org.apache.shindig.common.servlet.ServletRequestContext;
> >  import org.apache.shindig.common.uri.Uri;
> >  import org.apache.shindig.common.uri.UriBuilder;
> >  import org.apache.shindig.config.ContainerConfig;
> > @@ -342,10 +343,13 @@ public class DefaultIframeUriManager imp
> >
> >   private String getReqVal(String container, String key) {
> >     String val = config.getString(container, key);
> > +
> >     if (val == null) {
> >       throw new RuntimeException("Missing required container config
> param,
> > key: "
> >           + key + ", container: " + container);
> >     }
> > +    val = val.replace("%host%", 
ServletRequestContext.getAuthority());
> > +
> >     return val;
> >   }
> >
> >
> > Modified:
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
> > (original)
> > +++
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
> > Thu May 12 20:00:18 2011
> > @@ -23,6 +23,7 @@ import com.google.common.base.Splitter;
> >  import com.google.common.collect.ImmutableList;
> >  import com.google.inject.Inject;
> >
> > +import org.apache.shindig.common.servlet.ServletRequestContext;
> >  import org.apache.shindig.common.uri.Uri;
> >  import org.apache.shindig.common.uri.UriBuilder;
> >  import org.apache.shindig.config.ContainerConfig;
> > @@ -222,6 +223,7 @@ public class DefaultJsUriManager impleme
> >             "' missing config for required param: " + key);
> >       }
> >     }
> > +    ret = ret.replace("%host%", 
ServletRequestContext.getAuthority());
> >     return ret;
> >   }
> >
> >
> > Modified:
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > ---
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
> > (original)
> > +++
> >
> 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java
> > Thu May 12 20:00:18 2011
> > @@ -25,6 +25,7 @@ import com.google.inject.Inject;
> >  import com.google.inject.name.Named;
> >
> >  import org.apache.commons.lang.StringUtils;
> > +import org.apache.shindig.common.servlet.ServletRequestContext;
> >  import org.apache.shindig.common.uri.Uri;
> >  import org.apache.shindig.common.uri.UriBuilder;
> >  import org.apache.shindig.common.util.Utf8UrlCoder;
> > @@ -276,6 +277,7 @@ public class DefaultProxyUriManager impl
> >       throw new RuntimeException("Missing required container config 
key:
> "
> > + key + " for " +
> >           "container: " + container);
> >     }
> > +    val = val.replace("%host%", 
ServletRequestContext.getAuthority());
> >     return val;
> >   }
> >  }
> >
> > Modified: shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
> > URL:
> >
> 
http://svn.apache.org/viewvc/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml?rev=1102446&r1=1102445&r2=1102446&view=diff

> >
> >
> 
==============================================================================
> > --- shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml 
(original)
> > +++ shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml Thu May 
12
> > 20:00:18 2011
> > @@ -59,14 +59,24 @@
> >    <context-param>
> >        <param-name>system.properties</param-name>
> >      <param-value>
> > -       shindig.host=localhost
> > -
> > -       aKey=/shindig/gadgets/proxy?container=default&amp;url=
> > -       shindig.port=
> > -
> > +       aKey=/shindig/gadgets/proxy?container=default&amp;url=
> >      </param-value>
> >   </context-param>
> > -
> > +
> > +  <filter>
> > +    <filter-name>hostFilter</filter-name>
> > +
> >
>  <filter-class>org.apache.shindig.com 
mon.servlet.HostFilter</filter-class>
> > +  </filter>
> > +  <filter-mapping>
> > +    <filter-name>hostFilter</filter-name>
> > +    <url-pattern>/gadgets/ifr</url-pattern>
> > +    <url-pattern>/gadgets/js/*</url-pattern>
> > +    <url-pattern>/gadgets/proxy/*</url-pattern>
> > +    <url-pattern>/gadgets/concat</url-pattern>
> > +    <url-pattern>/rpc/*</url-pattern>
> > +    <url-pattern>/rest/*</url-pattern>
> > +  </filter-mapping>
> > +
> >     <filter>
> >         <filter-name>ShiroFilter</filter-name>
> >
> > 
<filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class>
> >
> >
> >
>
>
>





Reply via email to