On Wed, Nov 17, 2004 at 01:25:27PM -, Chris Chappell wrote:
: Thanks QM but I' still not sure what to do!
Please trust me, it's all in the spec...
: In my web.xml I have for example (standard stuff!)
:
: servlet
: servlet-nameConfig/servlet-name
: servlet-classorg.myorg.config.Config
WAR files, it must service JSPs, and so on. In turn, most of the
upgrade process involves you, the developer, testing and adjusting your
app to fit the new specs. Looking at the upgrade guide I've assembled,
there were only a couple of changes to Tomcat config files.
-QM
--
software -- http
configs.
You could also be kind and explain what connector you use (jk vs jk2).
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional
be
: of immense help.
There must be some J2EE tuning guides out there... What does Google tell
you?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED
:
: char processed = processed_string.charAt(0);
: when I execute this I get the error message: type undefined.
Please post the offending code.
btw, thanks for marking this OT.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
Then the resultant (copied) file will have:
port=4000 ...
Have one properties file per webapp, aka per set of security rules.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
indicative of bad RAM.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
the JSP itself using JSTL and EL. The c:url/ tag creates
context-relative links:
First, create a string variable with the link path:
c:url value=/some/page/or/image var=link/
Then, use it in a link or image tag:
A HREF=${link}link text/A
-QM
--
software -- http
of Tomcat expertise from your users. By expertise in this case, I
mean, remove the old context XML file before deploying the new WAR, to
make sure the newer file is copied over.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
is a great concern (e.g. you sell your
app to external clients), you could also manage the pool yourself using
the commons-dbcp package.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
is
: bugging me since the past 2 days :-(
There's a classloader doc on the Tomcat website.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED
;
but this is a risk you take when the software will be run outside of
your control.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED
: How i configure the directory's deploy of each virtual host (virtual
: host configured on server.xml)?
I'm not sure I understand this question.
Are you trying to control the order of deployment? That's not possible.
-QM
--
software -- http://www.brandxdev.net
tech news -- http
/context.xml
to its corresponding copy in {tomcat}/conf/{engine}/{host}/{file}.xml;
if the latter file already exists, Tomcat ignore the former.
If you use *only* WAR files you can use a custom Tomcat start/stop
script that cleans out the context-related XML files in {tomcat}/conf.
-QM
--
software
/Catalina/localhost folder.
Which version of Tomcat 5? This is a bug that was fixed in
v5.0.20-something, I believe. I don't have the exact Bugzilla ID handy
but there's a class patch there if you don't want to do a full upgrade.
-QM
--
software -- http://www.brandxdev.net
tech news -- http
this bug would imply that
your version does *not* have the fix.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail
. =)
: Can any of this be done with Tomcat running?
I can't answer this, as I stop Tomcat when I want to deploy a new
version of the app.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
than mapping servlets.
You don't mention having compiled the servlet class, which is required
for Tomcat to load it. Out of the box, the container won't do that for
you. (It will only compile JSPs, not raw Java .class files.)
-QM
--
software -- http://www.brandxdev.net
tech news -- http
functionality),
check the archives for LD_KERNEL_ASSUME...
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL
for updates
;)
1.1/ Get creative and transfer files using HTTP POST instead of raw FTP.
(Think outside the box, no pun intended.)
2/ Change hosts. (You say they require FTP.)
3/ Use a separate FTP daemon. (Sometimes, simple == better.)
-QM
--
software -- http://www.brandxdev.net
tech news
the last message in the logs (or on
the console), what's the CPU utilization at that point, etc?
Have you tried to dissect which param causes the problem?
Do you have 1024m RAM free when Tomcat starts?
etc., etc., etc.
-QM
--
software -- http://www.brandxdev.net
tech news -- http
, escape the $ with another $.
For example, if your password is abc$def, store this in XML as abc$$def.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
non-Tomcat resources?
How does Tomcat react if you access it directly (i.e. through an HTTP
connector)?
Answer these before you try to integrate the two, and you'll spare
yourself some headaches.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
that in theory using the same tomcat installation for multiple
: webapps is supposed to be standard,
Says who?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail
.
feature
;)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
writing to the list. Replying to
an old (unrelated) message confuses thread-aware mailers, which makes
your question harder to find (and thus answer).
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
?) has such a concept: it will
load a setup a new webapp, then flip the switch when you say so.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED
, in which case I
wouldn't have answered.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
?
etc., etc.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
.
Why not just make the guest-related areas public?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL
(unrelated) message confuses thread-aware mailers, which makes
your question harder to find (and thus answer).
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
.
The short story: search the Tomcat docs for $CATALINA_HOME vs
$CATALINA_BASE. That lets you setup separate Tomcat instances
(distinct JVMs, server.xml, etc.) but have only one set of Tomcat
binaries.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
the context.xml to the correct place and the webapp runs.
Do you remove the old context-specific XML file (from the WAR
deployment) first? Tomcat doesn't remove the file if it already exists,
even if it predates the WAR file's context.xml.
-QM
--
software -- http://www.brandxdev.net
tech news
If you have the hardware, give each app its own container. I've
witnessed and participated in efforts that tried #1 and #2 above, and
they were not enjoyable.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
about the logfiles in the Tomcat directory, instead of the Apache
directory? Look for files along the lines of
catalina.out
tomcat-*.log
etc.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
containers (JVMs). Such isolation limits the impact of one rogue app
on the others.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional
question pops up frequently, though people pose it in
slightly different ways.)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional
browser you can configure to treat each window as a
different logical user/entity; but I've never bothered to look. ;)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail
web.xml, and remove the
associated classes for good measure.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail
behavior, you
shouldn't rely on JAR loading order.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL
, moving from the end-user's browser, through Tomcat
(and perhaps a database) and then back to the user. What potential
vulnerabilities exist?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
.x).
As a workaround, you could have a lone index.html file that triggers a
redirect to your servlet.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
authentication on non-protected pages and stay into
: the same page after login. Any idea?
If you want to force authentication, you could put the entire webapp
under a security constraint (i.e. *any* access will trigger a login
popup).
-QM
--
software -- http://www.brandxdev.net
tech news -- http
*
that points to a landing page inside a protected area?
You could control the link's presence based on a (very lightweight)
session attr: if it's defined, show a logout link; if it's not
defined, show a login link.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
) will
provide more insight, as should several introductory J2EE/servlet texts.
If you use JSPs instead of servlets for your presentation content, you
can use a special JSTL tag to reference context-relative links, images,
and other static content.
-QM
--
software -- http://www.brandxdev.net
tech
and Tomcat 5.0.x don't get along well. Did you
search the archives?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands
message. ;) For example, your mapping question is explained in
SRV.11.2 Specification of Mappings.
Here's a hint: your web.xml should at least include a prologue, which
specifies the servlet spec 2.3 DTD (for Tomcat 4.x and earlier) or the
2.4 schema (for Tomcat 5.x and later).
-QM
--
software
feel free to email me in
: private if that is your preference.
We usually encourage conversations to remain on-list when the solution
is both Tomcat-related and may be of use to those who follow the list
(or search the archives).
-QM
--
software -- http://www.brandxdev.net
tech news -- http
to debug and understand Tomcat/J2EE that way.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
agree, it would be nice if there were.) Since there isn't
such a way, all you can do is roll up your sleeves and get to work.
-or just grin and bear it.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
. You
could fire up something of that nature to test the DN and such you have
in your Tomcat config.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
the ContextListener class. It was
designed for exactly this: you register it with the container, and on
certain events (context is deployed/removed) certain ContextListener
methods are called.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
' classes conflict in any way, you're out of
luck.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL
stick with
the standard locations (WEB-INF/lib, common/lib, etc.) then you should
be fine.
: Can I hav an order of class loading within a folder ?
I'm not sure what this means. Are you trying to control which jar is
loaded first in the classpath?
What are you trying to do?
-QM
--
software
this is possible.
Let's look at the root cause: why is Realm X not available on app
startup? You may have to make your Realm source more robust, e.g. look
into failover/clustering/etc.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
On Thu, Oct 14, 2004 at 02:44:20PM +0300, aleksej wrote:
: Very strange, I have 5.0.27 installed and there is no mail.jar in its
: standart instaliation. :/
I believe that's SOP for Tomcat.
You can download the JavaMail JARs from java.sun.com.
-QM
--
software -- http://www.brandxdev.net
On Thu, Oct 14, 2004 at 03:26:04PM +0200, Boulay Arnaud wrote:
: QM, I agree with you that code MUST be clear,efficient and stable but a Realm can
use and external resource (that's the aim ;-) and if that resource is out of order,
the webapp could automaticly switch to an another one
sort of GC activity. A profiler will show you
exactly what's going on, and (better still) whether it's a particular
type of object or place of object creation that's causing a GC spike.
Be sure to give the profiler the Gmail invite. ;)
-QM
--
software -- http://www.brandxdev.net
tech news
.
It really sounds like you're storing data somewhere (instance variable,
whatever) but not properly updating it second time around.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe
page until it reaches
the latter status.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
. For more
of a summary, please search the archives; your question has been asked
(and answered) before.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
what files were installed by the RPM:
rpm -q -l {package name}
Add grep action as needed.
Perhaps the mod_jk library has a different version number in the RPM you
installed.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
tags? That works for me:
security-constraint
web-resource-collection
web-resource-nameSubscriber Area/web-resource-name
url-pattern/access/subscriber/*/url-pattern
/web-resource-collection
auth-constraint
role-name
-QM
--
software -- http
whatsoever. Knock on wood, I haven't seen any jk2 problems
recently.
Your decision will likely come down to:
1/ whether you want to take a crack at building jk2 yourself
2/ finding features you want that are in jk2 but not jk
As I don't use jk2, I can't offer much help for #2.
-QM
--
software
On Mon, Oct 11, 2004 at 05:13:46PM +0200, Bernhard Slominski wrote:
: That's why I vote for a forum instead of a mailist!
Forum-like: http://news.gmane.org/gmane.comp.jakarta.tomcat.user
NNTP: nntp://news.gmane.org/gmane.comp.jakarta.tomcat.user
: Does anyone agree?
Not I ;)
-QM
.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
access
to a role that's not assigned to anyone.
Putting the files in WEB-INF has mixed results as far as container
portability. Furthermore, it's not really a place for content...
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
other questions (e.g. how to create a WAR file, how to deploy),
you may want to review the servlet spec and the Tomcat docs.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-specific and the other
shared? That would give you both, without the hassles of writing custom
tools to split/merge.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail
context, since the webapp
may be sealed inside a WAR and thus the notion of absolute path goes
out the window...
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
?
That's fairly vague, so all I can say is:
1/ figure out where you're using StringBuffer, and use something else
2/ otherwise, increase the heap space
=)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
.) Analyze the app with a profiler to
determine exactly what's going on. A profiler will show you what method
calls are taking the most time, what's in the heap, whether GC is the
cause of the performance problem, etc.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
your custom error pages are too short. When the document
returned from the server is less than [x] bytes, IE shows its friendly
error messages instead.
I forget the exact number, but that's just a Google search away.
-QM
--
software -- http://www.brandxdev.net
tech news -- http
and app code vary independently;
they should be separated as such.
If you upload to a directory outside of the webapp context (this will
take some coding) then you can run the app from a WAR file, and spare
yourself some headaches down the line.
-QM
--
software -- http://www.brandxdev.net
tech news
job of this. ;)
That, or any introductory servlet programming book should explain these
basics within the first chapter or so.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
pretty sharp here, but I don't think any of us are
clairvoyant. ;)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail
.
Wash, rinse, repeat. =)
-QM
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
XML file?
Thanks,
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
at the time the app starts to crawl.
There are several tunable params with a Java app -- heap size, thread
stack size, OS-level properties -- but it's often best to start with a
profiler.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
! :-)
I've seen this question in past posts, so a check through the archives
may prove useful. I recall there was something along this lines
(perhaps in the Manager app, or buried in an MBean somewhere?) but it
may not have been to the level of detail you require.
-QM
--
software -- http
have it one
directory too deep.
What are the contents of server.xml and, if you use it, context.xml?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL
, the only webapps that exist for that instance are
the ones you put there; any defaults/samples that ship with Tomcat are
out of the picture.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
named locasugeGSM.war?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
when it can't do something. ;)
Otherwise, go for the usual: check the system for memory issues, check
whether other processes are causing a problem, etc.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
with somefile.jsp seeing the mainFrame
param?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
question; it's
standard n-tier app architecture. Several books and websites will give
you a much more detailed explanation that I will in a forum post...
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
storage (aka web services
or another webapp).
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
package
Sounds like IContract is in a sealed JAR, and somewhere in the classpath
there's another copy.
Do you have duplicate JARs, between WEB-INF/lib and Tomcat's various lib
dirs?
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
, sig11's (at least, on x86 architecture) may also be
indicative of RAM problems.
(Emphasis on may)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED
the best object to synchronize on?
I missed your original post, so I can say only this: when you find
yourself painted into a corner, it's time to revisit the design stage.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
this: change your build/deployment processes
such that each app gets its own, separate copy of the needed JARs.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail
}/webapps/{file}.war
?
It should be the latter; the former (essentially) sets up a context
(webapp), the complete contents of which are a WAR file.
Check the logs to see what gets deployed at container start time.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
was wondering if someone with extensive experience with the security aspects
: of both servlets and CGI can give me any sense of which is more secure and
: why? I need this information so that we can choose the right approach for our
: wiki.
See above. ;)
-QM
--
software -- http://www.brandxdev.net
tech
it a try: do the include magic at build time, with some clever
(or not-so-clever) Ant action.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED
, there should be no need to try to synchronize this at
the app/code level.
-QM
[1] = I've been shocked before, though... ;)
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail
to: sync'ing up your AD setups[1] or
writing custom code.
[1] = I'm not an AD expert; but I understand one offered solution
involved creating some sort of master AD instance that delegated to
the others on the backend.
-QM
--
software -- http://www.brandxdev.net
tech news -- http
security by making the WAR file
owned and served by two different user accounts.
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands
to decide where to put the JAR.
(Hint: most likely, under {context}/WEB-INF/lib).
-QM
[1] = portable between different versions of Tomcat, as well as
between different (spec-compliant) containers.
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
browsers, he will likely have two
different sessions.)
-QM
--
software -- http://www.brandxdev.net
tech news -- http://www.RoarNetworX.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL
201 - 300 of 824 matches
Mail list logo