I looked at Quartz but decided to schedule a wget from a cron job instead. I
think it's better to schedule via an external event since it makes it easier
to turn them off when things go bad. Also cron is simple and reliable.
I can't comment on Quartz but I did use the Oracle scheduler until
someone scheduled a query that ran for hours and made the database
useless. It was difficult to recover from because you could not login
to stop the task.
If you schedule
* * * * * wget http://localhost/cronjob
then you don't ha
Here is mine. Just add the state manager as a property and pull out
what you need.
public Object unsqueeze(DataSqueezer squeezer, String string) {
try {
Repository repository = (Repository)
stateManager.get("repository");
User user
I think the current functionality is correct. If it's in a form it
works and if not it supplies it's own form. This makes is much easier
to put up a quick page to edit an object then go back later and make
things pretty. If this functionality is difficult to implement I think
it would be OK to hav
I use juicyvps. They start at $9.95 a month. I've been using them for
about a year without problems.
Barry
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
I have this bean which takes an object and a primary key and returns
even/odd and selected. The ognl to call it is below
public class EvenOddSelected {
private boolean even = true;
public String getNext(MillId object, MillId selected) {
String result = even ? "even"
I have a bunch of links I'm trying to convert to a dropdown list. The
problem is once I do that they all go to a listener that could either
return an IPage or an ILink. Currently some of the links are
DirectLinks and some are links to custom services such as a FOP pdf
service, a CSV service or a
I'll answer some of my own question. I realized you can return ILink
to handle the service cases and do a cycle.activate(IPage) to handle
the page cases and return null. That handles some of the problem.
Unfortunately I still had to customize each page but it did not take
as long as I thought it w
I don't know about the norm but prop does not have all the
functionality of ognl. It's probably faster at what it can do. So if
you need speed or believe in optimizing early then you'll need both.
Or
You can use prop for everthing, but you'll need to write to write java
methods to handle the ca
Could it be both sqeezers are useable for the object you are trying to
sqeeze? I'm not sure how that case is handled but the error looks
similar to the one you get when you specify more that one persist
option.
-
To unsubscribe,
I switched to injecting connections with Hivemind and I would say it's
well worth the effort. I could never figure out how to test code when
using the Tomcat database connections but with the Hivemind method you
can just get a connection and add it to the objects you want to test.
There is an exa
I migrated 2 sites from 3.x to 4.0.x. I just put in the new libraries
and fixed everything that did not compile. For the most part the 3.x
html and page files will work. Both took a couple of days to get a
site that mostly worked. The biggest problems were things like PDF
pages, all the plain HTML
I'm not a big fan of DAO's either and when I saw this it got me
thinking so I tried the following. The methods/queries are not as
dynamic since it requires an Interface but Eclipse will write that for
you and after that you get code completion, type checking etc.
The parser is about as dumb as it
It would be nice if you could return Object from a listener and let
Tapestry figure it out. Having to pick between ILink and IPage at
compile time is a bit of a problem.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional
You can store the messages in a properties file just like table, but I
run all my messages out of a database also and beanform works for me.
I set my database up so it looks up a key and if it does not find one
it creates a record with a null value. Then I can find all the keys I
don't have.
I use Fushion Charts. http://www.fusioncharts.com
You have to buy it but it's not too expensive. It generates charts on
the client from xml using flash. It's easy to use and does not put
much load on the server. You can also animate the graphs and connect
the html on the page so the graph can be
I did this by overridding the insert component with one that outputs a
class based on the datatype. Min and Max might be more of a problem
because when you override the component it will happen everywhere,
however I think you might be able to control this by putting the page
in a library. On the o
Murray,
I also have records that need to be 'checked out' for some time and
your solution seems simple and elegant. So much so I may steal it.
I use one sequence for every primary key in the database so a table
named "lock" with
key primary key
timestamp timestamp
userid
should do it. UserId l
Datebase timestamp seems better than a session id. Can't get
perpetually locked and works outside a webserver session.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
I started validating my site as XHTML strict and ran into a problem I
did not expect. The W3C validator reports
# Warning Line 9 column 109: cannot generate system identifier for
general entity "service".
...Acumera/app?page=AcuVigil%3AMGStatus&service=page"/>
With the following explanation:
I guess it depends on what you mean by friendly urls. It would easy to
fix the page service but in looking thru the code it appears the
direct service separates it's parameters with an '&' also. While it's
possible to replace all that code it's quit a bit of work considering
the problems appears t
I read the spec 4 or 5 times before I believed it. It seems a bit odd
to invalidate every web page on the planet in the name of progress.
Then to add insult to injury the validator produces about 5 errors for
each one of these.
Barry
--
I think what you need is an initialize-method. setConfig cannot be
called before the Manager constructor. See
http://hivemind.apache.org/hivemind1/hivemind/BuilderFactory.html
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For addi
I've got a bug that only occurs with Firefox as the browser and
Tomcat/Solaris 10 on x86 with the -server option to the jvm. On some
pages it seems the state objects do not get set correctly often
resulting in null pointer exceptions. Reloading the page may or may
not fix the problem.
This does n
I suspect that it's a threading issue that goes away when the jvm is
switched from server to client, but the dependency on Firefox has me a
bit puzzled. Stepping with a debugger might find it but my production
system is Solaris and my development environment is OSX. Also if it's
a threading issue
This has been on my TODO list for a while. I've written a Dispatcher
that handles GWT RPC requests and directs them to Tapestry components.
It all works pretty well except when I tried to add Zone support. The
zones work but the zone update happens before the GWT async RPC
happens. I'm guessing (ho
I've used the ignore option in the past. I referred to it as a problem
because that's not what I wanted to happen in this case.
On my first attempts I did use an IoC service but it seems better to
call component methods. If you want to call an IoC service it's easy
enough to do that from the compo
I just spent quite a while tracking down an IE 7 AJAX problem. It
appears if you use eventlink without t:id you can end up with multiple
html elements with an id of eventlink.
The javascript at the end of the file ends up something like this
Tapestry.init({"zone":["contentZone","avstatus","mgTime"
ssion.clear();
> > > >>>> session.beginTransaction();
> > > >>>>
> > > >>>> (without the clear its what HibernateSessionManager is doing with
> > the
> > > >>>> session bound to the current thread).
> >
rry,
>
> Am I understanding you right, that you deploy separate Hudson instance per
> tapestry application?
> And you deploy it to the same web container that the app is running at?
>
>
>
> On Sat, Oct 26, 2013 at 4:42 PM, Barry Books wrote:
>
> > Martin,
> >
&g
I think this will happen after a zone update
On Sunday, November 3, 2013, John wrote:
> I'm finding that component ids are being corrupted as I switch between
> jquery tabs which means that these links fail when clicked. They are in
> loops and should have the correct loop count at the end, but g
I've been trying out the Angurlarjs Datepicker
http://angular-ui.github.io/bootstrap/ as a replacement for the current
Tapestry date picker. The great thing is it integrates with Bootstrap but
I'm having trouble figuring out how to integrate it with Tapestry. I can
get it to work but I have not rea
I use the new PayPal rest API
https://github.com/trsvax/tapestry-paypal-rest
On Tue, Nov 19, 2013 at 6:32 AM, Chris Mylonas wrote:
> Thanks for your input Norman - your rationale to not to give away details
> on the client end is spot on.
>
>
>
>
>
> On Tue, Nov 19, 2013 at 8:50 AM, Norman Fra
os I
> have my paypal sandbox working with old php shopping cart stuff
>
> thanks for the heads up barry,
> chris
>
>
> On Wed, Nov 20, 2013 at 12:13 AM, Barry Books wrote:
>
> > I use the new PayPal rest API
> >
> > https://github.com/trsvax/tapestry
;, "id", clientID);
>
> with this:
>
> Element dateField = element.elementBefore("input", "value", formatedDate,
> "type", "hidden", "class",
>
> "form-control", "id", clientID);
>
>
>
; Add this:
>
> @Inject
> private TypeCoercer coercer;
>
> and replace this:
>
> Date date = (Date) value;
>
> with this:
>
> Date date = coercer.coerce(value, Date.class);
>
> Cheers,
>
> Geoff
>
I would use an event link. From the event handler you should be able to
return a StreamResponse (which could be the PDF) or a Zone which would
bring up the Modal.
On Wed, Nov 27, 2013 at 8:52 AM, Vasili Petrenko <
vasili.petre...@devintime.de> wrote:
> Scenario:
>
>
> Someone clicks on the actio
add(DateTime.*class*, "dateTime");
>
> }
>
>
> *public* *static* *void*
> contributeBeanBlockSource(*final*Configuration
> configuration) {
>
> configuration.add(*new* EditBlockContribution("dateTime",
> "datefield/AppPropertyEditBlocks"
Thiago is correct. You can default the value of fwtype and then override it
by component. For example you could default your site to use small buttons
then set fwtype for the ones you want to large.
On Fri, Dec 6, 2013 at 1:18 PM, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:
> On Fr
I have a grid which queries a table with 100's of millions of rows. The
count query is too slow so I return an estimate. I wrote a page selector
that does not allow selecting the last page and the prepare only selects
the first n rows. This make the grid work for queries that could return
millions
I've written a few iPhone apps and tried PhoneGap for one of them. If you
are only targeting iOS then I think it's easier to just write a native app.
Objective C with ARC using Xcode is a more polished development environment
than HTML5 (not to say Tapestry/Java/HTML5/Eclipse is bad).
I would also
I wrote a javascript cache for tapestry5-jquery a few years ago
https://github.com/got5/tapestry5-jquery/tree/master/src/main/java/org/got5/tapestry5/jquery/services/js
oddly enough I wrote it so you could use inline javascript in a tml file
with zones. I believe I created a couple of implementat
The reason I wrote the session cache was to support clustering. The data
uri would solve that problem also. Before data attributes I found it useful
because it made some things much simpler than the Tapestry 5.3 way of doing
things. Since you can put scripts in the tml file you can use properties t
I would agree. I think the state should be in the URL. I also think it
should be implemented like an event link with a zone response not a cache.
That allows the developer to store the state just like any other event
link.
On Wednesday, February 5, 2014, Lance Java
wrote:
> > The reason I wrot
I agree the data url sounds interesting but is not really practical for a
general purpose public site. I do think this might be interesting though
alert("hello ${user}");
<\t:script>
That becomes something like:
which returns:
define(["jquery"], function(jquery) {
alert("hello Barry");
}
Th
I added a Bootstrap drop down to the navigation on one of my sites but I
cannot reliably get tapestry to include the Bootstrap javascript.
In my layout.java file I have this
@Import( stack = { InternalConstants.CORE_STACK_NAME }, module={
"bootstrap/dropdown", "bootstrap/collapse"})
With just t
Appears ok in beta2. Guess I need to keep up to date
On Thursday, February 13, 2014, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:
> Have you tried beta 2?
>
> On Thu, 13 Feb 2014 10:35:43 -0200, Barry Books wrote:
>
> I added a Bootstrap drop down to the na
try
mvn clean
On Fri, Feb 21, 2014 at 10:35 AM, Yago González wrote:
> I can't see in the tree.
>
> I explain better, my pom have a variable for tapestry version ( used with
> tapestry-core and tapestry-spring), but when i change tapestry version and
> i compiled it's added in WEB-INF/lib the O
I get these also. It would be nice if they were logged as a WARN so it
would be easy to ignore them in production.
On Wed, Feb 26, 2014 at 9:19 AM, Lance Java wrote:
> Some serverside actions (eg autocomplete) expect a well formed request
> which may require some request parameters to be present
I'm working on a new project using 5.4. I run Jetty in development and
Tomcat in production. Everything was going well until I deployed to Tomcat
and Hibernate could not make a database connection. Apparently this is a
known issue with Tomcat 7.0.23 so I upgraded to 7.0.50. Since then my
developmen
Yes
On Wednesday, March 5, 2014, Yago González wrote:
> it's run with virtual host in tomcat?
>
>
> 2014-03-05 13:02 GMT+01:00 Barry Books >:
>
> > I'm working on a new project using 5.4. I run Jetty in development and
> > Tomcat in production. Every
Some more info. I'm using both proxy pass and jkmount. At this point I
think my problems are with proxy pass. I'm not sure what's causing it to
break but it's only the apps connected with proxy pass that are having
problems.
On Wednesday, March 5, 2014, Barry Books wr
I'm having a problem with the Javascript console included with 5.4.
Apparently the idea is to add a console for browsers that don't support
one. From what I can tell IE8 returns no console unless you have the
developer tools console open which in most cases causes the console is
displayed. In devel
I wrote this one a few years ago. It's a mixin that you can attach to the
grid. It fetches more rows using the pagination links and adds them to the
page. This allows it to works the way Lance wants, it works with or without
javascript enabled. Most/all of the work is done by a jquery
lib
https:/
Just switching to @PageActivationContext and @ActivationRequestParmeter
will solve most of your problems.It's also best if your components are
stateless.
On Tue, Apr 15, 2014 at 5:14 AM, Ben Titmarsh wrote:
> Hi Everyone,
>
> My application is under a level of load where I am starting to regret
While not exactly a Tapestry Beta problem I ran into this issue when
upgrading to 5.4.Beta-6
Apparently the Tomcat JDBC pool and Hibernate 4.3.1.Final do not get along.
I’m posting this because the error is pretty obscure.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56088
2014-05-28
I need to make a Tapestry 5.4 site 508 compliant. I've looked thru the
requirements and what HTML is generated now and I don't see anything that
looks to difficult but I'd like to get Tapestry to do most/all the work.
My plan is to write mixins to handle thinks like access keys. For example
Wou
lity
> https://kawwa.atosworldline.com/componentapproach
> https://kawwa.atosworldline.com/components
>
> --
> http://www.jimthatcher.com/sidebyside.htm
> http://www.jimthatcher.com/webcourse1.htm
>
> Le 12/06/14 14:31, Barry Books a écrit :
>
> I need to make a Tapestr
Personally I think mixins combined with workers are one of Tapestry hidden
gems. In my case I need a title on every pagelink . With a mixin applied to
pagelink by a worker I can easily lookup a title in the message catalog and
add it. Maybe 30 minutes of coding and it's automatically applied to eve
You can't do exactly what you asked but you can just make your hibernate
object just a wrapper for your database schema then build a Tapestry
service for the business logic. If you make a schema change or an interface
change you'll have to restart but otherwise not. I often merge the DTO and
busine
do you have this in your pom file
org.slf4j
slf4j-log4j12
1.7.2
On Wed, Jul 2, 2014 at 8:36 PM, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:
> On Wed, 02 Jul 2014 21:29:03 -0300, Manuel Sugawara <
> manuel.sugaw...@gmail.com> wrote:
>
> Hi,
>>
>
> Hello, Manuel!
I've done this by adding a mixin to GridCell with a worker. The mixin can
override the behavior of the component in various ways including dom
rewriting.
I would not override the display blocks because there are a lot of them and
a library could install more.
On Mon, Jul 7, 2014 at 9:14 AM, Thia
Many features in Tapestry are controlled by IOC configurations. For example
Tapestry provides a set of parameter bindings
https://tapestry.apache.org/component-parameters.html#ComponentParameters-BindingExpressions
but it's possible via configurations to add more or override existing ones.
Curren
Are you running with jQuery or Prototype? I just found a Zone event problem
today and when I switched to jQuery it went away.
On Wed, Aug 6, 2014 at 12:49 PM, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:
> On Wed, 06 Aug 2014 12:22:24 -0300, wrote:
>
> I shall do it as soon as pos
In the past I've used a url session state service I wrote in order to get
the Grids persisted data into the URL instead of the session. It works but
it's inconvenient because it difficult to change the persistence strategy
on just the Grid. I see in 5.4 the data needed to persist the Grid state
has
There is a similar problem with type=date. The difference is wc3 does not spec
the date format so it could be anything. I solved it with a value encoder.
Unfortunately I don't think you can override existing ones
> On Oct 28, 2014, at 8:01 AM, Geoff Callender
> wrote:
>
> I have a BigDecimal
Here is the one I wrote for 5.4. It uses the perpareForSubmit form event
define(["jquery","t5/core/events"], *function*($,events) {
*return* *function*(parameters) {
$('#'+parameters.id + ' :submit').removeAttr('disabled');
$('#'+parameters.id).bind(events.
have a fast validation (which is the case
> for most of apps, mine included).
>
> 2014-12-02 12:29 GMT+01:00 Barry Books >:
>
> > Here is the one I wrote for 5.4. It uses the perpareForSubmit form event
> >
> >
> > define(["jquery","t5/core/events&qu
In 5.4 there is an event for this.
define(["jquery","t5/core/events"], *function*($,events) {
*return* *function*(parameters) {
$('#'+parameters.id + ' :submit').removeAttr('disabled');
$('#'+parameters.id).bind(events.form.prepareForSubmit,
*function*() {
I have a URL persist I wrote to solve this problem. It moves the grids data
from the session into URL parameters.
I'll post the code later today
On Thursday, December 4, 2014, Kalle Korhonen
wrote:
> On Thu, Dec 4, 2014 at 12:08 PM, George Christman >
> wrote:
>
> > I'd have to say 98% of my a
I noticed 5.4 upgraded to Bootstrap 3.3.1 last month so I headed over the
Bootstrap blog to see what’s in the new version. Along with info about the
release there are comments about the upcoming 4.0 release. There’s not much
info and no schedule but from past experience I would expect a Summer
rele
I suspect it's tapestry-bootstrap. There is a visitor that changes the html
from the Tapestry format to Bootstrap. In the case of forms I believe it
wraps each input in a div. My guess is this does not happen on a zone. I
suspect you can work around this by added the correct markup inside your
zone
If you are using Tapestry Hibernate it should just work if you put a
Hibernate object into a SessionState variable. There is a configuration
that contains the Hibernate entities so SessionState is able to store the
primary key in the session and retrieve the object when needed. Services as
well as
gt;
> return (T) persistedValue;
> }
> }
>
> Which tells me that entities contained in SSO annotated objects are
> basically out of luck, it seems.
>
> So, is my method of creating a session state object containing multiple
> values not a good way to do this?
>
How do you handle logging configuration? At first I used different
log4j.properties files and specified which one to use on the command line
but now I often deploy Jenkins in the same Tomcat so I switched to messing
with the class path to get the right properties file. Neither solution is
ideal. An
lized system to collect
> all your logs (for example ELK), especially if you consider to distribute
> your application.
>
> Best,
> Thilo
>
>
>
>
>
> Am 28.07.15 14:04 schrieb "Barry Books" unter >:
>
> >How do you handle logging configuratio
Generally I like solutions that don't require the page class to do anything
special so I wrote a request filter and a strategy service to do this. The
filter looks for @PageActivationContext and if there is one calls the
strategy service to see if the user has access to the object. This way all
pag
I stumbled across a problem with server side validation and BeanEditForm. I
have some server side validation that takes a case number and validates
it's in the database. It's done with a JSR 303 validator. The problem is
when the field is invalid it marks all the fields as invalid and changes
the v
e, 11 Aug 2015 17:36:57 -0300, Barry Books wrote:
>
> I stumbled across a problem with server side validation and BeanEditForm. I
>> have some server side validation that takes a case number and validates
>> it's in the database. It's done with a JSR 303 validator. The probl
seems OK in beta-22 also
On Tuesday, August 11, 2015, Barry Books wrote:
> Is there a later public beta? I did try beta-6 and it works fine so the
> problem is newer than that.
>
> I did also figure out I can reproduce the problem with a form and two
> property editors.
>
&g
Looks like it's fixed in beta-34
On Tuesday, August 11, 2015, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:
> On Tue, 11 Aug 2015 19:04:22 -0300, Barry Books wrote:
>
> Is there a later public beta? I did try beta-6 and it works fine so the
>>
My favorite Tapestry component has always been BeanEditor. It's
versatile, simple and just about perfect as long as you like the
mobile friendly output. Unfortunately not everyone appreciates the
mobile esthetic and that when things fall apart. I wanted this
I believe jumpstart in the link below in running under 5.4 beta. I have not
run 5.3 in a long time but I believe it requires @Persist in this case.
What version are you running?
On Thursday, October 29, 2015, Paul Stanton wrote:
> Hi,
>
> I've modelled a form using jumpstart's (7) ajax crud howe
I've written several "Enterprise Apps" with Tapestry and I would say as of
5.4 it's pretty much perfect for that class of web applications. The best
feature of Tapestry is it's easy to build components and piece them
together is various ways to build applications. The obvious place to start
is with
Finished is important.
Thanks
On Friday, December 25, 2015, Kalle Korhonen
wrote:
> No, T5.4 was still firmly headed by Howard. He created the first T5.4
> branch over three years (see for example
> http://tapestryjava.blogspot.com/2012/10/zeroing-in-on-tapestry-54.html)
> and you can see the r
First I'd like to say the Tynamo-Security/Shiro package is great, but
I've run into a simple problem I'm not sure how to solve. I don't
think it's really a Tynamo problem but an interaction between how
Shiro expects URLs to work and Tapestry case insensitive URLs. I was
working on a simple site wit
The fact that /aDmin, /Admin, /ADmin etc all work is exactly the
problem. That makes the whole url protection mechanism useless and
even worse it's not obvious it's not going to work. I just followed
the example and it seemed to work.
It's not really a big deal to add the annotations but in my cas
The problem is fixable in the Tynamo library so I filed a Jira and
included a fix.
http://jira.codehaus.org/browse/TYNAMO-75
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h
Thanks for the quick fix.
When I saw the "run as" and "remember me" support in Shiro I knew I
had to take a closer look and I think I'm out of the security business
now. This is the first package I've seen that easily solves the simple
problem like the one above, yet is robust enough for sites whe
I've been adding Facebook integration to a site I'm working on (my wife's art)
http://www.judypaul.com
I put what I have into a library add posted it on github
https://github.com/trsvax/tapestry-facebook
The basic infrastructure is complete but I've only really tested the
Like button and NewsFe
I'd be happy to put changes back into it if I can figure out how to
get git to work. This is my first attempt at it.
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapes
Now that I figured out GitHub I'm posting another library I use all
the time. This is really just a AppModule that makes the AWS java
library work as a set of Tapestry Services. Then you can do things
like
public class S3Index {
@Inject
private AmazonS3 amazonS3;
@Property
https://github..com/trsvax/tapestry-aws-core
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
I've been organizing my common code into libraries and when it makes
sense hosting then at https://github.com/trsvax/
This project builds upon tapestry-aws-core which just exposes the
Amazon libraries as Tapestry services. I started using AWS when the
only service was S3.
Tapestry-aws will contai
If you have a Blue/Red that inherit from BasePage I'd use a Layout
Environmental. Since you have a BasePage you can create the Environmental in
your BasePage class. The Red/Blue pages should be able to set the color
property and then the layout component can retrieve it. That way only those 4
c
The simplest example is
page.tml
page.java
void onEdgeCreate(@RequestParameter("url") String url) {
logger.info("edge create {}",url);
}
void onEdgeRemove(@RequestParameter("url") String url) {
logger.info("edge remove {}",ur
Glad you got it working. On my project I always wanted those callbacks
so that's the way I defaulted it. My plan was to look at the
containing component to see what callbacks it has and default to that.
If you create an issue on GitHub it will remind me to do that.
I'm working on a site using the new jQuery module and I've run into a
bit of a problem trying to select elements by id when using ajax
because I end up with something like this.
for
Including a clientId helps by adding name="slider" but that does not
really solve the problem because name does
If you look in my fork of tapestry5-jquery on github
https://github.com/trsvax/tapestry5-jquery
there is a mixin called bind that supports this. You can bind jQuery
events to Tapestry component events and provide a tittle and history
callback when the event is triggered. It also supports Tapestry
Tests are on the todo list, probably in the next day or two. Here is
any example that implements tabs with a zone.
Image
Description
In A Room
tab0
1 - 100 of 314 matches
Mail list logo