I posted a review to reviews.apache.org and got a mailer-bounce

<reviewboard@localhost>: Command died with status 127: "procmail -a
   "$EXTENSION"". Command output: sh: procmail: not found

otherwise it seems to work.

On Mon, May 16, 2011 at 08:32, Paul Lindner <[email protected]> wrote:
> It's going to be easier to use reviews.apache.org instead of figuring out
> why dev-remailer is broken.
>
> I just sent over a patch without any hassle, plus there's a post-review
> command line tool that works really well.  Try:
>
> post-review --target-groups=shindig
>
>
> On Mon, May 16, 2011 at 7:28 AM, Ryan J Baxter <[email protected]> wrote:
>
>> +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>
>> > >
>> > >
>> > >
>> >
>> >
>> >
>>
>>
>>
>>
>>
>>
>
>
> --
> Paul Lindner -- [email protected] -- linkedin.com/in/plindner
>

Reply via email to