Re: XML Server example [DIRMINA-258]

2012-06-01 Thread Mark Webb
Ashish,

Did you ever post this code to the repository?

Thanks,
Mark


On Wed, Dec 29, 2010 at 10:15 PM, Ashish paliwalash...@gmail.com wrote:
 On Thu, Dec 30, 2010 at 12:06 AM, Niklas Gustavsson
 nik...@protocol7.com wrote:
 On Wed, Dec 29, 2010 at 7:24 PM, Emmanuel Lécharny elecha...@apache.org 
 wrote:
 great ! We have to make it an independent module in MINA then, because it's
 really the XML parser we want to use for any kind of XML based protocol in
 MINA !

 Right, that would be easy enough. It's designed to be independent on
 Vysper. However, it currently only implements the limited subset of
 XML that XMPP uses. So, for generic XML usage, further development
 would be needed (like comments, doctype, PIs).


 I think it should be fine to start with :) users will have something
 to start with.

 Coming back to my dumb question, about adding an XML example along
 with MINA examples.
 I see two ways
 1. Implement a codec (fork from Vysper and refine) and use it in the example.
 2. Provide a simple example and continue to work on #1

 I see no harm in providing an example with 2.0.X series and have more
 robust codec in 3.0.

 - ashish


Re: MIBA 2.0.0 : what's next ?

2010-09-29 Thread Mark Webb
I assume the API will be backwards compatible though, right?


On Tue, Sep 28, 2010 at 7:38 PM, Emmanuel Lécharny elecha...@apache.org wrote:
  On 9/28/10 4:36 PM, Alex Karasulu wrote:

 I'm afraid that MINA 3.0 will be a total rewrite, with no way to get
 fixes
 from 2.0... I consider 2.0 as dead wood at this point.

 Hahaha is this a reference to the crusty Norwegian Wood codename that
 someone gave it a while back?

 Not even close to that ! It's just a coincidence...

 Regardless yeah sounds like it. No worries then. But why bother forking a
 branch instead just move the current 2.0 trunk to 2.0 branch and start
 writing fresh new code?

 We already have a 2.0 branch. May be we will remove what we have in trunk
 and move the 3.0 branch to trunk, now that the 2.0.1 branch has been
 created.


 --
 Regards,
 Cordialement,
 Emmanuel Lécharny
 www.iktek.com




Re: MIBA 2.0.0 : what's next ?

2010-09-27 Thread Mark Webb
+1, create a mina-2.0.x branch and let trunk be 3.0.  Also, what about
all current bugs/feature requests in JIRA, should we move them to 3.0?
 I see that there a a bunch of JIRA entries currently in as 2.0.1, but
should we make sure that they should be 2.0.1 and not 3.0?

...just my $.02


On Mon, Sep 27, 2010 at 11:37 AM, Emmanuel Lecharny elecha...@gmail.com wrote:
  Hi guys,

 now that we got this damn release done, what will we do next ?

 There are many things we still have to take care of :
 - the MINA new site is still pending, waiting for some love
 (http://mina.apache.org/mina2/)
 - the doco is also lagging a lot, and we may want to improve it
 - more important, IMO, is the next version. Should we create an branch for
 2.0.1 immediately, and let trunk be 3.0 ?

 wdyt ?

 --
 Regards,
 Cordialement,
 Emmanuel Lécharny
 www.iktek.com




Re: [VOTE] MINA 2.0.0 take 3 !

2010-09-24 Thread Mark Webb
+1

On Wed, Sep 22, 2010 at 8:21 AM, Maarten Bosteels
mbosteels@gmail.com wrote:
 +1

 Maarten

 On Wed, Sep 22, 2010 at 9:52 AM, Emmanuel Lecharny elecha...@gmail.comwrote:


  [X] +1 | Release MINA 2.0.0


 my vote, btw.


 --
 Regards,
 Cordialement,
 Emmanuel Lécharny
 www.iktek.com





Re: [MINA 3.0] Some thoughts on Debug tool

2010-08-19 Thread Mark Webb
I am all for using JMX.  I have used JMX in a few MINA-based
applications to gather performance numbers and worked out really well.


On Thu, Aug 19, 2010 at 9:41 AM, Ashish paliwalash...@gmail.com wrote:
 Guys,

 I just added some thoughts on the Debug tool on MINA 3.0 design page
 (https://cwiki.apache.org/confluence/display/MINA/MINA+3.0+design).
 Ideas are better on wiki than in my mind.

 JMX would be the best way to get the data from running App, as we
 shall be able to extract more data from running JVM.

 On the initial thoughts, we can capture Statistical and Configuration
 information in the tool, which shall help see the system in action.

 Few items indentified are

 Configuration - (Probably would be good if we can allow change in
 config from the same UI as well as expose JMX API's)
 Chain Config
 Acceptor
 Selector
 Strategy ??

 Stats
 Session's
 Session data
 Heaps Usage
 ???

 I believe our users can provide more info on what might help them
 better manage/debug their systems.

 Thoughts/Comments/Suggestion?

 thanks
 ashish



[jira] Commented: (DIRMINA-258) Example of an XML server and Client.

2010-01-19 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12802665#action_12802665
 ] 

Mark Webb commented on DIRMINA-258:
---

I think handing this off to Ashish might be a good idea.  He seems to know what 
we need and since he is asking I have no problems handing it off.

 Example of an XML server and Client.
 

 Key: DIRMINA-258
 URL: https://issues.apache.org/jira/browse/DIRMINA-258
 Project: MINA
  Issue Type: New Feature
Reporter: Martin Helmhout
Assignee: Mark Webb
Priority: Minor
 Attachments: MINA_XMLServer.zip, MINA_XMLServer.zip, XMLserver095.zip


 The attachment contains an example of an XML Server + client and should help 
 start people building their server quickly.
 Because an XML server was not in the examples, I created quickly something 
 for myself, but want others to also get the fruits and make them better if 
 possible.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Bug, need to perform action after socket bind, but before connection attempt for AbstractPollingIoConnector

2009-06-23 Thread Mark Webb
I have the patches and will handle the JIRA entry.

--Mark

On Tue, Jun 23, 2009 at 9:35 AM, Emmanuel Lecharnyelecha...@apache.org wrote:
 Dauch, Kevin - AES wrote:

 I'm setting up a connection using an ephemeral port to from X to Y, but
 before the connection is attempted I need to know the port that has been
 assigned after the bind operation, but before the connection is attempted.
  Attached is a solution to the problem.


 Hi Kevin,

 attachments don't make it through the mailing list (Antispam policy in
 action :/ ).

 Can you create a JIRA and attach the patch ?

 Thanks !

 Kevin Dauch
 Software Engineer
 kevin.da...@itt.commailto:kevin.da...@itt.com | dir + 315.838.7164
 ITT AES | 474 Phoenix Drive | Rome, NY 13441


 
 This e-mail and any files transmitted with it may be proprietary and are
 intended solely for the use of the individual or entity to whom they are
 addressed. If you have received this e-mail in error please notify the
 sender.
 Please note that any views or opinions presented in this e-mail are solely
 those of the author and do not necessarily represent those of ITT
 Corporation. The recipient should check this e-mail and any attachments for
 the presence of viruses. ITT accepts no liability for any damage caused by
 any virus transmitted by this e-mail.




 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Feature request, need to perform action after socket bind, but before connection attempt for AbstractPollingIoConnector

2009-06-17 Thread Mark Webb
Kevin,

Your best bet would be to submit a bug and then post the patch, or
code.  It will probably not go in to the 2.0 baseline, but will
certainly be considered for the 3.0 baseline.



On Wed, Jun 17, 2009 at 12:56 PM, Dauch, Kevin - AESkevin.da...@itt.com wrote:
 I'm setting up a connection using an ephemeral port to from X to Y, but 
 before the connection is attempted I need to know the port that has been 
 assigned after the bind operation, but before the connection is attempted.  I 
 created an interface PostBindInitializer that is called after the bind but 
 before connection is attempted in AbstractPollingIoConnector.connect0().  
 I've coded it and can submit the added code + changes for the community to 
 review.

 Kevin Dauch
 Software Engineer
 kevin.da...@itt.commailto:kevin.da...@itt.com | dir + 315.838.7164
 ITT AES | 474 Phoenix Drive | Rome, NY 13441


 
 This e-mail and any files transmitted with it may be proprietary and are 
 intended solely for the use of the individual or entity to whom they are 
 addressed. If you have received this e-mail in error please notify the sender.
 Please note that any views or opinions presented in this e-mail are solely 
 those of the author and do not necessarily represent those of ITT 
 Corporation. The recipient should check this e-mail and any attachments for 
 the presence of viruses. ITT accepts no liability for any damage caused by 
 any virus transmitted by this e-mail.



Re: [MINA 3.0] Preliminary thoughts.

2009-06-12 Thread Mark Webb
Between work and school, I have been really busy.  I have been keeping
up with the mailing list, but not doing much with the code.  Things
are starting to shake loose for me, so I will be able to jump back in
now.

What do you see as the major roadblocks to releasing 2.0?


On Fri, Jun 12, 2009 at 3:34 AM, Emmanuel Lecharnyelecha...@apache.org wrote:
 Mark Webb wrote:

 What are the plans for release of 2.0 and the migration to a 3.0
 development?  Is anyone prototyping any of these ideas in sandboxes?


 Hi Mark,

 those are just random thoughts I put down on the site after having posted
 them to the list. I wrote them during my long commute from house to my
 client's office.

 Right now, there is nothing started, except a few experiment in some
 branches (https://svn.apache.org/repos/asf/mina/branches/mina-new-chain2 )
 done a few months ago.

 The main target is still to get MINA 2.0 out asap, and it takes forever,
 because a few peeps are working on it, something I can understand. MINA 2.0
 code is far from being perfect, and it's not very funny to try to fix bugs
 in it, as the inner documentation is pretty sparse, and you have to double
 guess what some portion of the code is supposed to do before trying to fix
 it.

 My idea, when I posted this 3.0 mail, was to try to get more excitation from
 all of the people musing around MINA. It's always fun to start a new
 version, and it's most certainly useful to see what people have in mind,
 instead of going forward, code and commit.

 It will take a couple of months before MINA 2.0 will be released (after a
 couple of RC), and I think we are close to the final version. Seems to be
 good timing to start thinking seriously about MINA 3.0 !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [MINA 3.0] Preliminary thoughts.

2009-06-11 Thread Mark Webb
What are the plans for release of 2.0 and the migration to a 3.0
development?  Is anyone prototyping any of these ideas in sandboxes?



On Thu, Jun 11, 2009 at 7:55 AM, Emmanuel Lecharnyelecha...@apache.org wrote:
 I have created a Wiki page containing this discussion :
 http://cwiki.apache.org/confluence/display/MINA/MINA+3.0+design

 Julien Vermillard wrote:

 Hi,
 reply inline

 Le Wed, 10 Jun 2009 21:37:10 +0200,
 Emmanuel Lecharny elecha...@apache.org a écrit :



 Hi guys,

 as I'm commuting every day for a long distance, I have had time to
 think about what I would see in MINA 3.0. Here is the result of my
 random thoughts


 And not see anymore ;)



 Mina 3.0 design and expected features
 -

 - selectors usage
 We should be able to define the number of selectors to use, and to define
 what they will be used for. For instance, atm, we have a
 selector in the Acceptor, plus a selector per Processor. This is not
 necessarily the best solution.




 * do some perf tests to see if it's better to use one or many
 selectors.
 * decouple the selector usage from the the selector definition. It should
 be possible to define one single selector and use it in many
 places
 * the Acceptor and Processor should not necessarily be associated
 with a thread. it's up to the user to define the thread model to use


 Actually look like we need different strategy for different usage. On the
 right threading/selector strategy look like there is no real
 consensus and we will need to experiment for finding the default
 solution.



 - Chain
 The current chain implemention is cumbersome. We would like to have
 something easier to manipluate, and also easier to debug.

 * the chain should be optionally dynamic : a session can add a new filter
 in the chain whenever needed
 * we should not always copy the chain in each session, if the chain
 is immutable


 Yes, cause most of time we configure the chain on the acceptor and
 never change it again.
 Look like we agreed on copy-on-write for that.



 * however, it should be possible to change the global chain without
 breaking the processing.
 * we should have one chain for incoming messages, and another one for
 outgoing messages
 * it should be possible to have a multi-stage codec (ie, add more
 than one codec filter in the chain)


 Mandatory, it's very often I use a TextLineCodec and a String-to-Pojo
 filter, and I'm sure I'm not alone.



 * we should allow a queuing mechanism to be put in between each
 filters


 What is that for ? Look like you got a new idea :)



 * the Head and Tail filters are useless : they should be removed


 Yes



 * a chain may not be a list of filters. It can be a graph


 If we can keep the API simple enough, why not.



 - Filters

 * a filter should accept a streamObject, the Object can change from one
 filter to another. it's up to the user to correctly handle the
 Object.


 You want to say multi layer codec ?



 * the executor filter could be present in moe than one place in the chain
 (SEDA)


 Mandatory if someone really want SEDA.



 * statistic must be established with a filter


 Again mandatory.
 You won't do stats the same way on HTTP or FTP and stats can be very
 costy.



 * we should define two interfaces for filters : IngoingFilter and
 OutgoingFilter. They will expose the methods to process ingoing and outgoing
 messages


 The question is where to put sessionOpen/Closed/Idle in a two chains
 model.



 - Session
 * we should have two kind of sessions : statefull and stateless.
 Sometime, we don't need to store any kind of information in a session


 If we create the HashMap on first additon, where is the gain ?



 * we should add a sessionManager instead of all the existing queues
 used to manage the dead sessions, the idle sessions, etc.


 We need to rethink the whole separation between IoProcessor and
 IoService and where we manage closing/accepting queues.



 * session should not necessarily be associated with a processor.


 +1



 * If a session is statefull, then we should attach the data to the
 channel instead of creating a map for that


 Can you say more about that, where is the gain ?



 * A session must be attached to an acceptor, allowing more than one chain
 if the acceptor is to deal with more than one single
 SocketServer


 We need to find away for running more than 1 kind of port/protocol with
 the same set of Thread/Executors. I suppose it would be interesting
 for ADS. On my side I run servers with 3 or 4 SocketAcceptors for
 different protocols, somthing like 10 SocketConnectors for different
 protocols.
 Perfs aren't an issue for me actually, be it can change.


 - codec
 * we don't have stateful or stateless codecs. We should distinguish
 the two kinds of codec someone can use.


 +1



 * we should efine a collection of existing codecs


 For that we need a standard way of doing a codec on the Pojo side.
 I'm sure LDAP pjo oof ADs are very different 

Re: [VOTE] Release MINA 2.0.0-M6

2009-05-28 Thread Mark Webb
[X] +1: Yes, release MINA-2.0.0-M6

On Tue, May 26, 2009 at 9:08 AM, Emmanuel Lecharny elecha...@apache.org wrote:
 Hi,

 it was expected to be available last week, sorry for the delay.

 Here is an official vote for a 2.0.0-M6 mina release, which fixes a few but
 serious issues, including one major regression I injected in the code.

 The code has been moved to a branch, on revision 778682 :
 http://svn.apache.org/viewvc/mina/branches/mina-2.0.0-M6/

 I didn't produced any package, as the mavn assembly plugin is deeply bugged
 (http://mail-archives.apache.org/mod_mbox/maven-users/200709.mbox/%3c9ab4ff82-4097-4391-b1dc-9c7a7217d...@commonjava.org%3e)

 [ ] +1    : Yes, release MINA-2.0.0-M6
 [ ] +/- 0 : I don't have any opinion
 [ ] -1      : No, it's not ready



 Thanks !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Re : Re : Vysper Logo [WAS: Re: TODOs for moving Vysper]

2009-04-19 Thread Mark Webb
#4 is the best..

On Fri, Apr 17, 2009 at 8:55 AM, Michael Jakl jakl.mich...@gmail.com wrote:
 On Fri, Apr 17, 2009 at 14:21, Edouard De Oliveira doe_wan...@yahoo.fr 
 wrote:
 i do agree if some remainder to mina is a wish maybe combining the V 
 feathers with mina logo (replacing the mina text with Vysper) is the way

 Good point!

 Here a few ideas based on the Mina logo:

 http://stuff.interlinked.org/VysperLogos/mina_vysper.png (first try,
 click on your own risk :))
 http://stuff.interlinked.org/VysperLogos/mina_vysper2.png
 http://stuff.interlinked.org/VysperLogos/mina_vysper3.png
 http://stuff.interlinked.org/VysperLogos/mina_vysper4.png (like 3 but
 with shadows)

 Cheers,
 Michael



Re: [VOTE] Vysper as MINA subproject

2009-04-12 Thread Mark Webb
+1

On Sun, Apr 12, 2009 at 1:34 PM, Niklas Gustavsson nik...@protocol7.com wrote:
 On Sun, Apr 12, 2009 at 10:32 AM, Julien Vermillard
 jvermill...@archean.fr wrote:
 [X] +1 Yes, accept Vysper as a sub-project

 /niklas



Re: [DISCUSS] Moving Vysper lab to MINA as a sub-product

2009-04-09 Thread Mark Webb
I think its a great idea!!  +1

On Wed, Apr 8, 2009 at 1:09 PM, Ashish paliwalash...@gmail.com wrote:
 What's the final take on Vysper as a subproject?

 - ashish



MINA 3.0

2009-03-09 Thread Mark Webb
I see that there are JIRA entries for MINA 3.0.  Is there a branch for
this yet, or are we still using the trunk for that?

Sorry, I've been away for a while.  New job and grad school are taking
up alot of time.

--Mark


twitter and MINA

2009-02-26 Thread Mark Webb
Found this on reddit.  Thought you all might find this interesting.

http://github.com/robey/kestrel/tree/master

Looks like their message queue system is written using Scala and uses MINA.

really cool!!


Re: Road to RC1

2009-01-27 Thread Mark Webb
I agree with Ashish.  We should move the 1.0 information from the
front main page

