On 9/24/01 1:40 PM, "Santiago Gala" <[EMAIL PROTECTED]> wrote:
> I CC: this discussion about problems with current Turbine-2 cvs to
> Jetspeed-dev, so that everyone is aware of the status. Also, to provoke
> discussion on Turbine convergence and code base clean up.
Ok, that's good.
>>>
>>> - Changing webapp.dir to webappRoot everywhere (it includes TR.p, JR.p
>>> and CastorRegistryService.java). It is funny as, from what I inspect the
>>> code, it should not be needed. But it is :-?
>>>
>>
>> I'm not following entirely. What do you need to do that you weren't
>> expecting to have to?
>>
>>
> As ${webapp.dir} is defined in VariableResourceService, and this code is
> supposed to run unchanged, it should work. But it is not. It looks as a
> true nightmare to debug, but I'll try in the next days.
>
> But also ${webappRoot} is defined in TurbineResourceService (and we call
> super.init(...)), so I don't understand why it is not expanded.
If you want I can add ${webapp.dir} to the turbine resources if that makes
things easier for you right now. Than you can slowly move your ${webapp.dir}
references to ${webappRoot} references. If this this helps you remove your
dependence of VariableResources than I do whatever I can.
>>
>> How about we work toward just using TurbineResources in Jetspeed and we'll
>> move any remaining code in the the jetspeed VariableResources class into
>> the TurbineResources class. The only code I've borrowed so far is variable
>> interpolation in strings i.e. on the getString() method.
>>
> Yes, it looks as a good idea. I can take care to "remove"
> VariableResourceService for Jetspeed, and send you patches for
> TurbineResourceService (turbine-2)
If you need the additional getStringArray() and getVector() to do the
variable interpolation than I can easily lift those from the jetspeed code
and add them the TurbineResources if that will help.
> WRT ExtendedProperties, I don't have a current working copy, to look if
> the functionality is OK for us. I could checkout a copy.
The ExtendedProperties that I'm refering to exists in the
commons-collections package now and you probably won't need it until you
move toward Turbine 3.x.
>>
>> In the VariableResources class the interpolation is also implemented for
>> getStringArray() and getVector() I believe. It would be nice if the code for
>> VariableResources could be collapse into TurbineResources (and
>> ExtendedProperties for Turbine 3.0) and have Jetspeed drop VariableResources
>> all together.
>>
> If we have a smaller code base, and use more external modules, we will
> have more people "working for us" ;) So we will be able to concentrate
> in content aggregation.
That would be fantastic, I would love to see that :-)
>>
>> So during development of a project that you know to be based on a parent
>> project if something isn't clearly documented than you ask no questions and
>> proceed as you wish? There is no doubt that with the Turbine 2.x code that
>> you can do pretty much anything but do you honestly think this is the best
>> thing for the project? I personally don't feel that's a good way to proceed
>> and it's not good for your project.
>>
>> And I will definitely complain as the Jetspeed project continually and
>> persistently implements functionality that should be present in Turbine:
>>
>> - variable interpolation is not portal specific
>>
> This was developed "experimentally" by Raphael, and the aim was to move
> it to Turbine ASAP. That moving it takes six months is not entirely our
> fault. FWIK, neither Raphael nor me are Turbine committers.
Ok, what's done is done. Let's start again and try to get the code into the
turbine repository.
>>
>> - thread pooling is not portal specific
>>
> This was already there when Raphael and I joined Jetspeed. It was
> originally developed by Kevin. We have just patched it to keep it
> working. I don't see any similar service in Turbine.
There is a pooling service in turbine, but primarily my point is that when
something new is developed for jetspeed, something generic like pooling,
that it should go into turbine not jetspeed.
>>
>> - disk caches are not portal specific
>>
> Ditto. I have patched this code extensively, but it is not originally
> mine. It was developed by Kevin. Again, I don't know of any alternative
> implementation, and it is surely needed (to avoid that each page hit
> implies like 20 HTTP request to foreign servers, thus making Jetspeed
> unusable).
Again this is something that is generally useful for all applications. I
realize that the code is in the state that it is when you arrive but it
doesn't mean it has to remain that way.
>>
>> - daemons are not portal specific
>>
> Ditto.
Ditto.
>>
>> - localized template services are not portal specific
>>
> Again, this was offered as a patch to Turbine even before we had it
> working. It was developed when turbine had nothing similar. I remember
> that it was even considered bad in list discussions, as we needed
> localization including ContentType. Even now, it does not support
> generic resources (we need much more than localized templates, we need
> localized resources). Currently, we have ContentType/Language/Country...
> with a fall back.
We can try it again. I hadn't played with the template service at that
point, but I'm intimately familiar with it now and I know that localization
is a big issue in general so it's something that would be good to work out.
>>
>> - and I could probably find 10 other examples
>>
> Not that many, I think you have already quoted most of the friction
> points. :-) Now, I think we should go on moving code that is generic
> enough to Turbine .
Ok, sounds good to me. We can start simple with the VariableResources.
>>
>>
>> Turbine is not well documented, everyone knows that but the Jetspeed project
>> has never helped in this regard and continually makes additions which are
>> expedient and serve the purposes of Jetspeed without much regard for
>> Turbine.
>>
> Yes, we all know that Open Source is about choice and experimentation,
> and then consolidation of good ideas. I will offer you a new one:
>
> - Jetspeed has already a JSP Template Service (It has been migrated to
> Turbine) and a Velocity Template Service (I think it is actually
> Turbine's code). I'm working on a SAX XSLT Template Service. Should I
> implement it directly as a Turbine Service or as a Jetspeed Service to
> be migrated later to Turbine?
You can develop it in the jetspeed codebase for testing but use turbine
package names and when it works and is tested than we can move it into the
turbine repository. With Turbine 3.x this will definitely be easier because
the services framework has been separated.
> The idea is that, instead of having ECS objects or Byte/Character
> Streams to aggregate the response, it will establish a chain of SAX
> event handlers, and use SAX end to end. There will be adaptors to mix
> Stream content with SAX content, so that a portal can mix the different
> templates in the same page (it will not be efficient, though).
Ok, it's not something that I'm familiar with but it sounds like many people
would be interested.
>>
>> This is probably a good place to start than. I think that general variable
>> interpolation is something that all turbine apps could use so I'll make any
>> additions to the ResourcesService so that it will work in jetspeed if you
>> test jetspeed (I will soon be able to test it reliably myself).
>>
>> I have seen pretty much zero activity on the jetspeed cvs list so your
>> divergent code base concerns me greatly because when there is activity the
>> project usually diverges further from Turbine which I don't think is good
>> for the Jetspeed project given how many complaints you still get about code
>> not working and difficulty installing Jetspeed.
>>
> This is no longer true. Since approx one year ago, all changes are
> bringing us more and more in line with Turbine. Most changes during this
> period have been devoted to use Velocity instead of/in addition to JSP,
> and to adapt Jetspeed to the Pull philosophy.
Ok, cool.
> As we are closer, more conflicts get exposed, but this is not a bad
> thing. It rather reflects that our code is closer to Turbine. When it is
> not, it is due to our lack or knowledge or misunderstanding of Turbine
> internals or forthcoming code. At least, that is how I see it.
Exposing the conflicts is good, we definitely need to define how turbine is
used. This will definitely be better in Turbine 3.x but I'll help do
whatever I can for 2.x app. I work on Tambora full-time which is a 2.x app
so I definitely have a vested interested in seeing 2.x have full support.
>>
>>
>>> Don't forget that a lot of these alternatives are there because we
>>> started using them, and then a patch was sent to turbine. Quite a few
>>> times, patches sent to turbine for behaviour we needed were ignored or
>>> delayed.
>>>
>>
>> I'll try not to let the patches slide, but I'm sure in some cases the
>> patches were seen as not adequate or hackish and you guys expected us to put
>> the code into Turbine because you needed some functionality that may not
>> have been thoughout with the greater turbine whole in mind.
>>
>> I'm definitely willing to work with you to remedy the situation.
>>
> A big problem is that we have no time to digest the number of mail lists
> we are subscribed to, and this means that sometimes we are not aware of
> efforts in Turbine, or in Commons projects. This is a big problem, and I
> will try to stay more in synchrony with Turbine in the future.
In the future changes in other projects won't cause so much grief as the
Turbine 3.x API will be an isolated entity but again I have no problem
helping with 2.x. I know that's it's hard to keep up with changes in Turbine
but the 2.x tree has been stable now for a while. We've only been adding bug
fixes and I've add some code to allow a turbine app to run from a cvs
layout.
>
> Also, I think we should release another Jetspeed alpha Real Soon Now, as
> people is using versions that are old, both in terms of functionality
> and of the version of Turbine they use. I think that when Turbine-2.2 is
> released it would be a very good moment, and I expect it will happen
> soon. This is the reason why I'm tracking Turbine-2 cvs very actively.
Cool. I don't know when 2.2 will be out. Things are working but I would like
to release 2.2 with released versions of the components we use to try and
make maintenance easier. I would also like to get the next version of the
TDK finished too.
>>
>>> As an example, I still have code in Jetspeed to check and
>>> escape commas in ExtendedProperties values, and the patch was sent to
>>> turbine and never applied. If and when it is applied, how do I know my
>>> duplicated method is no longer needed in the Jetspeed codebase?
>>>
>>
>> Unit tests. Adding the code back to turbine and create unit tests. There are
>> now two places for property handling code. ExtendedProperties in the commons
>> collections used in turbine 3.0 and TurbineResources used in 2.x.
>>
>> I'm not saying it will be easy moving all your code back into Turbine but we
>> have to try.
>>
>> I also believe that commas are escaped, I will check because I thought this
>> was a feature. Was your patch for a bug you fixed or adding additional
>> functionality?
>>
> It was a bug fix. ExtendedProperties did not escape commas in values
> back then. We had values that contained commas inside, and this provoked
> ClassCastExceptions in our code, as commas were taken as multiple
> values. I'm not sure about its current state. I'm speaking about April
> or so, before Turbine-2 release.
Is there anyway you could check this again in the current turbine code base.
If the problem is still there than I will apply your patches if you send
them to me.
--
jvz.
Jason van Zyl
http://tambora.zenplex.org
http://jakarta.apache.org/turbine
http://jakarta.apache.org/velocity
http://jakarta.apache.org/alexandria
http://jakarta.apache.org/commons
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]