[svgplan] Status and future?

2003-02-03 Thread Nicola Ken Barozzi

I'm using now the plan stuff to visualize some planning data for myself, 
and here are a couple of fixes (patch seems overkill):

 - in Main there is no need to do a System.exit, that makes it
   impossible to reuse the class as a utility
 - the font-family in PlanRenderer should be sans-serif instead
   of sans-serif so that the SVG can render in the Adobe plugin

I'm starting to patch some stuff, and I was wondering if anyone has 
ideas wether there are some commits pending on it, and what is the 
forseeable future for this.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



Re: Integration of Peter's work

2003-02-02 Thread Nicola Ken Barozzi

Peter B. West wrote:

Jeremias Maerki wrote:


On 01.02.2003 00:16:30 Peter B. West wrote:



Should we reserve a directory on the web site for storing diagrams 
which find their way into the Wiki?

+0. The other possibility is to put it in the public_html folder of your
cvs.apache.org account.


Even though I don't have any appropriate tools for such at the moment, I 
should like the diagrams to be editable to the same extent as the text. 
 I don't comprehend design discussions without diagrams.  In order to do 
this, we need somewhere accessible, not necessarily on the web-site, to 
drop these things.  Can they be fitted within the Wiki structure?

What about putting in the CVS svg files (Openoffice does them IIRC) and 
have Forrest publish them as PNG on the website? You could reference 
them from the forrestbot.cocoondev.org space and have them updated every 
hour or so. Just another option.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



Licensing confusion (was Re: Distributing jimi.jar)

2003-01-14 Thread Nicola Ken Barozzi

 - forwarding to incubator and licensing lists -
  - note: licensing is not open to all -

Jeremias Maerki wrote:

Did you know that the Cocoon guys have jimi.jar in their CVS? I wonder
if that's correct and if yes, I think we should do it, too.

Reading the licence I get the impression that redistribution of the jar
is possible but not without restrictions. IANAL so who can we ask if
distributing this jar is ok?

I get the impression that things like that will be an everlasting
problem. There should be a central source of information on licencing at
Apache. A place where the gathered legal knowledge can be hammered in
stone and be reused by other projects. Even the fact that we didn't
include jimi.jar and Cocoon did gives me an uneasy feeling that the
licence-sweep held at the XML project last year wasn't done 100% right.

I'd like to escalate that topic again. What I think would be in the best
interest of the Apache Foundation would be a central source of
information where all projects and subprojects can get information on
licencing. The following things would be very helpful:
- Licence guidelines
- A document describing the relationship of the APL to other licences. 
  (what's compatible, what's not and why)
- A list of approved products to be redistributable by Apache

What are your thoughts?

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




[FYI] Gump run timing out

2002-12-31 Thread Nicola Ken Barozzi

Just FYI... your Gump runs seem to be timing out:
http://nagoya.apache.org/~rubys/gump/xml-fop.html


dist-bin: [echo] Building the binary distribution files (zip,tar)

[mkdir] Created dir: /tmp/gump/xml-fop/dist-bin/Fop-1.0dev
[copy] Copying 148 files to /tmp/gump/xml-fop/dist-bin/Fop-1.0dev
[mkdir] Created dir: /tmp/gump/xml-fop/dist-bin/Fop-1.0dev/build
[copy] Copying 1 file to /tmp/gump/xml-fop/dist-bin/Fop-1.0dev/build
[zip] Building zip: /tmp/gump/xml-fop/Fop-1.0dev-bin.zip

/home/rubys/bin/timeout: timed out java: died with signal 4

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: Why use XML configuration files?

2002-12-05 Thread Nicola Ken Barozzi


Roland wrote:

Hello,

I noticed that the apache project uses mostly XML files for 
configuration. Personally I prefer using .properties files because 
then I don't have the overhead of parsing the file each time. So what's 
the advantage of using XML files?

They are hierarchical, can easily be transformed and published via XSLT 
and in some build systems used with xpath queries.

Thanks for any answers...



--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: website

2002-12-03 Thread Nicola Ken Barozzi

Keiron Liddle wrote:

On Mon, 2002-12-02 at 21:37, Victor Mote wrote:

[...]

2. The new Compliance document is now visible at
http://xml.apache.org/fop/compliance.html. It refers to color-coding which,
by passing through Forrest, we don't have yet. I'll work on either removing
the color-coding reference or getting the color-coding to work.


colour coding would good I think, maybe you could make a dtd enhancement
suggestion.


Color coding is easily possible with chaperon, that is part of Cocoon 
and also Forrest (for our ongoing wiki-like editing development).
Send us a RFE about it with suggestions on the DTD changes and it'll 
help the process, thanks :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



Re: Alt-Design status: XML handling

2002-11-21 Thread Nicola Ken Barozzi

Peter B. West wrote:
[...]


STATUS:

The XML pull buffering has been working for some considerable time.  I 
have simply been extending the get/expect methods on top of the simpler 
methods as I have found a requirement for them in building the FO tree.

In cases where the DTD is well known and well structured, XML pull is 
much easier to use than SAX.

For example, one can write a XSL styleshees with templates or with many 
for-each. SAX is similar to tomplates, XML pull is similar to for-each.

Having worked so much with SAX stuff, I can say that in many cases SAX 
is effectively a PITA, as DOM is for some, and as XML pull is too for some.

If the code proves to be easier to understand and write, it will be 
easier to fix and maintain, so this option should IMHO taken in strong 
consideration.

My 2c

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



Re: [VOTE] Victor as committer

2002-11-20 Thread Nicola Ken Barozzi

Venkata Rao Nadella wrote:

Hi,

I joined this list recently. I don't know anything about committer. Can
someone let me know about committer?


http://incubator.apache.org/drafts/glossary.html
http://jakarta.apache.org/site/roles.html

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: forrest DTDs

2002-11-15 Thread Nicola Ken Barozzi
copying this to forrest-dev for feeback.

Thanks :-)

Victor Mote wrote:

Keiron Liddle wrote:



I wouldn't recommend putting the dtd's in our cvs, one version is
better.



In principle I agree. I think the best solution is for Forrest to make them
available in a small download.



The are some pages describing the dtd but I presume you mean for
editing. I think it would be useful to make them downloadable separately
just for editing.



Yes, I was referring to editing.



I think the process is something like:
- put your own catalog in resources/schema/catalog
- it will then verify with that catalog
- cocoon will use that catalog when copied across to webapps

Unfortunately it does work like that.
To get the verification to work I need to add just the local public ID,
so it uses the forrest one to verify forrest ID's and the local one for
the local ID.
Then when it is copied across cocoon can only find the ID for the fop
dtd and the others are missing.
If I put all the forrest+fop ID's in the catalog then it cannot verify
as it cannot find the forrest dtd's relative to the catalog.

So something is a bit broken.



I am not familiar with cocoon, so I am a bit lost. However, the catalog
concept is just for local use -- in other words for a specific
editor/parser. Since Christian has shown us how to find the DTDs on the Web,
we should probably add the URL in the declaration -- then people with
always-on web access can see that one. The catalog is really just for
standalone boxes without access to the URL version, to map the public ID to
a local file. After I downloaded Forrest last night, I was able to add an
entry in XML-Spy to see my local copy of the DTD. Without that mapping, and
since the files don't have the URL, right now an editor will complain that
it can't find the DTD in the current directory.

Victor Mote

r additional commands, email: [EMAIL PROTECTED]


--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: forrest is coming?

2002-11-05 Thread Nicola Ken Barozzi

Oleg Tkachenko wrote:

Hello there!

I see forrest at the web site and it looks terrific! Well done, my 
congratulations.

Congratulations! :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: mirroring, web pages, and disk space

2002-10-24 Thread Nicola Ken Barozzi
Greg Stein wrote:


I believe Brian also asked the XML folks to lighten up their web pages,
since the combination size of pages/images are expensive compared to the
other Apache sites.


In Forrest we already have made a Forrest version of the XML website 
http://xml.apache.org/forrest/xml-site/index.html

We can push it to the front quite quickly, what do others think?

As for the projects...

Cocoon will be doable soon, FOP is almost ready IIUC, and Xindice is 
already working on it.

Which all means I guess that we'll have to speed up the transition of 
the sites.

So, to organize this a bit, who is in charge of managing the docs
of other xml projects please let us (Forrest devs) know what the
current situation is, or on [EMAIL PROTECTED] or directly on our list.

The docs format is not that far away from the original xml.apache 
format, and the docs build process doesn't need anymore to be in the ant 
buildfile, as forrest is now a tool that can be used from a single 
installation as Ant.

We will actively help you with the transition to Forrest docs in the 
smallest time possible.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]



Re: [PDF Viewer] Utility request

2002-07-26 Thread Nicola Ken Barozzi

Ralph LaChance wrote:
 At 12:46 PM 7/25/02, you wrote:
 
 After seeing the OutOfMemoryError, the AWT renderer is 
 causing, why
 don't thinking of providing a PDF viewer in the FOP itself. I think, this
 will be useful so much. I don't think people couldn't have ever thought
 about it, but is it diffucult to do so?
I feel, FOP is very much useful with the PDF viewer. What do
 others say?
 
 
 Seems to me it might be a lot simpler to fix the awt viewer...
 
 Also, oddly enough doing a viewer against pdf is rather tricky -
 Adobe put an un-supported java-bean on their web site, but it
 is buggy and hasn't been updated in 2 or so years. The only
 commercial pkg (a toolset; some assembly required) I know
 of probably would pose a licensing challenge (understatement)

