Re: Deprecate Mail.getSender/setSender

2003-06-30 Thread Serge Knystautas
Noel J. Bergman wrote:
I propose that we deprecate Mail.getSender/setSender in favor of unambiguous
names that relate to the SMTP RFC: Mail.getReversePath/setReversePath.
Works for me.  +1.  This would likely need to be applied only to the 3.0 
branch though.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: subject prefix mailet or unaltered recipients in Redirect

2003-06-25 Thread Serge Knystautas
Vincenzo Gianferrari Pini wrote:
As you already said, Redirect suffers from the need of backward compatibility, that we must guarantee. We could in the future create a new mailet, with a different name (which name BTW?) following more consistently the conventions.
This mailet has become a veritable swiss-army knife of confusion. :)

It might benefit by having some mailets that extend this with options 
hardset and a more understandable name.  I'm trying to think of a decent 
example, but am blanking... are there some typical usages of this that 
are useful?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Improving temporary failure handling in RemoteDelivery

2003-06-24 Thread Serge Knystautas
Noel J. Bergman wrote:
Serge,

The particular error I received:

  451 4.7.1 Please try again later
Well, per your analysis of that response, you've got multiple 
conflicting rules.  451 says local error, 4.7.1 says could be either, 
the note on the error says try again later, and 4.7.1 says this should 
be a permanent error.

I've got a nice shiny quarter here... you want to call heads or tails?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [PATCH] implementation of getInitParameterNames in MailetConfigImpl.java

2003-06-24 Thread Serge Knystautas
Soeren Hilmer wrote:
This patch implements the getInitParameterNames method in MailetConfigImpl as 
required by the Mailet api contract.
Applied.  Thanks.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


[Fwd: Re: DBCP status?]

2003-06-23 Thread Serge Knystautas
Below is what I suggested to do for the DBCP project since the codebase 
itself (while widely used) is somewhat dead.  Tomcat still recommends it 
first, and it's used in several packages.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
---BeginMessage---
Shapira, Yoav wrote:
I wouldn't rush to declare DBCP dead.  Database connection pooling is
not exactly the most revolutionary development area right now: DBCP is
good at what it does, is being used widely, and I personally am not
aware of anything that required a DBCP release within the past year.
That's somewhat encouraging about Tomcat using it (or at least mentions 
it first).

Since James really does need a new connection pooler, and I'm stuck 
having to invest some time into making **some** database pooler more 
robust, is the DBCP project open to this?  I'm not sure if there are any 
committers remaining, or what exactly is the next step.  Basically I 
would make the following changes:

- Allow the pool to optionally close a connection on a SQL exception 
(since that will often corrupt the transaction and/or indicate the 
connection is boofed).
- Change some default values so it doesn't block indefinitely to open a 
connection out of the box.
- Maybe support a connection factory constructor that can take a String 
for a driver name, rather than require you to do Class.forName() separately.
- Maybe implement login timeout.
- Maybe implement logging via commons logging so you can catch events 
rather than just use a writer.
- Make a formal new release (either 1.1 or 2.0, I don't care), just so 
the examples, test code, and javadoc (in distro and website) all have 
working examples.

Any feedback on these changes, or people I should talk to before heading 
down this road?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]

---End Message---
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Emeritus status

2003-06-23 Thread Serge Knystautas
Since the CVS server was compromised and rebuilt 2 years ago, it allows 
us to track who hasn't been around lately, and thus change access rights 
to emeritus status.  As an emeritus committer, the person no longer has 
commit access, but can request it back without a vote.  If they are 
still around and would rather not become emeritus, they're free to -1 
this.  This is the jakarta policy to my understanding, which I think is 
a good model to follow.

I did a grep on the current CVS code, and these accounts have no activity:

duncan, jon, bburns

I proposing moving these 3 to emeritus status.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Removing Paul Hammant's temporary commit access

2003-06-23 Thread Serge Knystautas
Many moons ago (May 2002), after one of my rants, Paul Hammant 
graciously offered to help James keep in step with Avalon's changes.  He 
suggested giving him temporary commit rights to apply his changes 
rapidly and get everything working, and we voted and rights were granted.

Since then, Paul's code updates are complete (thanks!).  Also, Steve 
McConnell has largely taken over as the Avalon comitter with temporary 
James access.

I propose we remove Paul's commit rights to James.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


[Fwd: [jcifs] NTLM Documentation]

2003-06-22 Thread Serge Knystautas
Thought this might be useful if anybody was thinking about doing this 
for James.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
---BeginMessage---
I have been putting together a (relatively) comprehensive documentation 
of NTLM and its use in various protocols; this is now up and available 
on the Davenport site at:

http://davenport.sourceforge.net/ntlm.html

Good rainy day reading ;)

Eric


---End Message---
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Re: Null sender

2003-06-18 Thread Serge Knystautas
Vincenzo Gianferrari Pini wrote:
This latter shoud be the case of

Return-Path: 
This Return-Path header should get set based on the MAIL FROM: command 
during SMTP, so those should be the same IIRC.

Anyhow, I'm fixing a bug in AbstractRedirect that was causing a NPE trying to build a new TO using the sender, that it turned out null in some cases (spam or virus). I'm going to do the following in such case: use the sender, if null use the return path, if null set it to .
Can you have it just not set the TO?

But I'm asking myself too on what James does if it tries to send a message to an empty 
list of recipients, because for example NotifySender processes a mail that has a null 
sender as said above. The original NotifySender was doing this way, and the new one 
too.
Should I change it to something like the following: use the sender, if null use the 
return path, if null leave it null (or throw an exception)?
Ideally the NotifySender should see the sender is null and not try to 
bounce to it.  Separate from that, the LinearProcessor should see that 
there are no recipients anymore on a message, and end processing.  I 
think the latter already happens, which is perhaps why the old code was 
just setting the recipient list empty.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Improving temporary failure handling in RemoteDelivery

2003-06-18 Thread Serge Knystautas
Noel J. Bergman wrote:
RemoteDelivery: Exception delivering message (Mailxxx) - 451 4.7.1 Please
try again later
What's the RFC say for 451?  If it's authoritatively saying you should 
try later, then I think the behavior is currently correct.

To fabricate a case that could justify current behavior, say I have a 
quota on Joe Smith's mailbox at 10 MB.  His mailbox is at quota, so I 
don't want to accept more messages for Joe.

Meanwhile, I have a remote backup server that accepts messages when the 
primary is down.  Because it is remote, I can't check whether a mailbox 
is full, so I don't reject based on the quota.

Right now our server would see that Joe is overquota, and try again 
later, until either Joe clears some messages or our retry fails.  If you 
change it, you'll deliver to my remote server, thereby getting around my 
rejection on the quota basis.  Yes, my remote server will ultimately 
figure this out, but I would have preferred Joe's sister never send 
those 10 additional 5 MB messages in the first place.

Sorry the lengthiness, but it depends on whether 451 is a reply for the 
domain or for this server.  I tried reading through the RFCs, and am 
only the worse for it. :)  I don't see anything that says when you 
should move through the MX chain, just that you should and how.  My 
feeling is if the server gives a response, that's enough for the domain. 
 Dunno.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Personal IP blacklists

2003-06-16 Thread Serge Knystautas
Noel J. Bergman wrote:
It would be very simple to code a JDBC based block list matcher, but why
don't you simply create a local DNS zone, and populate the zone file?
I've already got the database open, so I'd rather keep all the relative 
info there.

And actually, in the back of my mind, I've been thinking about how to 
make these personal blacklists sharable... kinda a napster-blacklist.

But anyway, what it did lead me to was the idea of having the blacklist 
matcher point at the *message store*.  As spam fills my spam folder, 
when it was something I wanted to blacklist, I would copy it from my 
spam store to my blacklist store.  Then the matcher would look for any 
messages from the sending IP address in this blacklist store, and if so, 
would say leave me alone, you already sent me 4,230 messages on June 
12th.  This also preserves the evidence for why I blacklist them.

Yes, I'm probably overthinking this, which was why I was wondering what 
people's experience was with blacklisting IP addresses in general.  I 
also am finding that for certain spammers, they seem to have a full 
C-class available to them, so I end up just blocking that last octet. 
My blacklist store wouldn't handle that (just yet).

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Personal IP blacklists

2003-06-16 Thread Serge Knystautas
Richard O. Hammer wrote:
My dream SMTP server has a GUI reminiscent of the control room at a 
power plant, with gauges which show every parameter which might be 
important to the operator, and with valves to throttle or completely 
shut down any segment of the operation which seems to be getting out of 
hand.
I'm thinking web-based, but yeah, that would be nice.

Parameters such as the following would have both gauges (and/or warning 
lights and whistles) and values (operator-settable limits):

total incoming messages/(unit time)
1. This can be a simple mailet... just log the size and time (other 
info?) of every message that comes through.  Then have a reporting tool 
to pull over some time period.

total incoming connections/(unit time)
2. Hmm, this would need to tweak the SMTPHandler to do this.

total incoming bytes/(unit time)
3. Same as #1

total outgoing ... (the same three as above)
4. Perhaps just another mailet, this time though logging what goes 
through the outgoing spool.

total volume of mail held in local mailboxes
5. This would have to be (an expensive) query done ad-hoc.  I can't see 
maintaining that as meta data.

total volume of mail held in local spools
6. Same as #5.

ip addresses generating most of the traffic/(recent unit of time)
7. Relates to how #1 is logging and reporting.  Shouldn't be too difficult.

ip addresses generating most of the connections/(recent unit of time)
8. Same as #7.

local addresses receiving large quantities of mail
9. Another type of mailet, this time in local delivery spool.

local addresses sending large quantities of mail
10. Extra report on #9.

Also, another approach, I would prefer to have the server return an 
error upon RCPT TO: unknownJoe, rather than accept the message as 
James does at present.  I think Noel said there were plans to change 
this in an upcoming James.
11. Yes, I think that's something that's coming.

Most of this is only 1 logging mailet that could get plugged into a 
number of spots in the different spools, and then you'd need a reporting 
tool to read those logs and give you nice data.  Someone had talked 
about adopting a standard logging format for James, which might get 
much of this done just by relying on existing reporting tools that 
unstandard that log file format.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [no virus] [PATCH]On matcher/mailet exception handler

2003-06-12 Thread Serge Knystautas
Vincenzo Gianferrari Pini wrote:
Noel,

here is a patch (only v2 for now) that implements the exception management handling at config.xml level using the attribute syntax. It is working fine.
Thanks for all the patches!  I would say though, hopefully any day now 
so you'll have the account to commit these changes yourself, so you can 
cut your teeth on some of these. :)

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


EL for matching

2003-06-12 Thread Serge Knystautas
Here's something from way in left-field.

I tend to agree with (name I forgot here...sorry) that XML shouldn't be 
used for scripting so much, and I'm not sure how you merge the 
configuration needed for mailets and matchers with a scripting section.

BUT... what I was going to suggest is what about using EL (defined 
originally in JSTL and now available in commons) as a way to the scripting.

This could be a bear to implement (which it already is, and needs to be 
improved), but this could immediate give us a somewhat-standard and much 
richer logic and evaluation.

Matchers could get configured and be EL functions.  Just as a way to 
improve the matching logic.

Any thoughts?  Tracking how things like Siege and procmail work, there 
is just a lot more a sysadmin can do with simple scripting.  James can 
extend way beyond what those can do, but you are stuck with tough 
scripting or turning to Java code (which is what I originally wanted 
many years ago, and now think is bad).

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Proposal: New Committer, Mr. Vincenzo Gianferrari Pini

2003-06-06 Thread Serge Knystautas
Danny Angus wrote:
is this the vote? 
Noel is checking for objections first... he's a bit too nice at times. :)

If so +1
I would like to propose Vincenzo as a James Committer. 
Yeah, me too if a committer nominates him.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [VOTE] New Committer, Mr. Vincenzo Gianferrari Pini

