Re: dojo quo vadis

2008-04-17 Thread Paul Spencer

Werner,
An implied restriction would be only 1 version of DoJo per webapp. 
Backward compatibility is my main concern.  I will upgrade to the latest 
DoJo in implement in Tomahawk, but it will be the entire application not 
 a page at a time.


Paul Spencer



My application is using the Dojo in Tomahawk now.
Werner Punz wrote:

Paul Spencer schrieb:

Werner,
I am excited to see you are planning to upgrade the DoJo support.  I 
would like to see support for multiple versions, including the one 
currently in Tomahawk. The desired version to use for any project 
should be configurable.


Hello Paul first thanks for the kind words, anyway dont expect anything 
too soon.

(I am making good progress but there is still a load of work)

Multiple versions are planned one way or the other probably I will add
a source override flag to enable the loading of another dojo version 
instead of the default one.


If I do that however there will be a culprit the old version will only
be usable from the client the components will be adjusted to the latest
version.
And a mix of 2 versions on one page is not possible, this is a dojo 
inherent problem.


Werner







Re: dojo quo vadis

2008-04-16 Thread Paul Spencer

Werner,
I am excited to see you are planning to upgrade the DoJo support.  I 
would like to see support for multiple versions, including the one 
currently in Tomahawk. The desired version to use for any project should 
be configurable.


Paul Spencer

Werner Punz wrote:

hello everyone
I just wanted to drop a short note, start a discussion here.
I was busy the last few weeks regarding dojo after getting weblets 1.0 
out of the door.


Well here is a plan. As you all know we currently have dojo in Tomahawk, 
well the main issue is, this is a huge dependency.

I have quietly started a small Tomahawk extension framework which should
get Dojo out of Tomahawk and should encapsule the most important
components.

I cannot showcase too much but in a few weeks I will be able to showcase 
some stuff, depending on the time I can work on it.


Ok here is my plan
I want to get Dojo and the Dojo Initializer in its own Tomahawk 
dependend subproject.
Dojo itself wont be packed into the sourcetree anymore, but I will move 
it to weblets (Actually this is working already)  so that we can add it 
as binary dependency and also will get versioning, so that it becomes 
easier to change dojo versions.

This stuff is working already and it works really well.

What I have planned additionally, and upgrade to the latest Dojo version
and encapsulation of the most important dijit components in their own tags.
(This is what I am working on currently, I got my base frameworks mostly 
stabilized and added some code generation today(The code gens do not 
overlap with Leonardos and Simons work I took care of that I do not want 
to duplicate existing code functionalitywise))


And last but not least we have to take a proper look at the sandbox on 
what we will take also into our dojo extensions stuff, I want the 
sandbox to become smaller and I do not want a component clutter in the 
extension lib.

This means maybe we might deprecate some sandbox components if possible.
Also the moving of the sandbox components means some overhaul and some 
work to be done, that also means someone have to jump in here and give a 
helping hand. (Once the other parts are done)


Those are my plans what is your opinion about this.

The main issue why I started this project is to get dojo out of the 
tomahawk core and to make it easier to upgrade dojo.


Werner







Re: dojo quo vadis

2008-04-16 Thread Werner Punz

Paul Spencer schrieb:

Werner,
I am excited to see you are planning to upgrade the DoJo support.  I 
would like to see support for multiple versions, including the one 
currently in Tomahawk. The desired version to use for any project should 
be configurable.


Hello Paul first thanks for the kind words, anyway dont expect anything 
too soon.

(I am making good progress but there is still a load of work)

Multiple versions are planned one way or the other probably I will add
a source override flag to enable the loading of another dojo version 
instead of the default one.


If I do that however there will be a culprit the old version will only
be usable from the client the components will be adjusted to the latest
version.
And a mix of 2 versions on one page is not possible, this is a dojo 
inherent problem.


Werner




Re: dojo quo vadis

2008-04-16 Thread Werner Punz

Paul Spencer schrieb:

Werner,
I am excited to see you are planning to upgrade the DoJo support.  I 
would like to see support for multiple versions, including the one 
currently in Tomahawk. The desired version to use for any project should 
be configurable.



Ah Paul sorry for the second answer, this is one thing you might like,
you will be able to switch dojo versions on the fly simply be
dropping in another weblet jar. So the configuration on project base 
will be possible.


Weblets allows that you can drop in different jars the resources are
loaded and versioned properly so that no cache conflicts can occur.
The main problem simply by doing this however is another one.
I cannot guarantee that the components still work if you drop in a 
different weblet version than the default one, depending on the version 
it might work or not. If you just need dojo and adjust the code yourself 
than this is no big issue.


This was one of the main reasons why I added weblets to the entire 
project. The resource handling is way more convenient with it.


If you want to see weblets and dojo in action:
http://conference.irian.at/weblets-demo/jspdojotest.jsp

This is a testcase I did a while ago, which tests for relative resource 
loading. The entire dojo toolkit 1.0 is packed as weblet jar and served 
from the webapp.




dojo quo vadis

2008-04-15 Thread Werner Punz

hello everyone
I just wanted to drop a short note, start a discussion here.
I was busy the last few weeks regarding dojo after getting weblets 1.0 
out of the door.


Well here is a plan. As you all know we currently have dojo in Tomahawk, 
well the main issue is, this is a huge dependency.

I have quietly started a small Tomahawk extension framework which should
get Dojo out of Tomahawk and should encapsule the most important
components.

I cannot showcase too much but in a few weeks I will be able to showcase 
some stuff, depending on the time I can work on it.