On Tue, Jan 27, 2009 at 12:49 AM, Ashish paliwalash...@gmail.com wrote:
 On Mon, Jan 26, 2009 at 4:06 PM, Emmanuel Lecharny elecha...@gmail.com 
 wrote:
 On Sat, Jan 24, 2009 at 1:07 PM, Julien Vermillard
 jvermill...@archean.fr wrote:
 Hi,
 Looks like we are near to RC1, mostly doc issues remaining :
 https://issues.apache.org/jira/browse/DIRMINA/fixforversion/12313160
 For me the most important are :
  - reqres filter which is totally javadocless
  - documentation on how to setup and use APR transport (I'll do it)
  - update website (Ashish is doing a great job here)

 Do you see any other important issues ?
 I think it would be nice if we can have a GA or an RC of MINA2 for
 Apachecon EU.

 Julien


 We also have to check JIRA and clean it (ie, either postpone issues or
 fix them).

 The web-site is to me the most importing thing to clean : it's a mix
 up of 1.0 and 2.0 documentation, leading our users to confusion.

 Do we really need 1.0 stuff? means on the front page. It gives an
 impression that
 we are developing parallel on both :-(

 Lets all take a while and browse the pages and create a page which
 list all the pages that need to be updated for 2.0
 (something similar was done for ApacheDS for i18 of messages). Shall
 be easy for all to contribute.


 IMHO, we are not too far from a RC1. May be a matter of one or two
 weeks, assuming we all have a little time to work on it ;)

 Thanks !



Re: serveral questions

2008-12-25 Thread Mark Webb
My guess would be that an IOException or maybe another related
exception would occur because MINA could not write the data.
Depending on your filter chain, you may get an OOM error.



On Wed, Dec 24, 2008 at 4:36 AM, Steve Johns
steven.mark.jo...@gmail.com wrote:
 Can everyone answer my first question?Thanks.

 On Mon, Dec 15, 2008 at 7:40 PM, Ashish paliwalash...@gmail.com wrote:

 Not sure for 1.1.7, but here is what I can tell you from 2.0

 Please NOTE that these may not be the accurate answers.

 On Sun, Dec 14, 2008 at 1:43 PM, Steve Johns
 steven.mark.jo...@gmail.com wrote:
  Hi I have several quesions about MINA.I am using mina1.1.7.
  1)If server doesn't detect the session close signal and server keeps
 sending
  large amount of message to that session.What will happen?OOM?

 No Clue

  2)How does MINA manage the internal queue for incoming and outcoming
  messages?Is there anyway to control these queue size?

 For Queue Size, don't think we can control the size, as this is the
 construct used

 private final BlockingQueueIoSession waitingSessions = new
 LinkedBlockingQueueIoSession();

 Using a different constructor we could have specified the size

  3)Adding the ExecutorFilter after decoder and encoder filter will cause
  message receive no in order?

 Checkout Event Ordering details at

 http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/executor/ExecutorFilter.html
 AFAIK, for an IoSession using OrderedThreadPool, it shall maintain the
 sequence

  Thanks.
 




[jira] Commented: (DIRMINA-586) Dynamic delimiter support for TextLineCodecFactory

2008-12-22 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12658598#action_12658598
 ] 

Mark Webb commented on DIRMINA-586:
---

I vote to close it.  If we have functionality to solve the request, then it 
should be closed.




 Dynamic delimiter support for TextLineCodecFactory
 --

 Key: DIRMINA-586
 URL: https://issues.apache.org/jira/browse/DIRMINA-586
 Project: MINA
  Issue Type: Improvement
  Components: Filter
Affects Versions: 2.0.0-M1
Reporter: Trustin Lee
Priority: Minor
 Fix For: 2.0.0-RC1


 TextLineCodecFactory supports static delimiters only.  For some cases, users 
 need to switch the delimiter dynamically depending on context.  Related 
 discussion is found here:
 http://markmail.org/message/loiqoej35evt2yvv

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



asyncweb - cannot add 2 HttpServiceFilters to 1 ServiceContainer

2008-12-10 Thread Mark Webb
I am trying to add 2 service filters to a service container.  I am
using an instance of BasicServiceContainer and adding two instances of
HttpServiceHandler to the service container.  I can only get responses
from the first service handler that I add to the service container.

Is this how its supposed to work?  Looking at BasicServiceContainer,
the service handlers are added to a List, so I assume that multiple
handlers can be added to a container.


Thanks for any help you may have.
Mark


Re: asyncweb - cannot add 2 HttpServiceFilters to 1 ServiceContainer

2008-12-10 Thread Mark Webb
Figured it out.  The HttpServiceHandler class will send a 404 message
if the handler's resolver does not match a request.  I thought that it
should just pass the request to the next filter via the call to
next.invoke();

I just wrote my own handler to just pass the request along the chain
if the request does not match.

--Mark


On Wed, Dec 10, 2008 at 3:10 PM, Mark Webb [EMAIL PROTECTED] wrote:
 I am trying to add 2 service filters to a service container.  I am
 using an instance of BasicServiceContainer and adding two instances of
 HttpServiceHandler to the service container.  I can only get responses
 from the first service handler that I add to the service container.

 Is this how its supposed to work?  Looking at BasicServiceContainer,
 the service handlers are added to a List, so I assume that multiple
 handlers can be added to a container.


 Thanks for any help you may have.
 Mark



Re: [SSHD] Other resources needed ?

2008-12-07 Thread Mark Webb
If we have them for other sub-projects we should have one for SSHD.


On Fri, Dec 5, 2008 at 11:29 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi guys,

 what about requesting some specific mailing list for SSHD (and for AsyncWeb
 too) at least for users ?

 Also we need to add MINA to the Export Matrix
 (http://apache.org/dev/crypto.html) as we are using some crypto now.

 Anyone ?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [Vote] Create a MINA subproject to implement a SSH server based on Mina

2008-12-04 Thread Mark Webb
What was the result of this?  Is the integration being done?


On Thu, Nov 20, 2008 at 12:29 PM, Jeff Genender [EMAIL PROTECTED] wrote:
 +1

 Jeff


 On Nov 20, 2008, at 2:52 AM, Guillaume Nodet wrote:

 +1

 On Thu, Nov 20, 2008 at 12:21 AM, Emmanuel Lecharny [EMAIL PROTECTED]
 wrote:

 Hi guys,

 Guillaume Nodet has written a SSH server based on MINA, and as we
 discussed
 it last week, it would be interesting to have it as a subproject. It's
 time
 for a formal vote then :

 [] +1 Yes, accept the SSH server as a sub-project
 [] +/-0 I don't really care
 [] -1 Nope, it does not belong to MINA


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org






 --
 Cheers,
 Guillaume Nodet
 
 Blog: http://gnodet.blogspot.com/
 
 Open Source SOA
 http://fusesource.com




Re: [Vote] Create a MINA subproject to implement a SSH server based on Mina

2008-12-04 Thread Mark Webb
Not a problem.


On Thu, Dec 4, 2008 at 11:05 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 What was the result of this?  Is the integration being done?


 Ooopps... Seems like I forgot to close the vote. My bad !

 So here are the results :
 7 +1 binding votes,
 5 +1 non binding votes

 So it's a go. I will inform Guillaume about this, and grant him commit
 access to MINA.

 Sorry for the delay !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: svn commit: r723396 [1/12] - in /mina/sshd/trunk: ./ src/ src/docs/ src/main/ src/main/filtered-resources/ src/main/filtered-resources/org/ src/main/filtered-resources/org/apache/ src/main/filtere

2008-12-04 Thread Mark Webb
Awesome.  I am really looking forward to playing with this.

One note, you may want to change the java package to
org.apache.mina.sshd.  More of an opinion of mine, but not sure if
there are any guidelines on this.

Thanks
Mark


On Thu, Dec 4, 2008 at 1:59 PM,  [EMAIL PROTECTED] wrote:
 Author: gnodet
 Date: Thu Dec  4 10:59:31 2008
 New Revision: 723396

 URL: http://svn.apache.org/viewvc?rev=723396view=rev
 Log:
 Commit code from the google project, refactored into org.apache.sshd package

 Added:
mina/sshd/trunk/LICENSE.txt
mina/sshd/trunk/NOTICE.txt
mina/sshd/trunk/pom.xml
mina/sshd/trunk/src/
mina/sshd/trunk/src/docs/
mina/sshd/trunk/src/docs/draft-ietf-secsh-filexfer-13.txt
mina/sshd/trunk/src/docs/rfc4251.txt
mina/sshd/trunk/src/docs/rfc4252.txt
mina/sshd/trunk/src/docs/rfc4253.txt
mina/sshd/trunk/src/docs/rfc4254.txt
mina/sshd/trunk/src/docs/rfc4255.txt
mina/sshd/trunk/src/docs/rfc4256.txt
mina/sshd/trunk/src/docs/rfc4419.txt
mina/sshd/trunk/src/main/
mina/sshd/trunk/src/main/filtered-resources/
mina/sshd/trunk/src/main/filtered-resources/org/
mina/sshd/trunk/src/main/filtered-resources/org/apache/
mina/sshd/trunk/src/main/filtered-resources/org/apache/sshd/

 mina/sshd/trunk/src/main/filtered-resources/org/apache/sshd/sshd-version.properties
mina/sshd/trunk/src/main/java/
mina/sshd/trunk/src/main/java/org/
mina/sshd/trunk/src/main/java/org/apache/
mina/sshd/trunk/src/main/java/org/apache/sshd/
mina/sshd/trunk/src/main/java/org/apache/sshd/ClientChannel.java
mina/sshd/trunk/src/main/java/org/apache/sshd/ClientSession.java
mina/sshd/trunk/src/main/java/org/apache/sshd/SshClient.java
mina/sshd/trunk/src/main/java/org/apache/sshd/SshServer.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/
mina/sshd/trunk/src/main/java/org/apache/sshd/client/UserAuth.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/auth/

 mina/sshd/trunk/src/main/java/org/apache/sshd/client/auth/UserAuthPassword.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/channel/

 mina/sshd/trunk/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java

 mina/sshd/trunk/src/main/java/org/apache/sshd/client/channel/ChannelSession.java

 mina/sshd/trunk/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/kex/

 mina/sshd/trunk/src/main/java/org/apache/sshd/client/kex/AbstractDHGClient.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/kex/DHG1.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/kex/DHG14.java
mina/sshd/trunk/src/main/java/org/apache/sshd/client/session/

 mina/sshd/trunk/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/

 mina/sshd/trunk/src/main/java/org/apache/sshd/common/AbstractFactoryManager.java

 mina/sshd/trunk/src/main/java/org/apache/sshd/common/AbstractSessionIoHandler.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Channel.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Cipher.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Compression.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Digest.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/FactoryManager.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/KeyExchange.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/KeyPairProvider.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Mac.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/NamedFactory.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Random.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/Signature.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/SshConstants.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/SshException.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/channel/

 mina/sshd/trunk/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java

 mina/sshd/trunk/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java

 mina/sshd/trunk/src/main/java/org/apache/sshd/common/channel/ChannelPipedInputStream.java

 mina/sshd/trunk/src/main/java/org/apache/sshd/common/channel/ChannelPipedOutputStream.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/channel/Window.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/cipher/
mina/sshd/trunk/src/main/java/org/apache/sshd/common/cipher/AES128CBC.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/cipher/AES192CBC.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/cipher/AES256CBC.java
mina/sshd/trunk/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java

 

Re: svn commit: r723396 [1/12] - in /mina/sshd/trunk: ./ src/ src/docs/ src/main/ src/main/filtered-resources/ src/main/filtered-resources/org/ src/main/filtered-resources/org/apache/ src/main/filtere

2008-12-04 Thread Mark Webb
ok.  no problem


On Thu, Dec 4, 2008 at 5:05 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 Awesome.  I am really looking forward to playing with this.

 One note, you may want to change the java package to
 org.apache.mina.sshd.  More of an opinion of mine, but not sure if
 there are any guidelines on this.


 Currently, asyncweb and ftpserver use org.apache.asyncweb and
 org.apache.ftpserver. I'm not sure that we should do differentely for sshd
 ...

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [Vote] Release MINA 2.0.0-M4

2008-12-04 Thread Mark Webb
[X] +1, let's release 2.0.0-M4 and freeze the API

On Thu, Dec 4, 2008 at 7:50 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 And here is my vote :

 [X] +1, let's release 2.0.0-M4 and freeze the API

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Asyncweb error

2008-12-03 Thread Mark Webb
I am working on writing a simple web server application using the
asyncweb library.  I am getting the following error.  I am using
Google Chrome to test the server.  I do get the proper response in the
browser but I also see this exception in the output of the server.

java.lang.IllegalArgumentException: No enum const class
org.apache.asyncweb.common.HttpMethod.
at java.lang.Enum.valueOf(Enum.java:192)
at org.apache.asyncweb.common.HttpMethod.valueOf(HttpMethod.java:1)
at 
org.apache.asyncweb.common.codec.HttpRequestLineDecodingState$1.finishDecode(HttpRequestLineDecodingState.java:66)
at 
org.apache.mina.filter.codec.statemachine.ConsumeToDynamicTerminatorDecodingState.finishDecode(ConsumeToDynamicTerminatorDecodingState.java:103)
at 
org.apache.mina.filter.codec.statemachine.DecodingStateMachine.finishDecode(DecodingStateMachine.java:151)
at 
org.apache.mina.filter.codec.statemachine.DecodingStateMachine.finishDecode(DecodingStateMachine.java:151)
at 
org.apache.mina.filter.codec.statemachine.DecodingStateProtocolDecoder.finishDecode(DecodingStateProtocolDecoder.java:100)
at 
org.apache.mina.filter.codec.ProtocolCodecFilter.sessionClosed(ProtocolCodecFilter.java:258)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:87)
at 
org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:137)
at 
org.apache.mina.filter.util.CommonEventFilter.sessionClosed(CommonEventFilter.java:55)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:87)
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
at java.lang.Thread.run(Thread.java:619)
[13:50:47] DEBUG [DecodingStateMachine  ] Ignoring the exception
caused by a closed session.
java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at 
org.apache.asyncweb.common.codec.HttpRequestDecodingStateMachine$2.finishDecode(HttpRequestDecodingStateMachine.java:97)
at 
org.apache.mina.filter.codec.statemachine.DecodingStateMachine.finishDecode(DecodingStateMachine.java:168)
at 
org.apache.mina.filter.codec.statemachine.DecodingStateMachine.finishDecode(DecodingStateMachine.java:151)
at 
org.apache.mina.filter.codec.statemachine.DecodingStateProtocolDecoder.finishDecode(DecodingStateProtocolDecoder.java:100)
at 
org.apache.mina.filter.codec.ProtocolCodecFilter.sessionClosed(ProtocolCodecFilter.java:258)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:87)
at 
org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:137)
at 
org.apache.mina.filter.util.CommonEventFilter.sessionClosed(CommonEventFilter.java:55)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:87)
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
at 

Re: Asyncweb error

2008-12-03 Thread Mark Webb
Here is what the browser prints out.  I am now using the listener
example and getting the same exception.

--
You sent these headers with your request:
Accept = 
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Charset = ISO-8859-1,*,utf-8
Accept-Encoding = gzip,deflate,bzip2,sdch
Accept-Language = en-US,en
Connection = Keep-Alive
Host = localhost:9012
User-Agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.29 Safari/525.19
X-SDCH = Chrome 0.4.154.29
--


On Wed, Dec 3, 2008 at 2:29 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 I am working on writing a simple web server application using the
 asyncweb library.  I am getting the following error.  I am using
 Google Chrome to test the server.  I do get the proper response in the
 browser but I also see this exception in the output of the server.


 What is the request the server is receiving ?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Asyncweb error

2008-12-03 Thread Mark Webb
hrmm...   Shouldn't it be a GET?  I am just typing in the URL and
pressing the enter key.  I tried Internet Exploder and Google Chrome
and got the same results.


On Wed, Dec 3, 2008 at 2:41 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 Here is what the browser prints out.  I am now using the listener
 example and getting the same exception.

 --
 You sent these headers with your request:
 Accept =
 text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
 Accept-Charset = ISO-8859-1,*,utf-8
 Accept-Encoding = gzip,deflate,bzip2,sdch
 Accept-Language = en-US,en
 Connection = Keep-Alive
 Host = localhost:9012
 User-Agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
 AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.29 Safari/525.19
 X-SDCH = Chrome 0.4.154.29
 --


 from the stack trace you posted, the error is due to a wrong http method (it
 should be OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE or CONNECT). What is
 the method you are using ?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Asyncweb error

2008-12-03 Thread Mark Webb
Just tried Firefox and saw the exception.

On Wed, Dec 3, 2008 at 2:46 PM, Mark Webb [EMAIL PROTECTED] wrote:
 hrmm...   Shouldn't it be a GET?  I am just typing in the URL and
 pressing the enter key.  I tried Internet Exploder and Google Chrome
 and got the same results.


 On Wed, Dec 3, 2008 at 2:41 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 Here is what the browser prints out.  I am now using the listener
 example and getting the same exception.

 --
 You sent these headers with your request:
 Accept =
 text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
 Accept-Charset = ISO-8859-1,*,utf-8
 Accept-Encoding = gzip,deflate,bzip2,sdch
 Accept-Language = en-US,en
 Connection = Keep-Alive
 Host = localhost:9012
 User-Agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
 AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.29 Safari/525.19
 X-SDCH = Chrome 0.4.154.29
 --


 from the stack trace you posted, the error is due to a wrong http method (it
 should be OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE or CONNECT). What is
 the method you are using ?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org






Re: Asyncweb error

2008-12-03 Thread Mark Webb
I am seeing the same error with wget as well.  I think I have narrowed
down the problem.  In the class HttpRequestLineDecodingState line 67
you have an IoBuffer that represents the request.  There is then the
following line of code:

HttpMethod method = HttpMethod.valueOf(product.getString(asciiDecoder));

When I print out the variable product using a hex dumper, I get the following:

: 47 45 54 20 2F 72 73 73   20 48 54 54 50 2F 31 2E  GET /rss HTTP/1.
0010: 30 0D 0A 55 73 65 72 2D   41 67 65 6E 74 3A 20 57  0..User-Agent: W
0020: 67 65 74 2F 31 2E 31 31   2E 33 0D 0A 41 63 63 65  get/1.11.3..Acce
0030: 70 74 3A 20 2A 2F 2A 0D   0A 48 6F 73 74 3A 20 6C  pt: */*..Host: l
0040: 6F 63 61 6C 68 6F 73 74   3A 39 30 31 32 0D 0A 43  ocalhost:9012..C
0050: 6F 6E 6E 65 63 74 69 6F   6E 3A 20 4B 65 65 70 2D  onnection: Keep-
0060: 41 6C 69 76 65 0D 0A 0D   0A 00 00 00 00 00 00 00  Alive...
0070: 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00  
0080: 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00  

The rest is all zero and the buffer is 2048 bytes.  I might be off on
this, but I am not sure we want to pass in a 2048 byte IoBuffer to
valueOf in order to get a result back.

--Mark

On Wed, Dec 3, 2008 at 2:50 PM, Mark Webb [EMAIL PROTECTED] wrote:
 Just tried Firefox and saw the exception.

 On Wed, Dec 3, 2008 at 2:46 PM, Mark Webb [EMAIL PROTECTED] wrote:
 hrmm...   Shouldn't it be a GET?  I am just typing in the URL and
 pressing the enter key.  I tried Internet Exploder and Google Chrome
 and got the same results.


 On Wed, Dec 3, 2008 at 2:41 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 Here is what the browser prints out.  I am now using the listener
 example and getting the same exception.

 --
 You sent these headers with your request:
 Accept =
 text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
 Accept-Charset = ISO-8859-1,*,utf-8
 Accept-Encoding = gzip,deflate,bzip2,sdch
 Accept-Language = en-US,en
 Connection = Keep-Alive
 Host = localhost:9012
 User-Agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
 AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.29 Safari/525.19
 X-SDCH = Chrome 0.4.154.29
 --


 from the stack trace you posted, the error is due to a wrong http method (it
 should be OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE or CONNECT). What is
 the method you are using ?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org







Re: 2.0-RC1 road to success ...

2008-11-23 Thread Mark Webb
What I meant was, do we have pop/imap and smtp access using our
apache.org accounts.  Can I set up thunderbird to send/receive mail?
This is just something that I did not set up but might now be
interested in doing.


On Sun, Nov 23, 2008 at 7:23 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 Don't committers have apache.org email accounts?  I never set mine up.
  Where can I go to get directions on that?


 You can commit with your apache.org email, which is mwebb at apache dot org
 as requested one year and a half ago.

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: 2.0-RC1 road to success ...

2008-11-23 Thread Mark Webb
Thanks for the info.  You certainly don't have to sell me on gmail, I
have been using it for years and think its the best.

On Sun, Nov 23, 2008 at 7:44 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 What I meant was, do we have pop/imap and smtp access using our
 apache.org accounts.  Can I set up thunderbird to send/receive mail?


 AFAIR, you can forward any mail you receive to mwebb at a.o  to another mail
 account by updating your .forward on your people.a.o/mwebb home directory.
 Apache does not setup a mailbox for your account.

 You have some instruction here :
 http://www.apache.org/dev/user-email.html

 FYI, I usually redirect everything to gmail, just because they have a bloody
 good anti-spam system (and I must say I do that for all my incoming mails :
 I forward all of them to gmail, and thunderbird is reading them from gmail.
 Two big advantages :
 - less spam
 - and I have a web access to my mail.
 However, on big cons : I depend on google who now has a total access to my
 private data...)

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





[jira] Commented: (DIRMINA-489) Composite IoBuffer

2008-11-21 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12649786#action_12649786
 ] 

Mark Webb commented on DIRMINA-489:
---

The code submitted by David Lloyd has been placed in the baseline.  Unless 
there are problems, this should be closed.

 Composite IoBuffer
 --

 Key: DIRMINA-489
 URL: https://issues.apache.org/jira/browse/DIRMINA-489
 Project: MINA
  Issue Type: New Feature
  Components: Core
Reporter: David M. Lloyd
Assignee: Mark Webb
 Fix For: 3.0.0-M1

 Attachments: mina-composite-20080515.patch.gz, 
 mina-composite-20080517.patch, mina-composite-20080521-2.patch, 
 mina-composite-20080521.patch, mina-composite-20080723-1.patch, 
 mina-composite-20080723-2.patch


 Provide a way to create a large IoBuffer from several smaller IoBuffers, 
 without copying the underlying data.
 It would probably be acceptable to constrain the composite buffer in various 
 ways, for example by disallowing autoexpanding or otherwise changing the 
 capacity, the implementation could be greatly simplified.
 The goal is to be able to process large messages with a minimum of copying.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (DIRMINA-489) Composite IoBuffer

2008-11-21 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12649891#action_12649891
 ] 

Mark Webb commented on DIRMINA-489:
---

Fine by me.  

 Composite IoBuffer
 --

 Key: DIRMINA-489
 URL: https://issues.apache.org/jira/browse/DIRMINA-489
 Project: MINA
  Issue Type: New Feature
  Components: Core
Reporter: David M. Lloyd
Assignee: Mark Webb
 Fix For: 3.0.0-M1

 Attachments: mina-composite-20080515.patch.gz, 
 mina-composite-20080517.patch, mina-composite-20080521-2.patch, 
 mina-composite-20080521.patch, mina-composite-20080723-1.patch, 
 mina-composite-20080723-2.patch


 Provide a way to create a large IoBuffer from several smaller IoBuffers, 
 without copying the underlying data.
 It would probably be acceptable to constrain the composite buffer in various 
 ways, for example by disallowing autoexpanding or otherwise changing the 
 capacity, the implementation could be greatly simplified.
 The goal is to be able to process large messages with a minimum of copying.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: mina as a load balancer

2008-11-13 Thread Mark Webb
Thanks.  I am going to give it a try and see what happens.

--Mark


On Thu, Nov 13, 2008 at 5:29 AM, Ashish [EMAIL PROTECTED] wrote:
 not exactly as as load balancer, but did tried my hands on processing
 messages in fault tolerant mode :-)
 no concrete results yet

 On Thu, Nov 13, 2008 at 12:36 AM, Mark Webb [EMAIL PROTECTED] wrote:
 Has anyone ever looked into this?




 --
 thanks
 ashish

 Blog: http://www.ashishpaliwal.com/blog

 My Photo Galleries: http://www.pbase.com/ashishpaliwal



Re: [PROPOSAL] Create a MINA subproject to implement a SSH server based on Mina

2008-11-13 Thread Mark Webb
+1


On Thu, Nov 13, 2008 at 9:35 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Guillaume Nodet wrote:

 A few weeks ago, I've started a small project at googlecode to
 implement an SSH server in Java based on Mina.
 You'll find some background at http://gnodet.blogspot.com/

 The project is still in its early stage and require a lot more work to
 be fully usable, but I've been doing some tests and the basic SSH
 protocol itself is implemented.
 The project is available at http://code.google.com/p/sshd/

 My thinking is that it would be a good candidate to become a
 subproject of Mina (along with ftpserver and asyncweb), so i'm
 starting this discussion to gauge the interest of the MINA TLP to host
 such a subproject.


 Sounds a pretty interesting project. I think that MINA already hosts
 AsyncWeb, FtpServer, having a ssh server fits pretty well IMHO.

 So you have my +1 !


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Re : [VOTE] Merging some simplifications

2008-11-12 Thread Mark Webb
simple is all I understand.   +1

On Wed, Nov 12, 2008 at 11:36 AM, Edouard De Oliveira
[EMAIL PROTECTED] wrote:
 +1 for merging
  Cordialement, Regards,
 -Edouard De Oliveira-
 http://tedorg.free.fr/en/main.php




 
 De : Julien Vermillard [EMAIL PROTECTED]
 À : dev@mina.apache.org
 Envoyé le : Mercredi, 12 Novembre 2008, 10h22mn 28s
 Objet : [VOTE] Merging some simplifications

 Hi,
 Since it's cutting some feature, I would like a vote before merging
 my branch from sandbox to trunk.

 The branch :
 http://svn.apache.org/repos/asf/mina/sandbox/jvermillard/mina-cleaning/

 The list of changes :
 http://svnsearch.org/svnsearch/repos/ASF/search?path=%2Fmina%2Fsandbox%2Fjvermillard%2Fmina-cleaning

 * Removed IoService idle event, you still have IoSession idle.
 * Reworked IdleStatusChecker for make the code easier to understand.
 * Removed setTrafficMask and keeped suspendWrite / suspendRead methods.
 * Removed trafficMask event from the IoFilter chain.
 * Applied http://issues.apache.org/jira/browse/DIRMINA-620 by
   removing superfluous IoSession close() methods. When you close a
   session, you need to use session.close(boolean); and say explicitly
   if you want to flush the write queue or no.

 [ ]: +1, Merge to trunk
 [ ]: 0, Abstain
 [ ]: -1, Don't merge

 Julien





mina as a load balancer

2008-11-12 Thread Mark Webb
Has anyone ever looked into this?


Re: [MINA 2 new chain] Some feedback

2008-11-10 Thread Mark Webb
I might need some beers just to cure the headache I get from looking
at that stack trace.

I agree that the +1 is ugly and the ChainIterator is a much better
solution.  Would a queue work in this situation?

--Mark


On Mon, Nov 10, 2008 at 8:56 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi guys,

 I'm still doing some experiment with the new chain (in mina-new-chain2
 branch). It's not totally satisfactory, mainly for two reasons :
 - I have used a List to store the filters, so I have to propagate an integer
 index to jump from one filter to another. This is a bit ugly, as you have
 inex+1 all over the code. I will move to what was suggested by Steve Ulrich
 (passing a ChainIterator instead of an index will mask the ugly +1).
 - The current MINA code is so damn complex that it makes it an order of
 magnitude more complicated to fix than to rewrite it, but this is not
 something I want to jump in, yet. As an example, here is the stack you get
 when you receive a message and send back a response (just for you to realize
 how insane is the current code ...). And we only have three filters : mdc,
 codec and logging.

 AbstractPollingIoProcessor$Processor.run()
  NioProcessor(AbstractPollingIoProcessorT).process()
   NioProcessor(AbstractPollingIoProcessorT).process(T)
 NioProcessor(AbstractPollingIoProcessorT).read(T)
 | DefaultIoFilterChain.fireMessageReceived(java.lang.Object)
 |   DefaultIoFilterChain.callNextMessageReceived(IoFilterChain$Entry,
 IoSession, Object)
 |
 DefaultIoFilterChain$HeadFilter(IoFilterAdapter).messageReceived(IoFilter$NextFilter,
 IoSession, Object)
 |   DefaultIoFilterChain$EntryImpl$1.messageReceived(IoSession,
 Object)
 |
 DefaultIoFilterChain.callNextMessageReceived(IoFilterChain$Entry, IoSession,
 Object)   |
 MdcInjectionFilter(CommonEventFilter).messageReceived(IoFilter$NextFilter,
 IoSession, Object)
 | MdcInjectionFilter.filter(IoFilterEvent)
 |   IoFilterEvent.fire()
 |
 DefaultIoFilterChain$EntryImpl$1.messageReceived(IoSession, Object)
 |
 DefaultIoFilterChain.callNextMessageReceived(IoFilterChain$Entry, IoSession,
 Object)
 |
 ProtocolCodecFilter.messageReceived(IoFilter$NextFilter, IoSession, Object)
 | | TextLineDecoder.decode(IoSession, IoBuffer,
 ProtocolDecoderOutput)
 | |
 TextLineDecoder.decodeAuto(TextLineDecoder$Context, IoSession, IoBuffer,
 ProtocolDecoderOutput)
 | | -+
 | |
 ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush()
 | |
 DefaultIoFilterChain$EntryImpl$1.messageReceived(IoSession, Object)
 | |
 DefaultIoFilterChain.callNextMessageReceived(IoFilterChain$Entry, IoSession,
 Object)
 | |
 LoggingFilter.messageReceived(IoFilter$NextFilter, IoSession, Object)
 | |
 DefaultIoFilterChain$EntryImpl$1.messageReceived(IoSession, Object)   |
 |
 DefaultIoFilterChain.callNextMessageReceived(IoFilterChain$Entry, IoSession,
 Object)   | |
 DefaultIoFilterChain$TailFilter.messageReceived(IoFilter$NextFilter,
 IoSession, Object)   | |
 ChatProtocolHandler.messageReceived(IoSession, Object)
 | |
 ChatProtocolHandler.broadcast(String)
 | |
 NioSocketSession(AbstractIoSession).write(Object)   |
   | NioSocketSession(AbstractIoSession).write(Object,
 SocketAddress)
 | |
 DefaultIoFilterChain.fireFilterWrite(WriteRequest)
 | |
 DefaultIoFilterChain.callPreviousFilterWrite(IoFilterChain$Entry, IoSession,
 WriteRequest)
 | |
 DefaultIoFilterChain$TailFilter.filterWrite(IoFilter$NextFilter, IoSession,
 WriteRequest)
 | |
 DefaultIoFilterChain$EntryImpl$1.filterWrite(IoSession, WriteRequest)
 | |
 DefaultIoFilterChain.callPreviousFilterWrite(IoFilterChain$Entry, IoSession,
 WriteRequest)
 | |
 LoggingFilter(IoFilterAdapter).filterWrite(IoFilter$NextFilter, IoSession,
 WriteRequest)
 | |
 DefaultIoFilterChain$EntryImpl$1.filterWrite(IoSession, WriteRequest)
 | |
 DefaultIoFilterChain.callPreviousFilterWrite(IoFilterChain$Entry, IoSession,
 WriteRequest)
 | |
 ProtocolCodecFilter.filterWrite(IoFilter$NextFilter, IoSession,
 WriteRequest)
 | |   |
 TextLineEncoder.encode(IoSession, Object, ProtocolEncoderOutput)
 | |   |
 ProtocolCodecFilter$ProtocolEncoderOutputImpl(AbstractProtocolEncoderOutput).write(Object)
 | |   | -+
 | |  

Re: [MessageSent] let's remove it...

2008-11-10 Thread Mark Webb
spot on.  +1.  remove it.



On Mon, Nov 10, 2008 at 7:11 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi guys,

 a few days ago, Julien suggested that we should remove this event. I never
 used it, found it a bit cumbersome, but didn't had time to double check
 what's doing.

 Let's go back to the mailing list...

 Back in july, I posted a mail where I questionned some code :

 ProtocolCodecFilter.filterWrite() {

   ...
   ProtocolEncoder encoder = getEncoder(session);
   ProtocolEncoderOutputImpl encoderOut = getEncoderOut(session,
   nextFilter, writeRequest);

   try {
   encoder.encode(session, message, encoderOut);

   // Here, the encoded message is sent.
   encoderOut.flush();

   // Here an empty message is sent...
   nextFilter.filterWrite(session, new WriteRequest(
   new MessageByteBuffer(writeRequest.getMessage()),
   writeRequest.getFuture(),
 writeRequest.getDestination()));

 There are two places in this code where the message is written : in the
 encoderOut.flush()  and in the filterWrote() call.

 Trustin replied saying :

 The two code blocks above are effectively same. The reason we call
 filterWrite once more with an empty buffer (MessageByteBuffer or
 MessageWriteRequest) is to generate a proper messageSent event which
 corresponds to the written message. Let me know if there's more efficient
 way to take care of messageSent events.

 There is an obvious way to be more efficient here : simply not sending this
 messageSent event !


 But this is not a good enough reason to remove it. Let's dig another mail.

 https://issues.apache.org/jira/browse/DIRMINA-574

 Steps to reproduce:
 1) Connection is closed at the socket level.
 2) A user writes a message.
 3) the message is encoded by a ProtocolCodecFilter.
 4) MINA notices the closed socket and fires a sessionClosed event.
 5) After the sessionClosed event is fired, IoFilterChain.clear() is called.
 6) MINA tries to write the user write request, but the session is closed
 already - all write requests are discarded.
 7) Before MINA discards all write requests, MINA checks if the first item in
 the queue is an empty buffer, which means a special separator which is
 handled by ProtocolCodecFilter.
 8) If there's an empty buffer in the head of the queue, MINA fires a
 messageSent event with the empty buffer in the hope that ProtocolCodecFilter
 will catch it.
 9) However, the filter chain is empty and therefore IoHandler implementation
 gets ClassCastException.


 At step 8, we send a MessageSent event, which leads to an Exception.
 Clearly, this is not good. Removing the MessageSent event will immediatly
 solve this blocker issue.

 Last, not least, another mail states that :

 Also, I'd like to make a plug for removing messageSent() callbacks and
 having the end-user API rely on WriteFutures instead. It's a hassle to
 write new filters when you have to worry about passing back the correct
 object.

 Using WriteFuture will clearly be a better way to get the message as it has
 been posted to the chain, instead to having to encode it back, as it's
 currently done.

 Anyone disagree ? Anything I missed ?

 Thanks !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: onPreAdd, onPostAdd, onPreRemove, onPostRemove : are they useful ?

2008-11-09 Thread Mark Webb
never used them.


On Sun, Nov 9, 2008 at 2:52 PM, Maarten Bosteels
[EMAIL PROTECTED] wrote:
 never used them.

 On Sat, Nov 8, 2008 at 11:35 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi guys,

 while working on the chain refactoring, I found that those four methods are
 never invoked into the core (invocation for these methods can only be found
 in tests, and always by explicit calls).

 Do we really needs them ? Has someone already uase them ?

 Thanks !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org






Re: onPreAdd, PostAdd, remove : correction

2008-11-08 Thread Mark Webb
If they are not being used, delete them.  I can say that I have never used them.

--Mark

On Sat, Nov 8, 2008 at 5:43 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi,

 those methods are called when a new filter is registred into the chain.
 However, the few filters implementing those methods typically check that the
 added filter is not already present in the chain :

 ProtocolCodecFilter, ExecutorFilter, KeepAliveFilter :
   public void onPreAdd(IoFilterChain parent, String name,
   NextFilter nextFilter) throws Exception {
   if (parent.contains(this)) {
   throw new IllegalArgumentException(
   You can't add the same filter instance more than once.
  Create another instance and add it.);

 but SslFilter does some intrigating things, which seems to me deserves to be
 found in a init() method.

 IMO, pre/post operation are just a bit too much. The way it should be done
 is :
 - init the filter
 - add/remove a filter from the chain

 and that's it.

 Anyone has a better vision of what those method are good for ?


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [proposal] Was : Re: setTrafficMask poll again

2008-11-08 Thread Mark Webb
Getting compilation errors.  Cannot find the TrafficMask class:

/Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java:[25,35]
cannot find symbol
symbol  : class TrafficMask
location: package org.apache.mina.core.session

/Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java:[24,35]
cannot find symbol
symbol  : class TrafficMask
location: package org.apache.mina.core.session

/Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java:[28,35]
cannot find symbol
symbol  : class TrafficMask
location: package org.apache.mina.core.session

/Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java:[36,35]
cannot find symbol
symbol  : class TrafficMask
location: package org.apache.mina.core.session


--Mark


On Fri, Nov 7, 2008 at 10:54 PM, Mark Webb [EMAIL PROTECTED] wrote:
 +1

 On Wed, Nov 5, 2008 at 1:16 PM, Maarten Bosteels
 [EMAIL PROTECTED] wrote:
 +1

 On Wed, Nov 5, 2008 at 3:01 PM, Julien Vermillard [EMAIL PROTECTED]wrote:

 I would like to propose :
  - ignore setTrafficMask events in the filter chain (looks like Mark is
   already agreeing)

  - remove setTrafficMask(..) and keep the following IoSession methods :
   suspendRead(), suspendWrite(), resumeRead(), resumeWrite()
   which naming is much better and add methods isWriteSuspended()
   isReadSuspended()
 Kill the TrafficMask class and clear all the filters of references to
 TrafficMas, and of course fix transport classes.

 That would reduce the complexity of the thingy and make the API for
 pausing traffic a bit more user-friendly.

 WDYT ?

 Julien


 On Tue, 4 Nov 2008 18:38:15 +0100
 Julien Vermillard [EMAIL PROTECTED] wrote:

  It was used by Read/WriteThrottlingFilter wich was removed of 2.0 :
 
 http://www.nabble.com/Dropping-traffic-throttling-from-2.0-td16092085.html
  as said by Emm look like it's used nowhere is MINA codebase.
 
 
  As said by Trustin in this mail the remplacement is supposed to be
  o.a.m.f.executor.* and no references to setTrafficMask();
 
  Frankly I don't understand how you can throttle read, without using
  setTrafficMask and disabling OP_READ on the low level socket.
 
  Julien
 
  On Tue, 4 Nov 2008 18:01:58 +0100 Maarten Bosteels
  [EMAIL PROTECTED] wrote:
 
   Wasn't it an attempt to implement throttling ?
  
   When requests are coming in faster than they're being processed
   = set TrafficMask to block reading
   = TCP buffers will fill up (OS level)
   = TCP will tell sender to slow down
   = OOM prevented
  
   when queue of incoming messages gets smaller = resume reading
  
   I haven't tried this yet, so I could be totally wrong.
  
   Maarten
  
   On Tue, Nov 4, 2008 at 5:50 PM, Julien Vermillard
   [EMAIL PROTECTED]wrote:
  
Hi,
   
There is something in MINA who has hook everywhere in the core,
it's traffic mask. As far I understand the concept, the idea is
to be able to block read and/or writes using
session.setTrafficMask(...), I never needed it, and I wonder who
use it and for what exactly ?
   
Julien
   





Re: [proposal] Was : Re: setTrafficMask poll again

2008-11-08 Thread Mark Webb
I just went ahead and fixed the errors.

On Sat, Nov 8, 2008 at 8:30 PM, Mark Webb [EMAIL PROTECTED] wrote:
 Getting compilation errors.  Cannot find the TrafficMask class:

 /Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java:[25,35]
 cannot find symbol
 symbol  : class TrafficMask
 location: package org.apache.mina.core.session

 /Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java:[24,35]
 cannot find symbol
 symbol  : class TrafficMask
 location: package org.apache.mina.core.session

 /Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java:[28,35]
 cannot find symbol
 symbol  : class TrafficMask
 location: package org.apache.mina.core.session

 /Users/elihusmails/dev/mina/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java:[36,35]
 cannot find symbol
 symbol  : class TrafficMask
 location: package org.apache.mina.core.session


 --Mark


 On Fri, Nov 7, 2008 at 10:54 PM, Mark Webb [EMAIL PROTECTED] wrote:
 +1

 On Wed, Nov 5, 2008 at 1:16 PM, Maarten Bosteels
 [EMAIL PROTECTED] wrote:
 +1

 On Wed, Nov 5, 2008 at 3:01 PM, Julien Vermillard [EMAIL PROTECTED]wrote:

 I would like to propose :
  - ignore setTrafficMask events in the filter chain (looks like Mark is
   already agreeing)

  - remove setTrafficMask(..) and keep the following IoSession methods :
   suspendRead(), suspendWrite(), resumeRead(), resumeWrite()
   which naming is much better and add methods isWriteSuspended()
   isReadSuspended()
 Kill the TrafficMask class and clear all the filters of references to
 TrafficMas, and of course fix transport classes.

 That would reduce the complexity of the thingy and make the API for
 pausing traffic a bit more user-friendly.

 WDYT ?

 Julien


 On Tue, 4 Nov 2008 18:38:15 +0100
 Julien Vermillard [EMAIL PROTECTED] wrote:

  It was used by Read/WriteThrottlingFilter wich was removed of 2.0 :
 
 http://www.nabble.com/Dropping-traffic-throttling-from-2.0-td16092085.html
  as said by Emm look like it's used nowhere is MINA codebase.
 
 
  As said by Trustin in this mail the remplacement is supposed to be
  o.a.m.f.executor.* and no references to setTrafficMask();
 
  Frankly I don't understand how you can throttle read, without using
  setTrafficMask and disabling OP_READ on the low level socket.
 
  Julien
 
  On Tue, 4 Nov 2008 18:01:58 +0100 Maarten Bosteels
  [EMAIL PROTECTED] wrote:
 
   Wasn't it an attempt to implement throttling ?
  
   When requests are coming in faster than they're being processed
   = set TrafficMask to block reading
   = TCP buffers will fill up (OS level)
   = TCP will tell sender to slow down
   = OOM prevented
  
   when queue of incoming messages gets smaller = resume reading
  
   I haven't tried this yet, so I could be totally wrong.
  
   Maarten
  
   On Tue, Nov 4, 2008 at 5:50 PM, Julien Vermillard
   [EMAIL PROTECTED]wrote:
  
Hi,
   
There is something in MINA who has hook everywhere in the core,
it's traffic mask. As far I understand the concept, the idea is
to be able to block read and/or writes using
session.setTrafficMask(...), I never needed it, and I wonder who
use it and for what exactly ?
   
Julien
   






Re: New branch for clearing features

2008-11-07 Thread Mark Webb
Thanks.  I am using eclipse as well.  I guess I will keep on creating
new workspaces.

--Mark


On Fri, Nov 7, 2008 at 4:28 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Julien Vermillard wrote:

 On Thu, 6 Nov 2008 22:24:48 -0500
 Mark Webb [EMAIL PROTECTED] wrote:



 I have a simple, somewhat related question.  With all of these
 branches now being used, what IDE are you all using and how are you
 keeping all the branches straight?

 I am using Eclipse and am creating a new workspace for each branch.
 It seems like there much be an easier way.

 TIA
 Mark


 Hi, I'm using mvn eclipse:eclipse and new workspace and as everybody
 suffering eclipse OOM errors and crappyness if I load too much
 project in my workspace :(


 I'm using eclipse, and have a different instance for each branch : IFAIK,
 you can't load twice the same project in one workspace, even if it's
 supposed to be on what eclipse call 'workspace' (which is unrelated to the
 'workspace' you create on the disk).

 I don't have any OOM, even with something like 6 projects loaded :
 - ADS
 - MINA
 - FtpServer
 - AsyncWeb
 - JMeter
 - My own test project

 but I'm using my own eclipse launch script to use 800 Mb.

 Of course, I'm on Linux !

 If someone has a better solution, I would love to have more than one MINA
 version in eclipse !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: UDP request/response, second attempt

2008-11-07 Thread Mark Webb
Sure, it can be done.  the problem is that the packets could be
received on either end out of order, or not at all.  As long as you
are willing to accept these risks, you will be fine.



On Thu, Nov 6, 2008 at 8:57 AM, Lorenz Breu [EMAIL PROTECTED] wrote:
 Hi again

 OK, these questions may seem dumb to you, so sorry for the inconvenience.
 Anyway, has anybody ever implemented a request/response mechanism using
 the Datagram classes in MINA (e.g. NIODatagramConnector)? My question is
 if it was intended to be used in this way, i.e. if is possible for an
 Acceptor's handler to do a session.write(reply) after receiving a
 request and a Connector's handler to do a session.read(reply) after
 sending the request. In java.io a socket can be read from after a send
 event, but what I have to do now is prepare a connector (i.e. find a
 free port), then start an acceptor on that port. When that is ready I
 can send the request. The acceptor on the other side receives the
 message and sends the reply back out through it's own connector to the
 port the request came from. The original sender then receives the reply
 on it's acceptor and disposes the acceptor once the message is received.
 So for each request/reply the requester has to set up and dispose a new
 acceptor, which may lead to unnecessary overhead(??). I was considering
 adding a java.io reply socket to my AprDatagramSession, but that would
 be a hack and wouldn't quite fit in with the rest of the framework.

 So, to summarize, should it be possible to reply to a request within a
 DatagramSession? Has it been done with the NIO stuff? If so, I would
 continue looking for a solution in the APR transport classes.

 Regards,
 Lorenz



Re: [proposal] Was : Re: setTrafficMask poll again

2008-11-07 Thread Mark Webb
+1

On Wed, Nov 5, 2008 at 1:16 PM, Maarten Bosteels
[EMAIL PROTECTED] wrote:
 +1

 On Wed, Nov 5, 2008 at 3:01 PM, Julien Vermillard [EMAIL PROTECTED]wrote:

 I would like to propose :
  - ignore setTrafficMask events in the filter chain (looks like Mark is
   already agreeing)

  - remove setTrafficMask(..) and keep the following IoSession methods :
   suspendRead(), suspendWrite(), resumeRead(), resumeWrite()
   which naming is much better and add methods isWriteSuspended()
   isReadSuspended()
 Kill the TrafficMask class and clear all the filters of references to
 TrafficMas, and of course fix transport classes.

 That would reduce the complexity of the thingy and make the API for
 pausing traffic a bit more user-friendly.

 WDYT ?

 Julien


 On Tue, 4 Nov 2008 18:38:15 +0100
 Julien Vermillard [EMAIL PROTECTED] wrote:

  It was used by Read/WriteThrottlingFilter wich was removed of 2.0 :
 
 http://www.nabble.com/Dropping-traffic-throttling-from-2.0-td16092085.html
  as said by Emm look like it's used nowhere is MINA codebase.
 
 
  As said by Trustin in this mail the remplacement is supposed to be
  o.a.m.f.executor.* and no references to setTrafficMask();
 
  Frankly I don't understand how you can throttle read, without using
  setTrafficMask and disabling OP_READ on the low level socket.
 
  Julien
 
  On Tue, 4 Nov 2008 18:01:58 +0100 Maarten Bosteels
  [EMAIL PROTECTED] wrote:
 
   Wasn't it an attempt to implement throttling ?
  
   When requests are coming in faster than they're being processed
   = set TrafficMask to block reading
   = TCP buffers will fill up (OS level)
   = TCP will tell sender to slow down
   = OOM prevented
  
   when queue of incoming messages gets smaller = resume reading
  
   I haven't tried this yet, so I could be totally wrong.
  
   Maarten
  
   On Tue, Nov 4, 2008 at 5:50 PM, Julien Vermillard
   [EMAIL PROTECTED]wrote:
  
Hi,
   
There is something in MINA who has hook everywhere in the core,
it's traffic mask. As far I understand the concept, the idea is
to be able to block read and/or writes using
session.setTrafficMask(...), I never needed it, and I wonder who
use it and for what exactly ?
   
Julien
   




Re: poll VmPipe

2008-11-06 Thread Mark Webb
I have never used it.  I could see it having a utility for unit
testing, but that is it.


On Thu, Nov 6, 2008 at 11:05 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 peter royal wrote:

 On Nov 6, 2008, at 7:28 AM, Dan Creswell wrote:

 Hmmm, if VmPipe is done right it should allow me to build an app/service
 on
 top of MINA that can easily be tested all inside of a single JVM (good
 for
 unit testing amongst other things) or deployed fully networked with
 minimum
 code disruption.

 Is it intended to be used in such a fashion?  If not possibly it can be
 dropped.

 I am using it for exactly this purpose.

 We have two services that can either be deployed as separate VMs, or
 inside of the same VM. WHen its inside the same VM, we cull out the protocol
 filters and just use a VmPipe. Minimal code disruption to support both
 configurations.

 Interesting. Edouard's proposal then makes sense : implementing the
 underlying communication using Queues and removing a lot of the current code
 could help.

 You will still have the same API (IoAcceptor/IoConnector), and won't be
 disruptive.

 This has to be evaluated.


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: ConnectionThrottleFilter

2008-11-06 Thread Mark Webb
I am not currently using this for anything, I am sure that given
enough time I could come up with reasons for using it.  OTOH, if we
are looking to streamline the baseline, I say remove it and maybe
create a filter repository that people can get to for  additional
filters.  Something similar to what Apache has done with its modules.

--Mark

On Thu, Nov 6, 2008 at 3:58 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Niklas Gustavsson wrote:

 On Thu, Nov 6, 2008 at 6:46 PM, Julien Vermillard
 [EMAIL PROTECTED] wrote:


 But if you accept the session (opening) you send all the TCP soup
 for opening/accepting the socket connection, and if you close the
 session directly you send all the TCP soup for closing the socket
 connection. I hardly can imagine it can protect you from any DoS.


 That would at least be cheaper than doing the rest of your stuff
 (decoding/encoding, bussines logic and so on) , right?

 Well, if you are going to drop connections just because you have hundred (or
 even thousands) arriving at the same time, then that means your server is
 being badly DoSed. Now you have two cases :
 - your server is reachable by outsiders : you better have a front system to
 deal with such attacks. Whatever you do on MINA side will be far from enough
 to protect you. So I tend to think that, in this case, the connection
 throttling is absolutely useless.
 - your server is only used from a private nertwork. Some wrong process is
 pounding your server, and it will make it dies sooner or later. Again, in
 this case, I would rather let it die quickly, in order to be able to react
 quickly.

 Considering that such attacks (or incorrect usage from internal
 applications) are impossible to avoid, trying to fix them on the application
 layer is like trying to empty the sea with a tea spoon...


 So while not
 the perfect protection, it is certainly better than nothing.


 well, in this very case, doing nothing or something is equivalent. You are
 just offering a small margin during which your server will resist, but I'm
 not sure it worth the effort.

 Of course, IMHO :)


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: setTrafficMask poll again

2008-11-05 Thread Mark Webb
+1 to remove it.

On Wed, Nov 5, 2008 at 3:36 AM, Julien Vermillard
[EMAIL PROTECTED] wrote:
 On Tue, 04 Nov 2008 18:24:15 +0100
 Emmanuel Lecharny [EMAIL PROTECTED] wrote:

 Maarten Bosteels wrote:
  Wasn't it an attempt to implement throttling ?
 
 I have no idea. The documentation is pretty scarse, it's not used
 anywhere but as a parameter passed from method to method,  the event
 type is never used to create an event ...
  When requests are coming in faster than they're being processed
  = set TrafficMask to block reading
 
 Which part of MINA is setting this flag ?
  = TCP buffers will fill up (OS level)
  = TCP will tell sender to slow down
  = OOM prevented
 
  when queue of incoming messages gets smaller = resume reading
 
 May be it's a part of a big DoS protection heuristic, but it seems to
 be lagging seriously. Even the throttling filter is a bit
 incomplete ...

 Anyone has a better picture than me on this matter ?


 Abouot traffic mask  the new filter chain I think you could remove the
 filtering events related to setTrafficMask. See
 https://issues.apache.org/jira/browse/DIRMINA-467 I think we will
 never need it.

 Julien



Re: [About the Filter Chain] Proposals

2008-11-03 Thread Mark Webb
I agree that we should not 'slaughter' the current code since we are
getting close to a final 2.0 release.



On Sat, Nov 1, 2008 at 4:27 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 After letting the dust settle on this thread, I can say that I agree
 with what Alex is saying.  I think a 2-way system makes complete
 sense.

 Ok. We then will create a branch named mina-new-chain then, in which we will
 experiment. Be ready for some bad butchering :)

 One great interest I have in this is how will it work with
 containers such as Spring.  I have been using MINA with Spring alot
 lately and want to make sure we keep this support in our system.


 Having some feedback on how you are using MINA with Spring could be
 interesting. Atm, we have some coupling with xbean which is quite complex to
 decipher, and this is certainly not something we want to break...

 Maybe a thread discussing MINA + Spring could help a lot to avoid big
 mistakes to be done while refactoring the code.

 But keep in mind that we can't afford to slaughter MINA current code as we
 are using it in ADS, and we don't really want to re-implement from scratch
 everything we have done, so trust me on that, we are going to be very
 cautious !

 Thanks !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [About the Filter Chain] Events

2008-11-03 Thread Mark Webb
I have used MESSAGE_SENT, not sure I agree that it should disappear.

What about situations where MINA is used in a client library?  Won't
much of your list be reversed?



On Mon, Nov 3, 2008 at 9:41 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi,

 as I'm looking deeply into the impact on the code of the new chain
 proposals, I'm looking at the events we are handling.

 In the following list, I have sorted all the events in two categories :
 incoming and outgoing events. Incoming events are those received from the
 clients, outgoing events are those emitted by the server.

 Here is the list of those events :

 SESSION_CREATED : An incoming event.
 SESSION_OPENED : Seems to me to be a duplication of the previous event. An
 incoming event.
 SESSION_CLOSED : An incoming event.
 MESSAGE_RECEIVED : Clearly an incoming event.
 MESSAGE_SENT : IMHO, useless. Must disappear.
 SESSION_IDLE : Questionable. But if we keep it, should be considered as an
 incoming event.
 EXCEPTION_CAUGHT : Interesting ... IMO, an incoming event too. Even if
 generated during a write operation (or while processing a Write event), it's
 applied to the session.incomingChain so that all the filters can handle it.
 The question is : should we also propagate this event through the
 outgoingChain ?
 WRITE : Outgoing event.
 CLOSE : Not sure what this event is used for. We already have a
 SESSION_CLOSED, I'm wondering if it's not a duplication.
 SET_TRAFFIC_MASK : Seems to be used nowhere. It appears to have been created
 to handle custom events. I suggest that we ignore this event, unless someone
 has a clear vision on how to use it and why.

 Did I forgot anything important?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [About the Filter Chain] Proposals

2008-11-03 Thread Mark Webb
I think we should focus on getting 2.0 out the door.  We have been
working on it long enough and I think there are many people using it
in production or near-production systems.  Once we release, we will
probably get alot more feedback and can use that feedback to
enhance/fix the next version.  I would think that we should move right
towards 3.0.

As we get closer and closer to a release, I think the API should not
change and therefore we should not be adding functionality into the
system unless something is really broke.

just my $.02
Mark


On Mon, Nov 3, 2008 at 10:06 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 I agree that we should not 'slaughter' the current code since we are
 getting close to a final 2.0 release.


 This is something we have to discuss. Here, IMHO, we have two options, both
 have pros and cons :

 1) go as far as needed to get a MINA 2.0 with as much cleaning as needed.
 2) Release MINA 2.0 as fast as possible, fixing the most obvious bugs, and
 move directly to a MINA 3.0

 Option (1) pros :
 - as MINA 2.0 API is not stabilized yet (we are still working on milestone),
 this let use the opportunity to do those changes with a minimal harm
 - we can do that now, not waiting for a 2.0 release to be done in, say, 2
 months
 - this is the perfect opportunity to clean up the code, add the missing
 documentation, and delivering a much better release

 Option (1) cons :
 - it will takes months before we can release a long waited new release
 - many users are already using mina 2.0, and they will be unpleased if we
 change a lot of things into it
 - we have to be careful not to remove any of the existing functionalities,
 something we don't have to take care for a 3.0 branch, as it won't be used
 in production before quite a long time

 Option (2) pros :
 - freedom ! No need to care about the existing code, we can even start from
 a white page.
 - the community can grow faster, as we may have people who are reluctant to
 enter the project while it's in a pre-release state
 - we are not limited in time. 2.0 is expected sooner or later, with a 3.0,
 we have more than a year to get something done

 Option (2) cons :
 - we will have to maintain a 2.0 version which is far from being perfect
 - 2.0 seems to be slow, compared to other framework. Not that important
 IMHO, but releasing a dog is not the perfect way to get some good reports...
 - people who are expecting a better MINA (a simpler one) might wait for one
 more year until 3.0 is out. Even worse, they can run away...

 Of course, I'm just dumping some of the ideas I have about that. atm, I have
 not yet set my mind on which option is the best, but we can still work with
 both options in mind, as soon as what we do is done in a branch. Soon, we
 will be able to decide if we release a 2.0 with or without those
 modifications, and then merge the branch into trunk or create a new version,
 closing the 2.0 branch (ie : it will become a release branch).

 In any case, there is something very important : the current code base is
 not known by a lot of people, and it will take time to build a new community
 around the core code base. The biggest question is : will we find enough
 people wanting to work on the current trunk in order to get the new release
 (be it 2.0 or 3.0) ? And how long will they be dedicated ? What if we
 release a 2.0-RC in the next few months and as we don't have anyone wanting
 to start a 3.0 ?

 so, now, wdyt ?

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [About the Filter Chain] Proposals

2008-11-03 Thread Mark Webb
I am not really doing anything crazy with Spring, just an acceptor,
handler and filter chain.  One item that might be nice is a way to
order the filters in the chain.  Right now its a map.  I am not sure
if filters stay in order when you use Spring.

I would like to Spring-enable more classes, especially filters but
things are fine right now for my requirements.



On Sat, Nov 1, 2008 at 4:27 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 After letting the dust settle on this thread, I can say that I agree
 with what Alex is saying.  I think a 2-way system makes complete
 sense.

 Ok. We then will create a branch named mina-new-chain then, in which we will
 experiment. Be ready for some bad butchering :)

 One great interest I have in this is how will it work with
 containers such as Spring.  I have been using MINA with Spring alot
 lately and want to make sure we keep this support in our system.


 Having some feedback on how you are using MINA with Spring could be
 interesting. Atm, we have some coupling with xbean which is quite complex to
 decipher, and this is certainly not something we want to break...

 Maybe a thread discussing MINA + Spring could help a lot to avoid big
 mistakes to be done while refactoring the code.

 But keep in mind that we can't afford to slaughter MINA current code as we
 are using it in ADS, and we don't really want to re-implement from scratch
 everything we have done, so trust me on that, we are going to be very
 cautious !

 Thanks !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [About the Filter Chain] Events

2008-11-03 Thread Mark Webb
I had logic in my IoHandler that was quite complex and there were 3
different parts of the code that could send data back to the client.
Instead of placing a WriteFuture in all 3 places, I put the logic in
messageSent.

I could just define an IoFutureListener that is passed into all 3
WriteFuture's though.  If it makes our lives (as API developers)
easier, then I can change my code (as an end user).

--Mark


On Mon, Nov 3, 2008 at 10:13 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Mark Webb wrote:

 I have used MESSAGE_SENT, not sure I agree that it should disappear.


 May I ask you in which context you used it ? I'm wondering if we can cover
 your case with WriteFuture ?

 What about situations where MINA is used in a client library?  Won't
 much of your list be reversed?


 That's a very good question ! I don't think it makes any difference. From
 the client side, the incoming events are generated by an outgoing event on
 the server side. Ie, the server write a response, then the client get a
 MESSAGE_RECEIVED event to deal with. In fact, it's really like if you have
 nothing in between the client and the server. The client write a message,
 the server read it, then the server write the response, the client read it.

 If you take the protocolCodecFilter, it works the same for the server and
 the client. A message will have to be encoded in both case when writing the
 message (and it's always on the outgoing chain), and decoded when read
 (incoming chain).

 I may miss something, but AFAICS, it's absolutely symetric.

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [About the Filter Chain] Proposals

2008-11-03 Thread Mark Webb
I agree completely with all of Niklas's comments.



On Mon, Nov 3, 2008 at 11:49 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Niklas Gustavsson wrote:

 On Mon, Nov 3, 2008 at 4:13 PM, Mark Webb [EMAIL PROTECTED] wrote:


 I think we should focus on getting 2.0 out the door.  We have been
 working on it long enough and I think there are many people using it
 in production or near-production systems.  Once we release, we will
 probably get alot more feedback and can use that feedback to
 enhance/fix the next version.


 Big +1. We will find areas that we would like to improve during the
 foreseeable future (this change and ByteBuffer comes to mind).


 yop. And I don't see how we can include that in 2 weeks...

 Including all such changes will delay 2.0 for a long time, long enough
 for MINA to get behind other frameworks. Having a real release out
 will mean getting further feedback from users, so far I haven't seen a
 lot of users requesting this change nor the ByteBuffer change. I think
 we're too critical, the code is great.

 Well, IMHO, the code works. Saying that it's great is another story :) (but
 this might just be a matter of taste ...)

 Anyway, I agree with what you say. We don't release fast enough. Atm,
 regardless to the current code quality, and performance, I think MINA 2 is
 usable, even if there are still some issues to fix. I will do some quick
 perf tests on ADS with MINA 2 and give you some feedback soon.

 Release early, release often.
 We do neither.


 eh ;)



 I would think that we should move right
 towards 3.0.


 I say go work on a branch (as already suggested) and see where that leads.


 There is a new branche for such experiment. Branching is certainly the way
 to go, whatever we do regarding the release !

 I would like to let this thread go for a little bit (let's say a couple of
 days), and then, I think we will have to vote : going for 2.0-RC or modify
 the code massively.

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [About the Filter Chain] Proposals

2008-11-01 Thread Mark Webb
After letting the dust settle on this thread, I can say that I agree
with what Alex is saying.  I think a 2-way system makes complete
sense.  One great interest I have in this is how will it work with
containers such as Spring.  I have been using MINA with Spring alot
lately and want to make sure we keep this support in our system.


--Mark


On Sat, Nov 1, 2008 at 4:29 PM, Alex Karasulu [EMAIL PROTECTED] wrote:
 On Thu, Oct 30, 2008 at 8:28 PM, Emmanuel Lecharny [EMAIL PROTECTED]wrote:

 Hi, I'm currently reviewing the Filter chain we are using internally. This
 is one of the most appealing feature we have, as it allows us to design a
 versatile handling of incoming and outgoing messages. However, in many
 respects, the current implementation is pretty complicated, and could
 benefit from some refactoring.

 I will first try to summarize what we need, and then, from these needed
 features, I will try to define what should remain, and what could be change
 and improved.

 1) What we need
 ---

 - Incoming requests must be handled in a pipeline, where filters are
 executed one after the other, in a predefined order.
 - This order is defined by the protocol designer
 - It can change during the processing, for instance if we need to set up
 some logging for debug purpose
 - Another case would be that some filter can be added or removed depending
 on the current message state (a good example could be a multi-layer protocol
 decoder)
 - This pipeline is a two-way pipeline : it handles incoming requests, and
 outgoing responses
 - The filter chain is not static, but it should be thread safe, so any kind
 of modification must *not* lead to some exception (NPE or inconsistent
 state)
 - Passing to the next filter should be possible in the middle of a filter
 processing (ie, in a specific filter, you can do some pre-processing, call
 the next filter, and do some post-processing)
 - We should be able to use different pipelines depending on the service
 (filters can be arranged differently on the same server for 2 different
 services)
 - Even for two different sessions, we may have different chain of filters
 (one session might use a Audit filter while the next is just fine without
 this filter)
 - We want to decouple the message processing from the socket processor,
 using a special filter which use an executor to process the message in its
 own thread


 (I wish I didn't forgot anything)
 and, ultimately :
 - It should be easy to debug
 - it should be FAST... :)

 All those features describe the perfect system :). How what we have fits
 this beautiful picture ?

 2) Possible improvements
 
 The first big point is that we currently have one single chain, when having
 two could help a lot. The current chain is two-ways, with forward links and
 backwards link. As we have to handle incoming requests but also write
 outgoing response, it has to be two-ways. But one single chain is certainly
 not the best way to handle this. There is no reason why the outgoing chain
 should be the same than the incoming chain. We may even not use the same
 filters !

 Proposition (a) : Let's create two chains instead of one : a
 reader-chain/incoming-chain and a writer-chain/outgoing-chain.

 One other big issue is the way the chain is created and used. Here is, for
 a very simple chain, the stack trace we obtain (we just have a
 ProtocolCodecFilter into the chain, nothing else) when an incoming message
 is being processed, from the bottom to the top (o.a.m stands for
 org.apache.mina in this trace)

 Thread [NioProcessor-1] (Suspended)
  
 o.a.d.agent.ldap.LdapConnectionImpl.messageReceived(o.a.m.core.session.IoSession,
 java.lang.Object) line: 597   -- here, we call the handler ...
  -
  
 o.a.m.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(o.a.m.core.filterchain.IoFilter$NextFilter,
 o.a.m.core.session.IoSession, java.lang.Object) line: 755
  
 o.a.m.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(o.a.m.core.filterchain.IoFilterChain$Entry,
 o.a.m.core.session.IoSession, java.lang.Object) line: 440
  
 o.a.m.core.filterchain.DefaultIoFilterChain.access$5(o.a.m.core.filterchain.DefaultIoFilterChain,
 o.a.m.core.filterchain.IoFilterChain$Entry, o.a.m.core.session.IoSession,
   java.lang.Object) line: 435
  
 o.a.m.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(o.a.m.core.session.IoSession,
 java.lang.Object) line: 835   -- here, we call the next filter in the
 chain, which is the Tail filter -
  o.a.m.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush()
 line: 539
  
 o.a.m.filter.codec.ProtocolCodecFilter.messageReceived(o.a.m.core.filterchain.IoFilter$NextFilter,
 o.a.m.core.session.IoSession, java.lang.Object) line: 265   -- here, we
 jump to the ProtocolCodec filter -
  
 o.a.m.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(o.a.m.core.filterchain.IoFilterChain$Entry,
 

Re: Who is going to go to ApacheCon US next month ?

2008-10-02 Thread Mark Webb
Not me.  I have some hard deadlines here at the office


On Thu, Oct 2, 2008 at 2:23 PM, Niklas Gustavsson [EMAIL PROTECTED] wrote:
 On Thu, Oct 2, 2008 at 7:24 PM, Maarten Bosteels
 [EMAIL PROTECTED] wrote:
 I'd love to be there, I will ask my boss to pay for the trip but I am
 afraid it won't happen.
 Chances are bigger for ApacheCon Europe 2009 (Amsterdam).

 I'm also aiming for ApacheCon Europe. Planing to send in a paper or two.

 /niklas



Application Period Opens for Travel Assistance to ApacheCon US 2008

2008-09-25 Thread Mark Webb
The Travel Assistance Committee is taking in applications for those wanting
to attend ApacheCon US 2008 between the 3rd and 7th November 2008 in New
Orleans.

The Travel Assistance Committee is looking for people who would like to be
able to attend ApacheCon US 2008 who need some financial support in order to
get there. There are VERY few places available and the criteria is high,
that aside applications are open to all open source developers who feel that
their attendance would benefit themselves, their project(s), the ASF and
open source in general.

Financial assistance is available for flights, accomodation and entrance
fees either in full or in part, depending on circumstances. It is intended
that all our ApacheCon events are covered, so it may be prudent for those in
Europe and or Asia to wait until an event closer to them comes up - you are
all welcome to apply for ApacheCon US of course, but there must be
compelling reasons for you to attend an event further away that your home
location for your application to be considered above those closer to the
event location.

More information can be found on the main Apache website at
http://www.apache.org/travel/index.html - where you will also find a link to
the application form and details for submitting.

Time is very tight for this event, so applications are open now and will end
on the 2nd October 2008 - to give enough time for travel arrangements to be
made.

Good luck to all those that will apply.

Regards,

The Travel Assistance Committee


Re: Web site refactoring proposal

2008-09-03 Thread Mark Webb
Seems like a very good move to me...

On Tue, Sep 2, 2008 at 10:25 AM, Emmanuel Lecharny [EMAIL PROTECTED]wrote:

 Niklas Gustavsson wrote:

 On Sat, Jun 7, 2008 at 3:24 PM, Emmanuel Lecharny [EMAIL PROTECTED]
 wrote:


 Otherwise, I would also suggest some refactoring of the main site. Here
 is
 some proposal :



 While we're at it, why not get a similar download page as ActiveMQ
 got, it's a beaty:
 http://activemq.apache.org/activemq-510-release.html

 /niklas



 Any objection if I whip a quick refactoring of MINA web site, just to get
 something like this :

 *Latest Downloads*
  Mina 2.0.0-M3
  Mina 1.1.7
  Mina 1.0.10
  FtpServer 1.0.0-M2
  AsyncWeb-unstable

 * Projects
  Mina
  FtpServer
  AsyncWeb
  Downloads
  Roadmap

 * Documentation
  MINA 1.0
  MINA 1.1
  MINA 2.0
  FtpServer
  AsyncWeb
  FAQ

 * Resources
  Mailing lists  IRC
  Issue tracking
  Sources
  Performances
  Testimonies
  Articles/conferences

 * Community
  Team
  License
  Contributing
  Thanks
  ASF sponsors
  Sponsorship program

 * Upcoming
 ApacheCon US logo

 wdyt ?

 PS: this will be just a first step.


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Re : 2.0 Roadmap ?

2008-08-27 Thread Mark Webb
So how can we get paid to work MINA full time ?   :)

On Wed, Aug 27, 2008 at 3:37 AM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Hi Mark,

 thanks for the comments !

 More inline

 Mark Webb wrote:

 I agree with everything that you all have said here.  The one thing I
 would add is about the documentation/tutorials.  I look around at some
 other projects and sometimes the documentation is better, sometimes
 its worse.  Focusing on the better projects, the documentation is
 spot-on professional.  I have been working with ActiveMQ lately and
 the whole idea of the Enterprise Integration Patterns (EIP) is
 fantastic.

 AFAIK, ctiveMQ has been heavily backed by IONA, who paid some peeps to work
 on it, as they are offering Fuse, an enterprise version of ActiveMQ. THis
 may explain the quality of ActiveMQ site.

  It shows use cases and associated documentation.  I think
 this is what we need.  If you want an SMTP server do this, if you want
 an FTP server do that.  The list goes on and on.


 Agreed.

 I think part of the problem with documentation is that the learning
 curve on the MINA internals is steep.  I have been on the project for
 a couple years and only in the last 4-6 months can I say that I really
 understand the entire system.  This makes it tough for people to dive
  in an help.


 That's so true ! And the overly complexity of the code, when you think that
 it's a small code base (45 KSlocs, out of which the core is 33KSlocs) is
 killing us, specially when you have sparce doc/javadoc.

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Anyone know why Spring integration was renamed to integration-beans?

2008-08-26 Thread Mark Webb
We did not want it to be spring-centric.  The goal was to support
all of the IoC containers like xbeans, spring, pico.



On Tue, Aug 26, 2008 at 1:04 PM, Trustin Lee (이희승) [EMAIL PROTECTED] wrote:
 On Wed, 27 Aug 2008 01:36:19 +0900, Julien Vermillard
 [EMAIL PROTECTED] wrote:

 due to lack of doc/mails as usual

 http://markmail.org/message/o5lzxyrcnkawhnnj

 --
 Trustin Lee - Principal Software Engineer, JBoss, Red Hat
 --
 what we call human nature is actually human habit
 --
 http://gleamynode.net/



Re: Re : 2.0 Roadmap ?

2008-08-26 Thread Mark Webb
I agree with everything that you all have said here.  The one thing I
would add is about the documentation/tutorials.  I look around at some
other projects and sometimes the documentation is better, sometimes
its worse.  Focusing on the better projects, the documentation is
spot-on professional.  I have been working with ActiveMQ lately and
the whole idea of the Enterprise Integration Patterns (EIP) is
fantastic.  It shows use cases and associated documentation.  I think
this is what we need.  If you want an SMTP server do this, if you want
an FTP server do that.  The list goes on and on.

I think part of the problem with documentation is that the learning
curve on the MINA internals is steep.  I have been on the project for
a couple years and only in the last 4-6 months can I say that I really
understand the entire system.  This makes it tough for people to dive
in an help.

...just my $.02


On Tue, Aug 26, 2008 at 7:38 PM, Edouard De Oliveira
[EMAIL PROTECTED] wrote:
 Hi guys,
 Little late on the subject
 but better late than never as people says
 Code features :
- integrating proxy patch
 The proxy connector needs some javadocing and maybe some tighter integration 
 with the core as it was
 primarily intended to work out of the box without any core modifications. 
 Some comments from the team
 would be much appreciated as sometimes it is difficult to question myself 
 after so much time thinking on it
 fresh eyes could open fresh perspectives.

- composite buffers and streams based on it
 There seems to be much interest on this feature avoiding buffer copy is 
 definitely a must have
 +1

- killing IoBuffer
 Need some pointers on this discussion about the downsides of it.
- fixing logging filter
 I like Julien's hardcoded way because log filter is a debugging tool (maybe 
 we should rename it to DebugFilter as well)
 but i would add some booleans to enable/disable event logging programatically 
 on a method basis
 to make it fully configurable.

removing netty2 codec module (who want to use it for Mina 2.0 ?)
 - who is using it ? is there any advantage which is not already built-in core 
 ? if so should we port it ?

test coverage (yeah painfull at this point)
 +1

write traffic throttling
 +1 this is tricky and providing as much help on this subject  will help 
 community

Doc feature :
 +1 to the whole doc effort

state of the art release tarballs
 Rpms and stuff is not a priority for the 2.0 release in my own opinion too.
 Need to look closely to the tarballs to make structure improvements 
 suggestions

 new website, clearer, and with better integration/links to
 subprojects like ftpserver and asyncweb
 Pretty simple example it's hard to find the svn repository link so it's not 
 really a whole start over
 that is needed but maybe a clearer navigation
 Hope this helps.
  Cordialement, Regards,
 -Edouard De Oliveira-
 http://tedorg.free.fr/en/main.php



 - Message d'origine 
 De : Emmanuel Lecharny [EMAIL PROTECTED]
 À : dev@mina.apache.org
 Envoyé le : Mardi, 26 Août 2008, 10h55mn 15s
 Objet : Re: 2.0 Roadmap ?

 Hi guys,

 sorry for not having replied to this mail yesturday, I was busy with
 personal stuff.

 Thanks Julien for having done this summarize. I have to add that we
 didn't discussed all of the items on the list with Julien, but this is a
 very good thing that Julien added the important items. We badly need a
 roadmap for 2.0, taht's for sure.

 Comments in line

 Julien Vermillard wrote:
 Hi,

 next step is to create a wiki page due to the size of the list :)

 Certainly.

 snip/
 Code features :

 - integrating proxy patch

 Don't know what this is about.

 https://issues.apache.org/jira/browse/DIRMINA-415

 Edouard big patch for supporting proxy such as simple port forwarding
 and SOCKS.
 It's somewhat a big patch to shallow.

 ok. We have to look it closely.


 - composite buffers and streams based on it

 I definitely want to get involved here but I need to catch up on the
 conversations had in the past about it.

 We need to discuss this item on the ML, as it will imply a hell lot of
 modifications.


 - killing IoBuffer

 +1

 Sure, +1.

 - fixing logging filter

 +1

 I will create a JIRA plus submit at least two proposals (code)

 - removing netty2 codec module (who want to use it for Mina 2.0 ?)

 +1

 +1

 - test coverage (yeah painfull at this point)

 Yeah test coverage is important but luckily MINA is not that large.
 Test coverage makes it easier for people to get into the code to try
 to add features or fix a bug while knowing their changes/fixes will
 not cause regressions or breakage in the behavior of the API.  Plus
 it's the best example code to use for how to learn to use different
 features of MINA: I always look at test code when learning how to use
 a new piece of OSS since the docs may not be there or may not be
 totally up to date.



 Emmanuel said me exactly the things word for word ;)

 We are sharing a lot with Alex, but more important, we have 

[jira] Commented: (DIRMINA-489) Composite IoBuffer

2008-08-12 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12622025#action_12622025
 ] 

Mark Webb commented on DIRMINA-489:
---

I have checked in the code.  Please take a look and let me know what you think. 
 

Many thanks to Rich as I think he did a fantastic job with the code.  I only 
ran some sanity checks, formatted the code, javadoc'd the code and made sure it 
works with the latest trunk,



 Composite IoBuffer
 --

 Key: DIRMINA-489
 URL: https://issues.apache.org/jira/browse/DIRMINA-489
 Project: MINA
  Issue Type: New Feature
  Components: Core
Reporter: David M. Lloyd
Assignee: Mark Webb
 Fix For: 2.0.0-M4

 Attachments: mina-composite-20080515.patch.gz, 
 mina-composite-20080517.patch, mina-composite-20080521-2.patch, 
 mina-composite-20080521.patch, mina-composite-20080723-1.patch, 
 mina-composite-20080723-2.patch


 Provide a way to create a large IoBuffer from several smaller IoBuffers, 
 without copying the underlying data.
 It would probably be acceptable to constrain the composite buffer in various 
 ways, for example by disallowing autoexpanding or otherwise changing the 
 capacity, the implementation could be greatly simplified.
 The goal is to be able to process large messages with a minimum of copying.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [VOTE] Releasing MINA 2.0.0-M3

2008-08-05 Thread Mark Webb
+1


On Tue, Aug 5, 2008 at 11:37 AM, Emmanuel Lecharny [EMAIL PROTECTED]wrote:

 Julien Vermillard wrote:

 [X]: +1, Release MINA 2.0.0-M3


 I just created the MINA-2.0.0-M4 version in JIRA, just in case ...

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





[jira] Commented: (DIRMINA-519) BufferingFilter

2008-08-03 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12619401#action_12619401
 ] 

Mark Webb commented on DIRMINA-519:
---

These are my results on an OS X machine running Java 1.6.0_05

CPU = 2.4GHz Core 2 Duo


Map type:   ConcurrentHashMap
Runtime:6
Number of threads:  3
Remove probability: 0.1
Ops per second: 17204.25

Map type:   HashMap
Runtime:6
Number of threads:  3
Remove probability: 0.1
Ops per second: 107432.133

Map type:   LazyInitializedCacheMap
Runtime:6
Number of threads:  3
Remove probability: 0.1
Ops per second: 55034.4334

Hope this helps


 BufferingFilter
 ---

 Key: DIRMINA-519
 URL: https://issues.apache.org/jira/browse/DIRMINA-519
 Project: MINA
  Issue Type: New Feature
  Components: Filter
Reporter: Trustin Lee
Assignee: Edouard De Oliveira
Priority: Minor
 Fix For: 2.0.0-M3

 Attachments: test.rar


 As JDK provides BufferedOutputStream, we could provide BufferingFilteer which 
 does the same thing, which buffers encoded data and flushes it out when the 
 buffer becomes full or the flush operation is explicitly requested.  This 
 kind of filter is sometimes useful when a session is generating very small 
 messages too frequently and consequently generates unnecessary traffic 
 overhead.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: VmPipe Usage Question

2008-07-29 Thread Mark Webb
Did you try CumulativeProtocolDecoder ?

I had a very similar problem once and once I switched over to this class
everything worked great.


On Tue, Jul 29, 2008 at 2:08 PM, boB Gage [EMAIL PROTECTED] wrote:

 I have searched far and wide for an answer on this before resorting to
 bothering anyone...
 but I can't quite work this out on my own.

 We're using MINA classes to implement serial and socket connections to
 external devices and decode the data streams from these devices.   I'm
 trying to use VmPipe classes to create a test mode that fakes an external
 device, using data files to define specific device behaviors.

 So far it's working fairly well, with one pretty major glitch.The
 server-side (the fake hardware device) of the VmPipe is receiving
 byte-by-byte data from the client-side (our normal device monitor) and can
 deal with it accordingly.

 Problem is in the other direction.   The server-side uses
 session.write(b) to write a byte at a time to the stream (at properly
 faked baud rate even).But instead of those accumulated bytes feeding
 into our MessageDecoderAdapter descendants as incoming data would from the
 hardware, they are getting picked up by our IoHandlerAdapter descendant as
 individual Byte objects (messageReceived() method).

 How would I get these bytes into the proper decode chain to fully test the
 low-level device data decoding (as per the DemuxingProtocolCodecFactory
 definition from the monitor under test)???

 Thanks in advance!!
 boB Gage
 eko systems, Inc.



Re: releasing 2.0.0-M3 quickly

2008-07-28 Thread Mark Webb
+1 Sounds fine with me.  I am still working on the composite buffer support,
but I do not think that it is critical to get into a release right away.



On Mon, Jul 28, 2008 at 1:15 PM, W.B. Garvelink
[EMAIL PROTECTED]wrote:

 I'd say stick to the 72 hours. Rushing a release is seldom a good idea
 in my experience.

 I haven't yet gotten around to finishing up on DIRMINA-608, but I see
 no problems pushing that to M4.


 Barend




 On Mon, Jul 28, 2008 at 4:07 PM, Julien Vermillard
 [EMAIL PROTECTED] wrote:
  yep, and me to gather time and fix the distribution :)
  Julien
 
  On Mon, 28 Jul 2008 09:47:04 -0400
  Alex Karasulu [EMAIL PROTECTED] wrote:
 
  +1 to releasing.  Do we really have to cut down the 72 hrs?  Might
  want to give some time for people to test it?
 
  Alex
 
  On Mon, Jul 28, 2008 at 5:19 AM, Emmanuel Lecharny
  [EMAIL PROTECTED]wrote:
 
   Julien Vermillard wrote:
  
   Hi guys,
  
   2.0.0-M2 release is suffering some serious issues :
   - DIRMINA-609 a big perf regression on big message (quite common)
   - the tarballs are fubared, you miss half of the modules
  
   I tihkn we need to redo a release soon (M3), specially for
   DIRMINA-609
  
   WDYT ?
  
  
   +1.
  
   You can launch a quick vote, and if the PMC aggreed on, we can even
   shorten the 72 hours wait to something like 24hours, as we are now
   on monday. That make sense for such a big regression.
  
   Otherwise, I also think that the Write issue should be addressed
   correctly in 2.0.0-M4 :
   https://issues.apache.org/jira/browse/DIRMINA-577
   https://issues.apache.org/jira/browse/DIRMINA-518
  
   (more to come)
  
   Thanks !
  
   --
   --
   cordialement, regards,
   Emmanuel Lécharny
   www.iktek.com
   directory.apache.org
  
  
  
 
 
 



[jira] Assigned: (DIRMINA-489) Composite IoBuffer

2008-07-23 Thread Mark Webb (JIRA)

 [ 
https://issues.apache.org/jira/browse/DIRMINA-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Webb reassigned DIRMINA-489:
-

Assignee: Mark Webb

 Composite IoBuffer
 --

 Key: DIRMINA-489
 URL: https://issues.apache.org/jira/browse/DIRMINA-489
 Project: MINA
  Issue Type: New Feature
  Components: Core
Reporter: David M. Lloyd
Assignee: Mark Webb
 Fix For: 2.0.0-M3

 Attachments: mina-composite-20080515.patch.gz, 
 mina-composite-20080517.patch, mina-composite-20080521-2.patch, 
 mina-composite-20080521.patch, mina-composite-20080723-1.patch, 
 mina-composite-20080723-2.patch


 Provide a way to create a large IoBuffer from several smaller IoBuffers, 
 without copying the underlying data.
 It would probably be acceptable to constrain the composite buffer in various 
 ways, for example by disallowing autoexpanding or otherwise changing the 
 capacity, the implementation could be greatly simplified.
 The goal is to be able to process large messages with a minimum of copying.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: svn commit: r678238 - in /mina/trunk/core/src/main/java/org/apache/mina/filter/buffer: ./ BufferedWriteFilter.java

2008-07-22 Thread Mark Webb
sounds good to me.



On Tue, Jul 22, 2008 at 6:19 PM, Edouard De Oliveira [EMAIL PROTECTED]
wrote:

 So we agree on ConcurrentHashMap use : all of the conditions you wrote
 should be met
 when correctly using this filter. The uneasy parameter is MAX_THREADS. I
 think there's
 no magical value so as an API service provider we should provide default
 implementation and let
 the user provide its own params for the ConcurrentHashMap instantiation or
 even its own
 instance.

 I think adding the following constructor should close the debate :
 public BufferedWriteFilter(int bufferSize, final ConcurrentMapIoSession,
 IoBuffer buffersMap);


 WDYT ?

 Cordialement, Regards,
 -Edouard De Oliveira-
 http://tedorg.free.fr/en/main.php



 - Message d'origine 
 De : Bogdan Ciprian Pistol [EMAIL PROTECTED]
 À : dev@mina.apache.org
 Envoyé le : Mardi, 22 Juillet 2008, 12h41mn 46s
 Objet : Re: Re : svn commit: r678238 - in
 /mina/trunk/core/src/main/java/org/apache/mina/filter/buffer: ./
 BufferedWriteFilter.java

 From my experience ConcurrentHashMap outperforms
 Collections.synchronizedMap(...) only if:
 - you know in advance how many maximum threads (MAX_THREADS) could
 simultaneously modify the ConcurrentHashMap
 - MAX_THREADS is small compared to the number of threads that are
 accessing the ConcurrentHashMap (reads)
 - the accesses (reads) vastly outnumbers the modifications (writes)
 ConcurrentHashMap also consumes more memory (increases proportional
 with MAX_THREADS)

 Bogdan

 On Tue, Jul 22, 2008 at 2:24 AM, Edouard De Oliveira
 [EMAIL PROTECTED] wrote:
  Perfectly legitimate question Mark :
 
  Stop me if i'm not correct, but i think it would be an error using
 CopyOnWriteMap in this usecase
  as the map grows when the number of sessions grows and as buffering takes
 full meaning in long
  lived sessions, then each new session would duplicate a potentially
 larger map hence
  hitting the bad side of CopyOnWriteMap.
 
 
  So ConcurrentHashMap should be more appropriate.
 
  WDYT ?
 
  ps: i'm commiting right now the proposed fix
  and a test class on trunk to ease any further review
 
  Cordialement, Regards,
  -Edouard De Oliveira-
  http://tedorg.free.fr/en/main.php
 
 
 
  - Message d'origine 
  De : Mark Webb [EMAIL PROTECTED]
  À : dev@mina.apache.org
  Envoyé le : Lundi, 21 Juillet 2008, 2h47mn 54s
  Objet : Re: svn commit: r678238 - in
 /mina/trunk/core/src/main/java/org/apache/mina/filter/buffer: ./
 BufferedWriteFilter.java
 
  I have a question on this class.
 
  Why not use ConcurrentHashMap for this instead of synchronizing?  Or
  CopyOnWriteMap?
 
 
 
 
  On Sat, Jul 19, 2008 at 7:19 PM, [EMAIL PROTECTED] wrote:
 
  Author: edeoliveira
  Date: Sat Jul 19 16:19:14 2008
  New Revision: 678238
 
  URL: http://svn.apache.org/viewvc?rev=678238view=rev
  Log:
  New IoFilter that implements DIRMINA-519
 
  Added:
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/
 
 
  
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
(with props)
 
  Added:
 
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
  URL:
 
 http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java?rev=678238view=auto
 
 
 ==
  ---
 
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
  (added)
  +++
 
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
  Sat Jul 19 16:19:14 2008
  @@ -0,0 +1,243 @@
  +/*
  + *  Licensed to the Apache Software Foundation (ASF) under one
  + *  or more contributor license agreements.  See the NOTICE file
  + *  distributed with this work for additional information
  + *  regarding copyright ownership.  The ASF licenses this file
  + *  to you under the Apache License, Version 2.0 (the
  + *  License); you may not use this file except in compliance
  + *  with the License.  You may obtain a copy of the License at
  + *
  + *http://www.apache.org/licenses/LICENSE-2.0
  + *
  + *  Unless required by applicable law or agreed to in writing,
  + *  software distributed under the License is distributed on an
  + *  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  + *  KIND, either express or implied.  See the License for the
  + *  specific language governing permissions and limitations
  + *  under the License.
  + *
  + */
  +package org.apache.mina.filter.buffer;
  +
  +import java.io.BufferedOutputStream;
  +import java.util.HashMap;
  +import java.util.Map;
  +
  +import org.apache.mina.core.buffer.IoBuffer;
  +import org.apache.mina.core.filterchain.IoFilter;
  +import org.apache.mina.core.filterchain.IoFilterAdapter;
  +import org.apache.mina.core.session.IoSession;
  +import org.apache.mina.core.write.DefaultWriteRequest;
  +import org.apache.mina.core.write.WriteRequest;
  +import