Anyone contacted Adobe to see if they wanna opensource it?

-- 
Nicola Ken Barozzi   [EMAIL PROTECTED]
 - verba volant, scripta manent -
(discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




[Morphos] Java data morphing package - second stab

2002-06-06 Thread Nicola Ken Barozzi

Ok, here is the second stab at it :-)
I'm still crossposting now to other projects that have shown interest.

I have gotten many suggestions privately, so this will contain them +
clarifications, and a concrete example.

This discussion properly resides on the Jakarta Commons mailing list.
To subscribe, send an empty mail to [EMAIL PROTECTED]

From: Nicola Ken Barozzi [EMAIL PROTECTED]

 What is Morphos?
 -
 Morphos will be a Java Api and implementation for transforming data, in
any
 form it may be: xml, streams, objects.

 It focuses on the API and framework, and demands implementation to other
 projects-modules wherever possible.


 Why Morphos?
 -
 Morphos starts from a need around a community of developers, with an
initial
 charter committed in Jakarta Commons Sandbox.

[...]

 What does it do?
 -
  Morphos should simply do:

  data  -- morphos --- data

  Data can be:
- stream
- events
- objects

 I don't see other basic generic data types, since files and such can
 become streams and viceversa without any format or form conversion.
 I want a *very* simple api, with no duplicated methods.
 IE having get(Stream) and get(File) is not necessary IMO, since they do
the
 same thing.
 The main API must be very simple. We can always add helper classes.

[...]

Ok, but in Concrete?
 --

 Here is the proposed API, all in package org.apache.commons.morphos:

 /**
  * The interface that is implemented by classes that morph.
  * It uses two params and not a return value to make it usable with
  * event based Objects (contenthandlers).
  * Parameters are key pairs, used to configure the Morpher.
  * Events in the Morpher are notified by registering a listener.
  */
 public interface Morpher {

 void morph(Object input, Object output) throws MorphException.
 IOException;

 void addParameter(String paramName, String paramValue);
 String getParameter(String paramName);
 void remove Parameter(String paramName);
 String[] getParameterNames();
 String[] getParameterValues();

 void addNotificationListener(NotificationListener nl);
 void removeNotificationListener(NotificationListener nl);
 void clearNotificationListeners();

 }

 /**
  * The interface that is implemented by classes that morph.
  * It uses two params and not a return value to make it usable with
  * event based Objects (contenthandlers).
  * Events in the Morpher are notified by registering a listener.
  * [new] parameters are managed with beans get/set methods
  **none* are mandatory
  */
 public interface Morpher {

 void morph(Object input, Object output) throws MorphException.
 IOException;

 void addNotificationListener(NotificationListener nl);
 void removeNotificationListener(NotificationListener nl);
 void clearNotificationListeners();

 }

[Clarification]
Why not
  Object morph(Object input) throws MorphException, IOException;
?

Because if the output object is a SAX handler, the morphing doesn't take
place, and this is not evident.
Any other pros-cons?

[Clarification 2]
Why use Object as input and output?
Why not use different types?

Genericity.
See the below comments after the Factory/Manager.

 /**
  * A Morpher made out of a sequence of morphers.
  */

 public interface MorpherPipeline extends Morpher {

 void addStage(Morpher nextMorpher);

 }

This remains.


 /**
  * The Factory for Morphers.
  * There is a getDefaultFactory method for easy use.
  * Used in frameworks it's better not to use it and rely on
  * services that give the proper MorpherFactory.
  */
 public abstract MorpherFactory  {

 Morpher getMorpher(DataType inputType, DataType outputType);
 Morpher getMorpher(name);

 Morpher getPreparedMorpher(DataType inputType, DataType outputType);
 Morpher getPreparedMorpher(name);

 static MorpherFactory getDefaultFactory();
 }

 /**
  * The Morphers' manager.
  * There is a getDefaultFactory method for easy use.
  * Used in frameworks it's better not to use it and rely on
  * services that give the proper MorpherFactory.
  */
 public interface MorpherManager  {

 Morpher getMorpher(DataType inputType, DataType outputType);
 Morpher getMorpher(name);

 Morpher getPreparedMorpher(DataType inputType, DataType outputType);
 Morpher getPreparedMorpher(name);
 }

I've removed the static method, and made it an interface.
It will be the MorpherManager implementation that can use this pattern.

Why not *Factory?
Because it does more than just create them.

[Clarification 2]
Why is a Manager needed?

Because (see clarification 1) any Morpher instance is supposed to be an
implementation that is guaranteed to work with a determined kind of Objects
(a subset); this enforcement is done by the Manager.


 /**
  * Describes what the format of the data is.
  * It consists of a mimetype (format) and a dataForm

[Morphos] Java data morphing package

2002-06-04 Thread Nicola Ken Barozzi

*CROSSPOST * PROPOSAL OF PARTICIPATION *

Welcome to the first public discussion about project Morphos.

This message is being posted to many lists because it has the aim of solving
a common need.

The discussion will continue, for those interested, on the jakarta commons
mailing list.
To subscribe, send an empty mail to
[EMAIL PROTECTED]


What is Morphos?
-
Morphos will be a Java Api and implementation for transforming data, in any
form it may be: xml, streams, objects.

It focuses on the API and framework, and demands implementation to other
projects-modules wherever possible.


Why Morphos?
-
Morphos starts from a need around a community of developers, with an initial
charter committed in Jakarta Commons Sandbox.
Before anything got committed, it has slightly evolved from being tied
initially to XML.
Here is the old charter
(http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/morphos/PROPOSAL.txt?
rev=HEADcontent-type=text/vnd.viewcvs-markup).

This mail illustrates the latest status of the private discussions, and a is
the start of the public one.

Currently there are many projects that need or would benefit from a generic
transformation API:

  - Jakarta POI -

  OLE-XML transformations

  - Cocoon -

using a single api and a contrib section for the
loads of components it now hosts in the core

  - FOP -

redesigning the main interface for FO-PDF,MIF,...etc

   - Krysalis Wings -

 transforming chart XML format to SVG or image formats

Other projects that can be wrapped round this api are numerous:
  - Batik (image transcoders)
  - Xerces-Xalan
  - Avalon Excalibur Converter
  - Commons Digester
  - Jakarta-commons-sandbox Jelly
  -  etc...

A componentization of the transformation process can help reuse and minimize
code duplication.


What does it do?
-
 Morphos should simply do:

 data  -- morphos --- data

 Data can be:
   - stream
   - events
   - objects

I don't see other basic generic data types, since files and such can
become streams and viceversa without any format or form conversion.
I want a *very* simple api, with no duplicated methods.
IE having get(Stream) and get(File) is not necessary IMO, since they do the
same thing.
The main API must be very simple. We can always add helper classes.

 I took look at these APIs:
 - Jaxp
 - Batik Transcoder

Jaxp:
Baised towards xml (more in package names than in fact). Already has a bad
track on version using (the infamious endorsed dir and param). Uses static
method for getting the transformer.

Batik Transcoder:
Good API but it's source can contain a Reader, InputStream, Contenthandler,
etc, so it's tied to these.
No support for pipelining of transcodes.

Ok, but in Concrete?
--

Here is the proposed API, all in package org.apache.commons.morphos:

/**
 * The interface that is implemented by classes that morph.
 * It uses two params and not a return value to make it usable with
 * event based Objects (contenthandlers).
 * Parameters are key pairs, used to configure the Morpher.
 * Events in the Morpher are notified by registering a listener.
 */
public interface Morpher {

void morph(Object input, Object output) throws MorphException.
IOException;

void addParameter(String paramName, String paramValue);
String getParameter(String paramName);
void remove Parameter(String paramName);
String[] getParameterNames();
String[] getParameterValues();

void addNotificationListener(NotificationListener nl);
void removeNotificationListener(NotificationListener nl);
void clearNotificationListeners();

}

/**
 * A Morpher made out of a sequence of morphers.
 */

public interface MorpherPipeline extends Morpher {

void addStage(Morpher nextMorpher);

}



/**
 * The Factory for Morphers.
 * There is a getDefaultFactory method for easy use.
 * Used in frameworks it's better not to use it and rely on
 * services that give the proper MorpherFactory.
 */
public abstract MorpherFactory  {

Morpher getMorpher(DataType inputType, DataType outputType);
Morpher getMorpher(name);

Morpher getPreparedMorpher(DataType inputType, DataType outputType);
Morpher getPreparedMorpher(name);

static MorpherFactory getDefaultFactory();
}


/**
 * Describes what the format of the data is.
 * It consists of a mimetype (format) and a dataForm (representation).
 * For example a gif image file and a jped image file have a different
mimetype but same dataform (file).
 * An SVG file and an SVG DOM in memory have same mimetype but different
dataform.
 */
public interface DataType {

void setMimeType(String mimetype);
void setDataForm(String format);

String getMimeType();
String getDataForm();

}


--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains

Re: [REDESIGN] configuration

2002-05-29 Thread Nicola Ken Barozzi

