Re: Jakarta EE 11 may be changing minimum Java version to 17

2024-02-20 Thread David Blevins
> On Feb 20, 2024, at 8:08 AM, Mark Thomas  wrote:
> 
> Looking at the latest version of the Jakarta EE 11 release plan, the minimum 
> Java version has been dropped to Java 17.
> 
> https://jakartaee.github.io/platform/jakartaee11/JakartaEE11ReleasePlan
> 
> On that basis I think we have no choice but to reduce the minimum Java 
> version for Tomcat 11 to Java 17.

Implementations are not required to support Java 17, it is simply now one of 
the allowed options.  We can absolutely continue with java 21 (or any JDK 17 or 
up) if we like.

The decision was made to allow implementations to certify with 17 support if 
they wanted as none of the specs took advantage of Java 21 features, so there 
is no real basis to reject their certification requests.  It is still hoped 
there will be implementations that take advantage of Java 21 features and brag 
publicly about them.


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [DISCUSS] EOL date for 8.5.x

2022-10-25 Thread David Blevins
> On Oct 21, 2022, at 12:12 PM, Christopher Schultz 
>  wrote:
> 
> I'm wondering if I should migrate my applications to 9.0 or 10.x and start 
> re-writing imports. The flexibility of Tomcat 10.x is just incredible. I'm 
> kind of leaning toward skipping 9.x.

Do it! :)


-David



smime.p7s
Description: S/MIME cryptographic signature


Re: [DISCUSS] EOL date for 8.5.x

2022-10-25 Thread David Blevins
> On Oct 7, 2022, at 2:27 AM, Mark Thomas  wrote:
> 
> Hi all,
> 
> I don't think there is a need to make a decision on this quickly, but based 
> on past experience and the current discussions about Jakarta EE 11 I think 
> this is something we need to start thinking about.
> 
> Some key facts:
> 
> - Tomcat 7.0.x reached EOL on 31 March 2021
> - EOL dates for major versions tend to be 3-4 years apart
> - We aim to support 3 major versions in parallel - currently 8.5.x,
>  9.0.x and 10.1.x.
> - Tomcat 11 will implement Jakarta EE 11
> - Current Jakarta EE discussions are around a release in ~1 year
> - Ideally, Tomcat 8.5.x EOL would be just after Tomcat 11 is declared
>  stable
> 
> Based on the above I think EOL for 8.5.x should be either 31 March 2024 or 30 
> Sept 2024 depending on when we think Jakarta EE 11 will be released.
> 
> Jakarta EE releases have tendency to slip so I think the 30 Sept 2024 is 
> probably the more likely. However, it is much easier to delay an EOL date 
> than to bring to bring it forward so my current thinking is to announce 31 
> March 2024 as the EOL date for 8.5.x and keep in mind that we can extend that 
> if we want to.
> 
> Thoughts?

Sounds good to me.  From a TomEE perspective, the only release streams that'd 
be affected are TomEE 7.1 and 7.0.  Both of those already have unmaintained 
dependencies with CVEs, so releases of them have already stopped.


-David



smime.p7s
Description: S/MIME cryptographic signature


Re: Possible Connector doc update with NIO & NIO2

2022-05-19 Thread David Blevins
> On May 19, 2022, at 5:16 PM, David Blevins  wrote:
> 
> - useSendfile
> 

Quick correction.  This one seems to be common between NIO, NIO2 and Apr and 
has the same description in all three.  Potentially it could go in the "Common 
Attributes" section.


-David



smime.p7s
Description: S/MIME cryptographic signature


Possible Connector doc update with NIO & NIO2

2022-05-19 Thread David Blevins
Hey All,

I was picking through the connector docs generating some code from the 
descriptions and I noticed there are a handful of properties common between NIO 
and NIO2.

 - socket.appReadBufSize
 - socket.appWriteBufSize
 - socket.directBuffer
 - socket.directSslBuffer
 - useSendfile

These attributes have the exact same description in both the NIO and NIO2 
sections.  Should they be moved into the "Java TCP socket attributes" section 
which is somewhat dedicated to attributes NIO and NIO2 have in common?

Note, I do definitely see there are attributes with the same name but different 
descriptions/defaults.  In particular:

 - socket.bufferPool
 - socket.processorCache

Should I submit a PR to move some or all of the first 5 or should they be left 
where they are?


-David



smime.p7s
Description: S/MIME cryptographic signature


Re: Potential mention on the website

2022-03-31 Thread David Blevins
> On Mar 31, 2022, at 12:13 PM, Christopher Schultz 
>  wrote:
> 
> Mark,
> 
> On 3/29/22 19:40, Mark Thomas wrote:
>> I worry that putting much more than a simple link on the which version page 
>> could cause confusion. Something like:
>> "For users wanting a Java EE / Jakarta EE container that supports additional 
>> specifications like XXX see Apache TomEE."
> 
> +1
> 
>> My preference is for a new menu item - probably under misc - called "Related 
>> Apache Projects" (a shorter, snappier title preferred) where we can link to 
>> the various ASF projects related to Tomcat and have a paragraph or two on 
>> each project.
> 
> I like this. What else might qualify? If it's really only TomEE (and flavors 
> thereof), we could name that section "Enterprise .. something".
> 
>> Off the top of my head, there is Ant (initially created to build Tomcat), 
>> Commons Pool, DBCP, Modeler, Daemon (all spun off from Tomcat), httpd, TomEE 
>> and probably a bunch I have forgotten about.
> 
> Digester, another Tomcat graduate.
> 
> Other than TomEE (and httpd), those are all dependencies / upstream from 
> Tomcat, which IMO puts TomEE in a slightly different bucket. I would say that 
> httpd isn't really "related" to Tomcat other than (a) they are both ASF 
> projects and (b) they are both web servers. But there's also ATS, ATC and 
> probably one or two other web servers under ASF umbrella I haven't heard of 
> yet.

On httpd, I know a very large number of Tomcat/TomEE users I see in the wild 
use httpd in front for load balancing.

I think a related projects page could be pretty great if we:

 - Mentioned why it is potentially interesting to Tomcat users and provided a 
pointer or two.  I.e. treat it as documentation, not just a list of links.  The 
section would still have to be brief -- no taking up a whole or even half a 
page.

 - Gave people a reason to look at it by linking to in other sections of the 
website beyond the left nav.  It would be context dependent.  For example, if 
we're talking about load balancing, we mention httpd and link to 
https://tomcat.apache.org/related.html#httpd.  The whichversion.html could have 
the one sentence that mentions TomEE as a way to get more Jakarta EE impls on 
Tomcat out-of-the-box and link to https://tomcat.apache.org/related.html#tomee

Could be a nice balance.  We could still mention things like TomEE where 
needed, but they'd be going to a page with a great big "related projects" title 
and a clear statement these are external projects, which would allow us to give 
a bit more information on why it's useful for Tomcat people without potentially 
confusing people in thinking it's a Tomcat thing.

Thoughts?


-David



smime.p7s
Description: S/MIME cryptographic signature


Re: Potential mention on the website

2022-03-29 Thread David Blevins
> On Mar 28, 2022, at 10:12 AM, Christopher Schultz 
>  wrote:
> 
> David,
> 
> On 3/26/22 14:13, David Blevins wrote:
>> I've never had the bravery to ask
> 
> Why the heck not?

Perhaps it's a Geronimo hangover, but I never wanted to risk creating a 
situation where people felt forced or inadvertently create conflict.