2003-06-06 Thread Serge Knystautas
Noel J. Bergman wrote:
Moving ahead to the one-step process version ... :-)  So far we have:

Harmeet Bedi:+1
Danny Angus: +1
Noel J. Bergman: +1
I expect Serge will post an official +1, too.  I can't speak for Darrell,
Charles, Peter, et al, who haven't been around too much lately, but the
measure will carry unless someone vetoes, which I don't expect.
Noel,

I must reset your expectations on this.  The procedure is this:

1. An existing committer nominates a contributor, or the contributor can 
ask for it themselves.
2. Once nominated, all committers on the subproject will vote.  You need 
at least 3 positive votes and no negative votes.  Typically we give 
48-72 for everyone to vote if they're going to.
3. If approved, we get them an account (if not already) and otherwise 
set them up as a committer.

Right now we're at step 0, or rather, on some unofficial path that 
should be stopped in the interest of avoiding confusion.

If you want to nominate Vincenzo, then great, we can have can start this 
process and take a vote.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [VOTE] New Committer, Mr. Vincenzo Gianferrari Pini

2003-06-06 Thread Serge Knystautas
Noel J. Bergman wrote:
 I did propose him.  Harmeet and Danny both wanted to vote.  You commented
 that I was being too nice by proposing first, so I posted it as a vote as
 you appeared to have requested.
Noel,

I'm sorry.  I must not be sleeping or something.  Here's what I think 
happened:

You did (effectively) propose Vincenzo, but I was looking for:
a) calling it a nomination.
b) a call for a vote.
So your email didn't set a flag off in me, and I didn't realize this 
from yesterday as the source of the confusion until just now.

In light of the confusion, let's start counting 48 hours as of your 
message today at 12:57:13 -0400 that mentions a call to vote.  With my 
+1, you've got 4 +1 and a passing nomination assuming nobody vetoes in 
the next 46 hours.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Logging in the new DNSServer service

2003-06-06 Thread Serge Knystautas
Harmeet Bedi wrote:
- Original Message -
From: Chris Means [EMAIL PROTECTED]
So suddenly, I'm worried that mail from apache.org isn't getting
through...

If there is no MX record, A record represents mail host. It is not an error
to have no MX Records and neither is it necessary to recieve mail.
We could do something like attached snippet inside DNSServer::findMXRecords.
We should also change the logging to say INFO or WARN if not DEBUG for the
above message.
I'm not sure what's getting logged right now, but here's what I might 
expect at each level:

DEBUG: all lookups
INFO: no MX records
WARN: ?
ERROR: DNS server not responding
--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: fix for bug 20370

2003-06-05 Thread Serge Knystautas
Noel J. Bergman wrote:
I agree.  The RFC doesn't say what *to* do with CR or LF.  It just says that
we cannot recognize them as a valid line terminator for a command, and that
we must not emit them other than as CRLF.  They are not valid characters
within a command line.  Therefore it seems to me that the presence of an
invalid character is a 501.
I don't think we should be failing on bad data if it's pretty clear how 
to handle it gracefully.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: fix for bug 20370

2003-06-05 Thread Serge Knystautas
Noel J. Bergman wrote:
I understand your view, and all things being equal, I agree with it.  The
basic Be strict in what you send, lenient in what you accept philosophy
espoused by the late Jon Postel.
Right, this is a good way to state my thoughts as well.

Could/shoud we add this quote to the website and documentation in 
general that this is the approach we've used to do?  There are so many 
places where we've had to interpret, I think it would be good for 
developers to see what we meant (irrespective of how the code came out).

   This termination sequence is denoted as CRLF in this document.
   Conforming implementations MUST NOT recognize or generate any other
   character or character sequence as a line terminator.
Gotcha.  I would suggest to build on Postel by saying:
- if the RFC says the [sender] MUST/MUST NOT [blah blah], we should 
strive to be lenient.
- if the RFC says the [receiver] MUST/MUST NOT [blah blah], we should 
not be lenient.

Thanks for the clarification on the RFCs.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: fix for bug 20370

2003-06-05 Thread Serge Knystautas
Gotcha.  I would suggest to build on Postel by saying:
- if the RFC says the [sender] MUST/MUST NOT [blah blah], we
should strive to be lenient.
- if the RFC says the [receiver] MUST/MUST NOT [blah blah], we
should not be lenient.
Do you have these reversed? strict with sending and lienient with 
receiving?
No, just have my context poorly described.  By sender I meant the remote 
machine and by receiver I meant James.  Meaning, if the RFC says the 
remote machine MUST do something (or not something), James should still 
be lenient and not act like a policecop of the RFC.  However, if the RFC 
says James MUST do something (or not something), then we must do something.

Again though, I think it's a solid idea, but in practice over time it I 
think it hurts the product and RFC.
I can't see how this hurts the product, and the RFC has already been 
destroyed many times over by real-world implementations.  So relatively, 
I see any damage we're doing to the RFC at this point as inconsequential. :)

At this point I'd weigh the behavior of sendmail, qmail, exchange, and a 
few others more highly than what the RFC states.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: PreparedStatement and performance

2003-05-30 Thread Serge Knystautas
typedef_lex wrote:
Why did Serge use PreparedStatements in eg 
JDBCMailRepository.store(MailImpl mc)?
Because you have to store binary data.  Besides, prepared statements 
should be much faster assuming your driver does prepared statement pooling.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Protocol Handler-based rejection

2003-05-29 Thread Serge Knystautas
Noel J. Bergman wrote:
Sorry, I didn't know of 421 and 554.  Having read them, I don't know why
we would support them.
Because it isn't hard, and provides additional options to the e-mail admin?

if you send these, you have to keep the connection open and continue to
accept commands and return 503 until you get a QUIT.
I'd thought of that, but it is easy to catch at the top of the loop.
In my assumptions of why you would immediately not accept a connection 
before any communication (something based solely on IP address or 
excessive message rate delivery), very rarely did I care what tailored 
message I sent the user (not that they ever read those), and I would 
expect you'd want to kill the connections immediately, not wait for a 
QUIT.  I find the fact that other mail servers do this rather than send 
421 evidence that they agree with my use-cases, not that they are too 
lazy to provide useful error messages (although that argument could be 
made).

Also, I read 421 as for a server that's shutting down.  It's a valid 
alternative to the 220 greeting, but I read this more because it's valid 
at all states (no matter where you are in the protocol, you need to tell 
the remote connection you're shutting down).  We might want to think 
about hooking the shutdown code into the SMTP handler to adopt this notion.

What is the deal with this ProtocolResponse class name?  These are two
very different functions.  One addresses a TCP connect request and one
is a SMTP command reply.
The ProtocolResponse class would be used for returning a [code,
text]-tuple.  It fills the role that you had referred to as a struct-like
class.
Sorry, was cranky with my note and understood your name.  I meant I 
think you're trying to force fit some inappropriate API and as a result 
providing too much information and control in one situation, and not 
enough in the other.

We're discussing these two stages, but you're naming and arguments 
suggest this is something we be able to insert in ANY protocol response. 
 I believe you would find this unworkable by examining other cases, as 
to generalize to this extreme would be significantly less useful.

I think the choices of where we support hooks are deliberate:
- We want to accept/reject TCP connects because we have a remote server 
that's pounding us, it is not in the network we like, or is otherwise a 
specific user we want to block or allow.
- We want to accept/reject RCPT specified email addresses because at 
this point we will know whether this is someone who is authenticated, 
and whether this is someone sending inside-inside, inside-outside, 
outside-inside, or outside-outside.

Adding something at MAIL FROM would only tell us from inside or 
outside, not the flow.  Adding something after DATA would a) not help 
us avoid message traffic b) lead to more complex processing that should 
be handled asynchronously (ie., mailets).  SMTP AUTH should be 
extensible via a account mgmt interface, not via individual protocol 
response handlers.  Other commands just get much less use and have less 
value to expose through an API.

Because it would make writing these filters more complicated, and less
modular?  My preference is towards smaller bits of specific functionality.
Instead of a very restricted API, why not just provide specific 
configuration options for the couple of expected restrictions?  What is 
less modular about providing more information to this RCPT handler?

Finally, I have to take back the suggested returns.  It's much more 
complicated than that...
- for accept/reject connections, you might have a specific spammer you 
want to always block, and you might have a static IP address DSL home 
user you want to always allow.  You can't simply AND or OR a bunch of 
boolean responses together.
- for accept/reject recipient address, you have similar notions as 
above... specific spammers you want to always block, email addresses you 
might always want to allow.

Not sure what's the best way to handle these situations.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Protocol Handler-based rejection

2003-05-27 Thread Serge Knystautas
I would think these are two different interfaces:

- acceptConnection() could know nothing but an IP address.  And I would 
see it returning a boolean.  This would happen between accepting the 
connection and print the HELO/EHLO message.

- acceptRecipient() could know the remote IP address, the send email 
address, the SMTP session authentication info (if available), and 
whatever else that could be garnered from the SMTP session to date. 
This would likely need to return both a error code (550 etc) and a text 
message explaining why.  What about a struct-like class with these 2 
fields, and then a bunch of constant values.  (OK is 200, 550 is a 
stanard rejection, and whatever else).  The user could then return 
custom error message if wanted, but otherwise James would it.  This 
would happen between RCPT TO from the client and defines the message we 
send back to the server.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
Noel J. Bergman wrote:
What I have in mind is a ProtocolResponse class that looks like:

class ProtocolResponse {
   int code;
   String text;
}
The filter methods would return null if there is no error, or a
ProtocolResponse.  That is ALL that we would permit.  No mailets in the
protocol handler.  This is strictly a means to handle protocol responses.  I
had originally call the class ProtocolError, but it occurs to me that a
commandmap-based protocol handler could use this generally.
Two new methods would be:

  - IP based service check
ProtocolResponse acceptConnection(String remoteIP);
this is probably the correct way to deal with DNSRBL
if you don't want to provide any service, rather than
reject RCPT TO commands, immediately provide a 554.
  - RCPT TO checking
ProtocolResponse acceptRecipient(String recipient);
Those would complement the filtering we already support via internal
mechanisms:
  - maximum message size
  - IP based relay denied
  - SMTP AUTH based relay denied
Again, this is not to replace the matcher/mailet pipeline.  It is strictly a
means to control protocol response to protocol commands.  If we like how
this approach turns out, then we can consider using it more generically in
later revisions to the handler, and in other protocol handlers.
Thoughts, suggestions, flames?


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Protocol Handler-based rejection

2003-05-27 Thread Serge Knystautas
Noel J. Bergman wrote:
Why would they be different?  acceptConnection() could be backed by a
DNSRBL, for example, and would want to return the TXT record explaining the
reason for the block.  At least that was my consideration.
Here's where I said I expected these listeners would go as we don't seem 
to be on similar pages.

a) acceptConnection() happens between accepting the socket and sending 
EHLO/HELO.  This has to be a boolean because you either disconnect 
immediately or accept the connection and send EHLO/HELO.

b) acceptRecipient() happens between receiving a RCPT TO command and 
sending the response.  This has to be a int code and String message 
because that's what SMTP's protocol requires back.  We might return a 
boolean, but it seems important to return the specific error code.  We 
might return just an int error code, but it seems helpful to optionally 
let a developer give a more tailored error message.

Your comments related to acceptRecipient are interesting.  It sounds as if
you interpreted it as being a single call that would handle all cases
related to RCPT TO.  
I don't understand what you think I'm saying. :)  To me this is an API 
where you can list classes that implement each of these handlers for 
each of these accept situations.  As these events happen, these classes 
have the appropriate method called.

For acceptRecipients, the results would be constants (for most cases), 
and as long as the result was positive, it would flow through to the 
next.  The first non-positive response would get spit out to the 
connection and the RCPT TO command failed.

 I had figured that we already had code to check for