[jira] Commented: (DIRMINA-489) Composite IoBuffer

2008-07-22 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12615877#action_12615877
 ] 

Mark Webb commented on DIRMINA-489:
---

Rich,

I have integrated the code into the version 2.0 baseline (trunk).  I am working 
on some more tests and and trying to figure out the optimal way to create a 
simple CompositeByteArray containing a bunch of IoBuffers that contain strings. 
 Here is some pseudo-code:

CompositeByteArray cba = new CompositeByteArray();
IoBuffer one = IoBuffer.wrap(Hello);
cba.put( one );
IoBuffer two = IoBuffer.wrap(Mina);
cba.put( two );
IoBuffer three = IoBuffer.wrap(World);
cba.put( three );

System.out.println( cba );

I would like to see the contents of all 3 IoBuffers printed out together.  Of 
course this simple example would be expanded to include more testing, but I 
have tried a couple different scenarios on putting multiple IoBuffers into an 
instance of the CompositeByteArray and have been unsuccessful in getting a 
single buffer back out.

Is maybe CompositeByteArray not the correct class?

Thanks



 Composite IoBuffer
 --

 Key: DIRMINA-489
 URL: https://issues.apache.org/jira/browse/DIRMINA-489
 Project: MINA
  Issue Type: New Feature
  Components: Core