> 
>> but would there be some willingness to consider adding a mention of
>> TomEE on the Tomcat website?
> 
> I'm up for it. I can't imagine anyone on the Tomcat PMC would have any
> problem with this. Anyone?
> 
>> Any sign of pushback and I'll happily drop -- it's far more important
>> to maintain good will, respect boundaries and keep things friendly.
>> If there was some warmness to the idea, perhaps something very subtle
>> at the bottom of the Tomcat description on the front page, "For
>> distributions of Tomcat that contain Jakarta REST, Jakarta CDI,
>> Jakarta Enterprise Beans (EJB) and similar specifications see Apache
>> TomEE."
> I guess the question would be "where is the best place to put this?" Does 
> TomEE have versions that track Tomcat versions in any way? Or do you just use 
> whatever version is "best at the time of packaging" or whatever?
> 
> For example, relegating TomEE to the "download" page(s) would mean that 
> someone would have to know they want to download a specific Tomcat version, 
> then decide at the last second that they instead want TomEE. If you don't 
> release new versions every month (ish, like we do), then we could easily get 
> out of sync.

It's a mix.  Each TomEE major version will fix itself to a Tomcat major 
version. 

 - TomEE 7 (Java EE 7) uses Tomcat 8.5
 - TomEE 8 (Java EE 8) uses Tomcat 9
 - TomEE 9 (Jakarta EE 9.x) uses Tomcat 10 

TomEE 9 is still in milestone, but should be released in a few months.  We've 
been basing our version numbers on the Java EE / Jakarta EE spec number.  For 
Tomcat 10.1, TomEE 10, Jakarta EE 10, they'll be pretty close and might 
possibly sync perfectly at 11 -- for a while at least.

On release speed, we definitely don't keep up with Tomcat pace -- we're more 
once a quarter than once a month.  As well it can take us many months longer to 
reach final as there's a lot more in the box to certify.

> I'm thinking that maybe what we should do it put TomEE on the "Which 
> version?" page (https://tomcat.apache.org/whichversion.html). Below the grid 
> of spec versions and associated Tomcat versions, we could put a heading which 
> says something along the lines of "Jakarta Foo + Bar are packaged with TomEE" 
> and just throw the user over to whatever page at TomEE makes the most sense.
> 
> My only concern would be to properly inform users what is happening. I'm an 
> Eclipse user and any time I have to download a new version from their web 
> site I have to re-learn the differences between "Eclipse IDE for Java 
> Developers" and "Eclipse IDE for Java and DSL Developers" and "Eclipse IDE 
> for Enterprise Java and Web Developers" and I guess whatever the hell Thelia 
> is, now.
> 
> I wouldn't want anyone to inadvertently install TomEE if all they really want 
> is Tomcat or "only" install Tomcat when they need the additional features and 
> APIs that TomEE provides. Perhaps just a reference to here would be 
> sufficient: https://tomee.apache.org/comparison.html

I'm open to what people think is the right.  The whichversion.html page idea 
could be good.  

A nice thing about a heading on the whichversion.html page is that it's 
something we can link to in the tomcat.apache.org website, say 
"https://tomcat.apache.org/whichversion.html#tomee; or something.  When twitter 
polls like this happen we can paste the link and hopefully not see 50% of 
people saying "yes":

 - https://twitter.com/brunoborges/status/1507591056086343681

There were several TomEE mentions there, but my experience is unless they see 
it mentioned on the Tomcat website they often perceive it skeptically as a 
competitive effort against Tomcat.

Under the heading we could have a few sentences with a bit more detail on which 
specs (the most popular ones as the full list is large), perhaps the Tomcat to 
TomEE version mapping, and a link to the 
https://tomee.apache.org/comparison.html page.  Something brief, that's no 
bigger (ideally smaller) than the "Alpha / Beta / Stable" heading so as not to 
distract too much.

If people are up for it, a very brief mention on the main page that links to 
the whichversion.html page would be effective.  My gut is unless we put 
something there, most people won't see it and we'll likely only educate 5% or 
10% of people who say "yes" to polls like one above.


-David



smime.p7s
Description: S/MIME cryptographic signature


Potential mention on the website

2022-03-26 Thread David Blevins
Hey All,

I've never had the bravery to ask, but would there be some willingness to 
consider adding a mention of TomEE on the Tomcat website?

Any sign of pushback and I'll happily drop -- it's far more important to 
maintain good will, respect boundaries and keep things friendly.  If there was 
some warmness to the idea, perhaps something very subtle at the bottom of the 
Tomcat description on the front page, "For distributions of Tomcat that contain 
Jakarta REST, Jakarta CDI, Jakarta Enterprise Beans (EJB) and similar 
specifications see Apache TomEE."

Thoughts?


-David



smime.p7s
Description: S/MIME cryptographic signature


Re: Potentially changing utilityThreadsAsDaemon default in 10

2020-08-31 Thread David Blevins
> On Aug 31, 2020, at 12:27 PM, Rémy Maucherat  wrote:
> 
> > On Mon, Aug 31, 2020 at 8:39 PM Mark Thomas  wrote:
> >> On 31/08/2020 17:17, David Blevins wrote:
> >> Hey All,
> >> 
> >> Curious if there would be any willingness to change the default of this to 
> >> true for Tomcat 10 prior to final release.
> >> 
> >>  - 
> >> https://github.com/apache/tomcat/blob/master/java/org/apache/catalina/core/StandardServer.java#L195
> >
> > Unlikely based on the information provided. Making the utility threads
> > daemon threads looks like a hack to work around a problem elsewhere. I'm
> > more interested in tackling the root cause.
> 
> I added the option because "you never know", but I don't quite see why it's a 
> good idea to interrupt this sort of work.

I think the flag is only useful because the current default is true.  The first 
default you put was false and I definitely agree with your commit message on it:

  "Those threads are not bad candidates for non daemon by default, given they 
are managed by an executor." [1]

I agree with that as historically all pools in Tomcat were set as daemons, 
including all http thread pools.  The main thread where `Catalina.start()` ran 
was the only non-daemon thread that could prevent a JVM exit.  If you didn't 
set `await` in Catalina you got the intended consequence that no threads would 
be left holding the JVM open.

This was a great contract for embedded environments like unit tests.  In these 
scenarios where you did not want Tomcat internals hold the JVM open you just 
needed to take care to set `await` to false and all worked fine.

The concern is when we add new threads that don't adhere to that contract 
everyone's embedded setups now break.

 - 
https://stackoverflow.com/questions/55382691/how-to-check-why-jvm-is-not-able-to-terminate
 - https://github.com/spring-projects/spring-boot/issues/17139

The reason I say the flag is limitedly useful is as Mark points out this flag 
doesn't have any influence over Tomcat standalone usage.  There await is set to 
true and therefore the explicit `stop()` phase is called which will shutdown 
the utility pool, daemon or not.

So while the change was invisible to standalone users, for all embedded users 
it was a breaking change over 9.0.13.

When we introduce a breaking change like that causes people's unit tests or 
embedded environments to not terminate, everyone has to learn the hard way 
about the new flag and figure out how to work it in.

I think the root issue is not actually about which is safer daemon or 
non-daemon threads, really more about adding new shutdown requirements in the 
middle of a major version.

All the refactoring you did that whole month does underline how even with a lot 
of deliberation it's very tough to know which way to lean.  It's usually those 
flip-flop situations where it's not clear what the right answer is that end up 
getting you.  I'm incredibly grateful there is at least a flag there.

What I would recommend is we agree on some sort of daemon thread policy.  Some 
options:

 - All threads outside Catalina's "main" should be daemon by default
 - The daemon setting of threads outside Catalina's "main" should default to 
the value of Catalina.await
 - The daemon setting of threads outside Catalina's "main" should default to 
the value of some new very well-documented setting

Thoughts?


-David


[1] 
https://github.com/apache/tomcat/commit/75489c324730511ab5ff12a0ee3606b7c8926726



smime.p7s
Description: S/MIME cryptographic signature


Potentially changing utilityThreadsAsDaemon default in 10

2020-08-31 Thread David Blevins
Hey All,

Curious if there would be any willingness to change the default of this to true 
for Tomcat 10 prior to final release.

 - 