everything except for evaluating the recipient string, so I was just
supplementing what we already had, rather than replace doRCPT().  I don't
believe that a single method for checking all conditions would be as
flexible.
Hmmm, from my perspective, this API would replace nothing we already do 
as we have historically had no fast-fail capabilities (aside from what's 
just been added).

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Protocol Handler-based rejection

2003-05-27 Thread Serge Knystautas
Noel J. Bergman wrote:
That approach doesn't allow the server to return a 421 or (more importantly)
a 554 reply, e.g.,
 421 - SMTP service temporarily unavailable.
 554 - SMTP service denied due to block list; see: text
The 554 isn't in RFC 821; it was added in RFC 2821.  In any event, that's
why I'd thought to use a ProtocolResponse object, so that the failure reason
could be reported.
Sorry, I didn't know of 421 and 554.  Having read them, I don't know why 
we would support them.  Sendmail and other mail servers I'm familiar 
with just immediately disconnect with no output.  Both commands are just 
listed as may be used.  Once more, if you send these, you have to keep 
the connection open and continue to accept commands and return 503 until 
you get a QUIT.  This seems counter to the point of this feature.

I absolutely agree with this, which is why I had proposed the
ProtocolResponse class, which would be the return value.
What is the deal with this ProtocolResponse class name?  These are two 
very different functions.  One addresses a TCP connect request and one 
is a SMTP command reply.

Right.  I'm just not sure why acceptRecipient needs to know anything more
than the address.  For example, it isn't responsible for SMTP AUTH.  That is
something else.
Err, why not?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: DO NOT REPLY [Bug 18726] New: - RemoteDelivery doesn't usethe SMTP bind address

2003-04-06 Thread Serge Knystautas
Danny Angus wrote:
This is normal behaviour.. a machine running httpd will bind to particular IP addresses but outgoing http client requests will use the default IP for the machine. Why would you want to change this behaviuour?
There's never an expectation that an HTTP client would also have an HTTP 
server, but for SMTP you can often expect (or maybe require) that the 
SMTP client has an SMTP server running.  SMTP servers are required to be 
able to accept email to [EMAIL PROTECTED], and if an SMTP client sends a 
message with Received headers, then it's pretty clear this is coming 
from an SMTP client and I should be able to connect back to it.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Bug 18471

2003-04-02 Thread Serge Knystautas
Soeren Hilmer wrote:
As you said the easy part was the implementation. I have already done that 
(although on my recently downloaded James 2.1.2 source code).

For the hard part: 
Updating of repositories. I assume the change is to be made on HEAD branch, 
and potentially backported, is this correct? How do I actually go about doing 
that? I guess that it is not generally possible for everybody to commit code.

Migration documentation. Well you lost me there, what is this task precisely 
about. Are you saying that a new repository structure should be created? If 
so can you please explain, why that is necessary?
Soren,

Please email [EMAIL PROTECTED]  This is a community project 
and I'm sure other people will have comments.

As for your questions, yes commit rights are restricted.  You can read 
about how to contribute at http://james.apache.org/contribute.html.

As for migration, it could either be a document or code that can detect 
and automatically make the change.  The reason it is necessary is to 
support people who already use James who want to upgrade.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: DO NOT REPLY [Bug 18471] New: - Attributes on Mail needed

2003-03-28 Thread Serge Knystautas
[EMAIL PROTECTED] wrote:
Attributes on Mail needed

P.S. I will be implementing this, so I will be happy to contribute, if this 
proposal gets approved.
Søren,

This idea has been discussed in the past, and everyone likes it... if 
you want to volunteer to implement it, please feel free!  Changes the 
API is the easy part, and then you'll have to update the repositories to 
handle this and document how to migrate from the older to newer 
repository structure.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: the future of James

2003-03-28 Thread Serge Knystautas
Christian Andersson wrote:
 I think I have seen this idea in here also that james should support
 more types of messages then just e-mails and news...
Christian,

I will join the community over there.  I use open office at home and 
would love groupware available beyond Exchange again.

I'll admit, I think turning James into a messaging platform is like 
saying we should change Apache HTTPD into a stateless connection 
platform.  The more you generalize, the less functionality you can 
provide.  If the community/industry picks a protocol and goes with it, 
then everyone benefits.

That said, you can't *convince* everyone that SMTP (or your protocol 
dujour) is what everyone should use.  This has to happen as a result of 
some fortunate series of events that prompt enough energy behind a 
single protocol to get groundwell there and hopefully a dominance.  So 
to that extend, I'm happy to get out there and talk more with people 
about their messaging needs.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: cvs commit: jakarta-james/src/java/org/apache/james/util ExtraDotOutputStream.java

2003-03-11 Thread Serge Knystautas
[EMAIL PROTECTED] wrote:
  +/*
  +static public void main(String[] args) throws IOException
  +{
  +String data = .This is a test\r\nof the thing.\r\nWe should not have much 
trouble.\r\n.doubled?\r\nor not?\n.doubled\nor not?\r\n\r\n\n\n\r\r\r\n;
  +
  +OutputStream os = new ExtraDotOutputStream(System.out);
  +os.write(data.getBytes());
  +}
  +*/
  +
You know we actually have junit tests for this... in fact I think this 
is the only class that has it. :)

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Proposed Mailet AP v3I change

2003-02-22 Thread Serge Knystautas
Noel J. Bergman wrote:
For Mailet API v3, I'd like to add:

  public InetAddress getRemoteAddress();

Both getRemoteHost() and getRemoteAddr() can be implemented based upon an
InetAddress object, and when dealing with the IP address, having an
InetAddress is faster than having to convert from the String form.
Noel,

This was pulled straight from the servlet spec, and the reason they give 
for the two methods is that a container may choose not to resolve the 
hostnames (to speed performance).  If a container does this, then 
getRemoteHost() returns the same thing as getRemoteAddr().

I think James always needs to do this resolution, so I think it's fine 
to change this to getRemoteAddress().

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: cvs commit: jakarta-james/src/conf james-config.xml

2003-02-15 Thread Serge Knystautas
[EMAIL PROTECTED] wrote:

noel2003/02/14 20:29:24

  Modified:src/java/org/apache/james/transport/mailets
RemoteDelivery.java


Are you setting sendpartial to default to false to be safe for now?  It 
seems like this should default to true once we can be confident there 
aren't unexpected bugs.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Improving JDBC Spool responsiveness

2003-02-13 Thread Serge Knystautas
Noel J. Bergman wrote:

It consists in appending to the listMessagesSQL query from
sqlResources.xml a LIMIT xxx. This way, MySQL does not send
back a huge ResultSet which makes the JDBC connection to expire



Good thought regarding LIMIT.  There is code in JDBCSpoolRepository for
limiting the number of messages loaded into an internal working set, but the
SQL query still has to generate the large result set.  There are two places
where we use listMessageSQL:

   JDBCMailRepository.list()
   JDBCSpoolReposittory.loadPendingMessages()

The former is only used by the POP3 handler when listing the contents of the
user's mailbox.  The latter is used internally to load the working set.  I
was thinking that perhaps it doesn't make sense to limit the list given to
the POP3 handler, although it would simply require the user to clear out
their messages before they could retrieve more of them.  Or I could clone
the listMessagesSQL to separate the queries, which is probably a good idea
for other reasons.


Another approach is to use Statement.setMaxRows(int max).  Many JDBC 
drivers can then figure out how to execute this so you achieve the goal 
of not returning all the records.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [VOTE] James v2.1.1 Release

2003-02-11 Thread Serge Knystautas
Noel J. Bergman wrote:

Guys,

I believe that James v2.1.1 is ready, and I'd like to vote on that release.
After that, I'll try integrating the DNS, partial delivery, and other
changes.


+1

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: An interesting note about memory leaks (was Memory leaks in RemoteDeliverymailet?)

2003-02-06 Thread Serge Knystautas
Jason Webb wrote:

The good news is that I can still set mail.smtp.from and have no
memory leaks.
Therefore I'd move that the setting of mail.smtp.user be dropped as a)
it causes problems and b) it's irrelevant.


Sounds good... yeah, we definitely need to keep setting mail.smtp.from, 
so I'm glad that doesn't leak.

Since we've upgraded to JavaMail 1.3, there are some other proerties 
we'd want to set...
1. mail.smpt.connectiontimeout (socket connection timeout value in 
milliseconds, default is infinite timeout)
2. mail.smtp.timeout (socket I/O timeout value in milliseconds, default 
is inifite)
3. mail.smtp.sendpartial (If set to true, and a message has some valid 
and some invalid addresses, send the message anyway, reporting the 
partial failure with a SendFailedException. If set to false (the 
default), the message is not sent to any of the recipients if there is 
an invalid recipient address.)

Also maybe...
4. mail.smtp.localhost (Local host name. Defaults to 
InetAddress.getLocalHost().getHostName(). Should not normally need to be 
set if your JDK and your name service are configured properly.)  Maybe 
have this based on something in config.xml?

If possible, could try to set these as well and see if there are any 
memory leaks?... the 2 timeouts would be good to add to keep the 
delivery threads robust, as well as supporting partial message delivery 
(I can't believe people don't scream about this.)

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: James v2.1.1 heads up

2003-02-06 Thread Serge Knystautas
Noel J. Bergman wrote:

I just posted v2.1.1a6 to the nightly build directories.  If this looks
good, I'd like to get a vote to release it as v2.1.1.  The test build


+1... looks good from user's feedback over the past couple of alpha builds.


includes logkit v1.2 (not in CVS), but that won't go out unless Avalon votes
to release it.  I expect that to occur by the weekend.  Logkit v1.2 fixes
the log rotation defect I had reported to them.


Aren't we already using an unreleased version?  If this fixes the bug in 
the log rotation, what's the risk of upgrading from one unreleased to 
another?

Meanwhile, I've updated the web site, so it should be up to date with the
changelog, FAQ updates, XSL fixes, etc.


Awesome, thanks!

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




RemoteDelivery changes

2003-02-06 Thread Serge Knystautas
Noel (and everyone),

I just thought about the a6 release, and thought it would be good to get 
in the patches for RemoteDelivery to prevent the memory leak, provide 
timeouts, and allow for partial delivery.  One fixes a reasonably 
significant bug, and the others are configuration that should just help 
(and hopefully not create a leak).

Thoughts about including it in 2.1.1?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PATCH] RemoteDelivery.java

2003-02-06 Thread Serge Knystautas
Jason Webb wrote:

Fixes a problem whereby setting the mail.smtp.user property in a
JavaMail session causes a memory leak.

The mail.smtp.user property is ONLY required for SMTP AUTH and not for
general use and therefore is NOT required for James. I've tested this
and the headers etc seem to be well-formed and correct.


Jason,

Your patch didn't come through, but I assume this is just deleting the 
two lines that put the mail.smtp.user property, right?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: An interesting note about memory leaks (was Memory leaks in RemoteDeliverymailet?)

2003-02-06 Thread Serge Knystautas
Jason Webb wrote:

I've tried the following settings:


props.put(mail.smpt.connectiontimeout, 6000);

Taken from Qmail - 60 second timeout is fine 

Great.


props.put(mail.smtp.timeout, 120);


Taken from Qmail - 20 minute timeout on I/O. This may be less than
desirable. Someone may be sending you 1 byte every 19 minutes. This
keeps the channel open and acts like a DOS attack.


Good enough.


props.put(mail.smtp.localhost, stockholm.inovem.com);


Not sure this is useful. Doesn't cause any problems, but I think it
doesn't add much either.


Yeah, let's omit it for now.


props.put(mail.smtp.sendpartial, true);


This appears on the surface to be nice, but I don't think it is.
I send a mail to 2 people, 1 address gives me a 5xx error (mail box full
for example). Which one succeed? Do I try again later? Do I end up
sending the same message many times (once per attempt) to the user who I
can send to?