Ok here is my plan
I want to get Dojo and the Dojo Initializer in its own Tomahawk 
dependend subproject.
Dojo itself wont be packed into the sourcetree anymore, but I will move 
it to weblets (Actually this is working already)  so that we can add it 
as binary dependency and also will get versioning, so that it becomes 
easier to change dojo versions.

This stuff is working already and it works really well.

What I have planned additionally, and upgrade to the latest Dojo version
and encapsulation of the most important dijit components in their own tags.
(This is what I am working on currently, I got my base frameworks mostly 
stabilized and added some code generation today(The code gens do not 
overlap with Leonardos and Simons work I took care of that I do not want 
to duplicate existing code functionalitywise))


And last but not least we have to take a proper look at the sandbox on 
what we will take also into our dojo extensions stuff, I want the 
sandbox to become smaller and I do not want a component clutter in the 
extension lib.

This means maybe we might deprecate some sandbox components if possible.
Also the moving of the sandbox components means some overhaul and some 
work to be done, that also means someone have to jump in here and give a 
helping hand. (Once the other parts are done)


Those are my plans what is your opinion about this.

The main issue why I started this project is to get dojo out of the 
tomahawk core and to make it easier to upgrade dojo.


Werner




Re: dojo quo vadis

2008-04-15 Thread Leonardo Uribe
On Tue, Apr 15, 2008 at 12:08 PM, Werner Punz [EMAIL PROTECTED] wrote:

 hello everyone
 I just wanted to drop a short note, start a discussion here.
 I was busy the last few weeks regarding dojo after getting weblets 1.0 out
 of the door.

 Well here is a plan. As you all know we currently have dojo in Tomahawk,
 well the main issue is, this is a huge dependency.
 I have quietly started a small Tomahawk extension framework which should
 get Dojo out of Tomahawk and should encapsule the most important
 components.


+1. I agree with you.


 I cannot showcase too much but in a few weeks I will be able to showcase
 some stuff, depending on the time I can work on it.

 Ok here is my plan
 I want to get Dojo and the Dojo Initializer in its own Tomahawk dependend
 subproject.
 Dojo itself wont be packed into the sourcetree anymore, but I will move it
 to weblets (Actually this is working already)  so that we can add it as
 binary dependency and also will get versioning, so that it becomes easier to
 change dojo versions.
 This stuff is working already and it works really well.

 What I have planned additionally, and upgrade to the latest Dojo version
 and encapsulation of the most important dijit components in their own
 tags.
 (This is what I am working on currently, I got my base frameworks mostly
 stabilized and added some code generation today(The code gens do not overlap
 with Leonardos and Simons work I took care of that I do not want to
 duplicate existing code functionalitywise))

 And last but not least we have to take a proper look at the sandbox on
 what we will take also into our dojo extensions stuff, I want the sandbox to
 become smaller and I do not want a component clutter in the extension lib.
 This means maybe we might deprecate some sandbox components if possible.
 Also the moving of the sandbox components means some overhaul and some
 work to be done, that also means someone have to jump in here and give a
 helping hand. (Once the other parts are done)

 Those are my plans what is your opinion about this.

 The main issue why I started this project is to get dojo out of the
 tomahawk core and to make it easier to upgrade dojo.


I would like to see how tomahawk directory looks like after the
modification, only to take this into account. One question is if dojo
components should be 1.1 or 1.2 compatible (the difference is on the
generation of component and tag classes), or both.



 Werner



Regards

Leonardo Uribe


Re: dojo quo vadis

2008-04-15 Thread Werner Punz

Leonardo Uribe schrieb:

I would like to see how tomahawk directory looks like after the 
modification, only to take this into account. One question is if dojo 
components should be 1.1 or 1.2 compatible (the difference is on the 
generation of component and tag classes), or both.
 



Well for now we dont have too much dojo components in tomahawk, the main 
one being the dojo initializer i dont think any other tomahawk component 
uses it. The sandbox is a different issue, a load of components use it.


As for the source base. Currently I am running my own code generation
but I will streamline it as soon as you guys are done (I skipped the 
parsing stage and used direct object definitions via groovy so that I 
dont repeat what Simon and you are doing anyway)

and I had to roll my own templates which I had to do to enable
some base frameworks I had to write to make the entire javascript 
generation easier and to streamline some dojo attributes, which
I had to add to the components by delegation (simulated multiple 
inheritance)


Streamlining it is just a matter of a few hours to adjust the groovy and 
template data structures to the ones in the myfaces codegen.



As for the code itself, I am still targetting 1.1 since it is the most 
important release. I dont think 1.2 will get that much momentum that 
direct 1.2 targetting makes sense.


1.2 should be possible in the long run. Currenly I have this structure
Base Classes for the main control groups (with delegators doing the 
actual work)

- generated classes which do the attribute mapping
- hand written derived classes mostly renderer ajustments

A shift towards 1.2 is basically adjustment of the base classes and 
adding templates to the generators!



2.0 is a different issue however, but for 2.0 we probably wont need 
codegens anymore. (At least from what I have seen from some alpha stage 
publications on the web, they are definitely on the right track with 
this one)



Another off topic thing

Btw. by doing all this I found out that groovy is an excellent 
replacement for data descriptions, way more tight than pure xml, and you 
can get the benefit of attribute and typechecking if you use it properly.


What I did was to use a base class as defaults and then use closures (or
constructor maps as you wish) as overrides to the default values.
The result is a very compact data definition which can be used straight 
as java objects. I did this to get the data model for the codegens as 
fast as possible and not to cross Leonardos and Simons work on that part 
with duplicate code.
The groovy approach might be an interesting third approach for code 
generation in the long run for myfaces.