Hi,

Am Dienstag 15 Juni 2010 schrieb thron7:
> Grabbing just the qooxdoo .js file this way would not work. You would
> have to copy all the images along. And not only for this one
> application, but also for the next, and the next, and the next. This is
> a waste of disk space you'd say, so you would want to put the qooxdoo
> stuff into a central directory too, together with the images. But then
> all the URIs to images from within qooxdoo would stop to work, so you
> would need to adjust them, for each individual application, as each
> potentially has a different relative path to the images. And so on and
> so forth...
just for perspective I would like to describe how we use a big qooxdoo library
in our systems - an eCommerce product.
There is no whole application but instead it provides a frame and abstract
functions where application plugins attach itself to [Content-Management,
Newsletter, ProductManagement, ...].
For this to work each individual application becomes a package [there are
also library packages] and we modified the Debian package management system
to manage this for us [installation, updates, ...]. Therefore there is no
build time as it isn't clear what will be included in the application instance
for each customer which results in the need for qooxdoo to be a team-player
and a monolithic qooxdoo library.

We build the library with the following config (this is a part of it)

    "build" :
    {
      "extend" : ["common"],

      "library" :
      [
        {
          "manifest" : "qxaddons/Manifest.json",
          "uri"      : "qxaddons"
        }
      ],

      "include" :
      [
        "qx.*",
        "nx4.base.Assets"
      ],

      "exclude" :
      [
        "=qx.test.*"
      ],

nx4.base.Assets does nothing more then to require all assets.

The install-step in our build rules does then among other steps
            #qxdata.js zusammenstellen
            head -128 build/qx-dbgoff.js | tail -n +3  
>BUILDINFO/qooxdoo/share/qooxdoo/qxdata.js
            head -131 build/qx-dbgoff.js | tail -n +3 | tail -1 
>>BUILDINFO/qooxdoo/share/qooxdoo/qxdata.js
            pkghash=`tail -n -1 BUILDINFO/qooxdoo/share/qooxdoo/qxdata.js | cut 
-d "=" -f 1 | cut -d "'" -f 2`
            echo "qx.\$\$resources=qx.\$\$packageData['$pkghash'].resources;" 
>>BUILDINFO/qooxdoo/share/qooxdoo/qxdata.js

            installjs "qx-dbgoff.js" "qooxdoo" "qx.js"
to separate the init-data from the library with installjs doing a
            cat build/$1 | sed '1,131d' | head -n -2 >>$target

to strip off the just separated data. These steps need a bit of modification for
each major qooxdoo version, as the generator output differs most of the time.
But this is once every 6 months or so :-)

This results in a qooxdoo-1.0.1-2_all.kap package that is easy to install in
individual application instances using a simple 
        kapt-get install qooxdoo
and behaves exactly the same in each. The application then simply depends on 
"qooxdoo (>= 1.0.1)"

The rest of the javascript classes are resolved and included using our own
dependency resolver based on 
        #kesrequire(share/.../....js)
statements in the source files.


I hope I didn't write to much nonsense :-) but I like our solution and
perhaps it's helpful to someone [of course only with a dedicated server].


Heiko


-- 
Nexst4 GmbH
Arndtstrasse 12
01099 Dresden

Tel.: +49 (351) 655 76 70
Fax:  +49 (351) 655 76 66
Mail: [email protected]

Geschäftsführer: Alf Thiele, Matthias Schmidt
Sitz der Gesellschaft: Dresden
Handelsregister: Amtsgericht Dresden HRB 27274

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to