You know this because the SendFailedException will enumerate the 
addresses that did not receive the message.  Right now if I send an 
email to 14 hotmail accounts and one of them is bad, none of the 
recipients gets the message.  That isn't very fun.

I'm not sure, but I think this may be a bad idea.


Yeah, possibly easy... I would agree to at least hold off until post 2.1.1.


It also leaks memory slowly and persitantly. My current opinon with
JavaMail's SMTP transport is to keep it simple. So I'd recommend NOT
using it.


Yeah, if it's leaking...


In summary add the following:
props.put(mail.smpt.connectiontimeout, 6000);
props.put(mail.smtp.timeout, 120);


Ok, will commit momentarily. We could think about making these 
configurable at some point in the futue.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JavaMail settings for RemoteDelivery (was about memory leaks)

2003-02-06 Thread Serge Knystautas
Noel J. Bergman wrote:

Seems to me that it makes sense to have defaults (NULL to not set the value)
for each property, and configuration entries to override.


If we set this to null, then the timeouts are infinite, which I don't 
think we want... I think if we try to deliver to a server that's too 
slow (doesn't respond to IO for 20 minutes), we want to disconnect and 
let that thread try to deliver someplace else.

This might also explain why I see the # of active delivery threads go 
down over time... some socket gets corrupt and Java doesn't get a solid 
timeout/close, and that thread is stuck.  I think you ALWAYS should have 
some timeout for a server app if you're tying resources to it.

With respect to mail.smtp.sendpartial, I think that it is important to use
it.  See the API docs: If set to true, and a message has some valid and
some invalid addresses, send the message anyway, reporting the partial
failure with a SendFailedException. If set to false (the default), the
message is not sent to any of the recipients if there is an invalid
recipient address.  RemoteDelivery already has the code for handling the
SendFamiledException, and processing the getValidSentAddresses list.  But,
again, this can be a configuration setting.  I just think that it should
probably be true in most cases.


I think this changes behavior, and the implication is not really tested. 
 In theory this is a great improvement I'd like us to make, but for the 
2.1.1 pending, I wouldn't include this.  Most of our test structures 
can't really check this, so I think we'd need to release this into alpha 
use for a while and get feedback before committing to it in a release.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [Bug 16834] smtpserver.log doesn't show Message-ID

2003-02-06 Thread Serge Knystautas
Noel J. Bergman wrote:

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16834

This change would need to be made in multiple components in order to be
consistent.  Right now we use Mail.getName() (typically a local time-based
value) for logging.  Should we use MimeMessage.getMessageID() instead?


No because a single message with a given message ID...
a) might be received multiple times (some servers send the same message 
with different recipients in different sessions)
b) could get split into multiple queues, i.e., this message gets 
delivered to devtech.com and lokitech.com, so it gets stored in the 
outgoing spool twice, and we'd want to log that devtech.com wasn't 
working and not confuse it with the version that went to lokitech.com 
just fine.  :)

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Distribution of jar files illegally?

2003-02-06 Thread Serge Knystautas
[EMAIL PROTECTED] wrote:

James currently includes JavaMail, Activation, dns-java and Junit 
non-Apache-jars without licenses in CVS.

Dion,

We have already made an inventory of what jars we have potential license 
conflicts with.  We're aware of what conflicts we have, what we have 
permission from authors to use, and what is valid.  There are some jars 
that we bundle because of running under Avalon, and we'll rely on Avalon 
sorting out and telling us what of those we should bundle.

Incidentally, JUnit is considered the IBM license, which in the emails 
going around has been dictated as compatible with ASF policy.

The only really at risk files right now are JavaMail and Activation, 
both which DO have license files in CVS, and once more, it's not 
completely settled as the discussion is still active.  Certain board 
members has stated there is a problem, and so we've proactively reviewed 
the issues and are prepared to act when the foot drops.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Distribution of jar files illegally?

2003-02-06 Thread Serge Knystautas
[EMAIL PROTECTED] wrote:

James currently includes JavaMail, Activation, dns-java and Junit 
non-Apache-jars without licenses in CVS.

By the way, we're not governed by the Jakarta PMC anymore... if you want 
to send it to the James PMC, you can send it to [EMAIL PROTECTED] 
(private, PMC members only), or [EMAIL PROTECTED] (public, 
PMC-related issues).

And please subscribe to these various lists before you send to them. 
Thanks.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JavaMail as the message store

2003-02-04 Thread Serge Knystautas
Noel J. Bergman wrote:

Serge,

According to Alex's messages, he has spoken with Bill and there seems to be
some willingness to address whatever issues Alex raised.  We'll have to
await details from Alex on those issues.

In any event, my point about migration is simple.  We won't preserve two
implementations of the mail repository for the interim.  But during initial
development, we don't have to change the spool implementation, and we really
don't need to change the ToRepository mailet, which is used to dump spam and
error in the stock configuration.  At the beginning, the only things that we
HAVE to change are the LocalDelivery and POP3 handler components.

  1. Change LocalDelivery and POP3 to use JavaMail stores.
 Use one of the existing JavaMail stores.
  2. Test, tweak, test again.
  3. Change ToRepository Mailet
  4. After the spooler is replaced, we can remove the current
 mail repository interface.  As I understand it, we also
 convert our implementations to JavaMail stores.

This incremental development is intended to make sure that we have a working
server throughout the entire process.


Right, so basically just removing (and/or making abstract) the 
MailRepository interface, removing the definitions of MailRepository 
URLs in config.xml, and then fixing everything that uses that directly. 
 I'm a bit leary we're missing something, but sounds like a plan.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JavaMail as the message store

2003-02-04 Thread Serge Knystautas
Serge Sozonoff wrote:

Hi Guys,

I have been looking into this a little more and I have done some local
testing (I now store mail through JavaMail (Maildir)) however there is
something I am not sure about.

What sort of a file based JavaMail Store are we thinking of using as the
default for storing local James mail?

Maildir is nice but it does not work under Windows.

JProof Local Message Store should work but I am not sure what the license
implications are.

ICE MH JavaMail Provider (http://trustice.com/java/icemh/index.shtml)

Others 

and as far as a JDBC Store goes, it looks like we might need to write our
own

Any thoughts on this?


I'm thinking (at least for porting reasons), we'll want to implement a 
JavaMail Store to access the existing (legacy) file mail repository. 
This may also be a fast, non-portable implementation... whether we pick 
that long-term as the default implementation is another thing, but this 
is what I figured we'd do in the short-term.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Memory leaks in RemoteDelivery mailet?

2003-02-03 Thread Serge Knystautas
Jason Webb wrote:

I've been doing some testing with 2.1 (jdk 1.4.1, Javamail 1.3) under
Win2k.

I've constructed a testing that sends 5 mails/sec into James. The
messages are destined for another remote server (relay). Running the VM
with -Xloggc on there is a slow and persitant memory leak.

James is keeping up with the incoming mail volume quite easily. Even
when I stop the incoming mail, the memory still persists (and is never
freed). Lacing the code with periodic GC's never frees the memory
either. 

Any suggestions?

That isn't really detecting memory leaks... normal (non-leaking) Java 
code will gradually allocate more memory to the heap.  The question is 
if there are incorrectly maintained references over time, and you'll 
have to use a profiling tool to determine that.

I'm not saying there isn't a slow memory leak with any part of James, 
just that -Xloggc won't tell you either way.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JavaMail as the message store

2003-02-02 Thread Serge Knystautas
I'm pretty sure Bill (and the spec group in general) won't want to 
adjust the JavaMail API too much (I think this has been asked before). 
They've designed it for client use, and I think they're happy with those 
design approaches.

But if you're talking just implementation and room for improvement, then 
they probably would be open for suggestions.  Perhaps figure out what we 
want to change most, and then sort out how to address it.

Noel J. Bergman wrote:
For the internal migration, I propose we would only use JavaMail in
LocalDelivery and the POP3 handler.  That allows us to introduce JavaMail
mail boxes without breaking the rest of James.  At the appropriate point, we
can change ToRepository and the rest of the code.  Basically, it means that
work can start on this process now.


Are you suggesting we maintain two implementations of the mail 
repository during this interim?  Can you go into a bit more what you 
mean by this interim migration step?

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JNDI Mailet Configuration

2003-02-01 Thread Serge Knystautas
Noel J. Bergman wrote:

there seems to be a number of ways to achieve the per-mailet context


thing.

It you want, take a look at org.apache.naming (under the tomcat project).  I
think that you'll find that per-mailet would be a real complication, and not
necessarily desireable.  In Tomcat, the Servlet Specification specifies that
resources are per-webapp, and each webapp has its own classloader.

ref:
http://cvs.apache.org/viewcvs.cgi/jakarta-tomcat-4.0/catalina/src/share/org/
apache/naming/

There is another copy elsewhere, part of the TC5 CVS structure, but the one
above may be the better place to start for now.  We can ask Remy for advice.
Actually, if we decide to adopt JNDI, I'll ask Remy if he could help us out
a bit (org.apache.naming is under Tomcat, but is supposed to be independent,
and available for all projects that might want it).


I agree that per-mailet contexts are very difficult, and wouldn't want 
to take this to the degree Aaron has with having everything function 
through JNDI.

The more I've thought about it, the more I like using JNDI for generic 
resources.  Basically we can rely on the J2EE spec on how to do this, 
just as the servlet API does so.  This would give a standard way to have 
access to logging, datasource, advanced app configuration, and other 
resources via JNDI.

I agree with Stephen that the servlet API is perfect, but I do think it 
did achieve a good balance of simplicity vs. complexity and gives people 
a level of familiarity when getting into mailets.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Repositories

2003-02-01 Thread Serge Knystautas
Noel J. Bergman wrote:

Serge suggested JavaMail as the message stores interface.  I'm not sure what
the performance is, but we do have the JavaMaildir author to help out, and
I'm sure that he is familiar with the performance.


Basically I mean to suggest that we take the existing file and database 
repositories, and rework/add necessary methods to make them implement 
the JavaMail javax.mail.Folder (maybe also implement javax.mail.Store). 
 I think this is a good idea for the following reasons:

1. familiarity because it's a standard API

2. makes our store implementations more re-usable (our Store 
implementation could be bundled as a separate jar to let a servlet app 
access the database store)

3. makes it easier to drop in other mail store implementations

and more importantly...

4. If you look at the functionality/methods we need to add to our 
existing mail repository interface to let it support NNTP and IMAP, you 
basically have javax.mail.Folder.

Also, please note that we're not considering JavaMail for the spool.  The
spooler needs to be high performance, but it will only move the Mail object,
which have a looser reference to the MimeMessage.  The MimeMessage wouldn't
move as much as it does in the current scheme, cutting down on that
overhead.


Agreed... spools require the Mail object, and there's the whole spooling 
logic itself which most mail repositories don't need, and there's the 
desire to have that implemented separately.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com/
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: James v3 Requirements and Planning

2003-01-31 Thread Serge Knystautas
Aaron Knauf wrote:

I have no opinion on whether or not it is a good idea to treat the 
Mailet API as a distinct entity.  If that is what others want (and I 
think it has already been decided that they do), I'll get on board. 
However, Mailet portability is a *must* if we are to do this.

Aaron,

You'll see in the Top-Level-Project proposal, one of the motivators to 
do this is to create subprojects, namely a project to house the separate 
mailet API/specification, and also a project to house mailet 
implementations.

So yes, a big reason why we're james.apache.org is because we've decided 
we want the Mailet API as a distinct entity.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: James v3 Requirements and Planning

2003-01-31 Thread Serge Knystautas
Aaron Knauf wrote:

I have no opinion on whether or not it is a good idea to treat the 
Mailet API as a distinct entity.  If that is what others want (and I 
think it has already been decided that they do), I'll get on board. 
However, Mailet portability is a *must* if we are to do this.

You'll see in the Top-Level-Project proposal, one of the motivators to 
do this is to create subprojects, namely a project to house the 
separate mailet API/specification, and also a project to house mailet 
implementations.

So yes, a big reason why we're james.apache.org is because we've 
decided we want the Mailet API as a distinct entity.

Yeah, I know this, Serge.  The point that I am making (in the statement 
that you are replying to,) is that I am truly ambivalent about this 
decision, but quite happy to support it.  The point the I was making in 
that post, was that (IMHO) there is no point in going down that road 
without achieving the degree of portability in Mailets as has been 
achieved in servlets.

Sorry, I quoted the wrong part of your message, losing some context to 
your comment.  Earlier in the message you had commented that you felt it 
was unclear whether this was decided, and that's what I meant to respond 
to.  If nothing else, I wanted to clarify that it has been decided, 
since you indicated you were somewhat uncertain about that.  So, we're 
glad to have you on board! :)

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: James v3 Requirements and Planning