Reporter: David M. Lloyd
 Fix For: 2.0.0-M3

 Attachments: mina-composite-20080515.patch.gz, 
 mina-composite-20080517.patch, mina-composite-20080521-2.patch, 
 mina-composite-20080521.patch


 Provide a way to create a large IoBuffer from several smaller IoBuffers, 
 without copying the underlying data.
 It would probably be acceptable to constrain the composite buffer in various 
 ways, for example by disallowing autoexpanding or otherwise changing the 
 capacity, the implementation could be greatly simplified.
 The goal is to be able to process large messages with a minimum of copying.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: How to use a SingleSessionIoHandler?

2008-07-21 Thread Mark Webb
If you are using a NioSocketAcceptor, then check out
org.apache.mina.transport.socket.nio.NioSession or another option is to
create a class that implements the
org.apache.mina.handler.multiton.SingleSessionIoHandlerFactory.

For an example, take a look at
org.apache.mina.transport.socket.nio.NioSocketSession.



On Mon, Jul 21, 2008 at 2:45 AM, Geert Schuring [EMAIL PROTECTED] wrote:

 Looking at at classes extending AbstractIoSession doesn't clear anything up
 for me... am i missing something here?

 My question was: How do i register a SingleSessionIoHandler with the
 acceptor?

 - Original Message 
 From: Mark Webb [EMAIL PROTECTED]
 To: [EMAIL PROTECTED] [EMAIL PROTECTED], Geert Schuring
 [EMAIL PROTECTED]
 Subject: Re: How to use a SingleSessionIoHandler?
 Date: 21/07/08 04:00

  Depending on what type of service you are writing, take a look at classes
 extending AbstractIoSession.On Thu, Jul 17, 2008 at 11:19 AM, Geert
 Schuring
 lt;[EMAIL PROTECTED]gt; wrote:
  Hey all,
 
  Im writing an IoHandler extending SingleSessionIoHandlerAdapter (mina
  2.0.0-M2). When doing so Eclipse doesn#39;t allow me to add a
 no-argument
  constructor saying: quot;Implicit super constructor
  SingleSessionIoHandlerAdapter() is undefined. Must explicitly invoke
 another
  constructorquot;
  So i end up adding a Constructor that has an IoSession argument. Great
 and
  all, of course, but how do i add this handler to the acceptor?
 
  The acceptor has no method to add a SingleSessionIoHandler.
 
  Geert Schuring
  The Netherlands.
 
  
  Message sent using UebiMiau 2.7.10
 
 
 
 

 
 Message sent using UebiMiau 2.7.10





