Re: t5: adding http header

2012-09-23 Thread netdawg
Thanks!! 

Yep, even though java -version on command line shows 1.6, the Eclipse (right
click) project --> properties --> java compiler shows using "JDK 1.5
compliance".  Changed that to 1.6 and sure enough no complaints on the
@Override annotation anymore.

And thanks for that typo catch  ;-).  

In fact, off-topic, but in case anyone would  like to use this code, the
whole expires date can be made redundant by using max-age in the HTTP
request header, per RFC 2616 14.21.  

response.setHeader(CACHE_CTRL, "no-cache, no-store, max-age=0,
must-revalidate"); 

Also see: http://www.mnot.net/blog/2007/05/15/expires_max-age

(this also has a link to an excellent tutorial on caches - must read - basic
message being cache control is probably best handled by web server, if you
can control it,  rather than in your application)



--
View this message in context: 
http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-tp3369097p5716463.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: t5: adding http header

2012-09-23 Thread Chris Mylonas
you've got a typo here :)

>  private static final String EXPIRE_DATE = "Exprires";


s/Exprires/Expires/g


i haven't tried it but may give it a go l8r, useful looking service!


off topic but [1] seems relevant
there is a jquery prefilter suggestion when using jquery

[1] = 
http://stackoverflow.com/questions/12506897/is-safari-on-ios-6-caching-ajax-results



On 24/09/2012, at 5:25 AM, netdawg wrote:

> Wulf:  Why (rather how) the @Override annotation ?  I actually had to remove
> it for it work.   
> 
> Anyhooo...here is the complete working example (right or wrong, not
> sure)...comments welcome...
> 
> Step 1.  Created a class in your src/main/java -- SERVICES package - where
> you will find AppModule.java already installed by Tapestry.  In my case, I
> created a class called RevalidateHTTPHeader 
> 
> package org.yourGroupId.yourArtifactId.services;
> 
> import java.io.IOException;
> 
> import org.apache.tapestry5.services.Request;
> import org.apache.tapestry5.services.RequestFilter;
> import org.apache.tapestry5.services.RequestHandler;
> import org.apache.tapestry5.services.Response;
> 
> 
> public class RevalidateHTTPHeader implements RequestFilter 
> {
> 
>  private static final String CACHE_CTRL = "Cache-Control";
>  private static final String EXPIRE_DATE = "Exprires";
> 
>  public boolean service(Request request, Response response,  RequestHandler
> handler) throws IOException 
>  { 
>response.setHeader(CACHE_CTRL, "no-cache, no-store, must-revalidate"); 
>response.setHeader(EXPIRE_DATE, "Sun, 07 Dec 1941  07:55:00 GMT"); 
>return handler.service(request, response);   
>  }
> }
> 
> 
> Step 2.  Within AppModule.java, do two things - 
> 
> a.  declare the following member variable
> 
> RevalidateHTTPHeader nocache = new RevalidateHTTPHeader();
> 
> b.  add the following within contributeRequestHandler method:
> 
>public void contributeRequestHandler(OrderedConfiguration
> configuration,
> @Local
> RequestFilter filter)
>{
>// Each contribution to an ordered configuration has a name, When
> necessary, you may
>// set constraints to precisely control the invocation order of the
> contributed filter
>// within the pipeline.
> 
>///
>//  ADD the custom nocache HTTP header(s)  
> 
>   configuration.add("NoCache", nocache);  
> 
>   //
>  //
> 
> 
>configuration.add("Timing", filter);
>}
> 
> Step 3:   Run Jetty to verify/examine headers - I am using Google Chrome -
> which has a free HTTP Headers extension.  
> http://localhost:8080/yourArtifactId/[yourPage]
> 
> Name   Extension
> Content-Encoding  gzip
> Exprires Sun, 07 Dec 1941  07:55:00 GMT
> Transfer-Encoding  chunked
> Server  Jetty(6.1.26)
> Content-Type text/html; charset=utf-8
> Cache-Controlno-cache, no-store, must-revalidate
> 
> 
> 
> 
> 
> --
> View this message in context: 
> http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-tp3369097p5716459.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
> 



Re: t5: adding http header

2012-09-23 Thread Bob Harner
"probably", not "problem", sorry.

On Sun, Sep 23, 2012 at 3:36 PM, Bob Harner  wrote:
> If the compiler complained about @Override, you are problem using a
> 1.5 JDK and Wulf (I assume) was using 1.6.
>
> On Sun, Sep 23, 2012 at 3:25 PM, netdawg  wrote:
>> Wulf:  Why (rather how) the @Override annotation ?  I actually had to remove
>> it for it work.
>>
>> Anyhooo...here is the complete working example (right or wrong, not
>> sure)...comments welcome...
>>
>> Step 1.  Created a class in your src/main/java -- SERVICES package - where
>> you will find AppModule.java already installed by Tapestry.  In my case, I
>> created a class called RevalidateHTTPHeader
>>
>> package org.yourGroupId.yourArtifactId.services;
>>
>> import java.io.IOException;
>>
>> import org.apache.tapestry5.services.Request;
>> import org.apache.tapestry5.services.RequestFilter;
>> import org.apache.tapestry5.services.RequestHandler;
>> import org.apache.tapestry5.services.Response;
>>
>>
>> public class RevalidateHTTPHeader implements RequestFilter
>> {
>>
>>   private static final String CACHE_CTRL = "Cache-Control";
>>   private static final String EXPIRE_DATE = "Exprires";
>>
>>   public boolean service(Request request, Response response,  RequestHandler
>> handler) throws IOException
>>   {
>> response.setHeader(CACHE_CTRL, "no-cache, no-store, must-revalidate");
>> response.setHeader(EXPIRE_DATE, "Sun, 07 Dec 1941  07:55:00 GMT");
>> return handler.service(request, response);
>>   }
>> }
>>
>>
>> Step 2.  Within AppModule.java, do two things -
>>
>> a.  declare the following member variable
>>
>> RevalidateHTTPHeader nocache = new RevalidateHTTPHeader();
>>
>> b.  add the following within contributeRequestHandler method:
>>
>> public void contributeRequestHandler(OrderedConfiguration
>> configuration,
>>  @Local
>>  RequestFilter filter)
>> {
>> // Each contribution to an ordered configuration has a name, When
>> necessary, you may
>> // set constraints to precisely control the invocation order of the
>> contributed filter
>> // within the pipeline.
>>
>> ///
>> //  ADD the custom nocache HTTP header(s)
>>
>>configuration.add("NoCache", nocache);
>>
>>//
>>   //
>>
>>
>> configuration.add("Timing", filter);
>> }
>>
>> Step 3:   Run Jetty to verify/examine headers - I am using Google Chrome -
>> which has a free HTTP Headers extension.
>> http://localhost:8080/yourArtifactId/[yourPage]
>>
>> Name   Extension
>> Content-Encodinggzip
>> Exprires   Sun, 07 Dec 1941  07:55:00 GMT
>> Transfer-Encoding  chunked
>> ServerJetty(6.1.26)
>> Content-Type   text/html; charset=utf-8
>> Cache-Control  no-cache, no-store, must-revalidate
>>
>>
>>
>>
>>
>> --
>> View this message in context: 
>> http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-tp3369097p5716459.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: t5: adding http header

2012-09-23 Thread Bob Harner
If the compiler complained about @Override, you are problem using a
1.5 JDK and Wulf (I assume) was using 1.6.

On Sun, Sep 23, 2012 at 3:25 PM, netdawg  wrote:
> Wulf:  Why (rather how) the @Override annotation ?  I actually had to remove
> it for it work.
>
> Anyhooo...here is the complete working example (right or wrong, not
> sure)...comments welcome...
>
> Step 1.  Created a class in your src/main/java -- SERVICES package - where
> you will find AppModule.java already installed by Tapestry.  In my case, I
> created a class called RevalidateHTTPHeader
>
> package org.yourGroupId.yourArtifactId.services;
>
> import java.io.IOException;
>
> import org.apache.tapestry5.services.Request;
> import org.apache.tapestry5.services.RequestFilter;
> import org.apache.tapestry5.services.RequestHandler;
> import org.apache.tapestry5.services.Response;
>
>
> public class RevalidateHTTPHeader implements RequestFilter
> {
>
>   private static final String CACHE_CTRL = "Cache-Control";
>   private static final String EXPIRE_DATE = "Exprires";
>
>   public boolean service(Request request, Response response,  RequestHandler
> handler) throws IOException
>   {
> response.setHeader(CACHE_CTRL, "no-cache, no-store, must-revalidate");
> response.setHeader(EXPIRE_DATE, "Sun, 07 Dec 1941  07:55:00 GMT");
> return handler.service(request, response);
>   }
> }
>
>
> Step 2.  Within AppModule.java, do two things -
>
> a.  declare the following member variable
>
> RevalidateHTTPHeader nocache = new RevalidateHTTPHeader();
>
> b.  add the following within contributeRequestHandler method:
>
> public void contributeRequestHandler(OrderedConfiguration
> configuration,
>  @Local
>  RequestFilter filter)
> {
> // Each contribution to an ordered configuration has a name, When
> necessary, you may
> // set constraints to precisely control the invocation order of the
> contributed filter
> // within the pipeline.
>
> ///
> //  ADD the custom nocache HTTP header(s)
>
>configuration.add("NoCache", nocache);
>
>//
>   //
>
>
> configuration.add("Timing", filter);
> }
>
> Step 3:   Run Jetty to verify/examine headers - I am using Google Chrome -
> which has a free HTTP Headers extension.
> http://localhost:8080/yourArtifactId/[yourPage]
>
> Name   Extension
> Content-Encodinggzip
> Exprires   Sun, 07 Dec 1941  07:55:00 GMT
> Transfer-Encoding  chunked
> ServerJetty(6.1.26)
> Content-Type   text/html; charset=utf-8
> Cache-Control  no-cache, no-store, must-revalidate
>
>
>
>
>
> --
> View this message in context: 
> http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-tp3369097p5716459.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



RE: t5: adding http header

2012-09-23 Thread netdawg
Wulf:  Why (rather how) the @Override annotation ?  I actually had to remove
it for it work.   

Anyhooo...here is the complete working example (right or wrong, not
sure)...comments welcome...

Step 1.  Created a class in your src/main/java -- SERVICES package - where
you will find AppModule.java already installed by Tapestry.  In my case, I
created a class called RevalidateHTTPHeader 

package org.yourGroupId.yourArtifactId.services;

import java.io.IOException;

import org.apache.tapestry5.services.Request;
import org.apache.tapestry5.services.RequestFilter;
import org.apache.tapestry5.services.RequestHandler;
import org.apache.tapestry5.services.Response;


public class RevalidateHTTPHeader implements RequestFilter 
{

  private static final String CACHE_CTRL = "Cache-Control";
  private static final String EXPIRE_DATE = "Exprires";
 
  public boolean service(Request request, Response response,  RequestHandler
handler) throws IOException 
  { 
response.setHeader(CACHE_CTRL, "no-cache, no-store, must-revalidate"); 
response.setHeader(EXPIRE_DATE, "Sun, 07 Dec 1941  07:55:00 GMT"); 
return handler.service(request, response);   
  }
}


Step 2.  Within AppModule.java, do two things - 

a.  declare the following member variable

RevalidateHTTPHeader nocache = new RevalidateHTTPHeader();

b.  add the following within contributeRequestHandler method:

public void contributeRequestHandler(OrderedConfiguration
configuration,
 @Local
 RequestFilter filter)
{
// Each contribution to an ordered configuration has a name, When
necessary, you may
// set constraints to precisely control the invocation order of the
contributed filter
// within the pipeline.

///
//  ADD the custom nocache HTTP header(s)  
 
   configuration.add("NoCache", nocache);  

   //
  //


configuration.add("Timing", filter);
}

Step 3:   Run Jetty to verify/examine headers - I am using Google Chrome -
which has a free HTTP Headers extension.  
http://localhost:8080/yourArtifactId/[yourPage]

Name   Extension
Content-Encodinggzip
Exprires   Sun, 07 Dec 1941  07:55:00 GMT
Transfer-Encoding  chunked
ServerJetty(6.1.26)
Content-Type   text/html; charset=utf-8
Cache-Control  no-cache, no-store, must-revalidate





--
View this message in context: 
http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-tp3369097p5716459.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



RE: t5: adding http header

2011-02-03 Thread Wechsung, Wulf
Hello Angelo,

best use a request Filter. For example:

public class IEStandardModeHeader implements RequestFilter {


private static final String HEADER_KEY = "X-UA-Compatible";

@Override
public boolean service(Request request, Response response,
RequestHandler handler) throws IOException {

response.setHeader(HEADER_KEY, "IE=8");
return handler.service(request, response);   

}

}

To activate the filter you need to contribute it in AppModule:

public static void contributeRequestHandler(
OrderedConfiguration configuration) {
Configuration.add(...);
}


Hope this helps!

Kind Regards,
Wulf

-Original Message-
From: Angelo C. [mailto:angelochen...@gmail.com] 
Sent: Donnerstag, 3. Februar 2011 12:10
To: users@tapestry.apache.org
Subject: t5: adding http header


Hi,

I need to add some http headers into response, like 
Access-Control-Allow-Origin: "*", how to achieve this? Thanks,

Angelo
-- 
View this message in context: 
http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-tp3369097p3369097.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: t5: adding http header

2011-02-03 Thread Thiago H. de Paula Figueiredo
On Thu, 03 Feb 2011 09:10:11 -0200, Angelo C.   
wrote:



Hi,


Hi!


I need to add some http headers into response, like
Access-Control-Allow-Origin: "*", how to achieve this? Thanks,


The better way depends on which pages do you want to do this. If it's all,  
create a RequestFilter and use the Response's setHeader(String name,  
String value) method. If it's just one, @Inject Response and use the same  
method.


--
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor

Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org