2003-01-30 Thread Serge Knystautas
Nicola Ken Barozzi wrote:

Mixing my views and the results of the James discussion, I have come to 
the personal conclusion that it would be cool to have:

 - mailet API indipendent on Avalon
* very lightweight, no concerns about config, logging, etc
* it makes possibly unportable mailets

 - mailet Avalon profile
* mailets that are also Avalon components, thus gaining
  Avalon features
* mailets can be more portable and feature rich

1 cent's worth...

I like this and as I've understood the Avalon framework better, I think 
this is something we can do with James without a lot of sweat.

Like Nicola said, we have Avalon independent mailets that function just 
like the API.  Then we allow James to support mailets that implement the 
Composable, whatever-able interfaces of Avalon... James can pick up on 
these and call the appropriate methods on the mailet during the mailet 
lifecycle.

I like this because..
- it keeps the mailet API lightweight,
- it recognizes that the mailet API should not handle all needs of all 
mailets,
- it allows Avalon-aware developers using James the ability to leverage 
Avalon, and
- it spurs the creation (within James) of more advanced mailets 
(dependent on Avalon) that can then give more context and make further 
mailet API discussions more productive.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Configuration Subsystem (was Mailet Configuration)

2003-01-29 Thread Serge Knystautas
Aaron Knauf wrote:

I disagree, but rather than go into the why's and wherefore's here, I 
will finish off the UML that I am working on to ensure that we are not 
just misunderstanding each other.  I will however, say this:

I think that access to some form of structured config for mailets is 
important.

Plugability of config implementations is not something that needs to be 
reflected directly in the Mailet API, but can be a value add for a 
particular container implementation.  (Like ours!)

Ok sure, just as long as it's not in the mailet API or specification, 
that's cool with me.

Dynamic reconfiguration must be supported by the configuration subsystem 
if it is to exist at all.  Someone listed this item on the wiki as being 
a desirable for V3.  It is quite a lot simpler not to do it.

Yes, I think dynamic reconfiguration is a must.


IMHO, the key to doing this successfully is to provide a system that is 
simple by default, but powerful for those that wish to put in the effort 
and dig a little deeper.  Log4J is an excellent example of this concept. 
It takes a 4 line config file and single line of code to get basic 
logging to work.  However, if you want more, you can make your logs get 
up and make coffee!

I agree, and I think your log4j reference is a good example of what I'm 
shooting for... let the application developer do whatever he or she 
wants using all the options available with Java.  I'm just looking to 
provide rules for a mailet container, i.e., how you could write some 
Java to process email messages.  This doesn't need to (and shouldn't 
IMHO) include much about logging, databases, configuration, etc...

So I like to keep it lightweight and focused on the specific problem of 
email processing.  Also when in doubt about the appropriate level of 
complexity, I tend to fall back on whatever the servlet API deemed 
appropriate.  Servlet apps haven't shown much limitations with that API 
(either too advanced or too lightweight), and it's fostered numerous 
implementations.

So for the sake of Mailet API and specification, if in doubt, leave it 
out.  Then figure out a way how a specific mailet container like James 
could offer the necessary features on its own.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [VOTE] v2.1.1 release

2003-01-29 Thread Serge Knystautas
Noel J. Bergman wrote:

I am withdrawing this vote due to a defect in the file system repository.  I
believe that I have a fix, which I am uploading as part of v2.1.1a5.


This is kind of a silly question, but what happened to alphas 1 through 
4?  I guess you have been building them and I just hadn't noticed.  Nice 
catch with the synchronization woes, btw.

 Since I have to do that, anyway, do we *want* to try the new 
dnsserver code?
 Is anyone using the DNS code checked into HEAD?

I would like to since it promises to reduce the number of problems 
caused by people not configuring the DNS servers, but unfortunately 
can't commit to testing this in the next week.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com/



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: TLP announcement

2003-01-28 Thread Serge Knystautas
Noel J. Bergman wrote:

So are you saying that you don't want me to send out the Press Release?  You
want me to just post it to you?


I'm just saying it took many hours for our office manager to figure out 
who to send the press release to and send the announcement off to all 
these outlets, and we'd be happy to do the same when the 2.1.1 press 
release is ready to go out.

 I have a somewhat longer list than below, with either e-mail addresses or
 URLs.  I'll post it to pmc@ (I don't feel like contributing to spam
 harvesters).

I'll take the list you send to PMC and ask our office manager to 
research those as well and maybe retroactively send out a few more 
announcements about TLP.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Mailet sub-packages

2003-01-28 Thread Serge Knystautas
Noel J. Bergman wrote:

Actually, I think so, but perhaps not the same way that you anticipate.  I'd
like to see us ensure that the base Mailet package is protocol neutral.


Protocol neutral?  What does that mean?  I assume we keep it focused on 
spool processing (messaging in general) and MimeMessages.  Are you 
suggesting we decouple from email addresses?  What else would you change?

The current package has started incrementally tying itself to SMTP and MIME.
I'd like us to take a similar approach to the servlet and servlet.http
packages.


servlet and servlet.http?  If this was done in the name of protocol 
neutrality, it has to rank up there as one of the worst design decision 
in the history of Java APIs.  It's one of the most widely adopted APIs 
yet NOBODY has used with another protocol aside from http...

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: TLP announcement

2003-01-28 Thread Serge Knystautas
Noel J. Bergman wrote:

Ouch!  I hope she or he didn't have to replicate the effort I had already
done (you could've asked :-)), and I very much appreciate the donation of
your corporate resource.  :-)


Well, we also sent it to a lot of (more self-serving) announcements to 
business-ish magazines in our region. :)

Thanks for the list too... we're getting the extra announcements out there.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [VOTE] v2.1.1 release

2003-01-28 Thread Serge Knystautas
Noel J. Bergman wrote:

The [EMAIL PROTECTED] list IS open to everyone.  We're talking about
how best to use it, but my view is that it should be relatively light
traffic, and used for most PMC and other project related, organizational,
discussions.  Like do we want a new mailing list for the MailetAPI.  Like
splitting the CVS repository into james-server, james-mailet and james-site,
and the discussion of why.  And, hence my aside, that is probably where
Release Votes should take place.  As I understand Danny Angus' position,
that general@ be used for most PMC business so that it *is* out in the open,
those are compatible views.


Everyone seems in agreement that general@ is for open PMC-related 
discussions, and Noel's unearthed some Apache rules that has created 
confusion as to whether the PMC needs to be involved in the release, 
i.e., bless it for distribution on behalf of the Foundation.

That said, even with the confusion over the PMC's involvement, it is 
still the committers who decide when to release and then seek PMC approval.

Voting guidelines indicate all contributors are encouraged to 
participate and committers have the ultimate say in the decision.  Also 
a committer casting a +1 vote indicates he/she is willing to support the 
release.  Then per the sentence that's started the confusion... Once a 
release is approved by the Committers, the Project Management Committee 
can authorize its distribution on behalf of the Foundation.

(again IMHO) Votes for releases should still be made by that 
sub-project's community/contributors, ergo on the appropriate dev list.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: IMPORTANT: Do not commit to v2.1 branch ...

2003-01-28 Thread Serge Knystautas
Noel J. Bergman wrote:

... at least not until we talk about it, or v2.1.1 is tagged, whichever
comes first.  :-)

I just committed Sergei's DNSServer changes to HEAD.  I did *not* commit to
v2 branch, because I think that we should vote to put out v2.1.1, and then I
can apply Sergei's updates, and a couple of other fixes, to v2.1.2 for
release in a few weeks.


Do you think the latest round of DNSServer changes are significant 
enough to push into a next-release?  We already have DNSServer changes 
between the 2.1 release and now, so moving from what we had to 1.3.1 vs. 
1.3.2 doesn't seem that significant to me.

--
Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: IMPORTANT: Do not commit to v2.1 branch ...

2003-01-28 Thread Serge Knystautas
- Original Message -
From: Noel J. Bergman [EMAIL PROTECTED]

 But none of those DNS changes are in the v2.1 branch.  None of them have
 been tested anywhere as far as I know, yet.  Hence my thought to get out
the
 v2.1 branch, with the already tested updates, such as JavaMail, JAF, NNTP,
 and log rotation, and put the DNS changes into the next drop.


Thanks, I was reading the diff's on the changelog too quickly and thought
the DNS server changes were in the 2.1 branch too.

