Re: startup refactoring

2003-06-18 Thread Jeremias Maerki

On 17.06.2003 21:28:29 Glen Mazza wrote:
 Instinctively, I wouldn't trust any code in the
 package root of org.apache.fop -- we wouldn't have a
 very modularized design that way (knowing FOP's
 current coding style, the main FOP API would then be
 accessing objects all through the packages,
 octopus-like, splitting of the business logic with the
 actual objects doing the work, inextricable from the
 XSL FO process.)  

Not necessarily. Well, the public API has to have some way to control
the whole show. This will automatically lead to a little octopus if the
code is in ...fop or ...fop.api. But no problem with another package.

 FOP is more a pipeline to me:
 
 APPs package (CLI, TRAX/XSLTInputHandler, Avalonized
 API, Victor's ideas) --  FOTreeBuilder/Layout/Area
 Tree creation -- Rendering.

Uh, thanks for that one. It's a very nice show why the current apps
package is a mess. SoC (Separation of Concerns) would suggest not to mix
thing like CLI, public API and inner communication classes.

 IMO FOTreeBuilder should just expose three functions
 (perhaps another one for logging):

Logging, at least in Avalon-land, is a lifecycle aspect (through
the LogEnabled interface). The methods below are lifestyle methods.
Lifecycle != lifestyle. It's best to talk about lifestyle primarily and
leave the lifecycle (instantiation, logging, configuration,
initialization) to a different discussion. Helps keeping the focus, I
believe. The lifecycle can eventually be handled automatically by a
container (such as Fortress or Merlin). Leaves you to care about the
lifestyle (=functionality).

 1.) SetXSLFOStream() (file or stream)
 2.) SetRenderType()  (those constants currently in
 Driver or CommandLineStarter)
 3.) Run(). (returns a stream or file)

This mixes concerns. A render type does not belong in a class called
FOTreeBuilder. The name already implies that the class is responsible
for building the FO tree. It should have nothing to do with the
rendering aspect, especially since FO tree building is independant of
the output format (wrt Renderers). The render type is better placed in a
class such as a RenderingRun/Document/whatever-we-call-it. The FO tree
builder is (to me) a service that simply accepts a SAX stream and builds
the FO tree. The layout engine, another (coarse grained) service, will
then access the FO tree to do the layout. This is all kept together by a
supervising class. At least, that's my personal high-level view of it.

 You can have 500 methods of calling these functions
 within the apps package--it's all fine/OK, because
 they will only be able to work with FOTreeBuilder
 (apps will have no access to Renderers or Layout,
 etc.) and its three functions. 
 
 Such an FOTreeBuilder may be getting to the heart of
 the XSLFO Spec:
 
 Input:  XSLFO Stream, RenderType
 Output: Document
 
 and may be close to Xalan's approach, a team which has
 similar input/output requirements.
 
 Also, embedded Java code should be able to run without
 accessing the Apps class at all by directly calling
 those three functions in FOTreeBuilder.

The FOTreeBuilder should remain an inner service to FOP, not exposed in
the public API, if you ask me. The public API, IMHO, should be an easily
understandable construct that masks the internal complexity from the
user. Driver already does that today, it's just a bit too tightly packed
and not focused on as little as possible. We need to disentangle that
class to make it more like the JAXP API.

 (Although we
 can certainly provide additional options in apps--but
 FOTreeBuilder should be all that is strictly needed.) 
 Said another way, the processing paths of
 FOTreeBuilder, once instantiated in embedded code,
 should not access *any* functionality in the apps
 package, because apps is to the left of the pipeline.



Jeremias Maerki


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



Re: [VOTE] Nomination of Glen Mazza as committer

2003-06-18 Thread Christian Geisert
Christian Geisert schrieb:
Oleg Tkachenko schrieb:

Jeremias Maerki wrote:

I agree, so +1 from me.
Here is my +1.
+1
Clearly enough +1 and no -1, congratulations Glen!

According to http://www.apache.org/dev/pmc.html the account
request should be handled by the PMC - so Jeremias or Peter
would you please take care of this?
Glen, what userid would you like?

Some infos for the start: http://www.apache.org/dev/committers.html

Christian

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


Re: [VOTE] Nomination of Glen Mazza as committer

2003-06-18 Thread Jeremias Maerki
Can do.

Here's the new account request form that we need to fill:
New account request form:

 To: [EMAIL PROTECTED]
 Cc: pmc@project.apache.org, [EMAIL PROTECTED]
 Subject: Apache account request

 Full name:...
 Preferred userid: ...
 Forwarding email address: ...

 Requested karma:  project[/subproject] ...

[Vote: link to mail archive for PMC bookkeeping]