https://github.com/apache/tomcat/blob/master/java/org/apache/catalina/core/StandardServer.java#L195

The current default prevents a JVM shutdown and effectively means setting this 
to either true or false has no effect:

 - 
https://github.com/apache/tomcat/blob/master/java/org/apache/catalina/startup/Catalina.java#L91



-David



smime.p7s
Description: S/MIME cryptographic signature


Re: CDI support improvements

2019-06-12 Thread David Blevins

> On Jun 12, 2019, at 6:35 AM, Rémy Maucherat  wrote:
> 
> On Wed, Jun 12, 2019 at 11:11 AM Mark Struberg  
> wrote:
> 
> Rémy's enhancements are great - the better and cleaner the integration, the 
> better for all those projects.
> But Romain and David are also correct: it's very easy to become a committer 
> on all the involved projects, especially for people known to deliver 
> outstanding code and to be excellent community players!

I'll restate my position below just to be clear I am a fan of the effort.

> Having a build reference to TomEE or OWB in Tomcat would introduce cycles in 
> our builds. This is not really a good thing.
> 
> That did not seem very practical to me so the said code is quite Tomcat-like 
> right now and most importantly it needs the fixes made in 9.0.21, so it won't 
> work with any older Tomcat. If you really can take it over (and un-Tomcatize 
> the code, I suppose), no problem.

The "Tomcat-like" is the part I really like.  Some historical perspective from 
my eyes:

  - In Geronimo we did the integration "outside" Tomcat, by stripping it down
  - In TomEE we did the integration "inside" Tomcat, but making no changes

I see this as a first attempt to potentially make some things easier in Tomcat 
itself and that is exciting and worth encouraging.

>  
> 
> B.) We should also try to keep code and responsibilities at a single place 
> and shall try to avoid duplications. This has nothing to do with 'ownership' 
> - shuch a concept doesn't exist at the ASF anyway. But it has a lot to do 
> with users knowing exactly where to look at if they are searching for a bug 
> or even want to contribute a new feature. 
> 
> Ok, so I guess I don't need to do anything further in that area since you 
> prefer to continue covering it. I'll move on to other items on my todo list 
> then.

I personally wouldn't want to see that.  I restate that from my perspective, 
I'd be happy to make every attempt to drop no-longer-needed code from TomEE and 
uptake the newer code in Tomcat.

My only pause is if people actually want a CDI integration here.  If people 
think it's worth at least a poke, however, I'm all in.

Is this something people would want and what is the best way to do it 
here-here? (not in one of our personal repos)


-David



Re: CDI support improvements

2019-06-11 Thread David Blevins
> On Jun 11, 2019, at 12:02 PM, Mark Thomas  wrote:
> 
> On 11/06/2019 19:37, David Blevins wrote:
>> 
>> At a high level, is there a desire to start supporting more "EE" like specs 
>> such as CDI, JAX-RS, JPA, etc?
> 
> Make it easier to integrate? Sure.
> 
> Implement additional specs? No.

That's been my understanding as well.


> On Jun 11, 2019, at 12:21 PM, Rémy Maucherat  wrote:
> 
> Ok, so the plan (my plan, actually) here is that I noticed CDI (and JAX-RS) 
> is the building block of many other APIs (like the Microprofile), so there's 
> a need to be able to use it in a "clean and light [and] in Tomcat spirit" way 
> (as you said). I had a look at OWB and CXF and while the support is there, it 
> needs some work (especially for the latter) and is certainly not user 
> friendly (again, esp for the latter). Note that the work is also in Tomcat 
> itself, since I'm in a good position to make changes and improvements as 
> needed.
> 
> As for the answer, it would still be "no" at this point, since at most these 
> could be considered as a couple extra optional modules like the jdbc pool, or 
> maybe "build them yourself" poms.

If CDI integration code were to live here, I'd probably want to see us rebase 
TomEE on top of it.  That would probably mean occasional CDI-related PRs, 
documentation, dev threads, user questions, etc.  It's a bit of a can of worms 
even if it's an add-on, which is why I ask the above.

In the event people here prefer not to open that can of worms of supporting 
Tomcat+CDI integration code, it and you would be more than welcome in TomEE.  
We could have a "Tomcat+CDI" dist of TomEE that used just the new code.  As 
noted above, we'd probably rebase the other TomEE dists on that one.  It's been 
8 years and I definitely have appetite for a fresh perspective (just like you, 
speaking for myself only not all of TomEE).

I'm a fan wherever it lives.  My concern would be if it happens here and isn't 
actually welcome.  I would feel very awkward sending people over to help 
maintain it.


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: CDI support improvements

2019-06-11 Thread David Blevins
Hi All,

At a high level, is there a desire to start supporting more "EE" like specs 
such as CDI, JAX-RS, JPA, etc?

Completely understood if the answer is "depends."  I suspect it would depend on 
if the code is clean and light in Tomcat spirit.

I write this not from the perspective of "let's move a bunch of TomEE code into 
Tomcat", but more of "let's write cleaner newer code in Tomcat and retire 
equivalent TomEE code."

That's not a specific proposal, just curious if appetite has developed in 
recent years to entertain tip-toeing beyond the same set of specs.


-- 
David Blevins
http://twitter.com/dblevins
http://www.tomitribe.com

> On Jun 11, 2019, at 8:06 AM, Romain Manni-Bucau  wrote:
> 
> 
> 
> Le mar. 11 juin 2019 à 16:57, Rémy Maucherat  a écrit :
> On Thu, May 30, 2019 at 9:35 AM Romain Manni-Bucau  
> wrote:
>  
> Once done it can be hosted on both side.Owb has the advantage to be know by 
> users, tomcat to be a more natural home for an integration. At the end it is 
> mainly synchronizing both projects for a consistent communication and code 
> "move" IMHO.
> 
> For deep tomcat/cxf integration, you can use 
> http://svn.apache.org/repos/asf/openwebbeans/meecrowave/trunk/ - core module. 
> Technically it uses an embedded flavor but it would be easy to move to a 
> standalone one through a listener based on a small refactoring in 
> Meecrowave#start. The good part are the lifecycle and scanning integrations + 
> the tooling to make testing and dev simple - 
> http://openwebbeans.apache.org/meecrowave/.
> 
> Ok, I think things look reasonably good using CDI extensions (looking at the 
> Geronimo mp implementation you did) except the default CXF "servlet" 
> integration. I think right now the "servlet" integration from the 
> cxf-rt-transports-http package is "bad" and that the one from Meecrowave (in 
> org.apache.meecrowave.cxf) is more likely to be the way to go (it derives 
> from cxf-integration-cdi).
> 
> So this looks a lot closer to Meecrowave than I originally expected, with a 
> lot of "buts" though:
> - Meecrowave feels a lot like "Tomcat for Meecrowave" while the goal here is 
> a "Meecrowave for Tomcat"
> 
> Guess this one can converge - at least for TomEE it did and we have a tons of 
> flavors, I dont see a blocker to unify it here to.
>  
> - The JAR has all of Tomcat, log4j, API JARs, etc, while it should here be 
> based off Tomcat, the javax APIs and OWB already present in the Tomcat OWB 
> implementation JAR (the classic "tomcat7" or the modernized "tomcat-owb")
> 
> The jar is just one flavor of meecrowave - assuming you reference the fatjar, 
> you should still be able to use it as plain unitary dependencies.
> The missing part here is to extract from Meecrowave master class all the 
> logic to "glue" the stack in Tomcat (mainly extracting it in a Listener I 
> guess and ignoring the specific launcher config?)
>  
> - log4j would need to be removed as well
> 
> It is already supported, in this IT we drop log4j, johnzon, cxf: 
> https://github.com/apache/meecrowave/blob/trunk/integration-tests/no-cxf/pom.xml#L32
>  
> - plenty of configuration files and options in the JARs, but I guess that's 
> the way it is since all the subcomponents are so flexible
> 
> Yep, but all are also settable from a listener or a centralized file, we are 
> really free here.
>  
>  
> 
> 
> More technically: openwebbeans does not need properties files you can pass 
> Properties when you create the WebBeansContext, this is what tomee does. Same 
> for cxf and its bus ;).
> 
> Ok, I'll have a look at that, it's better than properties files (but similar).
> 
> Biggest short term challenge is to align scanners but it is very doable, long 
> term it is to drop big core jars in all 3 libs for smaller bundles ;).
> 
> Ok.
> 
> Feel free to shout if you need help or more precise pointers.
> 
> Rémy
> 


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [VOTE] Migrate to git

