Incorporating ICU-J: Jar file sizes

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Incorporating ICU-J: Jar file sizes

Michael Kay
We're planning in 9.6 to make use of the localization support in the ICU-J library for collations, and number and date formatting. This will be in EE/PE only.

I'm interested in any views on whether we should keep the JAR files separate, or integrate everything into a single JAR. Either way, we will be doing an ICU build that extracts the components of ICU that Saxon actually uses.

Currently the main saxon9ee.jar file is around 6.5 Mb. Adding ICU will increase this to around 14Mb.

The main arguments seem to be that a single JAR is more convenient from the point of view of configuring the classpath, but separate JAR files will give faster loading. Separating the JARs might also be useful for those users who suffer from open-source-phobic in-house lawyers. Are there any other factors to take into account?

Michael Kay
Saxonica
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: Incorporating ICU-J: Jar file sizes

Radu Coravu
Hi Michael,

In my opinion the main Saxon library should be loosely coupled to the
ICU4j library, if it does not find it in the classpath it should use the
default Java collator (like it probably does now).

And even if you decide to bundle a special ICU4j build for the
downloadable Saxon 9 project (which will mean that you will need to
update this custom JAR each time a new ICU4j library version appears),
maybe the Saxon library could also work with a regular ICU4j library.

Regards,
Radu

Radu Coravu
<oXygen/>  XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 5/20/2014 8:10 PM, Michael Kay wrote:

> We're planning in 9.6 to make use of the localization support in the ICU-J library for collations, and number and date formatting. This will be in EE/PE only.
>
> I'm interested in any views on whether we should keep the JAR files separate, or integrate everything into a single JAR. Either way, we will be doing an ICU build that extracts the components of ICU that Saxon actually uses.
>
> Currently the main saxon9ee.jar file is around 6.5 Mb. Adding ICU will increase this to around 14Mb.
>
> The main arguments seem to be that a single JAR is more convenient from the point of view of configuring the classpath, but separate JAR files will give faster loading. Separating the JARs might also be useful for those users who suffer from open-source-phobic in-house lawyers. Are there any other factors to take into account?
>
> Michael Kay
> Saxonica
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help
>



------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: Incorporating ICU-J: Jar file sizes

Nigel Whitaker
In reply to this post by Michael Kay
Hi Michael,

We redistribute Saxon and also icu4j.jar (for the internationalized text segmenters).  A separate jar would reduce our overall jar footprint size, but would require some version coordination to get a single icu4j.jar for both dependencies.

We've had one of our customers asking if its possible to run with earlier versions than the one we ship because they in turn were using an older version of icu4j.jar and wanted to do it in a single classloader,  we found it was API compatible in the methods we were calling, but there were some slight differences in the segmentation behaviour between versions.

Because of these kinds of icu4j dependency chains our preference would be for separate jars and also Radu's suggestion of compatibility with the full icu4j.jar.  If you go down the integrated single jar path then I would suggest renaming/obfuscating the ICU class names for people who need both saxon9[pe]e.jar and icu4j.jar

As an aside:  This type of dependency management is a reason I don't like maven and its philosophy of hiding or automating all of these issues away!


Thanks,

Nigel



Nigel Whitaker - DeltaXML Ltd - [hidden email]






------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: Incorporating ICU-J: Jar file sizes

Michael Kay
Thanks for the feedback.

We're currently looking at issuing (our version of) the ICU JAR as a separate JAR file, and making sure that the code runs OK, with appropriate fallback, if it's not found on the classpath. Clearly the ability to operate with a different version of ICU will depend on the level of compatibility between versions.

Michael Kay
Saxonica


On 23 May 2014, at 10:20, Nigel Whitaker <[hidden email]> wrote:

> Hi Michael,
>
> We redistribute Saxon and also icu4j.jar (for the internationalized text segmenters).  A separate jar would reduce our overall jar footprint size, but would require some version coordination to get a single icu4j.jar for both dependencies.
>
> We've had one of our customers asking if its possible to run with earlier versions than the one we ship because they in turn were using an older version of icu4j.jar and wanted to do it in a single classloader,  we found it was API compatible in the methods we were calling, but there were some slight differences in the segmentation behaviour between versions.
>
> Because of these kinds of icu4j dependency chains our preference would be for separate jars and also Radu's suggestion of compatibility with the full icu4j.jar.  If you go down the integrated single jar path then I would suggest renaming/obfuscating the ICU class names for people who need both saxon9[pe]e.jar and icu4j.jar
>
> As an aside:  This type of dependency management is a reason I don't like maven and its philosophy of hiding or automating all of these issues away!
>
>
> Thanks,
>
> Nigel
>
>
>
> Nigel Whitaker - DeltaXML Ltd - [hidden email]
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help 


------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help