+1 from me for the freeze and release then.

Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 1.301.656.5501
e. [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: Configuration Subsystem (was Mailet Configuration)

2003-01-28 Thread Serge Knystautas
- Original Message -
From: Aaron Knauf [EMAIL PROTECTED]

 Hi Danny,

 The format you suggest certainly allows for multiple matchers and better
 matcher configuration.  However, it still leaves us with unstructured
 name/value pairs.  There have been a number of requests for structured
 mailet configuration.


I don't think the level of configuration you're proposing needs to be
included as part of the mailet container.  IMO, the container should load an
application, and if the application has complex configuration, the
application should handle configuring itself.  I think many of your
suggestions unnecessarily raise the bar for mailet container implementations
and is looking for more than just a container.

I think name-value pairs are a good addition to matchers, and I think it
would be good to have a way to reference files bundled with the mailet
classes (as part of the application files), either with getResource() or
maybe getRealPath(), something along those lines.

Serge Knystautas
President
Lokitech  software . strategy . design  http://www.lokitech.com
p. 1.301.656.5501
e. [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: Excalibur/Cornerstone/James woes

2003-01-27 Thread Serge Knystautas
Stephen McConnell wrote:

I now have two james builds locally on my machine:

 1.  James based on Peter's derivative of 2.1, CM/SM
 migration and Cornerstone candidates in place.
 This is working fine.  Some problems were occuring
 in the test case but we finally narrowed this down
 to a bug in the test case (the test delete's the user
 before the spool completes its work, resulting in
 email in the spool that contain invalid reciipient
 addresses).

 2.  James based on HEAD + CM/SM migration + updates for
 Cornerstone candidates.  This version is doing the
 500 error on  commands and getting itself into a
 loop.  However, it's fully synced with the HEAD and
 can be committed.

I suggest we go ahead and ties build (2) into head and sort of the 
loop/500 problem from there.

Sounds great... this loop bug is one I introduced in HEAD and mean to 
sort out soon (was supposed to this weekend, but long story... it will 
be fixed soon).

There is also the question of migration of excalibur-xxx packages to 
commons-.  This has been taken care of for the pool package 
(commons-collection).  There may be a coupe of other packages that 
require transition.  Also, excalibur-cli (used in Phoenix and a couple 
of Excalibur projects) can/should/could be replaced by commons-cli.

I would support migrating to commons libs as I'm more familiar with them 
and I think commons does a good job with release management.  Especially 
if it means the Avalon community has less to worry about releasing in 
the short-term.

Also, for DBCP we'll be bundling commons pool anyway, so one step there.

i.e. Things are already looking comfortable - and within a few weeks we 
should be able to freeze the release targets and validate things across 
containers, applications and external projects followed by formal 
vote/release/publication.

Great!


Yep - its in progress. Some of the updated in Excalibur are used 
extensively in Cocoon and some of guys on working on the Avalon/Cocoon 
front in much the same we as I'm trying to get James/Avalon in sync.

Sounds good.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: Build process: was http://james.apache.org

2003-01-27 Thread Serge Knystautas
Danny Angus wrote:

I'd like to see a formal proposal, so we can have a synopsis of why we need to change things, debate the benefits and drawbacks of competing systems are, and, if we don't reach concensus, a vote.

I'm susceptable to persuasion on all counts, including retaining the status-quo (ant  xslt) and would like to hear someone make the case for change. Otherwise it would seem to be change for change's sake, or keeping up with the Joneses.

d.


This is somewhat perpendicular to this, but could have an impact...

The tests we have right now (they don't compile, but that 
notwithstanding) are functional tests, not unit tests.

So last night I created a new directory and build tasks for junit tests 
on the individual classes in James.  This was primarily driven by 
wanting to unit test ExtraDotOutputStream, and we can use this test 
build task for over unit tests as they get written.

Adding this prompted me to do some renaming in the build.xml since 
between the multiple javadocs, multiple source code locations, etc..., 
the naming conventions were becoming somewhat confusing.  For example, 
the intermediate build directories are named build.[something] while 
the source directories are named [something].dir.

Anyway, I'm pretty sure I've broken where the javadocs get created, but 
if we're going to just scrap all of that, then maybe it's not important 
for me to fix it before I commit.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Build process: was http://james.apache.org

2003-01-27 Thread Serge Knystautas
Danny Angus wrote:

Anyway, I'm pretty sure I've broken where the javadocs get created, but 
if we're going to just scrap all of that, then maybe it's not important 
for me to fix it before I commit.


Its pretty important for the web-site though.

Ok, I can sort that out before committing.  Just didn't think we'd be 
updating the website with HEAD before we moved to Forrest or whatever 
the decision is.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [VOTE] Stephen McConnell temporary commit privilege

2003-01-27 Thread Serge Knystautas
Danny Angus wrote:

I'd like to propose that we offer Stephen temporary commit access to James to let him apply his *very welcome* update to James to bring the HEAD up to date with Avalon.

d.


+1, although would like to have temporary defined... until a specified 
date (couple of weeks?, 3 months?), until a milestone is reached (ACR?, 
James 3.0?), or whatever.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



TLP announcement

2003-01-27 Thread Serge Knystautas
We've sent around a TLP announcement to every place mentioned on the 
listserv (leading up to the 2.1 PR), including...

Cnet
ZDNet
ServerWatch
JavaWorld
SLASHDOT
IBM Devworks
TechTV.com
Onjava.com
OfB.biz
Apache
Java DevJournal
Open Directory
TheServerSide
JSPInsider
JSPIN
JavaLobby
JGuru.com
JavaRanch
Open Enterprise
eBizQ

We've got all the info on where to send the news for each, so when we do 
the 2.1.1 release and want to blast that out, we can handle that as well.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Log File Rotation

2003-01-25 Thread Serge Knystautas
- Original Message -
From: Noel J. Bergman [EMAIL PROTECTED]


 James uses Avalon's logging mechanism.  See the documentation for the
 FileTargetFactory, and then adjust SAR-INF/environment.xml accordingly.

 ref:

http://jakarta.apache.org/avalon/excalibur/logger/api/org/apache/avalon/exca
 libur/logger/factory/FileTargetFactory.html

[switching to dev]

Shouldn't we change James log files to rotate by default so they can't grow
unchecked?  Is this logger feature available in what we're using with the
2.1 branch?  I would +1 to changing it to rotate for the 2.1.1 release.

Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: Excalibur/Cornerstone/James woes

2003-01-24 Thread Serge Knystautas
Stephen McConnell wrote:

There are two scenarios I think you should be considering:

  1. a James releasse scenario - this is where you referencing relased jars
  2. a James build that is based on the current CVS of Avalon based on Gump


I agree with 1, but not with 2.

I don't think it does James any good to treat the Avalon jar 
dependencies any different than we would other libraries.  I also don't 
think it does Avalon any good in the long term.

I know it's not ideal, but for me the big API change that happened in 
the Avalon project (Component - Service I think it was) is not that big 
of a deal.  What made it a big deal is that there was not much of a 
clear release beforehand, I don't think any release (yet) after the 
fact, and I haven't heard of a changelog or HOWTO to help users make 
this change.

Codebases change all the time, and I have to believe the Avalon 
committers did what they felt was a right by moving to a different 
naming/design pattern.  But with software engineering, you need software 
development practices to support it.

As an example with another open source project, we use Netsaint for 
monitoring.  This was basically disolved, and the authors went and 
refactored the codebase into Nagios.  I don't mind that Netsaint isn't 
supported or that my large conf file needs to be completely rewritten... 
because there is explanation of what happened, clear releases so I can 
stay with Netsaint until we have the time to migrate, and I've heard 
rumor there is a conversion tool out there to help you migrate your conf 
file.  These practices allow me to handle the change, and this is better 
than having Nagios people who are very willing to help because in the 
end, I know my code/system best and need to understand how to apply it.

These software development practices allow the software engineering to 
happen with less restrictions.  For the Avalon community, having James 
build against Avalon and have Avalon committers help James with that is 
a misdirection of resources (IMHO).  You will get James working on it, 
but at the expense of other activities that can slow adoption of the 
codebase (which ultimately James needs to see happen as well).

So, I think Avalon should be treated just like other dependencies... 
people can propose updates, the community reviews it, and then if 
approved, the update happens.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Excalibur/Cornerstone/James woes

2003-01-24 Thread Serge Knystautas
Stephen McConnell wrote:

Danny Angus wrote:

 1. a James releasse scenario - this is where you referencing 
relased jars

 2. a James build that is based on the current CVS of Avalon 
based on Gump

I agree with 1, but not with 2.

I don't think it does James any good to treat the Avalon jar 
dependencies any different than we would other libraries.  I also 
don't think it does Avalon any good in the long term.

I agree with Serge, despite our close relationship with avalon I think 
we *must* work with released software only,

But your not - your build against and distributing against an unrelease 
cornerstone package.

Well yes, and I think this is again why we don't want (and would like to 
no longer be) doing #2, i.e., building against what's in CVS... because 
we end up using unreleased code and are otherwise not supported.

So now it's a question of getting Avalon to make a published release, 
and then get a proposal from someone to do the upgrade... and as you 
imply, since we're not building against a release, I don't think you'd 
get much disagreement (and I hope we've been supportive of your 
preparatory work to have that happen).

If there is cornerstone code we need that isn't getting released, we can 
absorb that code into the James package so that we can determine it 
releasable, and then if Avalon does release it, we can review handing 
over responsibility for that functionality back to them.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: PATCH - smtpserver acceptOnlyLocal and doReverseLookups options

2003-01-24 Thread Serge Knystautas
I think this was already mentioned, but in general the James project has
taken the approach of accepting first and deleting during processing.
Especially as these doesn't seem to be a high traffic/likely settings
(you're not going to catch a ton of spammers), this seems like a job for the
mailet API.

You can already handle deleting messages from bad networks by using existing
matchers (HostIsLocal) and otherwise bit-bucket it using the NullMailet.
The reverse DNS is a bit more interesting... I would take that code and make
it a matcher for who we do most of these rules.

We also have bundled (but not enabled by default) a matcher that checks that
there is any entry for the deliverer's hostname called SenderInFakeDomain.
What it does is if I get an email from [EMAIL PROTECTED], the matcher checks to
see if there are MX/A/CNAME records for bar.com (to see if we could send a
bounce to that server if necessary).  Just thought I'd mention it as another
somewhat useful spam deterent.

Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com/

- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, January 24, 2003 4:23 PM
Subject: PATCH - smtpserver acceptOnlyLocal and doReverseLookups options


 Index: james-config.xml
 ===
 RCS file: /home/cvspublic/jakarta-james/src/conf/james-config.xml,v
 retrieving revision 1.44
 diff -u -r1.44 james-config.xml
 --- james-config.xml 18 Jan 2003 23:22:34 - 1.44
 +++ james-config.xml 23 Jan 2003 21:25:10 -
 @@ -406,6 +406,26 @@
   verifyIdentitytrue/verifyIdentity
   --

 + !--  Uncomment this if you want to only accept recipients in
the local domain. --
 + !--  Note that leaving this out will cause all recipients to be
valid, but --
 + !--  messages to other domains will still process per the above
configuration, --
 + !--  usually to the spam log. Leave this off while debugging,
but if you find  --
 + !--  a huge number of SPAM messages to other
 --
 + !--  you might want to turn it
--
 + !--
 + acceptOnlyLocaltrue/acceptOnlyLocal
 + --
 +
 + !--  Uncomment this if you want to ensure a reverse DNS
Hostname exists   --
 + !--  for the IP addresses of incoming connections.  Most
legitimate email --
 + !--  will have a rDNS hostname defined, but often the casual
spammer will --
 + !--  not.  Note that this will cause connectivity problems if a
sender's  --
 + !--  hostname cannot be determined by IP, or if the DNS service
is--
 + !--
 --
 + !--
 + doReverseLookupstrue/doReverseLookups
 + --
 +
   !--  This sets the maximum allowed message size (in kilobytes)
for this --
   !--  SMTP service. If unspecified, the value defaults to 0,
which means no limit. --
   maxmessagesize0/maxmessagesize
 Index: SMTPHandlerConfigurationData.java
 ===
 RCS file:
/home/cvspublic/jakarta-james/src/java/org/apache/james/smtpserver/SMTPHandl
erConfigurationData.java,v
 retrieving revision 1.3
 diff -u -r1.3 SMTPHandlerConfigurationData.java
 --- SMTPHandlerConfigurationData.java 14 Jan 2003 13:41:54 - 1.3
 +++ SMTPHandlerConfigurationData.java 23 Jan 2003 21:04:37 -
 @@ -54,6 +54,29 @@
  boolean isVerifyIdentity();

  /**
 + * Returns whether the service requires connecting
 + * IPs reverse DNS entry (the Hostname) to exist.
 + * If the reverse DNS hostname entry for this IP
 + * addressdoes not exist, and this is true, the
 + * connection is terminated.
 + *
 + * Legitimate email servers have a reverse DNS entry
 + * for their IP address, so this helps prevent SPAM.
 + * The default entry is Bfalse/B.
 + *
 + * @return true if reverse lookups are
 + */
 +boolean isReverseLookupNeeded();
 +
 +/**
 + * Returns whether the service only accepts recipients
 + * with domains local to this server
 + *
 + * @return whether only local recipients are accepted
 + */
 +boolean isAcceptOnlyLocal();
 +
 +/**
   * Returns the MailServer interface for this service.
   *
   * @return the MailServer interface for this service
 Index: SMTPHandler.java
 ===
 RCS file:
/home/cvspublic/jakarta-james/src/java/org/apache/james/smtpserver/SMTPHandl
er.java,v
 retrieving revision 1.42
 diff -u -r1.42 SMTPHandler.java
 --- SMTPHandler.java 14 Jan 2003 13:41:54 - 1.42
 +++ SMTPHandler.java 23 Jan 2003 21:04:41 -
 @@ -328,23 +328,38 @@

  out = new InternetPrintWriter(new BufferedWriter(new
OutputStreamWriter(socket.getOutputStream()), 1024), false);

 +boolean bLetThemIn = true

Re: Excalibur/Cornerstone/James woes

2003-01-24 Thread Serge Knystautas
- Original Message -
From: Stephen McConnell [EMAIL PROTECTED]

 No. I'm not suggesting *using* unrelease code.
 #2 is getting the Gump descriptor for James sorted - that does not
 effect you day to day work.

Right, I understand your intention.  I think I see that you're treating Gump
as a step towards having that better Avalon release process, so that sounds
good.

My concern is that we end up relying on this compilation check *at the
expense of other support*.  As an example, the (very frustrating) file
repository change that started numbering instances, which didn't change the
API and would not have been caught with Gump.  I'm looking to Avalon to
build a better release process so more changes could be clear to James.  I'm
also slightly concerned that Gump would give James or Avalon developers
false confidence to start making changes that could have unintentended
consequences or use code that in the end wasn't going to get released.

 I would really like to sucessfully validate the candidates against James
 before proposing releases.

Ok.

 I've updated corenerstone so that each component that James is depedent
 on has its own build procedure and release version.  This means that (a)
 your not carrying around code for components you are not using, (b) your
 migrating to something that is supported, and (c) furture evolution of
 components can be managed properly.

Ok.  I really appreciate your changes as it would be great to get on an
Avalon release, and if an early warning system can help you support Avalon
and make it easier to propose upgrades for James, then that's great.  I'd
rather not be one of those people getting the early warning messages though
if possible. :)

Anyway, I think we're both heading in the same direction... we want James on
an Avalon release (and cleaner code and more avalon adoption).  Seems like
most of our chat was how we would prioritize achieving those differently,
but they're pretty close in the end.

Again, much appreciated.

Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: http://james.apache.org

2003-01-23 Thread Serge Knystautas
Danny Angus wrote:

The website is now here http://james.apache.org and the site files on daedalus have been moved.
I haven't tried cvs up yet.

d.


Thanks!!  Looks great!

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: Logo competion..

2003-01-23 Thread Serge Knystautas
Danny Angus wrote:

I remember somewhere some suggestions for a new logo, I was thinking that perhaps we should have a competition.
New name, new look kind of thing.

Thoughts?


I like the current logo... someone here (Randy Stanard) actually 
designed it, so I'm probably a bit biased.  He's been doing more open 
source logos lately, like Apache Rivet (http://tcl.apache.org/rivet) and 
now Apache TCL wants him to do one.  He also submitted a ton of logos 
for the POI competition and finished in spots 2 through 6 (split his own 
vote :)

Anyway, my 2 cents.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Logo competion..

2003-01-23 Thread Serge Knystautas
alan.gerhard wrote:

not too sure about a new logo, but definately more
variations; was looking for the /Powered by JAMES/ logo, the
'smaller' logo, for example, to make it easier to place them
through various sites.


We had a smaller logo (not necessarily a powered-by) that we used on 
http://www.mailhive.net that you could grab (90x67 pixels).  I could ask 
Randy to put together a powered-by logo based on the current one, but 
often these get kind of ugly because you're jamming in extra text into 
an already small area.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Logo competion..

2003-01-23 Thread Serge Knystautas
Danny Angus wrote:

would he like to make the feather colours match the new apache feather colours... at all..?




Sure, I asked him to see if he could make a powered-by version this 
morning, and can ask him to put out the big one with the new apache 
feature colo[u]rs.

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Apache James... HORRAY! :-D

2003-01-23 Thread Serge Knystautas
Kenny Smith wrote:

Awesome! :)

Nicola Ken Barozzi wrote:



Congrats guys, in case you've missed it ;-) you're a TLP at Apache
@see http://www.apache.org/.


We just posted something to slashdot about James becoming a TLP, but 
their site is running like molasses (*)# Perl. :)

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-22 Thread Serge Knystautas
Noel J. Bergman wrote:

Again, if someone can demonstrate the List methods that embody this presumed
contract, I'm happy to listen.  The fact that we don't use methods other
than those found on Collection belies the necessity, in my view.


I'm sorry you feel you had to write so much... again I'm willing to 
leave it as a Collection since you're so adamant on this point.

As to your last point, read the first line to List's JavaDocs... it says 
it is an ordered Collection.  To me as a Java developer, an ordered 
Collection with duplicates is a List... that's all the Collection API 
provides.  I'm sorry, but I haven't heard a negative implication of 
allowing index references.

Please let's just let this rest.  There's no sense spending this much 
energy talking on this topic when there's code and documentation that 
everyone seems comfortable solving (sorry, don't mean to be a last word 
freak).

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-22 Thread Serge Knystautas
Serge Knystautas wrote:

Please let's just let this rest.  There's no sense spending this much 
energy talking on this topic when there's code and documentation that 
everyone seems comfortable solving.

And to follow that, a community where everyone agrees isn't feasible... 
(let's focus on where we do agree and build on that rather than go into 
long diatribes on where we don't).

--
Serge Knystautas
Lokitech
Software - Strategy - Design
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-21 Thread Serge Knystautas
Noel J. Bergman wrote:

If the question is whether the interface should change, there ought to be
reasons.  So far, I have not seen any was my point.


Ok, I just meant that you can't reference the implementation if we're 
talking interfaces.

I understand, and I am all for meaningful contracts.  My point is that a
Java Collection is not unordered.  It can be either ordered or unordered,
based upon the implementation class.


Yes, this is my point... we should not leave it up to the implementation 
as to whether it is ordered or not.

Agreed, a Collection is ordered or unordered.  And a List is, An 
ordered collection (also known as a sequence) as you quoted from the 
javadocs.  Since the MX record query produce an ordered set of IP 
addresses, I'm saying the interface should return an ordered collection.

The ListIterator also adds backwards traversal, list mutators, and index
operations.


Backwards trasversal is a consequence of having order.  Mutators also 
are a consequence of order.  Index operations are a consequence of 
having order while allowing duplicates.

None of these List behaviors are necessary parts of the client contract we
need to expose as far as I can see.  All that we require is that the
elements be ordered according to our application (RFC) defined scheme.  But
by changing the interface to a List, we preclude the ability to use any
other type of ordered collection.


The only other ordered collections I know of aside from List is the 
SortedSet.  If we can determine whether we need to allow duplicates, we 
can choose one or the other.  I'm not looking to enable methods that 
shouldn't be allowed on this result, but for the same reason that we 
return a Collection instead of an Object, if we have certain 
characteristics that we know should be present in the result, we should 
pick the appropriate interface.

I hope I am clearer now.


Yes, and I hope I am as well.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-20 Thread Serge Knystautas
Serge Sozonoff wrote:

Hi Aaron,

The James DNSServer class has a custom Comparator and does the ordering. It
returns an ordered list.


Yeah, the DNSServer code uses a Vector as the underlying implementation 
and a custom comparator.  Then all we really need to do is change the 
method contract to maintain that this is a List and not a Collection.

As for SortedSet vs. List, it logically makes more sense to have it as a 
SortedSet since it wouldn't make sense to have multiple MX records to 
the same IP address.  But you never know, I don't think DNS could 
enforce this... I guess we just do extra checks as we add the IP 
addresses and avoid duplication.  I might just make it a List to avoid 
working this out... the benefit of making it a SortedSet seem minimal to me.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/




--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-20 Thread Serge Knystautas
Harmeet Bedi wrote:

At the moment Serge S's code is working so it does not impede anyone. I
could roll it back or one could apply additional improvements that Serge S
sends. Let me know if you prefer rollback.


Yeah, I think it's functional and just has a design flaw (a static 
reference or something), so I would just apply new patch(es) as they're 
available.

Serge Knystautas
Loki Technologies
http://www.lokitech.com



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-20 Thread Serge Knystautas
Steve Short wrote:

You can use multiple MX records to the same IP to improve performance by
allowing James to use multiple concurrent connections to the same mail
server.  IIRC Javamail has some per connection synchronisation and
multiple MX records can be used to enable multiple connections.


So do you think we should collapse these and return a SortedSet, or just 
return all possible servers using a List?

Serge Knystautas
Loki Technologies
http://www.lokitech.com/




--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: JIRA for James

2003-01-20 Thread Serge Knystautas
Nicola Ken Barozzi wrote:

Not really, I was addressing your comment about IssueZilla that 
Collabnet uses (Tigris is of Collabnet).

Yeah, that was Harmeet's comment actually.


As for Scarab, it will most probably be usde because Pier, the Bugzilla 
guy, is more than fed up with admininstring Bugzilla, and will change as 
soon as he can to a better system. AFAIK there is no other OS bug 
tracking system other than Scarab...

I can definitely sympathize with Pier.  When I mentioned JIRA to him 
privately, he sounded pretty stressed in general from dealing with this. :)

OpenSymphony is a smaller but similar high-quality Java open source 
project
depot (similar to Jakarta), and I think the affiliated business 
(Atlassian)
has produced something a lot better than Scarab in JIRA.


It's not OS, and some have espressed that they would feel more than 
uneasy to use it for all Apache.

Yeah, there's a lesson here in how to make a profit on top of the open 
source market... CollabNet is doing something very similar to Atlassian 
in that CollabNet has proprietary extensions that they will use to have 
a sellable version of Scarab.  Meanwhile, Atlassian didn't open source 
the core but justs licenses it for open source use for free... just 
interesting to see how the different strategies are playing out.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: Jabber (Instant Messaging) Support

2003-01-20 Thread Serge Knystautas
Noel J. Bergman wrote:

Alexis,

I'm posting this to summarize our discussion.  Please join
[EMAIL PROTECTED] with whatever e-mail address you want to use
(mailto:[EMAIL PROTECTED]), and you'll be able to reply
to the list.

You have indicated that you'd be pleased to bring JabberServer to the Apache
James project, and work with us to incorporate Jabber services into James.
This would be an on-going project, not a simple port and drop.  We all agree
that integrating Jabber messaging with the other services provided by James
would provide numerous benefits for many users.

Jabber would be a peer of the other James messaging services.  We are
working on a new unified user data model, and all of the services ought to
be able to take advantage of the unified model.  The Jabber Service would
fit into our class hierarchy, use our connection management, DNS support,
storage, and other Avalon components.

I understand that you have some issues with XML stream parsing.  Your
comment was the server SAX parser read chunk of data from the client stream
with fixed size (instead of element by element). And sometime the client
wait for a server response to continue to send something
in the stream (and the server blocks on reading the remaining data).
Deadlock can occurs really fast.  Apparently, you're using Xerces with some
custom code to simulate a non-blocking socket read.  Perhaps it would help
to look at http://yaja.sourceforge.net, and see if there are some ideas that
we can reuse.


I just added a link on the Wiki page to Smack, which seems like a pretty 
nice client library for Java (apache license no less).  I don't know if 
it's of that much use, but if nothing else maybe test cases.  The main 
reason I took note though was because it has one of the easier APIs I've 
seen.  Also maybe this library to get around the XML stream parsing 
issues you're facing... it's been a while since I've looked into IM 
protocols.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect,Make use of higher level api

2003-01-20 Thread Serge Knystautas
Noel J. Bergman wrote:

Change from Collection-List sounds good to me. Will go ahead and make


this


change in a day or two unless someone objects or gets to it sooner.



The method returns a Collection of servers.  At the time when we use the
Collection, all that we can know, without changing the content of the
Collection, is the order and value of the elements.  Each Collection class
provides its own Iterator type.  If the actual Collection is sorted, the
order is not lost; the underlying object is still the same.  Any decision
about sorting can be done within the method when it decides which subclass
of Collection to return.

In this case, we use a Vector.  Vector is an AbstractList, and the provided
Iterator iterates through the contents in order.  If there is any sorting to
do, we can do it before returning the Vector.  When we use the Collection in
RemoteDelivery, for example, we get an Iterator from the Collection, and use
it:

	Iterator i = targetServers.iterator();

I haven't seen anyone provide a justification to change the current
interface.  Whatever policy we want to manage the MX records can be handled
by the current interface, from what I've seen.


Well, you're using a straw man argument IMHO.  The question is whether 
the interface should change, and you're talking about how the underlying 
implementation behaves.

The reason to change the interface is that MX Records have an ordering, 
so the interface that returns a IP addresses based on MX records should 
return something that indicates that this is ordered.  Right now our 
interface does not indicate it is ordered.  Sure, we are *implementing* 
the ordering, but the interface isn't accurate and hence needs to be 
changed.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect, Make use of higher level api

2003-01-19 Thread Serge Knystautas
- Original Message -
From: Harmeet Bedi [EMAIL PROTECTED]


 From: Serge Sozonoff [EMAIL PROTECTED]
  Please hold off on the Commit of the DnsJava upgrade, I am still
  cleaning/clearing up a few things with Noel and we should have a new
 version

 Sorry wasn't aware. I was concerned that your patch wasn't committed for a
 few days and there was no conversation about it on the list.

There was conversation on the list about it... the faults were pointed out
and (other) Serge said he would go fix and send revised changes.  I'm not
sure what email reader you're using, but Mozilla or Outlook would let you
track threads pretty easily.

 Upgrade seems fine. I have tested the upgrade on James 2.1 and have been
 using upgraded DNS Java library on my mail servers for some time. (this
 email is through the same server)

I don't think the library changes are in discussion.  It's the code changes
that's in question.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect, Make use of higher level api

2003-01-19 Thread Serge Knystautas
- Original Message -
From: Harmeet Bedi [EMAIL PROTECTED]


 DNSServer block returs a sorted collection now and has been from the first
 instance of the block. One could loose ordering in a collection but
 converting to list does not help as list is a collection. Iterator may be
 the best to express the idea of order.

err, a Collection is unordered, and a List is an *ordered* Collection.  Yes,
a List is a Collection, differentiated by the exact attribute we want...
ordering.  An Iterator would restrict how you could use the result.

 Sorting is the responsibility of DNSServer implementation not the user of
 API. The collection returns MX Records sorted by priority. Remote Delivery
 gets hold of and collection through mailet context(o.a.j.James), converts
to
 an iterator and attempts to send email to the first mail server address
than
 second if first fails and so on. The only 2 methods called on Collection
are
 Collection::size and Collection::iterator.

Right, and on a Collection, iterator is not guaranteeing an order.

 Converting to a List will not really help as the returned collection/list
 contains only contains the IP address. There is not enough context like
 priority in the returned collection/list to allow the user of the API to
 effectively sort on.

The DNS server needs to return the List... it *will* know the correct order
to put the IP addresses in.  Yes, we cannot later convert it to a List and
expect it to create an order, which I why I think the DNS server should
return a List.  If it is already, that's great.

 /**
  * Returns a Collection of Strings of hostnames or ip addresses that
  * are specified as mail server listeners for the given hostname.
  * This is done using MX records, and the hostnames or ip addresses
  * are returned sorted by MX priority.
  *
  * @param host - the domain name for which to find mail servers
  * @return a Collection of Strings of hostnames, sorted by priority
  */
 Collection getMailServers(String host);

Yes ok, so this should be changed... getMailServers(String host) should
return a List because those IP addresses should be ordered by the underlying
implementation.

  I thought there was a conf option for whether to do authoritative
lookups,
  no?

 Yes it does and it seems good to have the config option.
 The default is false and that is probably the better option. I am not
 suggesting the config option should be removed but curious if folks ever
 change the authoritative lookup setting.

Ok, so we're leaving it as is?

Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: JIRA for James

2003-01-19 Thread Serge Knystautas
- Original Message -
From: Nicola Ken Barozzi [EMAIL PROTECTED]


 Collabnet will move to Scarab once it's released, and I'm confident that
 Apache will encourage users to move to Scarab too.

 As for Avalon, we are sticking with Bugzilla for now.

Yeah, I'm somewhat disappointed CollabNet has such influence over the Apache
infrastructure.  Don't get me wrong, I'm incredibly appreciative of their
huge and long-term contributions.  Just that we seem to be heading towards
Scarab, based largely because CollabNet has sponsored that project.
OpenSymphony is a smaller but similar high-quality Java open source project
depot (similar to Jakarta), and I think the affiliated business (Atlassian)
has produced something a lot better than Scarab in JIRA.

Anyway, had garnered some hope by seeing that Forrest and (maybe, but guess
not) Avalon would be using it.  If the future is already set, then no
worries.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




JIRA for James

2003-01-18 Thread Serge Knystautas
I brought this up a while ago, but since the folks that run nagoya 
didn't seem to interested, I didn't push it further.

However, I've just come to know that Forrest uses JIRA, and Peter Donald 
is planning to move Avalon to JIRA (this was 2 months ago, so may have 
changed his mind since).

We're in the process of migrating all our commercial development from 
Bugzilla to JIRA because it's just a much better issue tracking system. 
 Better interface, faster, more flexibility, release management...  And 
it's free for open source projects.

Anyway, since other Apache projects seem to be adopting it, I think it's 
worth considering.  I think anyone who tries JIRA will have a hard time 
arguing against it. :)

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: mailing list issues

2003-01-18 Thread Serge Knystautas
Kenny Smith wrote:

Hey all,

I seem to be subscribed multiple times and am getting many copies of
everything. Can however maintains the list make sure that only
[EMAIL PROTECTED] is subscribed to the list? I would really
appreciate it.

Kenny Smith
JournalScape.com


Check the mail headers to see what addresses you are subscribed as.  You 
were sending a bunch of messages using an address that wasn't 
subscribed, so I subscribed that one.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [VOTE] PMC

2003-01-18 Thread Serge Knystautas
- Original Message -
From: Harmeet Bedi [EMAIL PROTECTED]


 It does not talk about respository plans. I thought that repository was a
 really important thing for 3.0. Is this intentional as it is not an
external
 feature ?
 Maybe something like this would be good to add.
 
 Provide a common Repository interface to all of James' protocol servers
and
 to support stanadard repository data formats like maildir to ease
 migration.

Sure, sounds good.  I would add mbox in there as well.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: [PATCH] Upgrade to DnsJava 1.3.1, add DNS Server autodetect, Make use of higher level api

2003-01-18 Thread Serge Knystautas
- Original Message -
From: Harmeet Bedi [EMAIL PROTECTED]


 Looks good but a few minor things
 - I don't think there is any need to change DNServer interface to return a
 list instead of collection. The results obtained are already sorted
 according to priority and there is no need to do any more sorting. The
 results returned are a collection of IP address so not sure what List to
 collection does. Would prefer backward compatible API unless there is a
real
 gain.

Are you saying it's returning a Collection right now?  If it is, then it
should be returned as a List.  MX records have an order, and if we put the
results in a Collection, it seems that we risk losing the ordering, doesn't
it?

 One general question. Do we ever need to do autoritative lookups for MX
 record ? Wouldn't that slow up.

I thought there was a conf option for whether to do authoritative lookups,
no?

Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: IMAP Support

2003-01-18 Thread Serge Knystautas
- Original Message -
From: Darrell DeBoer [EMAIL PROTECTED]


 Yep, the current mail storage doesn't give the basic functionality we
need,
 like flag persistence, hierarchical mailboxes and searching. To get IMAP
 working with James2, we'll need an IMAP storage mechanism that is
 back-compatible with the current mechanism (in some way), so that SMTP can
 deliver to an inbox which is accessible both as a POP3 repository and a
 mailbox within the IMAP mailbox structure.

Aside from some search, what else do we need to add to the mail repository
interface to support IMAP?

Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: missing mails

2003-01-17 Thread Serge Knystautas
alan.gerhard wrote:

i can no longer publish to the james list.

either you guys see what i am sending but i don't or my
emails are not getting there.

i am receiving only from mail.xx.com (JAMES) but sending
to both JAMES and SENDMAIL so i really do not know what is
happening.

all very bizar as this is recent from about a week ago ...
alan



Alan Gerhard
Gerhard Computing, Inc.
[EMAIL PROTECTED]


You need to subscribe to the list to send messages, otherwise they 
require me to approve each message.

I was on a trip the past few days and thought my approved emails were 
going through, but our spam filter had caught them.  Your messages are 
going through now.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: [VOTE] PMC

2003-01-17 Thread Serge Knystautas
Danny Angus wrote:

Hi,

James commiters..

As you will have seen if we can get the detail done in time we can get our TLP proposal in front of the board on wednesday.

Therefore I propose that:

The initial PMC of the Apache James project be all active commiters and that active be considered as those who voted in the vote which decided us to propose James for elevation to TLP being:

Serge Knystautas
Danny Angus
Peter Goldstein
Noel Bergman
Charles Bennet

Further nominations and election to the board of other commiters not mentioned being allowed at any time hereafter.

Further that unless anyone has a good reason to nominate any other person Serge be elected un-opposed as PMC chair, as he has been nominated already. So ... Any further nominations for the Chair?


_Please_ express your opinion ASAP so we can get this done in time.

All of these points are interim measures which may be reviewed by the PMC after it has been formed.


+1 and no further nominations. :)