2019-02-25 Thread David Blevins
Vote is closed I'm just a lurker, but non-binding +1 from me :)

Great to see this!


-David


> On Feb 21, 2019, at 8:13 AM, Mark Thomas  wrote:
> 
> This is a VOTE to migrate the primary source code repository for Apache
> Tomcat 9.0.x, 8.5.x and 7.0.x from svn to git.
> 
> The migration will be performed as per:
> https://cwiki.apache.org/confluence/display/TOMCAT/Git+migration
> 
> with the following changes:
> - 8.0.x will not be migrated
> - the tag name format will be changed from "TOMCAT_9_0_5" to "9.0.5"
> - the branches will be named master, 8.5.x and 7.0.x
> 
> The proposed date (subject to Infra agreement) for the migration is 26
> Feb 2018.
> 
> The migration process will be:
> - Make svn read only for trunk, 8.5.x and 7.0.x
> - Turn off the svn->git replication for trunk, 8.5.x and 7.0.x
> - Make git://git.apache.org/tomcat.git read/write for me only
> - Perform the migration as set out in the wiki with the modifications
>  described above
> - Check the migration
> - Make git://git.apache.org/tomcat.git read/write for all committers
>  (Note: This automatically makes https://github.com/apache/tomcat
>   read/write as well)
> 
> The critical work is done at this point. The following tasks are more
> clean-up and may end up being spread over several days.
> 
> - Confirm there are no open PRs for https://github.com/apache/tomcat85
>  and then delete it and git://git.apache.org/tomcat85.git
> - Confirm there are no open PRs for https://github.com/apache/tomcat70
>  and then delete it and git://git.apache.org/tomcat70.git
> - Update the CI systems to pull the source from git
> - Create /source.html and replace /svn.html with a redirect to
>  /source.html
> - Update migration guide to pull diffs from gitweb
> - Update Tomcat Native to pull in source from git hash
> - Fix anything else we have forgotten about.
> 
> If anything goes wrong and we can't fix is easily, the fallback is to
> make svn read-write and go back to using svn while we clean up the git
> side of things, figure out what went wrong and come up with a better
> migration plan.
> 
> [ ] +1 Go ahead with the migration
> [ ] -1 Postpone the migration because...
> 
> The vote will be open for at least 72 hours.
> 
> Mark
> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Consider support for the Servlet profile of JSR 196 (JASPIC) in Tomcat 7.0.x

2015-06-10 Thread David Blevins
Hi folks!  Great to see this thread picking up steam.

On Jun 10, 2015, at 6:12 AM, Mark Thomas ma...@apache.org wrote:

 On 10/06/2015 13:34, Fjodor Vershinin wrote:
 
 And what about code backward compatibility for Geronimo,
 should code ported back, or new Geronimo release can use our
 implementation?
 
 Re-use by downstream consumers of Tomcat like TomEE and Geronimo is
 certainly a goal. The TomEE folks tend to provide feedback when we do
 something that makes their life difficult so I'd expect them to speak up
 if they spot a problem.

We'll happily be waiting for the code upstream. :)

 I wouldn't worry about backwards compatibility for Geronimo. That would
 probably be difficult to achieve. Keep in mind that Geronimo may wish to
 re-use the code (or just some of the patches) but if you need to change
 something you should feel free to do so.

Agree.  I'd focus on making the code as tight and clean as possible.

On Jun 10, 2015, at 6:31 AM, Mark Thomas ma...@apache.org wrote:

 On 10/06/2015 14:04, Arjan Tijms wrote:
 
 Tomcat already has some dedicated configuration files for this.
 
 My expectation is that all of Tomcat's existing authentication
 mechanisms would be made available at the container level (BASIC,
 DIGEST, FORM, CLIENT-CERT, SPNEGO).
 
 It should be a small step from there to replacing Tomcat's current
 authenticators with the appropriate JASPIC config.

Is the hope that these existing forms of auth will be ported and plugged in 
through the JASPIC support?  That would be quite excellent if so.


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Possible TomEE release news?

2014-06-24 Thread David Blevins
Wonder what people's thoughts are about possibly including TomEE releases in 
the Tomcat news feed on occasion?

Having some mention of TomEE on tomcat.apache.org would be nice -- most users 
still do not know it exists.  However, I've never mentioned it as I personally 
couldn't think of a good way to do that that didn't feel obtrusive or 
unnatural.  This might be more palatable and less permanent.

I remember Rémy did this some many years ago for an OpenEJB release once and it 
really helped.  We have a TomEE 1.7.0 release coming out soon we could try it 
with.

Thoughts?


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Loading drivers from outside server lib/

2013-08-17 Thread David Blevins
Hi All!

Whipped up a short little patch to allow for JDBC drivers and interceptors to 
be loaded from the thread context class loader as well as the traditional way 
using effectively the server/lib/ based classloader.

 - https://issues.apache.org/bugzilla/show_bug.cgi?id=55444

We were using Commons DBCP which did allow for the driver classloader to be set 
explicitly.  I was tempted to add similar setDriverClassLoader(ClassLoader) and 
getDriverClassLoader() methods to the PoolConfiguration interface, but it 
looked like the values there have been intentionally kept to primitive types.  
Wasn't sure that would be a welcome change.

Happy to redo this in whichever way might be best.


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Consider support for the Servlet profile of JSR 196 (JASPIC) in Tomcat 7.0.x

2013-08-15 Thread David Blevins

On Aug 15, 2013, at 1:07 AM, Mark Thomas ma...@apache.org wrote:

 If you wanted to roll up your sleeves, we'd be more than happy to see it 
 ported or reimplemented in TomEE.
 
 or Tomcat :)

Even better!

-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Consider support for the Servlet profile of JSR 196 (JASPIC) in Tomcat 7.0.x

2013-08-14 Thread David Blevins

On Aug 14, 2013, at 2:25 AM, Arjan Tijms arjan.ti...@gmail.com wrote:

 markt wrote
 No-one said it would be difficult. TomEE has already done it. We'd just
 need to lift the code. Difficulty really doesn't come into it. If there
 is a demand for it, it will get implemented. If there isn't, it won't.
 
 Thanks, that's clear!
 
 Btw, didn't you mean Geronimo there, or really TomEE? Last time I checked
 TomEE didn't have JASPIC implemented yet, but Geronimo of course has.

Right, the code David J wrote some time ago is in Geronimo.  If you wanted to 
roll up your sleeves, we'd be more than happy to see it ported or reimplemented 
in TomEE.

It's a Full Profile requirement and there has been user-demand for seeing 
TomEE+ be full profile compliant.  Something we'd never have done in EE 6 with 
JAX-RPC and other horrific legacy, but much of that is dropped in EE 7 Full 
Profile.


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [Bug 54361] New: Deploy release zip to Maven repository

2012-12-30 Thread David Blevins
On Sun, Dec 30, 2012 at 4:13 PM,  bugzi...@apache.org wrote:
 https://issues.apache.org/bugzilla/show_bug.cgi?id=54361

Not sure how close I got on the deploy setup.  If someone can tell me
the build commands I'd have to run prior to this, I'll give it a whirl
under a different groupid (something nexus will allow).