Sorry if I'm not replying inline, but with some mails Outlook Express seems
to be unable to properly add  s . :-( (If anyone knows a workaround,
please let me know)

Anyway, your description is correct, and very well done.
One of the main points in avalon is the IoC (inversion of control), where
the Container pushes things to the Components.

Static accessors are bad in this regard, as they make the Component ask
something to a class that is not even a container. This usually brings to
the problems FOP has had with config until now.

In a server environment especially, good role hierarchy and containment is
paramount, and Avalon helps to enforce and use it.

One thing though: Logging is a bit different than other things... it's not
really a component, but an aspect.
This means that we would need another programming language to use it
correctly from a framework POV...

In practice, I have seen that the best thing is making the big blocks get a
Logger from the parent, and have the smaller classes get it from a static
method that permits the usage of a key, that in the case of important
classes can be set from the outside.

As for helping, I will be happy to do so.
Unfortunately I have not had time till now to give an active hand, but now I
can find some time.

The good news is that Forrest is running (http://xml.apache.org/forrest/)
and that we are starting to convert the xml.apache projects to use the new
DTD.
Since you have showed interest, FOP will be one of the first projects to
have the site automatically published by Forrest :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-

- Original Message -
From: Jeremias Maerki [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, May 29, 2002 5:18 PM
Subject: Re: [REDESIGN] configuration


 Here are some ideas about how we could do the configuration for FOP.
 Comments are welcome.

 Use this class and various supporting classs (already in avalon
 framework jar):
 org.apache.avalon.framework.configuration.Configuration

 From a brief look at how this works it should be quite easy to use. We
 just need to decide on an appropriate xml structure. I have attached an
 example.

It is. I'm using this stuff every day.

 This can be used either with an xml file on the command line or through
 embedding, eg. cocoon could pass a fop configuration class.
 If the classes are not configured then default values are used.

 Configurable classes:

I'd like to elaborate because I'm not sure that everyone is familiar
with Avalon's concepts: These classes will implement the Configurable
interface from Avalon. Following the concept of IoC (those who are not
familiar with this term, please look up Avalon docs) the configuration
is set by the container (ex. Cocoon or our command-line wrapper) on the
child (Driver, Renderer etc.).

 - Driver
 Passes configuration to user agent if not already set and to renderers.

Right. Driver will probably still remain our top-level component,
serving as a black-box of the whole FOP-process.

 - All renderers (ie. Renderer, StructureHandler implements)
 This is so that the renderer can get its own specific information.
 The PDFRenderer could have font setup, stream filters etc.

Correct. That's something I'm burning to do for a long time. PSRenderer
will get very configurable eventually.

 - Configurable FOUserAgent (have default FOUserAgent that can be
 used/extended without config)
 To make it possible to setup all the various options like dpi.

I'm still at a lack of knowledge on these new things. :-( But it sounds
reasonable. I think a lot of thinking when using Avalon goes into which
classes are components (they get a logger, configuration etc. and
provide some sort of service) and which are merely data-holding classes
like an InlineArea. Correct me if I'm wrong: UserAgents are those
classes that do the heavy work that was formerly distributed in many
different classes directly on classes that change into simple
data-holding classes at the moment.


 --

 The logkit Logger can be configured using this but it is not
 appropriate. If FOP is run from the command line then it should do what
 it already does and when embedding it would setup its own logger.

Logging is also something that is set on the child by its container. The
command-line wrapper sets a simple ConsoleLogger on the Driver by using
the LogEnabled interface.

Other containers like Cocoon will configure their Logging somewhere else
and set the desired Logger using LogEnabled on Driver, which in turn
passes some child logger of the given one to its children.


 The image cache and other cache are similar. These can be set with a
 static method and through the driver respectively.

I'd like to avoid the static stuff, if possible. There's the concept of
a ComponentManager (or after

Re: [REDESIGN] configuration

2002-05-29 Thread Nicola Ken Barozzi

From: Jeremias Maerki [EMAIL PROTECTED]

  In a server environment especially, good role hierarchy and containment
is
  paramount, and Avalon helps to enforce and use it.
 
  One thing though: Logging is a bit different than other things... it's
not
  really a component, but an aspect.
  This means that we would need another programming language to use it
  correctly from a framework POV...
 
  In practice, I have seen that the best thing is making the big blocks
get a
  Logger from the parent, and have the smaller classes get it from a
static
  method that permits the usage of a key, that in the case of important
  classes can be set from the outside.

That surprises me a little. I tend to extend from AbstractLogEnabled
 even for small classes if I need a Logger. But you're probably right
 that this reduces memory usage especially if you have a lot of small
 objects like we have in FOP.

The fact that you are surprised is a good sign, because it means that you
come from a purist view of IoC, which is always the best place to start
from.

I had your same vision till I tried implementing logging in Jakarta POI... a
nightmare!
Hundreds of classes, that were used as the object model, and it soon became
not only slow but impractical.
If I forgot to set a logger for a child class, the whole thing would crash
with a NPE.

I've come to the conclusion that smaller classes that are not really
components are better of with a static system, since they use logging only
during debugging. In this case JDK1.4 style logging is the best, since it
can be removed compile-time.

This becomes not correct with bigger Components, where Logging is part of
the usage too, like server Components that log accesses for example.
In this case Avalon Logging framework has indeed no true rivals :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: Lest we forget

2002-04-26 Thread Nicola Ken Barozzi

From: Bertrand Delacretaz [EMAIL PROTECTED]

 This probably helps: http://www.anzacday.org.au/
 -Bertrand

In Italy we had Liberation Day.

25AprilAnniversary of the Revolution in Portugal
25AprilAnzac Day in Australia
25AprilAnzac Day in Cook Islands
25AprilAnzac Day in New Zealand
25AprilAnzac Day in Tonga
25AprilAnzac Day in Western Samoa
25AprilLiberation Day in Italy
25AprilLiberation Day in Portugal
25AprilNational Flag Day in Swaziland
25AprilSinai Liberation Day in Egypt

Funny how Gallipoli is also an Italian town.

This is a small world indeed...

 On Friday 26 April 2002 00:38, Martin Stricker wrote:
  Peter B. West wrote:
   Age shall not weary them, nor the years contemn.
   At the going down of the sun, and in the morning,
   We shall remember them.
  
   Lest we forget.
   Anzac Day 25th April 2002
 
  Could you please explain this e-mail?

-- 
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: License Issue Inquiry

2002-04-04 Thread Nicola Ken Barozzi

I'm moving this to [EMAIL PROTECTED] because I think it's of interest
to all.
If not, please excuse me.

From: Charles Marcus [EMAIL PROTECTED]

 Greetings,

 I hope this is the proper place for this question to be submitted.  If
 not, please direct me to where I need to go.

 I am taking it upon myself to submit a query regarding the Apache
 Software License that FOP is licensed under.

 There is some big interest currently in the OOo (OpenOffice.org)
 community with respect to finding a cross-platform, uniform and
 integrated method for providing PDF document creation, and FOP looks
 like it could be the answer.  The only question is, can OOo use it?

 OOo requires that anything integrated into its source code be made
 available to them under the terms of the LGPL license.

 What would be required in order to allow a version of FOP to be
 licensed/sub-licensed/dual-licensed under the LGPL?

The Apache license makes the code usable in any way, as long as you give
proper credit and don't blame Apache for problems.

AFAIK, the problem lies in the *GPL license, which is more restrictive; my
personal suggestion is to check the LGPL license and ask the authors of that
license. IIRC GNU states that Apache and *GNU licenses are incompatible for
them, but don't take my word for it.

Apache AFAIK releases code only under the Apache license.

 I am not subscribed to the list so would appreciate any replies to be
 cc'd directly to me at:

 [EMAIL PROTECTED]

 Thanks!

 Charles Marcus

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [DOCUMENTATION] design/alt.design new files [2 of 2]

2002-03-26 Thread Nicola Ken Barozzi

From: Peter B. West [EMAIL PROTECTED]

 Attached are new files for the xml-fop/docs/design/alt.design directory. 

Gee, this is cool! :-)

catching up on tons of mail

-- 
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Nicola Ken Barozzi

From: Keiron Liddle [EMAIL PROTECTED]

 On 2002.03.19 14:45 Nicola Ken Barozzi wrote:
  I would consider the possibility (configurable) of having FOP make just
  sensible assumptions to continue processing and sacrifice some things it
  should do later.

 That sounds very vague.
 So what will you do if someone has a table of contents as the second page.
 Will you pass across a whole lot of to be resolved things for the page
 numbers to the renderer, so the renderer needs to do the resolving from
 some further information. Will the renderer go until it reaches a to be
 resolved thing then need to do some awkward processing of all the
 following pages.

I would output a ? instead of the real pages.
While this is not generally acceptable, in reports, for example, these
references are usually not needed.
High memory consumption is *the*killer*, and it's a burden that
is not needed in these cases.

 It all sounds like an extra level of complexity that we really don't need.
 Rather than helping us it will simply make things more difficult.

Good point. I will keep this in mind.

   - embedded xml will need to be parsed twice and saxified
 
  Why twice?

 May need to read it to get the width and height and do some pre-processing
 with a DOM.

It can be equally done by a sub-pipeline with SAX. But I understand that
Batik is still DOM based :-(

  ATM, I don't have a clear list of all the things that need to be held
  back
  before resolution.
  Is there a list somewhere?
  It would be of great help for me.

Since propertiy resolution is basically inherited AFAIK, it seems that what
you specify is in fact what really breaks the nice SAX stuff.

 Page references.

Yes.

 Internal links.

May be. In HTML it's not needed since I can write an internal link (#myref)
before specifying it.

 Retrieve Markers?

IMHO yes, since you can make a forward reference with it.

 Extensions.

Let's bypass extensions for now.


So we absolutely need to stop output and cache events if there is a forward
reference.
If we find it at the end, all the pages must remain in memory, and now I see
that this can make FOP behave no better than it does now.

There are three possibilities I see:

1. Start storing the SAX events as soon as a forward reference is caught,
and flush them after the resolved reference.

2. Ignore the forward references (speed property); if someone doesn't use
any of the above features, there is no difference in output anyway.

3. Do the FOP processing in 2 steps.
   1- Process all the stuff without the references writing to disk
   2- resolve them by rereading the file
   This resolves memory issues but not speed.

I would go for 1 and 2.
If we store the SAX events before firing them, they are smaller than DOM and
can be saved to a Store that can also be a disk in case of low memory.
This is how Cocoon caches pages, and this is how we could cache SAX
fragments that are there just to wait for a forward reference.

We can also give a clear indication to users to how to optimize pages: no
forward references = much less memory = higher speed.

Anyway, these forward references are a pain in the ass :-/

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-19 Thread Nicola Ken Barozzi

From: Keiron Liddle [EMAIL PROTECTED]

 On 2002.03.19 16:47 Nicola Ken Barozzi wrote:
  So we absolutely need to stop output and cache events if there is a
  forward
  reference.
  If we find it at the end, all the pages must remain in memory, and now I
  see
  that this can make FOP behave no better than it does now.

 Thats not true. We can do better and the current development is developing
 towards a way that will do better.
 The key is that there is a definite API between the Area Tree and the
 Renderers. This means that we can prepare a page and later render its
 contents. All following pages can be rendered if they are finished. The
 forward reference resolution can be done in the area tree with the help of
 the layout managers and then the completed page can be rendered (depends
 if the renderer supports out of order which pdf does). If the memory gets
 low then a page can be stored to disk and retrieved when forward
 references are resolved.

Ah, so it's done with pages.
But with some renderers pages could not be defined (as the spec allows),
like in HTML rendering.

Anyway, I didn't come up with this possibility, since I don't usually deal
with them, but it's a really neat solution to the problem, but still useless
if every page has forward references.

 Without needing to handle this on two sides of
 the fence it is more straight forward and flexible.

Two sides of the fence?
Never thought so.

Ok, so I see that there is agreement on the fact that using SAX events as
intermediate steps of the FOP processing pipeline is not the best solution
ATM.

I will focus now on implementing Avalon stuff in FOP, starting from
Configuration (non static) and URI resolving (for images).

Thank you all for the wonderful feedback on my Random Thoughts :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG

2002-03-18 Thread Nicola Ken Barozzi

From: Matthias Fischer [EMAIL PROTECTED]

 In other terms: IMO, the legal dispositions of an open source software
 shouldn't be more complex than those of their commercial competitors.

You're right.
In fact, the ASF is less complex.

The ASF distributes software that can be 100% sure to be usable as the APL
license says, which basically is do what you want but give us credit and
don't blame us.
The libraries are usable in the format they are distributed in as if they
were APL, since this is what compatible means.

If you have other questions regarding the license, or want to make these
suggestions to the ASF, you are welcome.
Taken from http://jakarta.apache.org/site/contact.html :

The Jakarta Project is an effort of the Apache Software Foundation. The
address for general ASF correspondence and licensing questions is:
[EMAIL PROTECTED]
You can find more contact information for the Apache Software Foundation on
the contact page of the main Apache site.


--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Going in the _Forrest_ (was Re: FAQ Answers please)

2002-03-18 Thread Nicola Ken Barozzi

From: Joerg Pietschmann [EMAIL PROTECTED]

 Nicola Ken Barozzi [EMAIL PROTECTED] wrote:
  There is a new project in Apache called Forrest, that is redesigning the
  whole xml.apache.org site to become useful as a Sourceforge on steroids.
  We are at the beginning, and it would be cool if you join us there!

 Well, there are already GNUforge and PostNuke
 I hope you havn't fall prey to the NIH syndrome.

I hope too.
But *GNU stuff is off limits for Apache, as you know.
We have reviewed other projects, but they don't even come close to what we
envision.
If you have APL compatible projects that can help us, please let us know
([EMAIL PROTECTED]).

  Currently, there is a mailing list, forrest-dev and a CVS module
xml.forrest

 Would it still be possible to use established mechanisms
 as long as forrest is not put into production?

Of course.
Forrest will be an *option*, not an obligation.
It is *our* goal to do the work for you, not viceversa.

BTW, if you want, in the meantime I can make a patch to your build to use
Cocoon and the new slim xml.apache.org style that is in current Cocoon cvs.
It has the same LF of the current one but doesn't make use of batik, and
site is much slimmer.
The libs would be an additional 1.4 Mb, comprising the Avalon framework and
Excalibur jars that you will need anyways. The Cocoon jar itself is less
than 1Mb.

 It would be nice if you could give a short note about the
 current state and how the forrest project will influence
 the publication of FOP docs in the future (to keep it on
 topic for this list :-).

:-)

Forrest will make the FOP site pubblication a _piece of cake_, and we are
working with GUMP to integrate the two processes.
Basically, all you will need is to register up for forrest docs generation,
and that's it.

Forrest will trigger regularly on GUMP and:
 -get the xdocs from your CVS
 -get the results from the gump build
 -generate xml javadocs
 -massage everything with new slimfast stylesheets
 -deploy the site
 -mail nags to the mailing lists like:
   - pending patches
   - pending bugs
   - please suggest ;-)


This is the first phase.
Subsequent releases will grow based on demand and the Forrest project scope
in the README.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Nicola Ken Barozzi

From: Peter B. West [EMAIL PROTECTED]

 Nicola Ken Barozzi wrote:
 Don't get me wrong, maybe I don't understand something, but still I'm
very
 puzzled.
 
 Nicola,

 Your criticism here distresses me somewhat.  How is anyone without
 commit access able to branch the code?  I have been active on this list
 for twelve months or more, so your not knowing of my effort reflects the
 fact that you have recently joined.

Sorry, I didn't know.
I still think that it's strange that the redesign effort is done outside of
FOP CVS, but now it's clear to me that you didn't have another possibility.
It's some month's I've been on this list, and my longer experience on other
lists made me wonder about the current status of FOP. I thank you for taking
your time to explain.

Since I would like to give a hand if possible, could you please give me
insight on how you've redesigned the framework, or some reference to
available material?
It would be great.

Thank you :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: FAQ Answers please

2002-03-15 Thread Nicola Ken Barozzi

From: alex [EMAIL PROTECTED]

 Hello Joerg,

 Firstly lets set up a mailing list for discussing Apache FAQs. I think it
 would be a Good Thing.

 AFAIK there is no official XML schema or DTD for FAQs, but we can come up
 with one.
 There is something called xdocs which is what most Apache documentation
 is written in. I am not sure if it is suitable for FAQs.

 If we agree on a FAQ Schema I am happy to convert my data into that format
 so that it can be incorporated into the CVS tree.

 HOWEVER do we want the FAQ in the CVS tree? It means that it is a lot
 harder to add new answers.

 I am thinking of mimicking the old Java based Jyve program in simple perl
 so that people can use this URL
 http://www.owal.co.uk/cgi-bin/fopfaq.cgi to add material to (my) FAQ as
 well as read it.

There is a new project in Apache called Forrest, that is redesigning the
whole xml.apache.org site to become useful as a Sourceforge on steroids.
We are at the beginning, and it would be cool if you join us there!

Currently, there is a mailing list, forrest-dev and a CVS module xml.forrest

Hope you join us! :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-15 Thread Nicola Ken Barozzi
.
 */
void setOutputStream(OutputStream out) throws IOException;

/**
 * Get the mime-type of the output of this codeComponent/code.
 */
String getMimeType();

/**
 * Test if the component wants to set the content length
 */
boolean shouldSetContentLength();
}

public interface XMLConsumer extends ContentHandler, LexicalHandler {
}

public interface XMLPipe extends XMLConsumer, XMLProducer {}

public interface XMLProducer {

/**
 * Set the codeXMLConsumer/code that will receive XML data.
 */
void setConsumer(XMLConsumer consumer);
}


As you can see, it's pretty straightforward.
Cocoon also makes all Avalon markers available: if you mark it as Poolable,
it gets pooled, LogEnabled, it gets logging, Configurable, it gets a
Configuration, and so on.

When this is in place, all the infrastructure is there, and we can
concentrate on the real FOP code.

Ok, fire at will, I have an asbestos suit on ;-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG -next generation- (was: merging two libraries)

2002-03-14 Thread Nicola Ken Barozzi

From: [EMAIL PROTECTED]

Nicola Ken Barozzi wrote:
 Given the licences, nobody is prohibited to cross-collaborate. iText
 developers can send patches to FOP and viceversa, and be [VOTE]d as usual
 when the time is right.
 FOP can distribute iText jar as it's MPL, and both projects would
cross-link
 in a clear way.

 Advance warning: I didn't follow possible discussions
 on the iText list regarding this issue.

 IF the integration FOP-iText is done in a way where PDF
 output via iText is not just an option but a replacement
 for the existing PDF output - or even for the other renderers,
 too, then I'd say this step contradicts the intention
 though not the letters of the Apache license.

This is a strong opinoin. Remember that the Apache license is a *license*,
not the community. Apache values the community, and the license is there to
help the community.

 Why? If FOP - under Apache license - can no longer be
 used for essential purposes without using an additional
 component (iText) under MPL or LGPL, then in effect FOP
 is no longer Apache licensed, though technically
 speaking it still is.

? This boils down to a question: what is FOP?

From http://xml.apache.org/fop/:

FOP is the world's first print formatter driven by
XSL formatting objects and the world's first
*output independent* formatter.


Currently FOP is not totally output indipendent, in the sense that it
doesn't even output without going through a FOP renderer.


The goals of the Apache XML FOP Project are to deliver an XSL FO-PDF
formatter that is compliant to at least the Basic conformance level
described in the W3C Recommendation from 15 October 2001, and that complies
with the 11 March 1999 Portable Document Format Specification (Version 1.3)
from Adobe Systems.


FOP is currently two things:
-formatter
-renderer

Nobody has ever thought to ditch the current FOP renderers. It would be
illogical.
The proposal is to focus on the formatting part, that is somethind that no
other project does AFAIK, and make the rendering accessible to other
projects, like iText, jFor and POI. Fop renderers would be just another
possibility, and now there are no alternatives I see for PCL, for example.

This way different working groups could focus indipendently on different
parts. Separation of concerns can help keep working groups more focused and
productive.

 This would reduce the usefulness of
 FOP for a (unknown, agreed) number of users while
 enhancing the usefulness for others
 (not license-concerned users).

I fail to see how this reduces usefulness.

 My personal favourite would be a FOP renderer
  implementation that makes use of iText. Then,
 time could tell whether there are enough people
 interested in keeping Apache-licensed PDF output
 alive.

Basically, this is the idea :-)

