couldn't the setParameters() method be private or at least package
private? it's really an implementation detail we wouldn't want users
to work with, correct?
On Sat, 6 Aug 2005, Johan Compagner wrote:
> That looks fine to me.
> The only problem is that i was trying to hide the fact that
> RequestCycle.get() CAN return NULL for resources..
> (It can be null when the call is going through getLastModified() of
> wicketservlet....)
> We should come up with something else for that, because the parameters
> are still there.
>
> But with resource having a getParameters.. i think we can add a
> setParameters()
> and call that one in the WicketServlet.getLastModified() That would work
> perfectly because the we also have parameters
> when the last modified call is done (and that has to be done because
> else such a resource can never be cachable....)
>
> johan
>
>
> Jonathan Locke wrote:
> >
> > maybe even add
> >
> > public class Resource
> > {
> > protected ValueMap Resource.getParameters()
> > {
> > return new
> > ValueMap(RequestCycle.get().getRequest().getParameterMap());
> > }
> > }
> >
> > that would allow easy access to typed parameters
> >
> > Jonathan Locke wrote:
> >
> >>
> >> ooooh. very sneaky!
> >> i like it. but maybe we can provide a little helper subclass so
> >> people don't have to
> >> do this to get resource parameters:
> >>
> >> Map params = RequestCycle.get().getRequest().getParameterMap();
> >>
> >> that takes a bit more knowledge of wicket than most people probably
> >> have.
> >>
> >> Johan Compagner wrote:
> >>
> >>> Works fine.
> >>> Just register at startup in youre application a ResourceReference
> >>> (that is youre service)
> >>> (you need head for this because there where 2 bugs in wicket,
> >>> lastModified couldn't return null
> >>> and cachable check didn't go through the isCachable() method but
> >>> cachable variable instead)
> >>>
> >>>
> >>> this is a quick hack of some code
> >>>
> >>> getSharedResources().add("mydynamicresource",new Resource()
> >>> {
> >>> IResourceStream resourceStream = new IResourceStream()
> >>> {
> >>> public Time lastModifiedTime()
> >>> {
> >>> loadResource();
> >>> return null;
> >>> }
> >>> public void close() throws IOException
> >>> {
> >>> is.close();
> >>> is = null;
> >>> }
> >>> public InputStream getInputStream() throws
> >>> ResourceStreamNotFoundException
> >>> {
> >>> loadResource();
> >>> return is;
> >>> }
> >>> public long length()
> >>> {
> >>> loadResource();
> >>> if(is != null)
> >>> {
> >>> try
> >>> {
> >>> return (long)is.available();
> >>> }
> >>> catch (IOException e)
> >>> {
> >>> e.printStackTrace();
> >>> }
> >>> }
> >>> return 0;
> >>> }
> >>> public String getContentType()
> >>> {
> >>> loadResource();
> >>> return "image/gif";
> >>> } };
> >>>
> >>> InputStream is;
> >>> private void loadResource()
> >>> {
> >>> if(is == null && RequestCycle.get() != null)
> >>> {
> >>> Map params =
> >>> RequestCycle.get().getRequest().getParameterMap();
> >>> String fileName = (String)params.get("file");
> >>> if(fileName != null)
> >>> {
> >>> try
> >>> {
> >>> is = new FileInputStream("c:/" + fileName);
> >>> }
> >>> catch (FileNotFoundException e)
> >>> {
> >>> throw new WicketRuntimeException(e);
> >>> }
> >>> }
> >>> else
> >>> {
> >>> is = null;
> >>> }
> >>> }
> >>> }
> >>> public boolean isCacheable()
> >>> {
> >>> return false;
> >>> }
> >>> public IResourceStream getResourceStream()
> >>> {
> >>> return resourceStream;
> >>> }
> >>> });
> >>>
> >>>
> >>> Jonathan Locke wrote:
> >>>
> >>>>
> >>>> right. except one crucial difference. this kind of resource does
> >>>> not need to be
> >>>> registered with the application (and you don't need an image
> >>>> reference to it). i don't think you can do what you suggested
> >>>> below. there are no parameters
> >>>> to image resources currently (unless someone changed something on
> >>>> me... ;-))
> >>>>
> >>>> Johan Compagner wrote:
> >>>>
> >>>>> but what you are describing is pretty much how a resource works now
> >>>>> With one exception you don't have this:
> >>>>>
> >>>>> http://<host>/app/customResources/photos/test/100
> >>>>>
> >>>>> but this
> >>>>>
> >>>>> http://<host>/app/resources/photos?image=test&width=100
> >>>>>
> >>>>> johan
> >>>>>
> >>>>>
> >>>>> Jonathan Locke wrote:
> >>>>>
> >>>>>>
> >>>>>> right.
> >>>>>> but how is this different from the simpler
> >>>>>> WebRequestCycle.onCustomResource?
> >>>>>>
> >>>>>> is it just that it's a little more modular? if that's the goal,
> >>>>>> maybe we should have a generalized
> >>>>>> custom resource architecture (i loathe the word 'service' here
> >>>>>> because it's so unbelievably lacking
> >>>>>> in meaning, btw). we could have just one way of parsing the base
> >>>>>> part of the url and then pass
> >>>>>> the tail on to a resource handler class registered with
> >>>>>> WebRequestCycle. i really hate the idea
> >>>>>> of loading more and more stuff into WebRequest/WebResponse,
> >>>>>> because they are so inconvenient
> >>>>>> to customize. so maybe it's like:
> >>>>>>
> >>>>>> webRequestCycle.add("photos", new CustomResource() { })
> >>>>>>
> >>>>>> and then URLs like:
> >>>>>>
> >>>>>> http://<host>/app/customResources/photos/...
> >>>>>>
> >>>>>> would go to the instance of CustomResource installed on the
> >>>>>> WebRequestCycle...
> >>>>>>
> >>>>>> yeah, i like that a bunch better... is this kindof what you're
> >>>>>> driving at?
> >>>>>>
> >>>>>> Igor Vaynberg wrote:
> >>>>>>
> >>>>>>> Not exactly.
> >>>>>>>
> >>>>>>> I think you are taking a more resource based approach then what
> >>>>>>> I tried to
> >>>>>>> describe. Basically lets say in your case you need to return
> >>>>>>> some resources
> >>>>>>> from within your wicket app that don't fit well with the default
> >>>>>>> request/response processing. What you can do is create your own
> >>>>>>> implementation of WebRequest and WebResponse and register them
> >>>>>>> with wicket
> >>>>>>> under a service name. So when the user hits a url with that
> >>>>>>> service name
> >>>>>>> your registered implementations of WebRequest and WebResponse
> >>>>>>> will be used
> >>>>>>> to process the url and generate the response as opposed to
> >>>>>>> wicket's default.
> >>>>>>> You can completely bypass wicket's pages/components and just
> >>>>>>> write your file
> >>>>>>> into the response.
> >>>>>>>
> >>>>>>> So its not just a resource reference but more like a sub-servlet
> >>>>>>> that works
> >>>>>>> inside wicket and handles all urls with a specific service
> >>>>>>> attrubute.
> >>>>>>>
> >>>>>>> The advantage to a separate servlet is that you still get all
> >>>>>>> the wicket
> >>>>>>> features because your alternate impls are still running within
> >>>>>>> wicket.
> >>>>>>>
> >>>>>>> You can write an image service that given an image name from
> >>>>>>> within a
> >>>>>>> package will write it to the response, kind of like a resource
> >>>>>>> reference
> >>>>>>> does now.
> >>>>>>>
> >>>>>>> Does this make sense or do I just now know enough about resource
> >>>>>>> references
> >>>>>>> in wicket?
> >>>>>>>
> >>>>>>>
> >>>>>>> -Igor
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> -----Original Message-----
> >>>>>>>> From: [EMAIL PROTECTED]
> >>>>>>>> [mailto:[EMAIL PROTECTED] On Behalf Of
> >>>>>>>> Johan Compagner
> >>>>>>>> Sent: Friday, August 05, 2005 2:14 PM
> >>>>>>>> To: [email protected]
> >>>>>>>> Subject: Re: [Wicket-user] Re: Problem
> >>>>>>>>
> >>>>>>>> but isn't this adding a esourcereference to youre application?
> >>>>>>>> Then that resourcereference will becalled under the url:
> >>>>>>>>
> >>>>>>>> /wicket-examples/images/resources/home/image5
> >>>>>>>>
> >>>>>>>> and you can do anything you want in the resource that reference
> >>>>>>>> is making.
> >>>>>>>>
> >>>>>>>> johan
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Igor Vaynberg wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> Or someone might write components/pages that generate xml
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> and are xslt
> >>>>>>>>
> >>>>>>>>> transformed into a ui. Or voice xml components. And im sure
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> there are
> >>>>>>>>
> >>>>>>>>> a thousand more reasons.
> >>>>>>>>>
> >>>>>>>>> Tapestry takes an nice approach that allows easy
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> integration of things
> >>>>>>>>
> >>>>>>>>> like this. You can basically write your own service
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> providers (in this
> >>>>>>>>
> >>>>>>>>> case customized webrequest/webresponse pair) and register them
> >>>>>>>>> with the framework. When your url contains a
> >>>>>>>>> service=<service-name> tapestry uses your service to process
> >>>>>>>>> the request and
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> produce the response.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> -Igor
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> -----Original Message-----
> >>>>>>>>>> From: [EMAIL PROTECTED]
> >>>>>>>>>> [mailto:[EMAIL PROTECTED] On Behalf
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> Of Philip
> >>>>>>>>
> >>>>>>>>>> A. Chapman
> >>>>>>>>>> Sent: Friday, August 05, 2005 1:03 PM
> >>>>>>>>>> To: [email protected]
> >>>>>>>>>> Subject: Re: [Wicket-user] Re: Problem
> >>>>>>>>>>
> >>>>>>>>>> Gili wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Jon, I think you need to give more information about
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> your actual
> >>>>>>>>>>
> >>>>>>>>>>> requirements. As I already mentioned, I have a simple
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>> servlet which
> >>>>>>>>
> >>>>>>>>>>> serves up images by ID and the ID is passed in via a HTTP
> >>>>>>>>>>> POST (although originally I had it going via a HTTP GET and you
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> could do this too).
> >>>>>>>>>>
> >>>>>>>>>>> I don't see why one would need access to the Wicket
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>> session...?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>>> Again, it isn't clear to me what your actual requirements
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> are. If you
> >>>>>>>>>>
> >>>>>>>>>>> simply have a client-server architecture, why not code
> >>>>>>>>>>> up
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>> all your
> >>>>>>>>
> >>>>>>>>>>> server components as servlets to send image data, etc?
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> This is not Jon's argument, I do not believe, but an
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> argument that I
> >>>>>>>>
> >>>>>>>>>> think is valid. Let us say that your images served up by
> >>>>>>>>>> your servlet are generated charts, such as the relative wages
> >>>>>>>>>> of employees. You wouldn't want just anyone to be able to
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> access this
> >>>>>>>>
> >>>>>>>>>> data unless they had authenticated successfully. In order to
> >>>>>>>>>> determine whether they have authenticated, you would need to
> >>>>>>>>>> check the wicket session.
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Philip A. Chapman
> >>>>>>>>>>
> >>>>>>>>>> Application Development:
> >>>>>>>>>> Java, Visual Basic (MCP), PostgreSQL, MySQL, MSSQL Linux,
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> Windows 9x,
> >>>>>>>>
> >>>>>>>>>> Windows NT, Windows 2000, Windows XP
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> -------------------------------------------------------
> >>>>>>>>> SF.Net email is Sponsored by the Better Software Conference &
> >>>>>>>>> EXPO September 19-22, 2005 * San Francisco, CA * Development
> >>>>>>>>> Lifecycle Practices Agile & Plan-Driven Development *
> >>>>>>>>> Managing
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Projects & Teams
> >>>>>>>>
> >>>>>>>>> * Testing & QA Security * Process Improvement & Measurement *
> >>>>>>>>> http://www.sqe.com/bsce5sf
> >>>>>>>>> _______________________________________________
> >>>>>>>>> Wicket-user mailing list
> >>>>>>>>> [email protected]
> >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> -------------------------------------------------------
> >>>>>>>> SF.Net email is Sponsored by the Better Software Conference &
> >>>>>>>> EXPO September 19-22, 2005 * San Francisco, CA * Development
> >>>>>>>> Lifecycle Practices Agile & Plan-Driven Development * Managing
> >>>>>>>> Projects & Teams * Testing & QA Security * Process Improvement
> >>>>>>>> & Measurement * http://www.sqe.com/bsce5sf
> >>>>>>>> _______________________________________________
> >>>>>>>> Wicket-user mailing list
> >>>>>>>> [email protected]
> >>>>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> -------------------------------------------------------
> >>>>>>> SF.Net email is Sponsored by the Better Software Conference & EXPO
> >>>>>>> September 19-22, 2005 * San Francisco, CA * Development
> >>>>>>> Lifecycle Practices
> >>>>>>> Agile & Plan-Driven Development * Managing Projects & Teams *
> >>>>>>> Testing & QA
> >>>>>>> Security * Process Improvement & Measurement *
> >>>>>>> http://www.sqe.com/bsce5sf
> >>>>>>> _______________________________________________
> >>>>>>> Wicket-user mailing list
> >>>>>>> [email protected]
> >>>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> -------------------------------------------------------
> >>>>>> SF.Net email is Sponsored by the Better Software Conference & EXPO
> >>>>>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> >>>>>> Practices
> >>>>>> Agile & Plan-Driven Development * Managing Projects & Teams *
> >>>>>> Testing & QA
> >>>>>> Security * Process Improvement & Measurement *
> >>>>>> http://www.sqe.com/bsce5sf
> >>>>>> _______________________________________________
> >>>>>> Wicket-user mailing list
> >>>>>> [email protected]
> >>>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>
> >>>>>
> >>>>>
> >>>>> -------------------------------------------------------
> >>>>> SF.Net email is Sponsored by the Better Software Conference & EXPO
> >>>>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> >>>>> Practices
> >>>>> Agile & Plan-Driven Development * Managing Projects & Teams *
> >>>>> Testing & QA
> >>>>> Security * Process Improvement & Measurement *
> >>>>> http://www.sqe.com/bsce5sf
> >>>>> _______________________________________________
> >>>>> Wicket-user mailing list
> >>>>> [email protected]
> >>>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>
> >>>>
> >>>>
> >>>> -------------------------------------------------------
> >>>> SF.Net email is Sponsored by the Better Software Conference & EXPO
> >>>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> >>>> Practices
> >>>> Agile & Plan-Driven Development * Managing Projects & Teams *
> >>>> Testing & QA
> >>>> Security * Process Improvement & Measurement *
> >>>> http://www.sqe.com/bsce5sf
> >>>> _______________________________________________
> >>>> Wicket-user mailing list
> >>>> [email protected]
> >>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>
> >>>
> >>>
> >>> -------------------------------------------------------
> >>> SF.Net email is Sponsored by the Better Software Conference & EXPO
> >>> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> >>> Practices
> >>> Agile & Plan-Driven Development * Managing Projects & Teams *
> >>> Testing & QA
> >>> Security * Process Improvement & Measurement *
> >>> http://www.sqe.com/bsce5sf
> >>> _______________________________________________
> >>> Wicket-user mailing list
> >>> [email protected]
> >>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>
> >>
> >>
> >> -------------------------------------------------------
> >> SF.Net email is Sponsored by the Better Software Conference & EXPO
> >> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> >> Practices
> >> Agile & Plan-Driven Development * Managing Projects & Teams * Testing
> >> & QA
> >> Security * Process Improvement & Measurement *
> >> http://www.sqe.com/bsce5sf
> >> _______________________________________________
> >> Wicket-user mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>
> >
> >
> > -------------------------------------------------------
> > SF.Net email is Sponsored by the Better Software Conference & EXPO
> > September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> > Practices
> > Agile & Plan-Driven Development * Managing Projects & Teams * Testing
> > & QA
> > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> > _______________________________________________
> > Wicket-user mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
>
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user