-David

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Performance degrade

2012-10-27 Thread David Blevins
Was noticing that TomEE had gotten just a tad slower between the 1.0.0 (Tomcat 
7.0.27) and the recently released 1.5.0 (Tomcat 7.0.30).  I usually include a 
pure Tomcat binary or two in my performance testing so I have control group.  
The interesting thing is my control group seems to be my variable :)

Seems there was a measurable decrease in large app deploy time between Tomcat 
7.0.28 and 7.0.29.  I haven't yet had time to dig in with a profiler.  Hoping 
someone might go oh, that's when we changed X and have a tip or two.

Anyway, here's the raw data.  Format is actual-time - reported-time.  
Really, just the actual time is significant.  That's from process launch to 
Server startup in XX ms.  Reported time is just totaling together the 
reported initialization and startup times, which is close but misses a few 
slivers.

WAR confluence-4.1.9.war
  Server apache-tomcat-7.0.10.tar.gz
11552 - 11212
12597 - 12264
11731 - 11410
11960 ms average

  Server apache-tomcat-7.0.20.tar.gz
11346 - 11027
11382 - 11069
11593 - 11282
11440 ms average

  Server apache-tomcat-7.0.25.tar.gz
12789 - 12469
11055 - 10739
11336 - 11019
11726 ms average

  Server apache-tomcat-7.0.26.tar.gz
11350 - 11016
10962 - 10614
10999 - 10669
11103 ms average

  Server apache-tomcat-7.0.27.tar.gz
12897 - 12569
11642 - 11311
11389 - 11055
11976 ms average

  Server apache-tomcat-7.0.28.tar.gz
11462 - 11132
11128 - 10804
11288 - 10955
11292 ms average

  Server apache-tomcat-7.0.29.tar.gz
14976 - 14648
13919 - 13591
14527 - 14198
14474 ms average

  Server apache-tomcat-7.0.30.tar.gz
14515 - 14185
14383 - 14055
14520 - 14195
14472 ms average

  Server apache-tomcat-7.0.32.tar.gz
15140 - 14806
14724 - 14398
14663 - 14336
14842 ms average


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Updating the Wiki

2012-02-10 Thread David Blevins
I'd like to update this particular question of the wiki to make mention of 
TomEE.

   http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q21

Is it possible to get write access or have someone make that update?


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Updating the Wiki

2012-02-10 Thread David Blevins

On Feb 10, 2012, at 1:55 PM, Mark Thomas wrote:

 On 10/02/2012 21:51, David Blevins wrote:
 I'd like to update this particular question of the wiki to make mention of 
 TomEE.
 
   http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q21
 
 Is it possible to get write access or have someone make that update?
 
 It is an open wiki. The process is simple:
 1. Create an account.
 2. Make the change.

My bad.  Created the account but didn't realize I wasn't logged in.

Added some text.  Feel free to tweak.


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Publishing zips to the maven repo

2011-10-14 Thread David Blevins

On Oct 14, 2011, at 12:07 AM, jean-frederic clere wrote:

 On 10/14/2011 02:01 AM, David Blevins wrote:
 We've been using plain Tomcat zips for creating TomEE in the OpenEJB maven 
 build for a while now.  So far that has been done by publishing the Tomcat 
 zips to a maven repo in svn.  Not the best idea to have them in svn, so 
 we're trying to get them in the actual maven repo.
 
 It's pretty slick to be able to use the maven dependency plugin to download 
 and unpack the zip so you can run integration tests and things like that.  
 Arquillian does that.  Or do like we do and download  unpack with the 
 dependency plugin, then add some wars  zip up again with the maven assembly 
 plugin.
 
 The current plan is to continue using the org.apache.openejb groupId.  Do we 
 (Tomcat) want to publish them ourselves in the org.apache.tomcat section of 
 the repo?
 
 We already have a bunch of sources/binaries in the maven repo can't you build 
 using it? - In other words what is missing or wrong? -

I didn't notice the actual fully assembled Tomcat zip file.  Is that there or 
you referring to the individual jars?

The goal is to have this as a maven artifact:

  
http://www.apache.org/dist/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.zip


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Publishing zips to the maven repo

2011-10-14 Thread David Blevins

On Oct 14, 2011, at 6:05 AM, Olivier Lamy wrote:

 2011/10/14 Mark Thomas ma...@apache.org:
 On 14/10/2011 09:15, Konstantin Kolinko wrote:
 2011/10/14 David Blevins david.blev...@gmail.com:
 We've been using plain Tomcat zips for creating TomEE in the
 OpenEJB maven build for a while now.  So far that has been done by
 publishing the Tomcat zips to a maven repo in svn.  Not the best
 idea to have them in svn, so we're trying to get them in the actual
 maven repo.
 
 Can't maven be taught to download them from proper ASF mirrors?
 
 Possible using this plugin
 http://mojo.codehaus.org/wagon-maven-plugin/download-single-mojo.html

That's where we started and eventually evolved into what we have now.

The build would download the zip to the target directory of the module that 
needed it.  The downside is every clean build you would have to re-download the 
zip.  The thought then comes into mind, if there was only some place I could 
keep it and download it once and putting it in the ~/.m2/repository/ directory 
starts to look really tempting.

At that point it became clear that it would be awkwardly recreating the maven 
download/mirror system.

 Adding the full .zip archive to any Maven repo just seems wrong to me
 (and using the ASF svn server for this is definitely a very bad idea)
 but if the folks managing the main Maven repo are happy with this then I
 have no objection.
 The Central Maven repo already contains huge distrib sample
 http://repo1.maven.org/maven2/org/apache/archiva/archiva-jetty/1.3.5/archiva-jetty-1.3.5-bin.zip
 which is ~29M.

Right.  Some more examples (glassfish, jboss, jetty):

  http://repo1.maven.org/maven2/org/glassfish/distributions/glassfish/3.2-b06/
  
https://repository.jboss.org/nexus/content/groups/public-jboss/org/jboss/as/jboss-as-dist/7.0.2.Final/
  
http://repo1.maven.org/maven2/org/mortbay/jetty/jetty-hightide/8.0.3.v20111011/


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Publishing zips to the maven repo

2011-10-13 Thread David Blevins
We've been using plain Tomcat zips for creating TomEE in the OpenEJB maven 
build for a while now.  So far that has been done by publishing the Tomcat zips 
to a maven repo in svn.  Not the best idea to have them in svn, so we're trying 
to get them in the actual maven repo.

It's pretty slick to be able to use the maven dependency plugin to download and 
unpack the zip so you can run integration tests and things like that.  
Arquillian does that.  Or do like we do and download  unpack with the 
dependency plugin, then add some wars  zip up again with the maven assembly 
plugin.

The current plan is to continue using the org.apache.openejb groupId.  Do we 
(Tomcat) want to publish them ourselves in the org.apache.tomcat section of the 
repo?

Not a Tomcat committer obviously, but would be happy to do the setup work so 
they could go up with the rest of the binaries.

Thoughts?


-David


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



ExtensionValidator scope

2011-03-02 Thread David Blevins
It doesn't appear ExtensionValidator will look in parent classloaders for 
extensions (e.g. tomcat.home/lib/).

Has this ever been discussed and what would you imagine might be the best way 
to do it?


-David




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: 3.0 annotations ?

2009-08-07 Thread David Blevins
Cool.  Feel free to ping me in freenode if you want; dblevins in  
#openejb, #geronimo and #asfinfra.


-David

On Aug 7, 2009, at 9:30 AM, Filip Hanik - Dev Lists wrote:


I'll take a look at this after I'm done with the async stuff

On 08/04/2009 03:28 PM, David Blevins wrote:


On Aug 4, 2009, at 1:22 PM, Costin Manolache wrote:


Thanks - so objectweb instead of BCEL.
I'll try it out - it's a bit different from what I had in mind, it  
looks