I remember that iText has already proposed to be put in the FOP codebase,
thus gaining Apache license.
But several reasons advise us to be cautious and defer it for now.
It's not codebases that would merge, but communities, and we have to avoid
stalling while in the process.

 If the decision goes toward a full replacement,
 I'd say that at least all existing FOP committers and
 possibly the major contributors to FOP should agree
 to this step as it - in one respect - decreases the
 value of their work so far.

IMO, it's the opposite.
This can give FOP another opportunity, not make it go back.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG -next generation-

2002-03-14 Thread Nicola Ken Barozzi

From: Keiron Liddle [EMAIL PROTECTED]

 On 2002.03.14 09:00 Nicola Ken Barozzi wrote:
  What I would like to see, is that FOP stops discussing about the
logging,
  resolving, pipelineing and stuff and starts to focus on the core
  functionality.
  IMHO, the best way to get this thing going *quick* is to use Cocoon as a
  pipeline. Cocoon gives you all these features, and gives you a solid
  framework to work on.
  When it works on Cocoon, we can see if performance for stand-alone
  processing is good enough. If not, we can *then* talk about the
structure
  around FOP, and break eventually free from Cocoon.

 Firstly the Area Tree is unavoidable. We must have a place to do the
 layout and to store the page information.

Right. And flush it ASAP, as FOP already tries to do now to some degree.

 If you want this area tree turned into sax events, it really seems like an
 unecessary step but there is an xml renderer (admittedly simply writes
 text at the moment but you get the idea) if you want to add this extra
 step.