Re: svn commit: r678238 - in /mina/trunk/core/src/main/java/org/apache/mina/filter/buffer: ./ BufferedWriteFilter.java

2008-07-20 Thread Mark Webb
I have a question on this class.

Why not use ConcurrentHashMap for this instead of synchronizing?  Or
CopyOnWriteMap?




On Sat, Jul 19, 2008 at 7:19 PM, [EMAIL PROTECTED] wrote:

 Author: edeoliveira
 Date: Sat Jul 19 16:19:14 2008
 New Revision: 678238

 URL: http://svn.apache.org/viewvc?rev=678238view=rev
 Log:
 New IoFilter that implements DIRMINA-519

 Added:
mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/

  
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
   (with props)

 Added:
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
 URL:
 http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java?rev=678238view=auto

 ==
 ---
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
 (added)
 +++
 mina/trunk/core/src/main/java/org/apache/mina/filter/buffer/BufferedWriteFilter.java
 Sat Jul 19 16:19:14 2008
 @@ -0,0 +1,243 @@
 +/*
 + *  Licensed to the Apache Software Foundation (ASF) under one
 + *  or more contributor license agreements.  See the NOTICE file
 + *  distributed with this work for additional information
 + *  regarding copyright ownership.  The ASF licenses this file
 + *  to you under the Apache License, Version 2.0 (the
 + *  License); you may not use this file except in compliance
 + *  with the License.  You may obtain a copy of the License at
 + *
 + *http://www.apache.org/licenses/LICENSE-2.0
 + *
 + *  Unless required by applicable law or agreed to in writing,
 + *  software distributed under the License is distributed on an
 + *  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 + *  KIND, either express or implied.  See the License for the
 + *  specific language governing permissions and limitations
 + *  under the License.
 + *
 + */
 +package org.apache.mina.filter.buffer;
 +
 +import java.io.BufferedOutputStream;
 +import java.util.HashMap;
 +import java.util.Map;
 +
 +import org.apache.mina.core.buffer.IoBuffer;
 +import org.apache.mina.core.filterchain.IoFilter;
 +import org.apache.mina.core.filterchain.IoFilterAdapter;
 +import org.apache.mina.core.session.IoSession;
 +import org.apache.mina.core.write.DefaultWriteRequest;
 +import org.apache.mina.core.write.WriteRequest;
 +import org.apache.mina.filter.codec.ProtocolCodecFilter;
 +
 +/**
 + * An [EMAIL PROTECTED] IoFilter} implementation used to buffer outgoing 
 [EMAIL PROTECTED]
 WriteRequest} almost
 + * like what [EMAIL PROTECTED] BufferedOutputStream} does. Using this filter 
 allows
 to be less dependent
 + * from network latency. It is also useful when a session is generating
 very small messages
 + * too frequently and consequently generating unnecessary traffic
 overhead.
 + *
 + * Please note that it should always be placed before the [EMAIL PROTECTED]
 ProtocolCodecFilter}
 + * as it only handles [EMAIL PROTECTED] WriteRequest}'s carrying [EMAIL 
 PROTECTED] IoBuffer}
 objects.
 + *
 + * @author The Apache MINA Project (dev@mina.apache.org)
 + * @version $Rev: $, $Date: $
 + * @since MINA 2.0.0-M2
 + */
 +public final class BufferedWriteFilter extends IoFilterAdapter {
 +
 +/**
 + * Default buffer size value in bytes.
 + */
 +public final static int DEFAULT_BUFFER_SIZE = 8192;
 +
 +/**
 + * The buffer size allocated for each new session's buffer.
 + */
 +private int bufferSize = DEFAULT_BUFFER_SIZE;
 +
 +/**
 + * The map that matches an [EMAIL PROTECTED] IoSession} and it's [EMAIL 
 PROTECTED] IoBuffer}
 + * buffer.
 + */
 +protected MapIoSession, IoBuffer buffersMap = new HashMapIoSession,
 IoBuffer();
 +
 +/**
 + * Default constructor. Sets buffer size to [EMAIL PROTECTED]
 #DEFAULT_BUFFER_SIZE}
 + * bytes.
 + */
 +public BufferedWriteFilter() {
 +this(DEFAULT_BUFFER_SIZE);
 +}
 +
 +/**
 + * Constructor which sets buffer size to codebufferSize/code.
 + *
 + * @param bufferSize the new buffer size
 + */
 +public BufferedWriteFilter(int bufferSize) {
 +super();
 +this.bufferSize = bufferSize;
 +}
 +
 +/**
 + * Returns buffer size.
 + */
 +public int getBufferSize() {
 +return bufferSize;
 +}
 +
 +/**
 + * Sets the buffer size but only for the newly created buffers.
 + *
 + * @param bufferSize the new buffer size
 + */
 +public void setBufferSize(int bufferSize) {
 +this.bufferSize = bufferSize;
 +}
 +
 +/**
 + * [EMAIL PROTECTED]
 + *
 + * @throws Exception if codewriteRequest.message/code isn't an
 + *   [EMAIL PROTECTED] IoBuffer} instance.
 + */
 +@Override
 +public void filterWrite(NextFilter nextFilter, IoSession session,
 +WriteRequest writeRequest) throws Exception {
 +
 +Object data = 

[jira] Created: (DIRMINA-611) Move ExceptionMonitor from core to util

2008-07-20 Thread Mark Webb (JIRA)
Move ExceptionMonitor from core to util
---

 Key: DIRMINA-611
 URL: https://issues.apache.org/jira/browse/DIRMINA-611
 Project: MINA
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0.0-M2
 Environment: All
Reporter: Mark Webb
Assignee: Mark Webb
Priority: Trivial
 Fix For: 2.0.0-M3, 1.0.11, 1.1.8


This was discussed in the dev mailing list.  I forgot to make the change at the 
time, but many people agreed that this should be done just to keep with the new 
organization of the source code tree.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Closed: (DIRMINA-611) Move ExceptionMonitor from core to util

2008-07-20 Thread Mark Webb (JIRA)

 [ 
https://issues.apache.org/jira/browse/DIRMINA-611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Webb closed DIRMINA-611.
-

   Resolution: Fixed
Fix Version/s: (was: 1.1.8)
   (was: 1.0.11)

Updated the trunk and checked in changes.

 Move ExceptionMonitor from core to util
 ---

 Key: DIRMINA-611
 URL: https://issues.apache.org/jira/browse/DIRMINA-611
 Project: MINA
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0.0-M2
 Environment: All
Reporter: Mark Webb
Assignee: Mark Webb
Priority: Trivial
 Fix For: 2.0.0-M3

   Original Estimate: 0.08h
  Remaining Estimate: 0.08h

 This was discussed in the dev mailing list.  I forgot to make the change at 
 the time, but many people agreed that this should be done just to keep with 
 the new organization of the source code tree.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (DIRMINA-489) Composite IoBuffer

2008-07-20 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12615139#action_12615139
 ] 

Mark Webb commented on DIRMINA-489:
---

Rich,

Thanks for the work that you have done on this.  Could you please tell me if 
the mina-composite-20080521-2.patch is the latest version of the patch.  
There have been many MINA source code structure changes and want to try 
integrating your code.

Thanks
Mark


 Composite IoBuffer
 --

 Key: DIRMINA-489
 URL: https://issues.apache.org/jira/browse/DIRMINA-489
 Project: MINA
  Issue Type: New Feature
  Components: Core
Reporter: David M. Lloyd
 Fix For: 2.0.0-M3

 Attachments: mina-composite-20080515.patch.gz, 
 mina-composite-20080517.patch, mina-composite-20080521-2.patch, 
 mina-composite-20080521.patch


 Provide a way to create a large IoBuffer from several smaller IoBuffers, 
 without copying the underlying data.
 It would probably be acceptable to constrain the composite buffer in various 
 ways, for example by disallowing autoexpanding or otherwise changing the 
 capacity, the implementation could be greatly simplified.
 The goal is to be able to process large messages with a minimum of copying.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (DIRMINA-586) Dynamic delimiter support for TextLineCodecFactory

2008-07-20 Thread Mark Webb (JIRA)

[ 
https://issues.apache.org/jira/browse/DIRMINA-586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12615140#action_12615140
 ] 

Mark Webb commented on DIRMINA-586:
---

Please let me know if this is still an issue.  I believe that if we make a 
change to the current functionality, it might break current implementations.  

This fix may require a special class, instead of changes to the current 
implementation.

Please let me know what you think.  I am considering closing this issue and 
marking as will not fix



 Dynamic delimiter support for TextLineCodecFactory
 --

 Key: DIRMINA-586
 URL: https://issues.apache.org/jira/browse/DIRMINA-586
 Project: MINA
  Issue Type: Improvement
  Components: Filter
Affects Versions: 2.0.0-M1
Reporter: Trustin Lee
Priority: Minor
 Fix For: 2.0.0-M3


 TextLineCodecFactory supports static delimiters only.  For some cases, users 
 need to switch the delimiter dynamically depending on context.  Related 
 discussion is found here:
 http://markmail.org/message/loiqoej35evt2yvv

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Is the ExceptionMonitor usefull ?

2008-07-07 Thread Mark Webb
+1.  Its not hurting anything being there, and unless you know what its for,
you will probably not use it.

On Mon, Jul 7, 2008 at 3:43 PM, Adam Fisk [EMAIL PROTECTED] wrote:

 I'd just like to chime in with a vote for staying focused.  If this is
 not causing problems for people and people are using it, it should
 stay, so I'm also a -1 on making the change.

 That said, it's most importantly not a big issue and should be barely
 visible on the priority list.  Getting 2.0 out the door should be the
 overarching focus of MINA right now, and things like this distract
 from that.  I know it's always tempting to tweak code to one's liking
 as you make your way through it, but it's an important temptation to
 resist!

 All the Best,
 -Adam


 On Mon, Jul 7, 2008 at 1:30 AM, Emmanuel Lecharny [EMAIL PROTECTED]
 wrote:
  peter royal wrote:
 
  On Jul 5, 2008, at 1:36 PM, Emmanuel Lecharny wrote:
 
  - as it's a framework, I think that exceptions, if they are to be
  caught, should be caught at the upper level, not down in the code. Why
  the hell do we have to define a generic monitor which does nothing
  more than logging a warning ?
 
  I don't really care to keep it into the code base, I just don't see
  any of the advantages it brings. I may miss something ...
 
  Can you give me a clear exemple, Peter ?
 
  the monitor would allow a user to replace the functionality with one
 that
  throws rather than logs.. we just decided that logging is the best
 policy.
  we could just make it throw.
 
  in the custom implementation i last used,
 
   - if the exception is an InterruptedException, just ignore, but set the
  interrupted state on the current thread
   - certain exception types were ignored, no logging.
   - certain exceptions were logged at debug
   - catch-all was similar to what we ship
 
  I see where you are going to. The problem to me is that the current
  implementation is really not good. First it's not documented correctly,
 or
  should I say, advertized, so the user have no clue what he will get if he
  implements the Monitor, second, it's a singleton, a very bad thing in a
 J2EE
  environment.
 
  And as MINA is a framework, I also think that it should always throw an
  exception, and log something. Simply logging is not, IMO, enough. In
 certain
  cases, we don't know what will happen if we use the default
 implementation.
  For instance, you may swallow a OOM exception without doing nothing but
  logging. Do you think it's a good way to handle such exceptions ?
 
  .. but the specifics of how i used it aside..
 
  I agree.
 
  i think the idea that it promotes is fine.
 
  Well, I'm not on the same line :)
 
  its not a piece of the codebase that's been causing issues at all :)
 
  That, I agree. I just don't like the idea of ExceptionMonitor, at least
 the
  way it is used in MINA. It's pretty much a thread likely to be dead soon,
 as
  I don't want to argue forever about a very side element of the project.
 Just
  wanted to point out an opinion, but don't want to push it to a point we
 have
  to get a veto from someone :) As far as we get this piece of code
  self-explanatory in the Javadoc, it's fine...
 
  Thanks Peter !
 
  --
  --
  cordialement, regards,
  Emmanuel Lécharny
  www.iktek.com
  directory.apache.org
 
 
 



 --
 http://www.littleshoot.org
 Open Source, Open Standards, Open Data



Re: Is the ExceptionMonitor usefull ?

2008-07-07 Thread Mark Webb
one additional note I have is that maybe it should be moved from core to
util.  That way the package name indicates that it is a utility class and
not a core class.



On Mon, Jul 7, 2008 at 7:23 PM, Emmanuel Lecharny [EMAIL PROTECTED]
wrote:

 Mark Webb wrote:

 +1.  Its not hurting anything being there, and unless you know what its
 for,
 you will probably not use it.



 Funny :) I guess that now that I have posted the first mail, there are more
 people aware about this class than ever, and now the risk is that we may
 have to deal with it, as some may want to implement an inherited class, when
 remaining silent and saying nothing about it would have let this class
 hidden and unused forever ;)

 Sometime it's better to push the dust under the carpet and shut up :)

 Ok, I'm done with MonitorException, moving to some more useful things !

 Thanks guys !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: [VOTE] Release 2.0.M2