like xbean-finder first finds all classes and
than reads the files using the class loader ( but not  
Class.forName, which

is good ) and keeps track of all annotations.

I was thinking of a simple File/zip based scanning, without any  
class loader

- and just select the few
annotations we need and write a web.xml fragment as it goes,  
without keeping

anything in memory.


I've been thinking about adding in a sort of filter for the  
scanning.  Something that could be supplied in the constructor.   
Something simple like:


   public interface Filter {
   boolean accept(String annotationName);
   }

Then you would implement that and be guaranteed to only have  
metadata for the annotations you cared about.  In this case @Filter  
and @Servlet.   I actually already experimented with it in a little  
copy of the ClassFinder, would only take like 10 minutes to  
integrate the change in.


In terms of keeping things in memory, there really isn't that much  
in memory, especially if you filter out the annotations you don't  
care about.  As far as needing a classloader, that is only there so  
we can return a list of classes (or methods, or fields, etc.) when  
you ask for things that have a specific annotation.  Someone has to  
load the class to get the annotation data so it's just in the API  
for convenience.


Another thing I've been experimenting with is some additional byte  
code reading optimizations.  Basically if you know your annotations  
are class-level annotations only, you can get a boost in scan time  
by just reading the top of the class def and skipping the rest.   
The technique is proven, just need to think of an elegant way to  
specify that is the behavior you want.


I guess in 3.0 a deploy tool / phase is absolutely needed - we  
can't have

tomcat scan all files
each time it starts up, so the user will have to do something to  
re-initiate

the scanning. Like touch
web.xml, or run a re-deploy tool.

I'm curious - why objectweb and not BCEL ?


We (OpenEJB) already had a bunch of code using ASM so that's what I  
went with -- I wrote it OpenEJB and moved it over into XBean later  
so others could use it.  I also know a couple ASM guys and find  
it's good getting direct tips for best performance as well as  
getting any features in we need.


-David





On Tue, Aug 4, 2009 at 12:50 PM, David Jencks david_jen...@yahoo.com 
wrote:



We use xbean-finder for this in geronimo/openejb/etc.

http://repo2.maven.org/maven2/org/apache/xbean/xbean-finder/3.5/

https://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean-finder

We also have a servlet 3.0 spec jar I've been trying to keep up  
to date

with the glassfish javadocs.


https://repository.apache.org/content/repositories/snapshots/org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0-EA-SNAPSHOT/


https://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-servlet_3.0_spec

thanks
david jencks


On Aug 4, 2009, at 11:11 AM, Costin Manolache wrote:

Hi, anyone working on the @Filter, @Servlet annotation scanner for

tomcat-trunk ?
If I'm understanding it correctly, tomcat will have to read all  
files in

classes and lib and look for the
annotation - and I would guess the only reasonable option is  
looking at

bytecode.
I checked BCEL - seems reasonably easy, but if anyone has  
different code -

I
would rather reuse it in
tomcat-lite :-)

BTW - there is a typo in javax.servlet.ServletRegistration -  
should be

Dynamic, not Dynmaic.
I can fix it next time I get some free time...

Costin




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: 3.0 annotations ?

2009-08-07 Thread David Blevins
FYI, ClassFinder is just one class and you're welcome to just take a  
copy.  Struts did the same.


-David

On Aug 7, 2009, at 12:55 PM, Costin Manolache wrote:

So far ASM looks good - the size of the jar is amazing. For tomcat- 
lite I'll
probably use it instead of bcel - I'll first try directly, if I get  
confused

by the callback style I'll use xbean-finder or the tree model.

Costin

On Fri, Aug 7, 2009 at 12:49 PM, David Blevins  
david.blev...@visi.comwrote:


Cool.  Feel free to ping me in freenode if you want; dblevins in  
#openejb,

#geronimo and #asfinfra.

-David


On Aug 7, 2009, at 9:30 AM, Filip Hanik - Dev Lists wrote:

I'll take a look at this after I'm done with the async stuff


On 08/04/2009 03:28 PM, David Blevins wrote:



On Aug 4, 2009, at 1:22 PM, Costin Manolache wrote:

Thanks - so objectweb instead of BCEL.
I'll try it out - it's a bit different from what I had in mind,  
it looks

like xbean-finder first finds all classes and
than reads the files using the class loader ( but not  
Class.forName,

which
is good ) and keeps track of all annotations.

I was thinking of a simple File/zip based scanning, without any  
class

loader
- and just select the few
annotations we need and write a web.xml fragment as it goes,  
without

keeping
anything in memory.



I've been thinking about adding in a sort of filter for the  
scanning.
Something that could be supplied in the constructor.  Something  
simple

like:

 public interface Filter {
 boolean accept(String annotationName);
 }

Then you would implement that and be guaranteed to only have  
metadata for
the annotations you cared about.  In this case @Filter and  
@Servlet.   I
actually already experimented with it in a little copy of the  
ClassFinder,

would only take like 10 minutes to integrate the change in.

In terms of keeping things in memory, there really isn't that  
much in
memory, especially if you filter out the annotations you don't  
care about.
As far as needing a classloader, that is only there so we can  
return a list
of classes (or methods, or fields, etc.) when you ask for things  
that have a
specific annotation.  Someone has to load the class to get the  
annotation

data so it's just in the API for convenience.

Another thing I've been experimenting with is some additional  
byte code

reading optimizations.  Basically if you know your annotations are
class-level annotations only, you can get a boost in scan time by  
just
reading the top of the class def and skipping the rest.  The  
technique is
proven, just need to think of an elegant way to specify that is  
the behavior

you want.

I guess in 3.0 a deploy tool / phase is absolutely needed - we  
can't

have
tomcat scan all files
each time it starts up, so the user will have to do something to
re-initiate
the scanning. Like touch
web.xml, or run a re-deploy tool.

I'm curious - why objectweb and not BCEL ?



We (OpenEJB) already had a bunch of code using ASM so that's what  
I went
with -- I wrote it OpenEJB and moved it over into XBean later so  
others
could use it.  I also know a couple ASM guys and find it's good  
getting
direct tips for best performance as well as getting any features  
in we need.


-David





On Tue, Aug 4, 2009 at 12:50 PM, David Jencks david_jen...@yahoo.com

wrote:


We use xbean-finder for this in geronimo/openejb/etc.


http://repo2.maven.org/maven2/org/apache/xbean/xbean-finder/3.5/

https://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean- 
finder


We also have a servlet 3.0 spec jar I've been trying to keep up  
to date

with the glassfish javadocs.



https://repository.apache.org/content/repositories/snapshots/org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0-EA-SNAPSHOT/



https://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-servlet_3.0_spec

thanks
david jencks


On Aug 4, 2009, at 11:11 AM, Costin Manolache wrote:

Hi, anyone working on the @Filter, @Servlet annotation scanner  
for



tomcat-trunk ?
If I'm understanding it correctly, tomcat will have to read  
all files

in
classes and lib and look for the
annotation - and I would guess the only reasonable option is  
looking

at
bytecode.
I checked BCEL - seems reasonably easy, but if anyone has  
different

code -
I
would rather reuse it in
tomcat-lite :-)

BTW - there is a typo in javax.servlet.ServletRegistration -  
should be

Dynamic, not Dynmaic.
I can fix it next time I get some free time...

Costin




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands

Re: 3.0 annotations ?

2009-08-04 Thread David Blevins
No, it scans via ASM for security reasons and only loads classes (with  
no initialization) once you ask for classes that have a specific  
annotation.


Sample code:

  ClassFinder finder = new ClassFinder(webapp.getClassLoader(),  
webappLibUrls);


  for (Class? servlet : finder.findAnnotatedClasses(Servlet.class)) {
  // .. do your processing
  }

  for (Class? filter : finder.findAnnotatedClasses(Filter.class)) {
  // .. do your processing
  }

  // and so on