I think that a SAXrenderer could be the solution. SAX is based on calling a
method when a tag begin-content-end is reached. It can be used to
communicate the Area Tree to the renderer in a clean way, whith a standard
interface.
To make a renderer use by FOP in this way, you just need to say:We give you
this xml area tree that conforms to this schema via SAX. Render it. No
knowledge of FOP internals is needed.

 The FO Tree - Layout - Area Tree are the three core issues. This is what
 needs to be done first.

Can't agree more :-)

 For the FOTree to structure document it is a different issue, that I hope
 we will solve one day. Maybe sax events could be used here.

Hmmm... AFAIK FO is about layout, not semantical structure.
Bold is just Bold, and not emphasis or strong.
Maybe I don't get the point. Could you elaborate more please?
Thank you.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: development status

2002-03-14 Thread Nicola Ken Barozzi

From: Keiron Liddle [EMAIL PROTECTED]

 (as a guess I would say you haven't beed subscribed long enough :)

;-)

 There was a notice of this a number of months ago. Admittedly we have it
 the other way around. Maintenance releases are made from a branch. So the
 main branch is where the active development is happening.

Ok. Makes sense since the community has common views.

 So where are we:
 I am going to great lengths to describe how it all works so others will
 have the knowledge to help out.

I've seen it and it's very very well done.
My sincere compliments :-)

 Many others are helping with ideas and requirements.
 Not much code is getting done because people are busy and the issues are
 complex (many of the side issues are being dealt with)
 The maintenance branch is being updated for bugs etc.

Ok.

 I am hoping people will get to a point where they feel ready to jump in.

 So what needs to be done:
 Finish the implementation of the line layout
 do the page layout
 then do all fo's
 handle other issues
 then hopefully we will be ready for a developers release (version number
 yet to be decided)

Ok, nice. This seems more like evolution than revolution, am I right?
Are there any projects underway to change the processing model?
How about the new property resolving proposal.

Sorry if I keep asking, but I got a bit confused reading some mails on the
list.

Thank you :-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG -next generation- (was: merging two libraries)

2002-03-14 Thread Nicola Ken Barozzi

From: [EMAIL PROTECTED]

 Technically, it's very tempting to do what you propose. In fact,
technically,
 I'm all for it. Let's just be aware that the license problem is not only a
 philosophical issue.

Of course. I think we agree.

And as for this:

   This would reduce the usefulness of
   FOP for a (unknown, agreed) number of users while
   enhancing the usefulness for others
   (not license-concerned users).
 
  I fail to see how this reduces usefulness.

 If n persons are using FOP now and some of these can no longer
 use FOP because a part of FOP they need has a license they can't use, then
 I'd say this reduces FOPs usefulness for these some persons, despite
being
 more useful to others.

Apache is very clear in the licencing terms.
*GPL libraries cannot be distributed by Apache. So this rules them out. The
iText developer are maing it possible now to redistribute the jar with the
MPL license only.

AFAIK, MPL is compatible with APL. Which means that the MPL -jar- can be
used in *every* condition in which APL -code- or -jars- are used. Who cannot
use MPL jars in APL code?
Maybe I'm wrong, but I cannot come up with an example.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG -next generation- (was: merging two libraries)

2002-03-14 Thread Nicola Ken Barozzi

From: Matthias Fischer

 My company, for instance, would have to stop using FOP;
 we would not even take the time to go into studying legal
 aspects, because, as a medium-sized company, we
 don't have the time and money and personnel to do this...

I think you are exaggerating a bit.
Are you using Apache license software? And did you study it with this
scrutiny?

If you are using the Apache license and are confortable with it, then there
is no problem. If Apache can distribute it with APL code, you can do the
same. It's simple as that.
Apache admits only compatible licenses in the CVS for this reason; some
weeks ago there has been a check in the CVS to check this, and you can be
sure that there is zero tolerance on this issue, it is applied very
strictly.

Look at the descriptions on the main apache site and on Jakarta; there are
very important pages IMO that explain as clearly as possible the position
Apache has on this point.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: merging two libraries

2002-03-13 Thread Nicola Ken Barozzi

From: [EMAIL PROTECTED]

 Keiron Liddle writes:

 
  That sounds like a good suggestion.
 
  To start with I think we should consider only this:
  FOP behaves exactly the same but instead of having its own pdf
generation
  code then iText is used as a library to generate pdf.
 
  So the questions are:
  - is the license useable

 I did a little search and I found people saying that
 MPL is compatible with the Apache license and others
 saying it isn't. My main concern is that I don't want
 a license that allows my employer to prevent me from
 distributing the code I write at my work for free.
 I don't know if the Apache License is strict enough
 to ensure me that.

The Apache licen(c|s)e makes the code available for any use as long as due
credit is given.
No reference is given to availability of the source code of the
modifications.
If you modify Apache licen(c|s)e code, you can keep the modifications for
yourself, as long as you give due credit.

If the code is to ask to become an Apache project, the source code *must* be
Apache licen(c|s)e 1.1.
If not, it can be still used by FOP as a jar if the licen(c|s)e permits its
distribution with Apache software-code.

  - is the api sufficient for FOP to use

 I don't know, but we can always fill the gaps.

:-)

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




[PROPOSAL] FOP+iText = FOP-NG -next generation- (was: merging two libraries)

2002-03-13 Thread Nicola Ken Barozzi

Given what has been said on the mailing lists of FOP and iText, and given
the current scope of the two projects, I feel reasonably sure that this
could be a proposal accepted by bot communities.

-
 FOP uses iText as a PDF generation library
-

This could have greater benefits than a merger and keep intact the strenghts
that these two projects have (remember AOL+Time Warner? is the result we
want?).

iText could continue to be an excellent PDF (and RTF AFAIK) generation
package with a good java API.
FOP could concentrate on FO2AreaTree and use iText as the last step.

Given the licences, nobody is prohibited to cross-collaborate. iText
developers can send patches to FOP and viceversa, and be [VOTE]d as usual
when the time is right.
FOP can distribute iText jar as it's MPL, and both projects would cross-link
in a clear way.

AFAIK iText is already able to produce PDF using an XML file. If FOP could
make a transformation step from FO to this format, we could get this up
running in a short time.
And IText can also output to html, which is not bad at all.

What do you think?
Shall we pull this off?

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG -next generation- (was: merging two libraries)

2002-03-13 Thread Nicola Ken Barozzi

From: Peter B. West [EMAIL PROTECTED]

 Nicola,

 I think there are a few issues to be considered here.  Essentially, what
 is FOP?

Good point.

 There may be a number of requirements of an XSL-FO processor.  The basic
 one is, Show me this on a page or screen.  Any kind of renderer, using
 any approach whatsoever, will achieve this, more or less.  The so-called
 structure renderers, like the rtf and mif renderers, do this with a
 useful side-effect; the file they produce can be not only viewed, but
 edited.  It seems to me that what you are proposing is to use iText as a
 basic structure renderer, mapping the fo structures into
 iText-compatible structures.