On 18.06.2003 10:21:42 Christian Geisert wrote:
 Clearly enough +1 and no -1, congratulations Glen!
 
 According to http://www.apache.org/dev/pmc.html the account
 request should be handled by the PMC - so Jeremias or Peter
 would you please take care of this?


Jeremias Maerki


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



Re: new Logo

2003-06-18 Thread Oleg Tkachenko
Christian Geisert wrote:

What's going on with the new logo?
The logo #30 [1] won the contest. It's by Tobias Muller, modified by Scott 
Hofmann. Some of us talked about additional tweaking and Scott said [2] he's 
ready to go for it. That's it afaik.
I propose to put an end to this - let's discuss additional tweaking and get 
finally new logo (we need also SVG version).

[1] http://www.tkachenko.com/fop/logocontest/fop_logo-revised-Tobias-Muller.jpg
[2] http://marc.theaimsgroup.com/?l=fop-devm=105361141331672w=2
--
Oleg Tkachenko
http://www.tkachenko.com/blog
Multiconn Technologies, Israel
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]


DO NOT REPLY [Bug 20868] New: - max external graphic height depends on region-body

2003-06-18 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20868.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20868

max external graphic height depends on region-body

   Summary: max external graphic height depends on region-body
   Product: Fop
   Version: 0.20.5
  Platform: All
OS/Version: All
Status: NEW
  Severity: Normal
  Priority: Other
 Component: images
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


I try to produce a Spare Parts List PDF with Apache FOP 0.20.5rc3a. On even 
pages I just have a static explosion drawing and on odd pages a table with 
spare parts, that can spread over multiple pages. To do this I use repeatable-
page-master-alternatives. To get nice page breaks, I have a pseudo region-body 
with a height of 1mm on the even pages (the flow is the table, the explosion 
drawing is on a static-content-area).

Unfortunately I had to find out, that the external graphic on the static 
content area cannot be higher than the height of the region-body. Since I only 
have a pseudo region-body of 1mm height, the image is rendered far too small ;)

I do not think that this is desired behaviour. So I stepped into the source 
code (I start to love open source).

And in org.apache.fop.fo.flow.ExternalGraphic.layout(Area area) in line 209 I 
found out that the maximum height of the external graphic is indeed dependent 
on area.getPage().getBody().getMaxHeight(). But this class is used for static 
content areas, too.

I changed this to area.spaceLeft().

For my special rendering this works fine. Of course, I do not have a clue, if 
this is a solution for any boundary condition.

I would really appreciate if you could have a look at it.

Thanks,

FloH

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



DO NOT REPLY [Bug 20879] New: - Leader is broken in PS Renderer

2003-06-18 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20879.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20879

Leader is broken in PS Renderer

   Summary: Leader is broken in PS Renderer
   Product: Fop
   Version: 0.20.5
  Platform: All
OS/Version: All
Status: NEW
  Severity: Major
  Priority: Other
 Component: general
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


The postscript renderer produces broken output when trying to
render a leader. I'm not a postscript expert but comparing
0.20.4 (where it works) to 0.20.5rc3a (where it's broken) it
looks like a couple of moveto's are missing. The FO below
will produce the bad postscript. PDF rendering works fine.

?xml version=1.0 encoding=UTF-8?
fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format;
  fo:layout-master-set
fo:simple-page-master 
  margin-right=0.3in 
  margin-left=0.3in 
  margin-bottom=0.1in 
  margin-top=0.1in 
  page-width=8.5in 
  page-height=11in 
  master-name=fax
  fo:region-body margin-left=0.3mm margin-bottom=65mm margin-top=30mm/
/fo:simple-page-master
  /fo:layout-master-set
  fo:page-sequence master-reference=fax
fo:flow flow-name=xsl-region-body
  fo:block
fo:leader rule-thickness=.5mm leader-pattern=rule
leader-length=200mm/
  /fo:block
/fo:flow
  /fo:page-sequence
/fo:root

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



DO NOT REPLY [Bug 20879] - Leader is broken in PS Renderer

2003-06-18 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20879.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20879

Leader is broken in PS Renderer





--- Additional Comments From [EMAIL PROTECTED]  2003-06-18 17:05 ---
I am attaching a patch that seems to fix it. I'm not sure
why though. Just reverting a previous change.

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



DO NOT REPLY [Bug 20868] - max external graphic height depends on region-body

2003-06-18 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20868.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20868

max external graphic height depends on region-body





--- Additional Comments From [EMAIL PROTECTED]  2003-06-18 17:05 ---
Created an attachment (id=6874)
Proposed patch

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



DO NOT REPLY [Bug 20879] - Leader is broken in PS Renderer

2003-06-18 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20879.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20879

Leader is broken in PS Renderer





--- Additional Comments From [EMAIL PROTECTED]  2003-06-18 17:06 ---
Created an attachment (id=6875)
Proposed patch

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



DO NOT REPLY [Bug 20868] - max external graphic height depends on region-body

2003-06-18 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20868.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20868

max external graphic height depends on region-body





--- Additional Comments From [EMAIL PROTECTED]  2003-06-18 17:07 ---
Oops, ignore attachment. Wrong bug.

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



[RTF] Jfor integration

2003-06-18 Thread Victor Mote
Bertrand et al:

I did a little work in RTFHandler yesterday (after reading the wiki 
related email messages on the topic), committing a change to implement
text-align for paragraphs, mostly just to get a feel for what is going on
there. I was using examples/fo/basic/normal.fo as my test document, so the
next thing I thought I would mess with was paragraph shading
(background-color). It looked like that was not implemented in the jfor
libs, so I was trying to set up my IDE to use the jfor source  watch it in
the debugger. Some of the source files contain non-ASCII characters (see
main/JForVersionInfo.java, line 67, for example), but are encoded as ASCII
(instead of UTF-8), so the IDE was choking. This is easy to fix, and I am
tempted to go ahead and drop the jfor source code into the FOP repository 
start hacking away. What do you think? The wiki made me think that maybe you
were wanting to keep your options open. I guess the other issues that raises
are 1) dropping in the Apache license (looks like no problem), and some
style issues. What are your thoughts on all of this?

