The library approach could be a good way to help people/corps use AJP.

And it will force us to split better between AJP code/functionnality
and WebServer operation (it's not really the case today).

This AJP library could be fully APR (and so remove the pain with
#define / #ifdef...)


2009/3/24 Costin Manolache <cos...@gmail.com>:
> On Tue, Mar 24, 2009 at 8:46 AM, Rainer Jung <rainer.j...@kippdata.de>wrote:
>
>> On 24.03.2009 16:29, Costin Manolache wrote:
>>
>>> On Tue, Mar 24, 2009 at 8:13 AM, Henri Gomez<henri.go...@gmail.com>
>>>  wrote:
>>>
>>>> Why not moving into mod_proxy? If httpd were approaching a major version
>>>>> change (e.g. httpd 3.0), then there would be the freedom of doing big
>>>>> changes to mod_proxy. But httpd is moving towards 2.4. That means the
>>>>> architecture of mod_proxy will not change. But mod_proxy as it is today
>>>>> doesn't have a clear separation of proxy, balancing and ajp, despite the
>>>>> various module names.
>>>>>
>>>> Nope, I suggested moving the actual mod_jk to httpd or may be a pure
>>>> APR version of jk (without the #define #ifdef ...)
>>>>
>>>>  So (and now I am talking about me personally) I think I can still add
>>>>> interesting features to a mod_jk 1.3 with not to much effort, whereas
>>>>> the
>>>>> barrior of porting existing mod_jk features to mod_proxy before adding
>>>>>
>>>> the
>>>>
>>>>> new stuff is pretty high for me alone.
>>>>>
>>>> No problem but you should find more friends to works on it, mod_warp
>>>> and jk2 disapears too quickly since they have too few supporters ,)
>>>>
>>>>
>>> I agree - there is a big risk that you'll just waste your time if you
>>> branch. Even worse -
>>> you may risk other people time :-)
>>>
>>
>> But if we do not branch, then we need to go on doing all changes on the
>> production branch. trunk is identical to 1.2 and is the only code line we do
>> use at the moment.
>>
>> The proposal says we branch of trunk to 1.2 and keep that stable. There are
>> people around here who do not like the idea of having many more 1.2.x
>> releses of JK, because each new feature brings a risk of breaking the
>> existing code, that is pretty stable.
>
>
>
>>
>> Separate trunk and 1.2 branches would give us a chance of going a slightly
>> higher risk in 1.3. Another important thing: in Jk 1.2 we follow the policy
>> to mostly not change the default behaviour between the 1.2.x releases. But
>> most important timeouts were created late in the release cycle, so all of
>> them are of by default and as a user you need to do a pretty lengthy
>> configuration for getting a good usage experience. With 1.3 we could improve
>> our defaults a lot.
>
>
> I think the mistake with jk2/webapp/etc was the same - assuming we can do
> major destabilizing work ( including changes to configs, etc )
> and at some point people will just migrate - while at the same time
> maintaining the 'stable' code. Which of course everyone sticks to.
>
> I see no reason why you can't add features to trunk. If people want to be
> sure it is stable - they should review and test the changes
> and make sure the new features are modular enough and don't change existing
> behavior. We have labels for each release, and if
> a major bug happens we can branch and release an emergency 1.2.x.y fix. But
> we shouldn't say '1.2 branch is for stable work, 1.3 for
> new features/risks'.  All new features go to trunk, the trunk should be
> mostly stable at all points - and have releases after a number of features
> get added to avoid 'big change' problems.
>
> Timeouts and features should be set in the config - you can just ship a
> 'backward compat config' and 'new config'.
>
>
>
>>
>>
>>  AFAIK the current trunk is open for features and changes. You can
>>> implement
>>> most
>>> new features with #ifdef or configs protecting the new code, to reduce the
>>> risks,
>>> and you can do them incrementally.
>>>
>>
>> The discussion is exactly about "how open for changes should trunk=1.2
>> stay, now that JK is pretty useful and feature rich". Many #ifdefs are a
>> nightmare and using config means everything will stay off by default. One of
>> the major problems we now have (with 28 released versions of history).
>
>
> Well, trunk and 1.2 are just names. Trunk means 'active development goes
> there', 1.2 is the major version and means 'we'll keep it backward
> compatible until we change the label to 1.3'.
>
> For many of the features in your list you don't need ifdefs, just new files
> and config options - and I don't see anything wrong with
> having the options off in the default config file. Just add a new config
> with all the options 'on' :-)
>
>
>
>
>>
>>  APR is probably the only thing in your list that wouldn't work well
>>> incrementally -
>>> but I'm not so sure it's worth it. If it really makes your life easier for
>>> the new features
>>> I guess you can probably just use it for the new code ( with makefile
>>> magic
>>> ).
>>>
>>
>> I actually do want to proceed working incrementally in the future trunk=1.3
>> too. Exactly because there is a big risk of not enough commitment for a big
>> lengthy change like the APR migration.
>
>
> Than just leave '1.3' out, and work on the other features in trunk.
>
> I see no problem of mod_jk having an optional dependency on APR for the new
> code, or having an optional
> dependency on some RPC library with compatible licence. ( using an external
> library would also avoid the
> problem of nobody having time to implement a new ajp protocol ).
>
> Costin
>
>
>>
>>  I agree with Remy that mod_cluster seems to add useful feature - so +1 to
>>> add better features in mod_jk :-). Better clustering - in particular
>>> better
>>> support
>>> for multiple apache frontends talking to large number of tomcat backends
>>> would
>>> be quite interesting. And if this requires a new protocol - I would just
>>> pick one
>>> of the many existing RPC standards, and maybe move the loadbalancing
>>> decisions
>>> to a dedicated service. I mean - no need to modify AJP protocol if you
>>> need
>>> new
>>> features :-)
>>>
>>
>> I totally agree about the usefulness of this. I would love if someone would
>> chime in and work on that.
>>
>

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

Reply via email to