As a start, yes.

 With all of the structure renderers, however, you are at the mercy of
 the individual layout engines.  Anyone who has tried to produce a
 complex document using two versions of MS-Word will have an acute
 understanding of what it means to be at the mercy of someone else's
 renderer.

I think the POI team (http://jakarta.apache.org/poi/) would have something
to say about this, but it would not be appreciation for the MS file formats
;-)

 The spec itself defines a layout engine in the production of the area
 tree from the fo tree.  Admittedly, there are a number of grey areas in
 layout, especially when constraints conflict, in which the final
 decision is up to the User Agent.  Effectively, it's up to the
 implementation.  The area tree, though, defines the position of every
 mark on every page.  It inherently holds out the prospect of producing
 identical layouts from every renderer downstream of the area tree.

This implies AFAIK that the creation of the area tree is the crucial point,
the pivotal scope of FOP.

 I was initially skeptical about this, because of the dependency of the
 layout on the font characteristics.  It was pointed out to me, though,
 that as long as a renderer honoured the metrics of the design font then,
 even if individual glyphs were considerably different, the *layout*
 would still be identical down ot the position of individual glyphs on a
 page.

 It seems to me that that is what a full implementation of the spec
 implies, and that such a search for consistency in the position of marks
 on page or screen is one of the most desirable features of the spec.
  What may not be achievable across different implementations, we may
 still seek to achieve within a single implementation.

Yes.

 With that in mind, we can probably conclude that a true structure
 renderer cannot achieve this cross-renderer consistency.

And this is taken in account for in the spec as you know, which defines many
tags as optional and hints on how to downgrade gracefully.

 That would
 also be true of iText, used in such a way.  If however, the interface to
 iText were defined such that the position and size of al marks to be put
 on the page could be rigorously determined, it could meet the
 requirement.  I, for one, would like to see such a precise and
 relatively low-level pdf library.

In the proposal, the hint to active collaboration is there to achieve this
synergy.
Itext can give FOP a boost in rendering, and the FOP community can give
iText greater precision in rendering.

The iText community has shown IMO sincere quest for an active collaboration,
and even donation of the code to FOP.
As both communities pointed out correctly, just merging two project usually
doesn't make a bigger project, but a bigger mess.

So it seems that this thing can start :-)

There is no need for a VOTE, since plain discussion and sharing of views is
free, of course.