(danny, sorry I haven't had time to read your proposal... been on biz 
travel this week... will read again in detail this weekend and will let 
you know if I have any comments.  from first reading when you put it 
out, I don't remember anything outstanding.)


--
Serge Knystautas
Loki Technologies
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: James TLP

2003-01-17 Thread Serge Knystautas
Danny Angus wrote:

I put a proposal template and draft covering letter in proposals/tlp  for
review...


Danny,

I went through and made some small edits (typos, small changes), added 
the history section, and otherwise I think it looks good to go.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com/



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: New to the list..

2003-01-14 Thread Serge Knystautas
Noel J. Bergman wrote:

2) Is there a reason why fetchpop does a send instead of a store?



Absolutely.  Doing a store would bypass the James pipeline.  Doing the send
puts the message through local message processing.  This is considered
desirable.  An argument could be made for it being a configuration option.


IMHO, absolutely not... if you want to put it at the top of the 
pipeline, put it in the root repository, which is always the top of the 
spool for local message processing.  The only reason I can think to not 
specify via repository is if you don't want to have fetchpop know where 
that repository is (I suppose somewhat of use, but even still doesn't 
seem that critical).

3) Is anyone else working on something like this or interested in this
  at all?



I think that there would be considerable interest, especially since your
version now allows us to integrate yahoo and hotmail, amongst other things,
into James.


