Am Donnerstag, den 13.07.2006, 16:48 +0200 schrieb Stefano Bagnara:
> Hi all,
> 
> This is a test, I hope it will work because I don't see another simple 
> solution to move forward from the current stall.
> 
> I'm starting this vote because I saw that there is a lot moving around 
> this issue and we probably currently don't share a common idea, so it's 
> better to see what the preferences/likes/dislikes/vetoes are in the 
> various aspects of this issue.
> 
> I expect to receive clear -1...+1 votes (decimal values allowed) even if 
> this is not a "standard" vote. I'd like to keep discussion out from this 
> thread in order to keep this clean (there are a lot of options, so it's 
> better to keep it clean).
> 
> I think that a small sentence explaing the vote should be allowed, but 
> please *small* or this will become a mess (maybe you want to add 
> priorities and dependencies on other votes).
> 
> The votes are many and are not clearly organized, but I hope this will 
> give us a first overview on the things where we have agreements and 
> things that may be discussed more. We have a broad range of 
> possibilities for our architecture, so we should try to narrow the real 
> options that will not be vetoed and get more consensus.
> 
> I want to see if there is at least one option that will not be vetoed by 
> someone :-/
> 
> This is far from complete, but I saw that we was not reaching an 
> agreement, so we need to understand what is the current position of each 
> committer before starting working on things that will be vetoed.
> 
> I hope that after this one it will be more clean what are the liked 
> scenarios and that we can start with small proposals for solutions, 
> roadmap and specific votes.
> 
> I will put my votes in a reply to this.
> 
> Here is a glossary:
> 
> "API Components" => Matcher/Mailets/"new CommandHandlers"
> "Top Level Components" => The components currently wired in assembly.xml
> "Other James Components" => Other components instantiated by Top Level 
> Components but not directly handled by Phoenix.
> 
> "Phoenix" => Our current Avalon container
> "Avalon" => The avalon framework
> "Cornerstone" => I will consider both Cornerstone and Excalibur 
> components inside this name
> 
> Example votes:
> 
> "+1" => I really like this and I will put my hands in for this to happen
> "+0.1 .. +0.9" => I like this solution
> "+0" => I'm not against this
> "-0" => I can live with it, but I prefer something else.
> "-0.1 .. -0.9" => I don't like it, but I will not veto it
> "-1" => I'm probably going to veto this
> 
> And now the bulk questions:
> 
> A. Deprecate phoenix
> A1. Replace it with Plexus (http://plexus.codehaus.org/)
+0 Never used..
> A2. Replace it with another Avalon compliant container (name it)
-0
> A3. Replace it with Felix (http://incubator.apache.org/felix/)
+0.5 Felix seems to be very intressting.. But maybe its a bit overkill..

> 
> B. Remove avalon
> B1. Remove it from "API Components"
+0.8 That whould be cool.. I don't like the idea of need knowing about
avalon to write mailets or smtphandler etc..

> B2. Remove it from both API Components and Other James Components
-0.5
> B3. Remove it from all the codes and keep wrapper for Top Level 
> Components to be adapted to the container (Avalon or other).
-0.5
> 
> C. Remove Cornerstone
> C1. Remove cornerstone dependencies in favor of Jakarta commons 
> libraries where available
+0.5 
> C2. Use MINA to replace sockets/connection dependencies
+1 After what i see on apacheCon this seems to be the best way to get a
better rid of many connections etc.

> C3. Import code from not replaceable libraries to James codebase 
> (refactoring it to remove Avalon and anything else needed)
-0
> 
> Now I expect that many will have replied +X to A3 or at least to one of 
> the B*, so here are further votes related to this scenario.
> 
> D. Lifecycle and dependency management
> D1. Use JNDI everywhere (ala J2EE)
+0 Can say anything about this.. no expirence

> D2. Keep Avalon interfaces but write our own mini container for non Top 
> Level Components.
+0.5 I like avalon ;-)

> D3. Introduce new interfaces to replace the one from Avalon and create 
> our own container (that may delegate to the real container we use) to 
> manage lifecycle and dependencies. (see also "Central class for service 
> injection" topic by Bernd)
+0.8 I like Bernds idea..

> 
> E. Specific API Components issues:
> E1. Use JNDI to lookup datasources
+0 like i said no expirences with JNDI

> E2. Use JNDI to lookup users/mail repositories, the store and any other 
> James component.
+0

> E3. Add datasource, re
> positories, store and any other used service to 
> the MailetContext API (this also mean adding the interfaces for this 
> objects to the Mailet APIs)
-0 
> E4. Use Dependency Injection (setter based, constructor based, enabling 
> interfaces, service locator injection) to automatically satisfy 
> components dependencies.
+0.8 
> E5. Keep the ServiceManager as a property stored in the MailetContext.
-0.5 Seems to be more a hack..
> 
> If you voted +X to something DI related please also vote this:
> 
> G. Dependency Injection
> G1. Use CDI (constructor base DI)
+0
> G2. Use Setters
+0.5
> G3. Use Setters with Enabling Interfaces
+0.5

> G4. Keep single setter for ServiceLocator (ala Avalon)
+0

> G5. Use reflection and convention over configurations for the above DI
+0

> 
> Furthermore these technologies could be used to sole one or more aspects 
> of the above points, please give your opinions.
> H1. Use Spring
-0

> H2. Use XBean
+0

> H3. Use OSGi Declarative Services
+0.5

> 
> 
> Stefano
> 
> PS: I'm willing to track this thread and produce an (i hope unbiased) 
> overview of the result.


bye
Norman

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to