Although I'm subscribed to this mailing list for quite some time now, I
didn't really understand the status of the works that are going on to get to
FOP2 or whatever you are going to call it.
AFAIK, changing codebase requires a notice of this, a branch in CVS (no vote
is necessary), and a final VOTE if the codebase is to switch.
This is how Tomcat, Xalan, Xerces and many other projects did it, and how
the priject guidelines advise. (http://xml.apache.org/source.html)

What's the current status?

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-






-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [PROPOSAL] FOP+iText = FOP-NG -next generation-

2002-03-13 Thread Nicola Ken Barozzi

From: Bertrand Delacretaz [EMAIL PROTECTED]

 On Wednesday 13 March 2002 16:58, Nicola Ken Barozzi wrote:
 . . .
  -
   FOP uses iText as a PDF generation library
  -
 . . .

 Maybe the following scenario could help making FOP more
 pipeline-oriented, making it easier to plug in various renderers,
 layout engines, debugging tools, etc.

 I'm just making up component names, hopefully understandable

 1. FopParser parses and validates the input XSL-FO document

Not needed if using Cocoon as a pipeline.

 2. FopPropertyResolver does its job, attributes inheritance, etc.

 Then two options:
 3a. FopLayoutEngine (existing code, API-coupled as now) computes layout
 and produces PDF

 3b. *or* FopFoDumper dumps the result in XML (or SAX events) using the
 XSL-FO vocabulary but with all attributes explicity specified (as far
 as possible, I know there are some issues here).

3b

 After 3b, various XSLT transforms and/or XML-to-something converters
 can be plugged in using the well-defined and loosely-coupled SAX/XML
 interface.

 I think using XML/SAX to interface between future pipeline components
 (ParsingAndPropertyResolving - Layout - Serialization) opens up much
 more options than using java APIs for this, and could help keep FOP
 small and focused.

 If using Cocoon, being able to just resolve properties and pass the
 result on to various transforms opens up new horizons for XSL-FO
 processing.

This is the proposal I made, and I think it stands even stronger now.

If FOP is pipeline driven, any renderer can be quite easily plugged in.
AFAIK, the pipeline architecture is one of the major design differences that
in some way has been agreed on.

What I would like to see, is that FOP stops discussing about the logging,
resolving, pipelineing and stuff and starts to focus on the core
functionality.
IMHO, the best way to get this thing going *quick* is to use Cocoon as a
pipeline. Cocoon gives you all these features, and gives you a solid
framework to work on.
When it works on Cocoon, we can see if performance for stand-alone
processing is good enough. If not, we can *then* talk about the structure
around FOP, and break eventually free from Cocoon.

 At the other end of the pipeline, what about an XML-to-MIF
 converter, for example, much more generally useful than a
 tightly-coupled MIF renderer for FOP.

 Implementing 3b should be fairly easy (isn't that a serialization of
 the FOTree?), and we can go from here to reuse important parts of FOP
 as individual components.

I agree.
This can big opportunity also for other projects to collaborate in the
rendering.
JFor, for example (I don't remember who maintains it ;-P)
And POI. At POI, we are going to do a Word .doc format writer. It could fit
easily in this picture.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [iText-questions] Re: merging two libraries

2002-03-12 Thread Nicola Ken Barozzi

From: New, Cecil (GEAE) [EMAIL PROTECTED]

 My suggestion was *not* to merge the two!

 iText is a Java API with a document creation focus.  In this day and age,
 XSL:FO can be viewed as just another document type - in the same way that
 more proprietary or older formats are (that is, PDF, RTF, etc.).

Sorry if it's a bit off-topic, but this issue is similar to the one we just
managed to handle between POI (http://jakarta.apache.org/poi/) and Cocoon
(http://xml.apache.org/cocoon/).

POI is a project that makes it possible to read-write common office file
formats in Java.
Cocoon is an XML processing framework-server.

The POI team donated a Cocoon component that uses POI and outputs XML, but
on the Cocoon side, committers saw too much POI code in it.

Basically we understood that a project to read-write a file format should
have a solid Java API. Other projects can use it to produce other results.
Merging is not the best solution, both for developers and users.

From this experience, I would humbly suggest that, after getting the
licencing stuff straight, FOP could be refactored to use iText as a PDF
generation step.
In this way communities can focus on a smaller part of the project with
greater efficiency, and the two products may have a much wider applicability
than a single merged one.

Since iText has a strong community behind it, since it would like to
integrate code with FOP, thus coming to Apache, and since FOP could use part
of it proficiently, I would like to see iText make a proposal at Jakarta for
the creation of a project.
All details for this are under
http://jakarta.apache.org/site/newproject.html .

What do you think?

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [iText-questions] Re: merging two libraries

2002-03-12 Thread Nicola Ken Barozzi

From: alex [EMAIL PROTECTED]

 At 14:27 12/03/02, Keiron Liddle wrote:
   FOP behaves exactly the same but instead of having its own pdf
  generation code then iText is
   used as a library to generate pdf.

 I agree that if anything iText could be considered as a plugin for PDF
 generation and FOP as an XSL:FO processor which could use iText to
generate
 the end result. I think however it would require a significant software
 change which I am not qualified to estimate. Those more familiar with the
 FOP source code can evaluate that.

   So the questions are:
   - is the license useable
   - is the api sufficient for FOP to use

 A look at Sourceforge tells us that the licenCes (bloody Americans can't
 spell English words) are
 License: GNU Lesser General Public License (LGPL), Mozilla Public License
1.1

 If Bruno is still the copyright holder then he can presumably simply add
 an Apache-style licence.
 I don't feel comfortable using the LGPL for this and don't know about the
 Mozilla license.

Any *GPL licenced stuff cannot go in Apache CVS.
If the code goes in the Apache CVS, it must have Apache licen(c|s)e.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: java.util.HashMap to com.sun.java.util.collections.HashMap

2002-03-07 Thread Nicola Ken Barozzi

From: David B. Bitton [EMAIL PROTECTED]

 Has it come up where anyone has attempted to use FOP w/ JDK 1.1.  The is
no
 HashMap class.  Sun has made available the collections classes for use in
 1.1.  This requires changing every import of java.util.HashMap to
 com.sun.java.util.collections.HashMap.  I plan on doing this on my copy of
 the codebase, because I am rolling FOP up into a COM DLL for use from an
ASP
 page, and J++ (the only way to build a COM DLL, as far as I know) uses
1.1.

You can use also the java-plugin (IIRC) to make java objects used as OCXs.
There is also a project on IBM alphaworks, and one on Sun javasoft to make
EJBs used in such a way.

Maybe these can help.

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: [SUGGESTION] Java GUI for FOP

2002-03-06 Thread Nicola Ken Barozzi

From: Michiel Verhoef [EMAIL PROTECTED]



 AFAIK The fop version included in Cocoon is not the most recent one.
 But of course it is possible to replace the one supplied with Cocoon
 yourself.

Current CVS version uses fop-0.20.3rc.jar .

-- 
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: Using Avalon/Logkit

2002-02-28 Thread Nicola Ken Barozzi

From: Joerg Pietschmann [EMAIL PROTECTED]

 Jeremias Maerki [EMAIL PROTECTED] wrote:
  Ok, I think that can be done, even when using Avalon in FOP. You propose
  (I think) that we could provide an Avalon-Wrapper around FOP,

 Thanks for the help.
 Some comments on the concerns: I'm forced to use JDK 1.3 with JAXP1.1 and
 proprietary extensions for logging and configuration management (and other
 stuff i'll ignore now).
 I have to use the proprietary API to retrieve configurable options and
 want to feed them to a FOP instance. It's not easy for me to deploy a
config
 file, nor do i want to. My purposes would be served best if there were a
 processor class which took all configuration options as a Properties
bundle
 or through some generic interface like Transformer does. An avalon
component
 class encapsulating the simple processor class (or derived, for possible
 performance gains) could use this interface to pass options read from a
 config file, command line options or whatever.

Avalon can really help you here.
If FOP is completely Avalonized, you can plug in you own implementations of
logging or configuration Management without changing the core FOP code.
Avalon gives you these services using interfaces; this way any
implementation can be used.

  but it
  could also be the other way around. I'm sure that Avalon will not stand
  in the way if we provide a simple interface similar to what you
proposed.

 Well, adding is easier than subtracting. Apart from the interface, i
 don't want to have FOP looking around for files (URIs are ok, if i could
 supply code to resolve them).

 Can somebody  explain to me what could be gained if the processor
 was an avalon component by default (other than easy integration into
 the avalon framework, of course)?

It automatically gets the possibility of using all Avalon services.
Instead of explaining all possibilities, let me show you an example of the
Avalon way.

Let's say that you write your class:

public class MyClass {
  public MyClass{}
}

Now you want it to get created and managed by Avalon.
So you define it in a config file (or programmatically)and change it to:

public class MyClass implements Component{
  public MyClass{}
}

This way, when Avalon starts, it creates you class.

Now you want it to get some configuration.

public class MyClass implements Component, Configurable{
  public MyClass{}

  public void configure(Configuration conf)
  {
 //use conf here
  }
}

The Configuration it gets is gotten from *any* class that uses that
interface; Avalon will supply it to you.

Now you know that your configuration can change, so you write:

public class MyClass implements Component, Configurable, Reconfigurable{
  public MyClass{}

  public void configure(Configuration conf)
  {
 //use conf here
  }

  public void reconfigure(Configuration conf)
  {
 //use conf here
  }
}

now you want to add some init code:

public class MyClass implements Component, Configurable, Reconfigurable,
Initializable{
  public MyClass{}

  public void configure(Configuration conf)
  {
 //use conf here
  }

  public void reconfigure(Configuration conf)
  {
 //use conf here
  }

  public void initialize()
  {
 //initialization code
  }
}

now you want to add some lifecycle code:

public class MyClass implements Component, Configurable, Reconfigurable,
Initializable, Startable{
  public MyClass{}

  public void configure(Configuration conf)
  {
 //use conf here
  }

  public void reconfigure(Configuration conf)
  {
 //use conf here
  }

  public void initialize()
  {
 //initialization code
  }

  public void start()
  {
 //start code
  }

  public void stop()
  {
 //stop code
  }
}

now you want to logging:

public class MyClass implements Component, Configurable, Reconfigurable,
Initializable, Startable, Loggable{
  public MyClass{}

  public void configure(Configuration conf)
  {
 //use conf here
  }

  public void reconfigure(Configuration conf)
  {
 //use conf here
  }

  public void initialize()
  {
 //initialization code
  }

  public void start()
  {
 //start code
  }

  public void stop()
  {
 //stop code
  }

  public void getLogger(Logger logger)
  {
 //get logger here
  }
}

And so on.

Avalon is the glue that ties all together.

If you implement Composable, you get a ComponentManager that gives you other
Avalon components managed in the same way.
There are Avalon components for URI resolving, caching, storage, xslt, etc.
All these components are accessed by an interface, so you can out any
concrete impl behind.
In fact, Composable has:
 public Component lookup(String role);
Whatever you get must be cast to an interface.

--
Nicola Ken Barozzi [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains

Re: Using Avalon/Logkit

2002-02-27 Thread Nicola Ken Barozzi

From: Joerg Pietschmann [EMAIL PROTECTED]

 Nicola Ken Barozzi [EMAIL PROTECTED] wrote:
  I've used Avalon framework in many projects, and IMHO it's not
heavyweight.

 Ok, scratch the heavyweight.

 In order to clarify issues: I have to use FOP in an environment
 which already provides logging, configuration management and life
 cycle management.

What is it?

 I don't want to look into another log file.
 I don't want to write more config files.

?

 (There is also the fact
 that said environment goes to great length to make augmenting
 already provided functionality as complicated as possible).

Avalon? I disagree. I've used it in a 10 months project. It saved me weeks
of work. And the architecture came out really clean.

  I have
 already customized ErrorListeners, URIResolvers and such and i
 want to reuse the functionality in the most straightforward way
 possible.

Using Avalon *is* reusing functionality.

 I don't want to write more customizations just for the
 Apache logkit. In particular, i don't want to learn how to write
 such customizations.

Customizations? I don't get you here.

 I don't want to prevent anyone from providing a FOP embedding
 using logkit and avalon.

Ok. Anyway, logging is a minor issue. If Avalon were logging, it would be
just logkit.

 I *want* however access to a core which
 doesn't rely on yet another toolkit for common functionality

Wait a second. If you need configuration, you *need* it. So you need to
write code to do it. So, what's the difference between importing Avalon code
or writing it yourself? What do you gain in writing it from scratch?

 and
 fits as seemlessy as possible into a run time environment roughly
 equivalent to the JDK 1.4 API (with emphasis on JAXP 1.1).

Sorry but I don't get you here. What is your measure of seamless?

I don't want this discussion to get into -just- logging, because IMO it's
not the point.

FOP (correct me if I'm wrong) is about transforming a fo tree in an area
tree, and then render this in many ways.
It's not about logging, configuration, lifecycle management, URI resolving,
etc.
But it needs them.
Avalon provides them, very well IMHO, and it's tried and tested code.
Why not use it?

My opinion is that using Avalon, FOP can concentrate on its core tasks, the
FO-AT-Render phases.

I would even dare go one step further.
FOP has basically two phases: FO2AT and AT2Rendering.
In Cocoon2, the first is a Transformation phase, the second a Serialization
phase. My crazy idea is that the new SAX driven FOP can be built on Cocoon
as a Transformer and a Serializer. All utility stuff is taken care of by
Cocoon. In this way we can concentrate on the *real* features of FOP. When
it works, we can then make it run in a more lightweight environment built on
Avalon.
For this, I seriously volunteer.

--
Nicola Ken Barozzi [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: Using Avalon/Logkit Was: Re: [Understanding] Images [4]

2002-02-26 Thread Nicola Ken Barozzi

From: Joerg Pietschmann [EMAIL PROTECTED]

 Jeremias Maerki [EMAIL PROTECTED] wrote:
  By the way: What's the current agreement whether to use Avalon or not? I
  mean, we're already using LogKit (which is cool).

 No, it's not cool unless done properly. I don't think users
 who want only pure FO processing should be forced to use
 another heavyweigth framework and logkit.

I've used Avalon framework in many projects, and IMHO it's not heavyweight.

Logkit is *very* light and fast, and I would humbly suggest to take a look
at the framework/logging classes that shields logging from implementation.
In this way any logger can be plugged in without changing code.

 I rather imagine something like the following layered
 architecture:

 1. FOP core. Processes XML, either as SAX event stream by
  supplying a content handler or by utilising the interface
  javax.xml.transform.Source, into a renderer specific result
  (probably a java.io.OutputStream, could even apply to a voice
  renderer :-)
  Do not rely on any hardcoded external files. Get configuration
  via a java.util.Properties object or other explicit methods.

In my experience, using the avalon framework Configuration adds a *lot* of
flexibility and is very easy to use. Now it also has writing capability.
Using XML, it has a hierarchy.

  Use a FOP owned interface like javax.transform.ErrorListener for
  reporting errors and such, or perhaps even reuse ErrorListener
  (somewhat odd, though).

In error reporting there are wo levels: user and developer.
The user gets notified by ErrorListener, the developer by logging. The user
could also want to put a logger as errorListener. Anyway avalon frameworl
logging shields from the logging implementation.

  Use a javax.transform.URIResolver or a similar FOP owned
  interface for resolving URIs (external graphics source, user
  font file...).

There is already a tried and tested Avalon Component for this.

 2. Intermediate layer with a class combining a transformer and
  a FO processor instance (optional)
 3. Class for embedding into the framework. Provides implementations
  for the URIResolver and the ErrorListener, the latter redirecting
  to the logging toolkit. May read external, user writable configuration
  files. Uses framework for passing options and other parametrisations
  from the outside (command line, servlet request, applet parameter...)

There is already a CLI util class in Avalon.

 It may be an idea to use the factory pattern like javax.transform:

 abstract classe FOProcessorFactory {
   // get a new factory. factory may cache default properties for
   // processors, fonts,...
   static FOProcessorFactory newInstance();
   // create a new processor. a FOProcessor instance is only good
   // for one run, like a Transformer
   abstract FOProcessor newFOProcessor();
   abstract FOProcessor newFOProcessor(Renderer enumeration);

There are ComponentManagers in Avalon, that handle lifecycle automatically.

   // inherited to generated processors
   abstract void setErrorListener(ErrorListener);
   // inherited to generated processors. use also for example for
   // loading default fonts while creating a new processor instance
   abstract void setURIResolver(URIResolver);
   // set attributes, like font file URIs or even compiled font
   // classes
   abstract void setAttribute(String name, Object value)
   // perhaps a few shortcuts for transformations
   abstract void setTransformation(Source xsl);
   abstract void setTransformation(Templates);
   // various get methods omitted :-)
 }

 abstract class FOProcessor {
   abstract void setRenderer(Renderer enumeration);
   abstract void render(Source,OutputStream);

   abstract void setErrorListener(ErrorListener);
   abstract void setURIResolver(URIResolver);
   abstract void setAttribute(String name, Object value)
   // shortcuts
   abstract void setTransformation(Source xsl);
   abstract void setTransformation(Templates);
   // extra shortcut (makes no sense for the factory)
   abstract void setTransformation(Transformer);
 }

This is basically a definition of an interface of a FOProcessor, the main
avalon-style Component for FOP.
Using Excalibur ComponentManager, you just need to add a reference in the
xml configuration and it gets automatically setup, configured, and managed.

 If a transformation is set, the Source in render() is the original
 XML piped through the transformation. I'm not sure whether get/set/
 clearParameter for the transformation should be added to FOProcessor,
 fortunately, no output properties are necessary.

If it implements the Parametrizable interface of Avalon, the Parameters get
set automatically by Excalibur.
Same with Configurable.

IMHO, Avalon *really* helps in making a clean class structure and
Componentization.
I am finding it a bit difficult in getting the grasp of FOP specific stuff,
but understand something of Avalon, so I'm very willing to help in this
regard.

Cheers!
Ken

--
Nicola Ken Barozzi

Re: AWT Window

2002-02-21 Thread Nicola Ken Barozzi


- Original Message -
From: IvanLatysh [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, February 21, 2002 2:53 PM
Subject: AWT Window


 Hello, Alistair!
 You wrote to [EMAIL PROTECTED] on Thu, 21 Feb 2002 09:26:32 -:

  AH Now that a few more people are interested in this:

  AH I think that it would be more useful if the basic AWT API returned a
  AH JPanel rather than a JFrame.
...
 From my practice the best way to make this flexible is just give JPanel
without any controls.
 Just a report. And implement into this pane methods to switch pages,
zoom, import 
 And, If I need preview window I will do preview by myself with my buttons
and my style.
 I think this is right way to do it.

Better still... give the JPanel like you propose and Actions that (if
needed) can be easily put in a toolbar.

--
Nicola Ken Barozzi [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: AWT Window

2002-02-21 Thread Nicola Ken Barozzi

From: Alistair Hopkins [EMAIL PROTECTED]

 So how about this as the public interface:
 
 package org.apache.fop.apps;
 
 public class AwtManager
 {
 public AwtManager(InputSource fo)
 
 public AwtManager(InputSource xsl. InputSource xml)
 
 //these are separated so the work of showing the preview can go on a
 background thread
 public Component getPreviewPanel()
 public Component showPreview()
 
 //possible also to set the saved file type in the save method
 public void save(Component fileChooserParent)

-0

 public void save(File f)

+-0

 public Action getSaveAction()

save(OutputStream out)

 public void print()
 public Action getPrintAction()
 
 public void zoom(String zoomFactor)
 public JCombo getZoomCombo()
 
 public void goToPage(int n)
  ...etc...
 
 //a short hand for lazy people
 public JToolBar getToolbar()
 }

Action[] getActions()

-- 
Nicola Ken Barozzi [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: Any real-life business use ?

2002-01-14 Thread Nicola Ken Barozzi


- Original Message -
From: Patrick Andries [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, January 14, 2002 1:03 PM
Subject: Re: Any real-life business use ?


 Alex Mc Lintock wrote that, due to a bug in IE, he had to save the whole
 PDF file on disk. I think I have seen this: is this when the PDF file is
 interpreted as text and displayed as gibberish in the main navigation
 window? Has this not been resolved in later versions of IE? Has the bug
 been reported to the MSIE team?

I've been using FOP in Cocoon , and AFAIK, IE fails to understand that the
file is a PDF if it doesn't have a .pdf extension. IE is not to clean when
it comes to MIME type VS extensions. As a workaround you can also do IIRC
document?hackattr=dummyvalue.pdf  .
IE knows of this, and AFAIK it's not resolved in IE5.5 .
--
Nicola Ken Barozzi [EMAIL PROTECTED]

These are the days of miracle and wonder...
  ...so don't cry baby, don't cry...
  Paul Simon



smime.p7s
Description: application/pkcs7-signature


Re: image protocal in Fop on unix

2002-01-03 Thread Nicola Ken Barozzi


- Original Message -
From: Keiron Liddle [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, January 03, 2002 9:18 AM
Subject: Re: image protocal in Fop on unix


 On 2002.01.02 21:23 Savino, Matt C wrote:
  This works for me:
 
  fo:external-graphic
 
src=file:///usr/local/weblogic/config/isappdev/applications/RVWebApp1/WEB-I
  NF/lib/ClinTrialLogoGreenBig.gif /
 
  If you figure out how to use a relative path, PLEASE let me know.

 The example in docs/examples/fo/images.fo has relative urls for images
 (can't really have absolute urls for cvs and distributions!).
 The images are loaded properly.

 Of course if you are embedding fop then you will need to set the basedir
 via the config.

This is really interesting 4 me.
I would like to set it for the Cocoon FOP Serializer.
How do you set the basedir programmatically?
I'd be very grateful if you can indicate the relevant classes/parameters.

Thank you in advance.

Ken
--
Nicola Ken Barozzi [EMAIL PROTECTED]

These are the days of miracle and wonder...
  ...so don't cry baby, don't cry...
  Paul Simon



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




Re: image protocal in Fop on unix

2002-01-03 Thread Nicola Ken Barozzi


- Original Message -
From: Keiron Liddle [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, January 03, 2002 3:17 PM
Subject: Re: image protocal in Fop on unix


  This is really interesting 4 me.
  I would like to set it for the Cocoon FOP Serializer.
  How do you set the basedir programmatically?
  I'd be very grateful if you can indicate the relevant
classes/parameters.

 Coccon documentation on how to setup coccon:
 http://xml.apache.org/cocoon/userdocs/serializers/pdf-serializer.html

 FOP documentation on how to embed FOP:
 http://xml.apache.org/fop/embedding.html


Thank you, but in the docs you indicated there is no reference to base-dir
parameters.
Is it possible to specify it in Options?

I've looked in the code and in AbstractFopImage I have:
this.m_imageReader =
ImageReaderFactory.Make(this.m_href.toExternalForm(),
this.m_href.openStream());

Then I looked in FopImageFactory and found:
// maybe relative
URL context_url = null;
String base = Configuration.getStringValue(baseDir);
if(base == null) {
throw new FopImageException(Error with image URL: 
 + e.getMessage()
 +  and no base directory is
specified);
}
try {
absoluteURL = new
URL(Configuration.getStringValue(baseDir)
  + absoluteURL.getFile());
} catch (MalformedURLException e_context) {
// pb context url
throw new FopImageException(Invalid Image URL - error on
relative URL : 
+ e_context.getMessage());
}

In the code of the Ant task I found:

   org.apache.fop.configuration.Configuration.put(baseDir,
   task.getFofile().getParentFile().toURL().toExternalForm());

Configuration is static :-O
Should I use Configuration?

Ken
--
Nicola Ken Barozzi [EMAIL PROTECTED]

These are the days of miracle and wonder...
  ...so don't cry baby, don't cry...
  Paul Simon






smime.p7s
Description: application/pkcs7-signature


Re: A simple question: Hot to close acrobat??????????????????

2001-12-12 Thread Nicola Ken Barozzi



AFAIK, it remains in memory to be able to handle 
subsequent requests faster.
AKAIK, there is no simple programmatic way to 
disable this.

Nicola Ken Barozzi These are the days of miracle 
and wonder... 
 
...so don't cry baby, don't cry [EMAIL PROTECTED] 
Paul Simon 


- Original Message - 

  From: 
  Raúl 
  Carazo 
  To: FOP 
  Sent: Wednesday, December 12, 2001 12:04 
  PM
  Subject: A simple question: Hot to close 
  acrobat??
  
   It's not for this place, 
  but... 
  
   When I open a pdf-report on a 
  IE I see it. OK. 
  
   But when I close the IE, there 
  is an acrobat.exe process still open...
  
   Any idea?
  
   
thx


Re: need help

2001-12-12 Thread Nicola Ken Barozzi


- Original Message -
From: Keiron Liddle [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, December 12, 2001 3:54 PM
Subject: Re: need help

 While that is true there are certain things you need to realise.
 - there are serious layout issues that need to be addressed
 - performance and memory is very much tied up to how the whole system
 works, this makes it difficult to fix

Are there any discussions on how to reorganize fop on a more scalable
framework?
Maybe going to SAX or other internal representations?
Sorry for the questions, I'm not able to check the list arcives right now.

 - getting FOP to a stage where there is a clear development direction is
 difficult
 - none of this will happen by itself

Right.

 It appears that more effort needs to be put towards communicating the
 issues involved and the way in which FOP can be improved.

What are the plans for FOP.
Are the releases giong to be so slowly incremental?
I'm really in the need of enhancements on the performance side and I don't
know where to start.
I also needed something that could render fo dynamically but FOP is not made
for this...
How can I help regarding these issues?

Nicola Ken Barozzi These are the days of miracle and wonder...
...so don't cry baby, don't cry
[EMAIL PROTECTED]  Paul Simon



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]