Yeah, the Yahoo! mail javamail implementation is pretty cool.


Sounds like it would be good to see your code.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: New to the list..

2003-01-14 Thread Serge Knystautas
Noel J. Bergman wrote:

Doing a store would bypass the James pipeline.  Doing the send
puts the message through local message processing.  This is considered
desirable.  An argument could be made for it being a configuration option.



IMHO, absolutely not... if you want to put it at the top of the
pipeline, put it in the root repository, which is always the top
of the spool for local message processing.



Serge, please clarify your point.  The term repository is overloaded a bit
too much for clarity in this context.  I am not at all sure that we are
disagreeing.

FetchPOP inserts mail the same way that the SMTPHandler does, using
sendMail().  Eventually, sendMail() calls setState(), which specifies which
processor.  It does not store the user's mail directly in the user's
mailbox.


Yeah, probably are, so just to clarify...

All sendMail(Mail) does is store the mail object in the _inbound_ 
repository, which out of the box is something like 
file://var/mail/spool.  So if fetchpop just stored the mail object to 
file://var/mail/spool repository, you'd have the same result (mail gets 
processed).

You could have this target repository as an optional configuration 
setting (as you suggested) so maybe we are agreeing.  But since it 
seemed you were saying that fetchpop had to do sendMail() to get the 
mail processing to happen, I didn't think we were.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



Re: cvs commit ...

2003-01-12 Thread Serge Knystautas
Noel J. Bergman wrote:

 Converted tabs to 4 spaces.



Looks like the primary change was trimming trailing spaces.


I did just do search and replace on tabs to 4 spaces, but in saving the 
files it does remove trailing spaces as well.


While you're at it, I believe that we agreed to delete author tags from all
source files.  I do not see any reason to affect such a change in the v2
branch, but we might as well do it on the HEAD.


Sounds good.. I'll commit the removal of the author tags in a bit.

--
Serge Knystautas
Loki Technologies
http://www.lokitech.com/


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




  1   2   3   4   5   >