2008-06-27 Thread Mark Webb
[ X]: +1, Release MINA 2.0-M1

On Fri, Jun 27, 2008 at 5:30 AM, Julien Vermillard [EMAIL PROTECTED]
wrote:

 Hi,

 After a lot of package reorganisation, look like it's the moment for
 releasing 2.0M2.

 Here you can see the list of FIXED issues since M1 and the one still
 OPEN :


 https://issues.apache.org/jira/browse/DIRMINA?report=com.atlassian.jira.plugin.system.project:roadmap-panel

 This release is not a stable one, some API change will probably occurs
 like ByteBuffers, sendFile(), but it will help to get more feed back for
 about last changes.

 Julien,

 Now let's vote !
 [ ]: +1, Release MINA 2.0-M1
 [ ]: 0, Abstain
 [ ]: -1, Don't release MINA 2.0-M1



Re: Java Threads are my problem.

2008-06-22 Thread Mark Webb
You are right.  This is not MINA-specific.  Not sure what you are trying to
accomplish here with MINA.



On Sun, Jun 22, 2008 at 9:59 PM, Simon Funnell [EMAIL PROTECTED]
wrote:

 Dear List,

 This is not exactly Mina specific, its more general, but its close to the
 problem Mina surrounds. I have been working on an approach to concurrency
 and I have come to the point where the Java Thread model is causing me
 problems. I would like to create my own threading model that does away with
 shared memory and thread memory, so there is just shared memory. My original
 idea was to use a single thread and implement my own threads within that
 thread. The difficulty with this is that there is still copying from shared
 memory to thread working memory (as I understand it). I would like to cut
 out this shared memory to thread memory and back to shared memory copying.
 Is this possible?

 Thanks for any replies.

 Regards,

 Simon



Re: [New Committer] Welcome to Rich Dougherty

2008-06-20 Thread Mark Webb
Glad to have another on board !!

On Fri, Jun 20, 2008 at 4:40 PM, Maarten Bosteels [EMAIL PROTECTED]
wrote:

 Welcome Rich !

 Maarten

 On Fri, Jun 20, 2008 at 9:41 PM, Rich Dougherty [EMAIL PROTECTED] wrote:
  On Sat, Jun 21, 2008 at 3:30 AM, Julien Vermillard
  [EMAIL PROTECTED] wrote:
  Rich Dougherty was voted as a new Apache MINA committer with 7 +1 vote
  and no abstain nor -1.
 
  He's well know here for the MINA Scala binding and his overall interest
  for MINA internals.
 
  Welcome aboard Rich !
 
  Thanks everyone, I'm pleased to join the team!
 
  Rich
 



Re: Some Class diagram for MINA

2008-06-18 Thread Mark Webb
very nice.  keep them coming.

On Wed, Jun 18, 2008 at 10:08 AM, Emmanuel Lecharny [EMAIL PROTECTED]
wrote:

 Hi guys,

 I have drawn three class diagrams of basic MINA structures (IoSession and
 IoService, divided in Acceptor and Connector) and put them on the wiki :

 http://cwiki.apache.org/confluence/display/MINA/Class+Diagrams

 It may help those who want to get a better picture of the inheritence
 scheme.

 Have fun !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: Some Class diagram for MINA

2008-06-18 Thread Mark Webb
Did you do this by hand or use a tool?


On Wed, Jun 18, 2008 at 11:55 AM, Alex Karasulu [EMAIL PROTECTED]
wrote:

 On Wed, Jun 18, 2008 at 11:43 AM, Mark Webb [EMAIL PROTECTED] wrote:

  very nice.  keep them coming.
 

 Mark and I had at one point discussed a documentation plan and looks like
 you beat us to the first stage.  This is looking great.  Thanks for taking
 the initiative.

 Alex


 
  On Wed, Jun 18, 2008 at 10:08 AM, Emmanuel Lecharny 
 [EMAIL PROTECTED]
  wrote:
 
   Hi guys,
  
   I have drawn three class diagrams of basic MINA structures (IoSession
 and
   IoService, divided in Acceptor and Connector) and put them on the wiki
 :
  
   http://cwiki.apache.org/confluence/display/MINA/Class+Diagrams
  
   It may help those who want to get a better picture of the inheritence
   scheme.
  
   Have fun !
  
   --
   --
   cordialement, regards,
   Emmanuel Lécharny
   www.iktek.com
   directory.apache.org
  
  
  
 



Re: AbstratPollingStuff... renaming

2008-06-10 Thread Mark Webb
sounds good to me.


On Tue, Jun 10, 2008 at 9:44 AM, Julien Vermillard
[EMAIL PROTECTED] wrote:
 Hi,

 as Emmanuel stated, the AbstractPollingIoXXX class are badly named.

 The polled is here because it's base classes for transport
 implementations using event strategy based on system calls behaving like
 poll() (which can be in fact poll, epoll, kqueue or select depending
 of the JVM/OS configuration).

 Those class aren't polling in a loop for checking session status,
 it's the law level kernel/system implementation which does it.


 So I we need to rename it to something making more sense and it's
 javadoc less, so it's an opportunity to document this important part of
 MINA internals ;)


 I propose
 - AbstractEventIo(Acceptor/Connector/..)
 - AbstractSelectIo(Acceptor/Connector/..)
 - AbstractAsyncIo(Acceptor/Connector/..)

 even the Io could be removed.

 WDYT ?

 Julien



Re: [2.0 refactoring] What about splitting mina-core ?

2008-06-09 Thread Mark Webb
+1

On Mon, Jun 9, 2008 at 1:31 AM, Alex Karasulu [EMAIL PROTECTED] wrote:
 I don't really have a specific view point on this topic.  I would rather
 have more efficient and easily maintained internals.  I don't know if this
 accomplishes that but I'm sure you guys can hash that out.

 Regards,
 Alex

 On Mon, Jun 9, 2008 at 1:07 AM, Emmanuel Lecharny [EMAIL PROTECTED]
 wrote:

 Mark Webb wrote:

 I do not think this is a good idea.


 Looking at the three answers, it seems so ;)

  3.  We may confuse things for alot of people who may already be using
 2.0.  Telling users that they will have to fix their code because of a
 re-organization looks bad on our part IMHO.


 Regardless to the refactoring question, this is the kind of risk we have to
 consider, in any case. More than confusing the users who have based their
 code on the current 2.0 stack, I think it's much more important to build a
 coherent stack we will live with for a long time. Waiting for a 3.0 version
 and differing refactoring just because we have users of the current trunk is
 certainly not a good idea. Trunk is trunk, using it is a risk, and it's well
 know.

 Thanks !






 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org






Re: [2.0 refactoring] What about splitting mina-core ?

2008-06-08 Thread Mark Webb
I do not think this is a good idea.

1. You are assuming that everyone uses maven.
2.  Based on many of the discussions that have been going on with this
group, I believe that we have more important issues to consider.
3.  We may confuse things for alot of people who may already be using
2.0.  Telling users that they will have to fix their code because of a
re-organization looks bad on our part IMHO.



On Sun, Jun 8, 2008 at 3:26 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Niklas Gustavsson wrote:

 On Sat, Jun 7, 2008 at 2:59 PM, Emmanuel Lecharny [EMAIL PROTECTED]
 wrote:


 Thoughts ?


 My feeling is that the cons outweigh the pros. Having multiple JARs
 commonly turns out to confuse users, especially with a setup where you
 can even get the very basic functionality working without choosing
 your combination of JARs.

 With Maven, this is not really a big issue, IMHO. Consider that it's a one
 time burden...

 Now, if it degenerate to a dozens of jars, yes, I + your point.

 But even if we keep only one jar, I think we still have to create some new
 packages, because we have a big bag of classes in common, which make it
 quite difficult to find what are the relations between each classes.

 In addition, the current core JAR is about
 500 kb, not huge.


 I didn't even mentioned the size in the pros ;)

 thanks !


 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: chat server often deaded with mina 2.0-m1

2008-05-28 Thread Mark Webb
is the system deadlocking or running out of memory?