Additions are welcome if there are any features you might need.

-David



On Aug 4, 2009, at 1:18 PM, Filip Hanik - Dev Lists wrote:


does it load all the classes?
I think byte code check might make more sense if that is the case

Filip

On 08/04/2009 01:50 PM, David Jencks wrote:

We use xbean-finder for this in geronimo/openejb/etc.

http://repo2.maven.org/maven2/org/apache/xbean/xbean-finder/3.5/

https://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean-finder

We also have a servlet 3.0 spec jar I've been trying to keep up to  
date with the glassfish javadocs.


https://repository.apache.org/content/repositories/snapshots/org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0-EA-SNAPSHOT/

https://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-servlet_3.0_spec

thanks
david jencks

On Aug 4, 2009, at 11:11 AM, Costin Manolache wrote:


Hi, anyone working on the @Filter, @Servlet annotation scanner for
tomcat-trunk ?
If I'm understanding it correctly, tomcat will have to read all  
files in

classes and lib and look for the
annotation - and I would guess the only reasonable option is  
looking at

bytecode.
I checked BCEL - seems reasonably easy, but if anyone has  
different code - I

would rather reuse it in
tomcat-lite :-)

BTW - there is a typo in javax.servlet.ServletRegistration -  
should be

Dynamic, not Dynmaic.
I can fix it next time I get some free time...

Costin



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: 3.0 annotations ?

2009-08-04 Thread David Blevins


On Aug 4, 2009, at 1:22 PM, Costin Manolache wrote:


Thanks - so objectweb instead of BCEL.
I'll try it out - it's a bit different from what I had in mind, it  
looks

like xbean-finder first finds all classes and
than reads the files using the class loader ( but not Class.forName,  
which

is good ) and keeps track of all annotations.

I was thinking of a simple File/zip based scanning, without any  
class loader

- and just select the few
annotations we need and write a web.xml fragment as it goes, without  
keeping

anything in memory.


I've been thinking about adding in a sort of filter for the  
scanning.  Something that could be supplied in the constructor.   
Something simple like:


public interface Filter {
boolean accept(String annotationName);
}

Then you would implement that and be guaranteed to only have metadata  
for the annotations you cared about.  In this case @Filter and  
@Servlet.   I actually already experimented with it in a little copy  
of the ClassFinder, would only take like 10 minutes to integrate the  
change in.


In terms of keeping things in memory, there really isn't that much in  
memory, especially if you filter out the annotations you don't care  
about.  As far as needing a classloader, that is only there so we can  
return a list of classes (or methods, or fields, etc.) when you ask  
for things that have a specific annotation.  Someone has to load the  
class to get the annotation data so it's just in the API for  
convenience.


Another thing I've been experimenting with is some additional byte  
code reading optimizations.  Basically if you know your annotations  
are class-level annotations only, you can get a boost in scan time by  
just reading the top of the class def and skipping the rest.  The  
technique is proven, just need to think of an elegant way to specify  
that is the behavior you want.


I guess in 3.0 a deploy tool / phase is absolutely needed - we can't  
have

tomcat scan all files
each time it starts up, so the user will have to do something to re- 
initiate

the scanning. Like touch
web.xml, or run a re-deploy tool.

I'm curious - why objectweb and not BCEL ?


We (OpenEJB) already had a bunch of code using ASM so that's what I  
went with -- I wrote it OpenEJB and moved it over into XBean later so  
others could use it.  I also know a couple ASM guys and find it's good  
getting direct tips for best performance as well as getting any  
features in we need.


-David





On Tue, Aug 4, 2009 at 12:50 PM, David Jencks  
david_jen...@yahoo.comwrote:



We use xbean-finder for this in geronimo/openejb/etc.

http://repo2.maven.org/maven2/org/apache/xbean/xbean-finder/3.5/

https://svn.apache.org/repos/asf/geronimo/xbean/trunk/xbean-finder

We also have a servlet 3.0 spec jar I've been trying to keep up to  
date

with the glassfish javadocs.


https://repository.apache.org/content/repositories/snapshots/org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0-EA-SNAPSHOT/


https://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-servlet_3.0_spec

thanks
david jencks


On Aug 4, 2009, at 11:11 AM, Costin Manolache wrote:

Hi, anyone working on the @Filter, @Servlet annotation scanner for

tomcat-trunk ?
If I'm understanding it correctly, tomcat will have to read all  
files in

classes and lib and look for the
annotation - and I would guess the only reasonable option is  
looking at

bytecode.
I checked BCEL - seems reasonably easy, but if anyone has  
different code -

I
would rather reuse it in
tomcat-lite :-)

BTW - there is a typo in javax.servlet.ServletRegistration -  
should be

Dynamic, not Dynmaic.
I can fix it next time I get some free time...

Costin




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [PATCH] jasper - enum support for tag libs

2007-09-14 Thread David Blevins


On Sep 14, 2007, at 10:34 AM, Filip Hanik - Dev Lists wrote:

- adding methods or altering the signature of the javax. APIs is  
clearly illegal
yes, that would not be spec compliant, that's essentially what spec  
compliant means, that we pass the signature test (which we haven't  
done for a couple of years, until the Geronimo guy submitted the  
patches)


On that note, is the issue with the annotations-api compliance  
cleared up.  Happy to submit a patch if not.


We're running into this in the OpenEJB 3.0 / Tomcat 6 integration and  
have to add delete this jar, add this one instead, restart to the  
setup instructions.


If it is cleared up, any idea what release it might show up in --  
just looking for something to mention in the docs.


--
David Blevins




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



Re: Juli/Logging

2007-08-01 Thread David Blevins


On Aug 1, 2007, at 1:30 AM, Rainer Jung wrote:


David Blevins wrote:
My personal opinion: java.util.logging very much lacks a good  
formatter. The default 2 line formatting of messages, splitting  
timestamps and message in separate lines, is not really useful in  
production. Many ad hoc log analysis practices work on a line  
oriented basis.
Was wondering about that.  I've heard people grumble about  
java.util.logging, but haven't (till now) heard anything  
specific.  Maybe I wasn't paying close enough attention, but the  
Tomcat 6 log files still seem to follow the one line per message  
format.  How did you pull that off?


That's what I get:

Aug 1, 2007 10:26:37 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-28680
Aug 1, 2007 10:26:37 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2854 ms
Aug 1, 2007 10:26:37 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Aug 1, 2007 10:26:37 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.13
Aug 1, 2007 10:26:40 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-28680

One line for timestamp, class and method, a second line for log  
level and message. That's the format of the default formatter, the  
simple log format.


That's why it would be nice if someone took the burden of writing a  
better log formatter for j.u.l.


Got it.  Yea, that format is certainly grep unfriendly.

Looks like Harmony has a formatter we could copy from and fix to not  
add the new line.


  http://svn.apache.org/repos/asf/harmony/enhanced/classlib/trunk/ 
modules/logging/src/main/java/java/util/logging/SimpleFormatter.java



-David


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



Inlining dependencies

2007-07-31 Thread David Blevins

Hi Guys,

Really curious on what approach you used to inline all your 3rd party  
deps into org.apache.tomcat.util.  Curious if you took them as is, or  
trimmed them down to just what you need.  Were any tools used to  
help?  Any disadvantages that you have noticed other than having to  
port fixes on those libs in?


I've been wanting to do a similar thing in OpenEJB.  Any input is  
appreciated.


-David




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



Re: Inlining dependencies

2007-07-31 Thread David Blevins


On Jul 31, 2007, at 11:59 AM, Yoav Shapira wrote:


Hey,

On 7/31/07, David Blevins [EMAIL PROTECTED] wrote:

Really curious on what approach you used to inline all your 3rd party
deps into org.apache.tomcat.util.  Curious if you took them as is, or
trimmed them down to just what you need.  Were any tools used to
help?  Any disadvantages that you have noticed other than having to
port fixes on those libs in?


IIRC we take a known version of a library and do a string replace on
package names, essentially.  It's all done in Ant tasks: look for how
the Tomcat build handles Jakarta Commons DBCP for example.  We don't
trim them down AFAIK, nor do we have to do any porting because we
re-grab the library (ideally from a known stable version) with every
release.


That's really cool.  Thanks for the info.

I'm just very impressed with how clean the result is and there's the  
obvious benefit of those library versions not conflicting with any  
apps deployed without the need for fancy classloader scoping.


-David




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



Juli/Logging

2007-07-31 Thread David Blevins

So another topic,

There's a thread going on in OpenEJB at the moment about possibly  
switching away from log4j for the reason that the logging config gets  
easily messed up in embedded environments (maven, specificaly) and of  
course to have one less dependency -- the 3.0 server is a bit beefier  
than the 1.0.


I remembered not seeing log4j or commons logging in Tomcat 6 and  
started investigating -- how I discovered the inlining.  Seems juli  
is a trimmed down version of commons-logging (attractive), but it  
isn't obvious what's driving the actual logging.  Didn't see any  
inlined log4j classes.  Are you using java.util.Logging or something  
else?


Also noticed the javadoc of juli says it allows for per-classloader  
configuration of logging.  What exactly does that mean?


Thanks!

-David


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



Re: Juli/Logging

2007-07-31 Thread David Blevins


On Jul 31, 2007, at 2:27 PM, Rainer Jung wrote:


Hi David,

our default bundled JULI only has a binding for java.util.logging. On

http://tomcat.apache.org/tomcat-6.0-doc/extras.html

there is a very short description, how one builds a JULI, that is  
log4j enabled. The static binding was chosen, because commons- 
logging auto detection provided to many problems w.r.t.  
redeployment and classloader leaks.


Cool, thanks.

My personal opinion: java.util.logging very much lacks a good  
formatter. The default 2 line formatting of messages, splitting  
timestamps and message in separate lines, is not really useful in  
production. Many ad hoc log analysis practices work on a line  
oriented basis.


Was wondering about that.  I've heard people grumble about  
java.util.logging, but haven't (till now) heard anything specific.   
Maybe I wasn't paying close enough attention, but the Tomcat 6 log  
files still seem to follow the one line per message format.  How did  
you pull that off?


-David



Regards,

Rainer

David Blevins wrote:

So another topic,
There's a thread going on in OpenEJB at the moment about possibly  
switching away from log4j for the reason that the logging config  
gets easily messed up in embedded environments (maven,  
specificaly) and of course to have one less dependency -- the 3.0  
server is a bit beefier than the 1.0.
I remembered not seeing log4j or commons logging in Tomcat 6 and  
started investigating -- how I discovered the inlining.  Seems  
juli is a trimmed down version of commons-logging (attractive),  
but it isn't obvious what's driving the actual logging.  Didn't  
see any inlined log4j classes.  Are you using java.util.Logging or  
something else?
Also noticed the javadoc of juli says it allows for per- 
classloader configuration of logging.  What exactly does that mean?

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


--
--
kippdata
informationstechnologie GmbH   Tel: 0228 98549 -0
Bornheimer Str. 33aFax: 0228 98549 -50
53111 Bonn www.kippdata.de

HRB 8018 Amtsgericht Bonn / USt.-IdNr. DE 196 457 417
Geschäftsführer: Dr. Thomas Höfer, Rainer Jung, Sven Maurmann
===
kippdata
informationstechnologie GmbH   Tel: +49 228 98549 -0
Bornheimer Str. 33aFax: +49 228 98549 -50
D-53111 Bonn   www.kippdata.de

HRB 8018 Amtsgericht Bonn / USt.-IdNr. DE 196 457 417
Geschäftsführer: Dr. Thomas Höfer, Rainer Jung, Sven Maurmann

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





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



Re: Annotation processing - Geronimo injection

2007-04-06 Thread David Blevins


On Apr 6, 2007, at 5:03 AM, Remy Maucherat wrote:


David Jencks wrote:

but I won't put it in the org.apache package.


There are not too many solutions to this problem, and  
(unfortunately for you, apparently) I think it's the most  
appropriate, or least inappropriate if you prefer.


Just as a note, I'd be great if people didn't put classes directly in  
the org.apache namespace.  If every java project at Apache did that,  
we'd have a mess real quick.


-David


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



Re: Annotation processing - Geronimo injection

2007-03-26 Thread David Blevins


On Mar 24, 2007, at 10:42 PM, David Jencks wrote:



On Mar 24, 2007, at 6:18 PM, Bill Barker wrote:



Filip Hanik - Dev Lists [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]

yo,
I've been in touch with the folks at Geronimo.
They use dependency injection, and have a suggestion on how they  
would

like the annotation processor to be able to be injected into tomcat

Here is the email
http://marc.info/?l=geronimo-devm=117467149802844w=2

Here is the proposed patch:
https://issues.apache.org/jira/secure/attachment/12354097/ 
GERONIMO-3010-1.patch




A big huge -1 to the patch.  It doesn't really provide anything to  
Tomcat
that it isn't doing already.  And to the extent that it is doing  
things
differently, it is only adding complexity resulting in doing a  
much worse

job.



You might consider the idea of an object creation and destruction  
service rather than the current state of the patch which was not  
really intended for presentation as something to be applied as is  
to tomcat but as a demonstration that tomcat could be made to work  
with such a service.  I figured that the first step was to  
investigate whether this was practical with minimal code changes in  
tomcat, and then think about how to further clean up the tomcat  
code.  I've demonstrated to my own satisfaction that the idea can  
work, but the code could be simplified a lot.  In its current state  
there is essentially no code that isn't already present in tomcat,  
although it's arranged slightly differently and is considerably  
more uniform.


However, introducing a catalina dependancy into Jasper is a really  
huge
no-no.  Jasper is useful, and used without Tomcat.  To break this  
would
require a very good reason, which this patch certainly doesn't  
provide.


How does this differ from the current  
org.apache.AnnotationProcessor?  The only difference I can see is  
that I used the project namespace.  I can't say I understand the  
thinking behind the package for org.apache.AnnotationProcessor.




I'd take out the word LifecycleProvider, and replace it with  
something

else as it conflicts with our own idea of Lifecycle.


Ya, I don't much like the name either but those postConstruct and  
preDestroy methods are often called lifecycle methods. I had to  
call it something.  Any better ideas?  ManagedObjectFactory?


I might suggest something like InstanceManager.  IIUC, you'd have  
these two methods on it:


  createInstance(..)
  destroyInstance(..)

Assuming I understand the proposal, the default Tomcat implementation  
would call through to the AnnotationProcessor and all would stay the  
same in that regard.  Above that though, I could easily imagine  
someone using that interface in Tomcat to provide an implementation  
that did instance counting for the Tomcat management console and  
maybe even sending out JMX notifications on create/destroy.


I'm not sure I understand the bits about dependencies between Jasper  
and Catalina.  I grok that Jasper is not to be dependent on Catalina,  
but I wonder if there are any shared libraries between the two that  
might be a good home for the proposed interface.  Are there any  
shared Tomcat project libs between Jasper and Catalina or does  
Jasper pretty much only use third-party libs (libs outside the tomcat  
project itself)?


-David



I'd like to get your feedback, this is a chance step for our two
communities to work together.


There's certainly interest on the geronimo side.

Many thanks
david jencks



Filip





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




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




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



Support for injection-target

2006-12-12 Thread David Blevins
I took a look through the tc6.0.x/trunk source and see the support  
for java.annotation.Resource and related annotations.  Didn't see  
offhand support for the related xml injection-target tag.  Is this  
something you plan to implement or would want?



-David


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