Victor Mote


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



Re: [RTF] Jfor integration

2003-06-18 Thread Jeremias Maerki
+1 for working on JFOR integration.

If JFOR's sources should go into CVS, I think from the licensing point
of view, Bertrand will have to do the initial import of the sources. I
believe, this performs an implicit grant process because of his
committer license agreement.

Victor, I don't want to draw you away from the API stuff with my
earlier comments. I promise to come up with constructive thoughts within
the next few days. My brain is already working on it.

On 18.06.2003 19:09:01 Victor Mote wrote:
 I am
 tempted to go ahead and drop the jfor source code into the FOP repository 
 start hacking away. What do you think? The wiki made me think that maybe you
 were wanting to keep your options open. I guess the other issues that raises
 are 1) dropping in the Apache license (looks like no problem), and some
 style issues. What are your thoughts on all of this?


Jeremias Maerki


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



RE: [RTF] Jfor integration

2003-06-18 Thread Victor Mote
Jeremias Maerki wrote:

 +1 for working on JFOR integration.

 If JFOR's sources should go into CVS, I think from the licensing point
 of view, Bertrand will have to do the initial import of the sources. I
 believe, this performs an implicit grant process because of his
 committer license agreement.

It sure can't hurt. That sounds like a good idea.

 Victor, I don't want to draw you away from the API stuff with my
 earlier comments. I promise to come up with constructive thoughts within
 the next few days. My brain is already working on it.

Not at all -- I understand the process. I think we are probably after much
the same thing, just viewing it from different angles -- you from API, I
from control of the processing. I have a lot to learn on the multithreading
issues, but AFAIK, the two are completely compatible, and in fact
complementary. On the RTF stuff, it is rare that I can string enough time
together to do any coding, so I hate to waste it when it is there.

Victor Mote



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



Re: startup refactoring

2003-06-18 Thread Glen Mazza
--- Jeremias Maerki [EMAIL PROTECTED] wrote:
 
 On 17.06.2003 21:28:29 Glen Mazza wrote:
  Instinctively, I wouldn't trust any code in the
  package root of org.apache.fop -- we wouldn't have
 a
  very modularized design that way (knowing FOP's
  current coding style, the main FOP API would then
 be
  accessing objects all through the packages,
 
 Well, the public API has to have
 some way to control
 the whole show. 

You don't mean that literally--e.g.., a servlet
programmer does not need useThisRenderer() and
attachAreaTree() functions in a public API.  (i.e.,
the public (embedded) API would be a strict subset of
the functions available to the supervising octopus
running the show)

 This will automatically lead to a
 little octopus if the
 code is in ...fop or ...fop.api. But no problem with
 another package.
 

For my discussion, apps=api (they're both supervising
octopi).  (Although I'm sure your package would be
orders-of-magnitude cleaner and simpler!)

  FOP is more a pipeline to me:
  
  APPs package (CLI, TRAX/XSLTInputHandler,
 Avalonized
  API, Victor's ideas) -- 
 FOTreeBuilder/Layout/Area
  Tree creation -- Rendering.
 
 Uh, thanks for that one. It's a very nice show why
 the current apps
 package is a mess. 

I agree with you that the apps package is hideous--but
a pipeline may cleanup nearly all of it, providing it
enforces the rules I mentioned earlier:  

a.) The only access between apps/api and the rest of
the packages is via FOTreeBuilder and its three
functions.
b.) FOP is designed such that FOTreeBuilder *can* be
directly instantiated via a servlet (even if we don't
allow it).
c.) Once so instantiated, no code within apps/api
packages can be referenced.