On Wed, May 28, 2008 at 10:32 AM, Owen Gu [EMAIL PROTECTED] wrote:
 Hi,
 Our chat server is deveolped with mina-2.0 m1 version, we got a very
 emergent problem, the chat server dead every week.
 The attachment contains thread dump that was generated when we made the
 server dead by some testing tools, I think the dead lock or out of memory
 problem caused the server down.
 Please help me to solove this problem, it's very emergent, thank you.





Re: chat server often deaded with mina 2.0-m1

2008-05-28 Thread Mark Webb
I had noticed some deadlock conditions as well, but after you
mentioned you ran into an out of memory error I got confused.  I will
take a look at this again when I get a free minute.

On Wed, May 28, 2008 at 11:23 AM, Owen Gu [EMAIL PROTECTED] wrote:
 Please check the thread dump, it seems the NioProcessor-2 thread was
 blocked and lock the object 0x49958e38, and the other NioProcessor were
 waiting for the object 0x49958e38, I think this caused deadlock. But after I
 used jstack dump the thread one minutes, I saw the system alert out of
 memory, So I'm not sure what caused my server dead, please help me analyse
 the thread dump, thanks.

 On Wed, May 28, 2008 at 10:58 PM, Mark Webb [EMAIL PROTECTED] wrote:

 is the system deadlocking or running out of memory?


 On Wed, May 28, 2008 at 10:32 AM, Owen Gu [EMAIL PROTECTED] wrote:
  Hi,
  Our chat server is deveolped with mina-2.0 m1 version, we got a very
  emergent problem, the chat server dead every week.
  The attachment contains thread dump that was generated when we made the
  server dead by some testing tools, I think the dead lock or out of memory
  problem caused the server down.
  Please help me to solove this problem, it's very emergent, thank you.
 
 
 




Re: Could mina write the message directly before using a selector

2008-05-28 Thread Mark Webb
The easiest way I know of to decrease latency is to cut down on the
filters you are using.  This includes thread pools as well.  Have you
read this page: http://mina.apache.org/configuring-thread-model.html?
It might help you along...




2008/5/28 Owen Gu [EMAIL PROTECTED]:
 Hi,
 Thanks for your reply, I know a good framework will not expose the
 SocketChannel directly, I guess you could add some filter to solve the
 problem, could you tell me an approximate time I can get the low latency
 version, I don't want wait a long time, because it's a big problem for me:P,
 or could give me some hint so I can solve the problem by myself before I get
 the new version.

 On Wed, May 28, 2008 at 11:26 PM, 이희승 (Trustin Lee) [EMAIL PROTECTED]
 wrote:

 Hi Owen,

 It's a known issue and should be dealt with before MINA 2 RC1.  However, we
 should not expose SocketChannel directly - we should assure low latency even
 without doing so.

 HTH,


 On Thu, 29 May 2008 00:15:02 +0900, Owen Gu [EMAIL PROTECTED] wrote:

  Hi,
 A lot of our users complain about the latency problem, If mina could write
 the message directly before using a selector to dectect whether the
 SocketChannel could be written and when the message counln't be sent
 completly, using a selector to write the remaining messages, I think the
 latency problem will better than now.




 --
 Trustin Lee - Principal Software Engineer, JBoss, Red Hat
 --
 what we call human nature is actually human habit
 --
 http://gleamynode.net/




Re: svn commit: r659372 - /mina/branches/buffer/core/src/main/java/org/apache/mina/queue/DefaultByteBufferQueue.java

2008-05-23 Thread Mark Webb
since when do people on mailing lists no longer get to voice opinions?
 What then would be the purpose of a mailing list?


On Fri, May 23, 2008 at 1:14 PM, Alex Karasulu [EMAIL PROTECTED] wrote:
 On Fri, May 23, 2008 at 1:04 PM, Stefano Bagnara [EMAIL PROTECTED] wrote:

 Emmanuel Lecharny ha scritto:

 Now, considering your attitude : your are sometime just behaving like a
 stubborn childish person. You are interpreting the ASF rules at your own
 advantage, with no respect for person around you. Like it or not, this is
 not the way it works. When I asked you to revert the code, this is because
 we reached a point where we have to discuss the portion of code you have
 committed, it was not a punishment. But you took it as if I wanted to
 personally insult you, and you insulted me in return. I will swallow the
 insult, because it's just totally irrelevant to the discussion.


 My opinion is that you behaved very bad too. There was a discussion in
 place, and there was no need to veto this until every solution was
 evaluated. You didn't try to understand the why, propose something
 different, evaluate pros/cons of what have been done and what you proposed
 before vetoing it.

 This is only my opinion as an ASF committer have only a user role in mina.


 No one asked for your precious opinion.  You don't have a grasp of the
 situation at all.  So stop adding to the fire.

 LET THE THREAD DIE!

 We need to move on.

 Alex



Re: svn commit: r659372 - /mina/branches/buffer/core/src/main/java/org/apache/mina/queue/DefaultByteBufferQueue.java

2008-05-23 Thread Mark Webb
heh.  how do we all feel now?  Pretty embarrassing

http://bill.burkecentral.com/2008/05/23/see-why-id-never-develop-at-apache/



On Fri, May 23, 2008 at 1:40 PM, Emmanuel Lecharny [EMAIL PROTECTED] wrote:
 Stefano Bagnara wrote:

 Alex Karasulu ha scritto:

 On Fri, May 23, 2008 at 1:04 PM, Stefano Bagnara [EMAIL PROTECTED] wrote:

 This is only my opinion as an ASF committer have only a user role in
 mina.

 No one asked for your precious opinion.  You don't have a grasp of the
 situation at all.  So stop adding to the fire.

 This is very community oriented ;-)
 I will tell another opinion from mine even if no one asked it. My opinion
 is that ASF is about community, and I feel part of this community, and I
 have the same rights to express my opinion as you do.

 Peace,
 Stefano


 Guys,

 just consider that not agree with the other one does not mean you are right.

 I would suggest we start another thread about Javadoc good practice, if
 everyone thinks it's necessary, and cut a decision in this thread.

 I think that everything is set now, whatever opinion everyone has. I have
 nothing to add, Trustin added some @inheritdoc tags, I have withdrawn my
 veto, end of story.

 Let's this thread die...

 Thanks !

 --
 --
 cordialement, regards,
 Emmanuel Lécharny
 www.iktek.com
 directory.apache.org





Re: MINA + Grizzly discussion

2008-05-21 Thread Mark Webb
Jeanfrancois,

Welcome.  I have been a big fan of your work and have enjoyed your
blog over the years.  I will say that I am one of the 'young' ASF
members on the MINA team and welcome any synergies that will be
created as a result of us coming together.

--Mark


On Wed, May 21, 2008 at 9:57 AM, Julien Vermillard
[EMAIL PROTECTED] wrote:
 Hi,
 First great to hear you !

 On Wed, 21 May 2008 09:44:00 -0400
 Jeanfrancois Arcand [EMAIL PROTECTED] wrote:

 Hi,

 before we can have the discussion, I need to make sure every body
 agree (all other commiters :-)) to start a discussion on the grizzly
 side. So gives me a couple of days :-)


 No problems, we are patient/lazy peoples :)

 [cut]

   agreed.  We could talk about:
  
* the possibility of merging two projects in the future (not
   sure
 this
   will happen)
* the regular exchange of each other's knowledge at least
* and anything you want to talk about, probably except for
   offending each
   other's framework? :)

 +1

 I will add:

 + Have a new JSR filled (OK, might not be the best thing for Apache
 right now to talk about JSR).

 *joker* about JSR :)


 Note that before the discussion start, I just want to make sure
 peoples here are aware how bad it when the last time we have worked
 on an Apache project (Tomcat), mostly because peoples mixed people
 working at Sun vs Sun as a company. I can't speak for my
 colleague, but I will not enter any feud/war with the MINA community
 on the usual Sun-bashing exercise. You can destroy/criticize Grizzly
 (and me :-)), and that one is fine. But the anti-Sun complains a lot
 of Apache members like sometimes to start is something I would like
 to avoid :-)

 A+


 About the past you need to take in account a lot of MINA PMC/commiters
 are young at ASF. I think it's a great opportunity for us to avoid
 the parasitic ASFvsSUN heritage and try to find a common ground for
 collaboration.

 A+

 Julien



Re: MINA + Grizzly discussion

2008-05-18 Thread Mark Webb
Either email or IRC works for me.  I am EDT (GMT-4).

On Sat, May 17, 2008 at 10:30 PM, 이희승 (Trustin Lee) [EMAIL PROTECTED] wrote:
 I've just came to think that we might be able to make this discussion occur
 via e-mail exchange, by cross posting to [EMAIL PROTECTED] and grizzly dev 
 list.  It
 will make the conversation more transparent and let more people get
 involved.  WDYT?

 PS: I'm on UTC+9 ;)

 On Sun, 18 May 2008 08:38:09 +0900, Emmanuel Lecharny [EMAIL PROTECTED]
 wrote:

 Guys,

 last week, Trustin was in SF for Java One. He met Jean-François Arcand,
 and had some interesting convo there. Here is a copy of is mail about it :

 Hi,

 I met Jean-francois Arcand, the Grizzly lead last week in JavaOne, and he
 showed his interest in joining the effort to build better network
 application framework together.  I suggested an IRC chat at #mina, and he
 agreed.  We could talk about:

  * the possibility of merging two projects in the future (not sure this
 will happen)
  * the regular exchange of each other's knowledge at least
  * and anything you want to talk about, probably except for offending each
 other's framework? :)

 It would be nice if we can have this chat next week.  Please let me know
 when you are available, so I can tell them what date and time we prefer.

 Cheers,

 As he is suggesting a chat session with JF, please fill free to tell when
 would be the best timing for such an IRC meeting (keep in mind that Trustin
 is UTC-7 and that it is really important to have him around.

 Just push your best timeframe, not forgetting your UTC
 increment/decrement.

 Thanks !

 --
 Trustin Lee - Principal Software Engineer, JBoss, Red Hat
 --
 what we call human nature is actually human habit
 --
 http://gleamynode.net/



Re: JIRA for documentation ?

2008-05-01 Thread Mark Webb
+1.  Although a full-time documentation person would have a hard time
keeping up.  I tried for a while, but it was tough.



On Thu, May 1, 2008 at 12:03 PM, Alex Karasulu [EMAIL PROTECTED] wrote:
 On Thu, May 1, 2008 at 10:30 AM, Emmanuel Lecharny [EMAIL PROTECTED]
  wrote:


   Hi guys,
  
   some users (Frederic) suggested to create a dedicated JIRA for
   documentation. Do you think it's a good idea to have a MINA-DOC JIRA entry 
 ?
  
   Otherwise, I went to the MINA web page looking for some information about
   the sources, and I found it quite difficult to find. IMHO, there should be 
 a
   'source' link in the main menu, on the left, where you can find pointers to
   the tarball distributions, the svn links and such.
  

  +1

  I'd like to see the site documentation improve and keep up with the
  changes.  Another alternative to consider would be to create a module for
  the MINA  JIRA project if people are fearful of a JIRA project explosion.

  Alex




-- 

Talent hits a target no one else can hit; Genius hits a target no one
else can see.


Re: MINA v2.0 Quick Start Guide

2008-04-10 Thread Mark Webb
ok.  So we agree.  We were just describing it differently.

I will start working on it and see how things turn out.

Thanks...


On Thu, Apr 10, 2008 at 3:40 AM, Maarten Bosteels [EMAIL PROTECTED]
wrote:

 Hi,

 2008/4/10 Mark Webb [EMAIL PROTECTED]:

  Sorry for the mis-typing of your name

 no worries.


 
 
  The more I think about this, the more I think that each step should be a
  stand-alone program.  Step 2 should include all the code from step 1 and
  the
  code that was introduced in step 2.  For instance, in step 1 you might
  have
  :
 
  IoAcceptor acceptor = new NioSocketAcceptor();
  acceptor.setHandler( new MyHandler() );
  acceptor.bind( new InetSocketAddress(PORT));
 
  Then when you introduce step 2, you will add in an ExecutorFilter to all
  the
  code above.


 That's what I meant: in step2 you have another main, that builds the
 IoFilter chain all by itself.
 So that would be copy-paste from step1 with an ExecutorFilter added.
 But I see no point, in copying for example the custom encoder/decoder from
 step1 to step2 ?

 When entire classes from step-n are reused in step-(n+1), there is IMO no
 reason to copy them.

 
  Then when you introduce step 3, you will add JMX code to the code that
  includes steps 1 and 2.  So by the time you reach the end, the code in
  step
  1 (above) will contain much more code and not be so simple and
  understandable and the person reading the tutorial might get confused.


 I agree.
 After adding step2, the code in step1 shouldn't have changed.
 That's the reason I called it step1 :-)

 regards,
 Maarten


 
  --Mark
 
 
 
  On Wed, Apr 9, 2008 at 4:23 PM, Maarten Bosteels 
 [EMAIL PROTECTED]
  wrote:
 
   Hello Mark,
  
   Great to hear you will have some time to work on the examples.
  
   2008/4/9 Mark Webb [EMAIL PROTECTED]:
  
I hit the send button much too quickly.  Maartin, what is your plan
  for
how
the codebase will look?  I see that in the examples subproject there
  is
   a
package called imagine.step1.  For step 2, will you take a copy of
  all
the
code from step 1 and add more functionality (like ExecutorFilter)?
  
  
   I think most of the code from step1 can be reused by step2 etc, so
 there
   would be no need to copy code.
   IMO, the imagine.step2 package should only contain the code that needs
  to
   be
   added or changed compared to step1. Probably only the main method
 where
   the
   filterChain is built.
  
   But feel free to disagree :-)
  
   regards,
   Maarten (not Maartin)
  
  
   
How do you see all this coming together?
   
--Mark
   
2008/4/9 Mark Webb [EMAIL PROTECTED]:
   
 I have some free time coming up.  I will give it a shot.



 On Wed, Apr 9, 2008 at 1:29 PM, Maarten Bosteels 
[EMAIL PROTECTED]
 wrote:

  On Wed, Apr 9, 2008 at 6:08 PM, 이희승 (Trustin Lee) 
   [EMAIL PROTECTED]
  wrote:
 
   I think it's good time for someone to write a MINA curriculum
  and
  revamp
   all examples to follow the curriculum.  Maarten once started
 an
   'imagine' example but he ended up with stage1.  He might have
  something
   in his mind about setting up the MINA curriculum.  ;)
 
 
  :-)
  Yes, my plan was to build upon the ImageServer and add extra
  functionality
  step-by-step
  * step1: what is now in the protocol-codec tutorial (and in svn)
  * step2 : add an ExecutorFilter
  * step3 : add some JMX stuff
  * step4 : show how to cleanly shut down the server
  * step5 : add a throttle filter
  ...
  (the order doesn't really matter)
 
  Unfortunately, until now I didn't get further than step1 ...
  I still have the intention though, just can't promise when I
 will
   find
  that
  scarce resource called  time.
 
  I'd welcome anyone who wants to work on this.
 
  Maarten
 
 
  
   Cheers,
  
   Mark Webb wrote:
that is the funniest description of one's software I ever
  heard.
   bravo...
   
On Wed, Apr 9, 2008 at 10:25 AM, Niklas Gustavsson 
  [EMAIL PROTECTED]
   
wrote:
   
2008/4/9 Mark Webb [EMAIL PROTECTED]:
sounds like that is the direction we want to go.  My only
concern
  is
that we
 start getting apps in the examples directory that
 overlap.
 There
  is
 currently a chat program in examples, but maybe your's is
   more
feature-rich
 or more robust.  One think I do like about the current
 chat
  example
   is
that
 it is the only example that uses Spring.
No it's certainly not more feature rich, it's probably the
  stupidest
chat server ever built. The purpose was to make it as
 simple
  as
possible to be able to communicate it during a talk.
   
/niklas
   
   
   
   
  
   --
   Trustin

Re: MINA v2.0 Quick Start Guide

2008-04-09 Thread Mark Webb
Niall,

Thanks for pointing this out to me.  I have updated the wiki and also placed
the code into my sandbox.  You may access the code at:

http://svn.apache.org/repos/asf/mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/gettingstarted/timeserver/

--Mark

On Wed, Apr 9, 2008 at 5:19 AM, Niall Pemberton [EMAIL PROTECTED]
wrote:

 The  MINA v2.0 Quick Start Guide needs updating for the current API

 http://mina.apache.org/mina-v20-quick-start-guide.html

 In the last MinaTimeServer code snippet it has...

 acceptor.setLocalAddress( new InetSocketAddress(PORT) );
 acceptor.bind();

 ...but setLocalAddress() doesn't exist (in Mina 2.0.0-M1) - should be
 changed to setDefaultLocalAddress() or replace those lines with

 acceptor.bind(new InetSocketAddress(PORT));

 The other thing is the lines added in the 3rd MinaTimeServer code
 snippet have been dropped from the 4th(last) code snippet, i.e.

 acceptor.getSessionConfig().setReadBufferSize( 2048 );
 acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );

 Niall




-- 

Talent hits a target no one else can hit; Genius hits a target no one else
can see.


Re: MINA v2.0 Quick Start Guide

2008-04-09 Thread Mark Webb
will do...


On Wed, Apr 9, 2008 at 8:59 AM, 이희승 (Trustin Lee) [EMAIL PROTECTED]
wrote:

 Why don't you include it into the trunk?  There's an example module
 already.

 Cheers,

 Mark Webb wrote:
  Niall,
 
  Thanks for pointing this out to me.  I have updated the wiki and also
 placed
  the code into my sandbox.  You may access the code at:
 
 
 http://svn.apache.org/repos/asf/mina/sandbox/mwebb/mina/src/main/java/org/apache/mina/gettingstarted/timeserver/
 
  --Mark
 
  On Wed, Apr 9, 2008 at 5:19 AM, Niall Pemberton 
 [EMAIL PROTECTED]
  wrote:
 
  The  MINA v2.0 Quick Start Guide needs updating for the current API
 
  http://mina.apache.org/mina-v20-quick-start-guide.html
 
  In the last MinaTimeServer code snippet it has...
 
  acceptor.setLocalAddress( new InetSocketAddress(PORT) );
  acceptor.bind();
 
  ...but setLocalAddress() doesn't exist (in Mina 2.0.0-M1) - should be
  changed to setDefaultLocalAddress() or replace those lines with
 
  acceptor.bind(new InetSocketAddress(PORT));
 
  The other thing is the lines added in the 3rd MinaTimeServer code
  snippet have been dropped from the 4th(last) code snippet, i.e.
 
  acceptor.getSessionConfig().setReadBufferSize( 2048 );
  acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );
 
  Niall
 
 
 
 

 --
 Trustin Lee - Principal Software Engineer, JBoss, Red Hat
 --
 what we call human nature is actually human habit
 --
 http://gleamynode.net/




-- 

Talent hits a target no one else can hit; Genius hits a target no one else
can see.


  1   2   3   >