Via these rules, look at what gets removed from apps:
(a) structure and layout handler are gone (those are
past the FOTreeBuilder)
(b) AWTStarter and PrintStarter are gone (those
processing decisions are either handled by
FOTreeBuilder or something that it delegates to.)
(c) App class has *no* knowledge of renderers, element
mappings, area trees, structure handlers.
(d) Business logic is kept with each object, and not
shared in multiple places.

  IMO FOTreeBuilder should just expose three
 functions
  (perhaps another one for logging):
 
 It's best to talk about
 lifestyle primarily and
 leave the lifecycle (instantiation, logging,
 configuration,
 initialization) to a different discussion. Helps
 keeping the focus, I
 believe.

Excellent!  We can leave that distraction out of the
discussion.  (Although they, in addition to threading
issues, *do* appear to strengthen your argument on the
need for a supervising class.)

  1.) SetXSLFOStream() (file or stream)
  2.) SetRenderType()  (those constants currently in
  Driver or CommandLineStarter)
  3.) Run(). (returns a stream or file)
 
 This mixes concerns. A render type does not belong
 in a class called
 FOTreeBuilder. 

I think it does, because it needs to know whether or
not to generate an Area Tree, *which type* of
structure handler, etc., also, since the Area Tree
needs to know the render type, FOTreeBuilder will need
to pass that information on to it via the pipeline. 
(Peter had said and you confirmed that the Area Tree
still needs to know the rendering type for font sizes,
etc.)

Furthermore a different implementation of
FOTreeBuilder may make different Area Tree decisions
based on its render_type.

 It should have nothing to
 do with the
 rendering aspect, especially since FO tree building
 is independant of
 the output format (wrt Renderers). 

Indeed, nothing to do with *rendering* but it does
need to know the render_type as mentioned above.
APPS/API knows nothing but FOTreeBuilder, which knows
nothing but AreaTree, which knows nothing but the
Renderers.

So I also agree with you that FOTreeBuilder doesn't
need to know about the Renderers.  (but it could be so
redesigned in the future, depending on the pluggable
implementation of FOTreeBuilder, and this design more
easily allows for that type of change.)


 The render type
 is better placed in a
 class such as a
 RenderingRun/Document/whatever-we-call-it.

Sure, providing they pass that information on to
FOTreeBuilder.  ;)

 The FO
 tree
 builder is (to me) a service that simply accepts a
 SAX stream and builds
 the FO tree. 

IMHO FOTreeBuilder is an object (C++/Java), not a
service (C).

 The layout engine, another (coarse
 grained) service, will
 then access the FO tree to do the layout. This is
 all kept together by a
 supervising class. 

If we were doing C programming--my fear is that the
supervising class is going to end up eating FOP's
object-oriented design and splitting the business
logic too much in multiple places (just like apps
currently does).  (I guess I'll just have to trust the
team to be disciplined in this regard!  ;)

 
 The FOTreeBuilder should remain an inner service to
 FOP, not exposed in
 the public API, if you ask me. 

OK, a *very* thin wrapper (for those not needing any
of the threading/logging 

Re: alt-design merits (WAS: Nomination of Glen Mazza as committer)

2003-06-18 Thread Peter B. West
Victor,

Trying to answer your latest questions on this topic has absorbed a deal 
of my time, exposed a contradiction in my thinking, and made me think 
through in more detail some of the fuzzy bits.  I am still working on 
it, and I will get back to you.  Thanks for the interrogation.

Peter
--
Peter B. West  http://www.powerup.com.au/~pbwest/resume.html
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]


Re: Eclipse Ant SerializeHyphPattern failure

2003-06-18 Thread Peter B. West
Jeremias,

I'll try it and commit if it works.
Peter
Jeremias Maerki wrote:
Hmm, I've given up running Ant under Eclipse. Gave me too much of a
headache and it works well for me outside of Eclipse.
But I think the trick is to use ${basedir} instead of . in build.xml
because Eclipse has to set the base directory so everything is ok. I
have done some other changes locally that I cannot commit, yet, because
I'm blocked on an issue. So I can't commit my build.xml. Can you do it,
please?
--
Peter B. West  http://www.powerup.com.au/~pbwest/resume.html
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]