Apache Account Request: New FOP committer (Chris Bowditch)

2004-01-10 Thread Jeremias Maerki
Chris Bowditch has been voted in as new FOP committer. Please create a
new account for him.

+1: 6
+0: 0
-1: 0

Vote:
http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]by=threadfrom=572506

Full name:  Chris Bowditch
Preferred account name: cbowditch
eMail-address:  [EMAIL PROTECTED]

Karma: xml-fop, xml-site

The CLA should be on its way.

Thanks!
Jeremias Maerki



Apache Account Request: New FOP committer (Andreas L. Delmelle)

2004-01-10 Thread Jeremias Maerki
Andreas L. Delmelle has been voted in as new FOP committer. Please create a
new account for him.

+1: 5
+0: 0
-1: 0

(Note: There was a -1 that was later changed to a +1 with no -1s
remaining.)

Vote:
http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]by=threadfrom=572508

Full name:  Andreas L. Delmelle
Preferred account name: adelmelle (as andreas seems to be taken
already)
eMail-address:  [EMAIL PROTECTED]

Karma: xml-fop, xml-site

The CLA should be on its way.

Thanks!
Jeremias Maerki



Re: Chris and Andreas: New committers, send your CLAs

2004-01-10 Thread Jeremias Maerki
Account requests sent. The accounts will be activated as soon as the
CLAs arrive.

andreas seems to be taken as username so I took the second choice
(http://www.apache.org/~jim/committers.html).

Finn, Chris and Andreas, welcome aboard! I'm glad to see FOP getting
some speed again.

Jeremias Maerki



[Bug 25480] - Experimental performance improvements.

2004-01-10 Thread Finn Bock
[Glen in bugzilla]

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

I'm now looking at the changes to PropertySets.java (already applied) and 
PropertyList.java (only partly so) and have a few questions:

1.) For the new PropertyList constructor (in the patch), you appear to be 
duplicating the element ID argument, once as el, the other time 
as elementId--just to confirm, they are referring to the same thing (and 
hence one of them can be removed)?
Yes, it is a silly leftover from my own conversion process.



2.) In PropertySets.java (already applied), method makeSparseIndices, you 
define indices[0] as: 

indices[0] = (short) (set.cardinality() + 1);

Later, in PropertyList, you initialize the values array as follows:

this.values = new Property[indices[0]];

I think we can then just use set.cardinality() in makeSparseIndices(), 
correct?  (i.e., leave out the +1).
No, the + 1 is a deliberate trick to handle unknown properties which
should return a null value during lookup(). The other part of the trick
is the
   int j = 1;

in makeSpareIndices() which ensure that all the unknown properties in a
indices array all have a value of '0' and all known properties has a
value  0. For an element fo:bar which support 2 properties foo=21 and
baz=137, the indices array has the values
   indices[21] = 1
   indices[137] = 2
and all other values are 0. The PropertyList.values array then look
like this:
   values[0] = null // always null.
   values[1] = reference to a 'foo' Property instance
   values[2] = reference to a 'baz' Property instance
In the performance sensitive PropertyList.lookup(), the code doesn't
have to test for properties that are unknown by fo:bar
   return values[indices[propertyName]];

because all unknown properties map to the values[0] index which always
have a null value.
--

3.) PropertySets.java defines those properties which are valid for each FO--in 
PropertyList, the proposed implementation then uses that information to limit 
the properties that can be assigned to an FObj (i.e., only those defined as 
valid for it.)  Am I correct here on this point?
And it includes the properties that are valid for all the children element of
each FO. That is what the large while loop does when it calls mergeContent.
It keeps pulling the childrens properties into the parent and repeats doing
it for all the FOs until no more properties can be pulled (yes, there has
to be a better way of doing that).
... and do we also need to somehow additionally qualify *those* 
properties as valid for the FO but not directly relevant for it?
I don't think so, and the patch doesn't do it. ProperttySets only return
the set of properties that are valid for a FO.


4.)  Finally, I'm too far removed from my C programming days to understand the 
math here:

In the PropertyList constructor, you code this:

   this.specified = new int[(indices[0]  5) + 1];  

(where indices[0] defines the number of properties valid for the FObj)

Why the bitshifting 5 to the right?  What does this accomplish--what is this 
shorthand for?
The 32 bits that is stored in a int. See below.

also, in putSpecified(int idx, Property value), you code this:

   specified[i  5] |= 1  (i  31);

I'm not clear what this is doing either.  What does putSpecified() do, and 
what's the point of the i  31 and the Or'ing?  
PropertList.specified is just a bitmap of the same size as values.length.
All the shifting and masking is similar to what is done in
java.util.BitSet, inlined in PropertyList for performance.
putSpecified() insert a property in the array and set the specified bit to
true. This is in contrast to the inherit() method which also inserts a
property in the array but doesn't set the specified bit. The other put()
method isn't used anymore.
I also think that inlining the bitset implementation is going to far,
but it does make a performance difference, so I included it in the patch.
[Andreas L. Delmelle]

 IIC the initial strategy WRT inherited properties was to add methods to the
 FObj's to get these from their parent. I think the problem with this
 implementation is that, in the case of very large documents with deeply
 nested elements that inherit a property which is specified at the top-level,
 you would end up with one getter being dispatched to the parent's getter,
 and this in its turn being dispatched to yet another ancestor's getter (or
 Makers in case of Property creation)... In this case, however, I think you
 can't fully 'push' these onto the descendants, as this would lead to absurd
 storage-reqs for quite average-sized documents.

 OTOH, the inherited property value (resolved or unresolved) can indeed be
 supposed as available at parse time, because a parent is per se processed
 *before* any of its children.
Absolutely correct, and I'm not at all sure that we should go to an array
based storage of the properties in PropertyList, as I did in the patch.
Using 

DO NOT REPLY [Bug 25480] - [PATCH] Experimental performance improvements.

2004-01-10 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=25480.
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=25480

[PATCH] Experimental performance improvements.





--- Additional Comments From [EMAIL PROTECTED]  2004-01-10 13:45 ---
Further comments and discussions here:

  http://marc.theaimsgroup.com/?l=fop-devm=107369978306013w=2
  http://marc.theaimsgroup.com/?l=fop-devm=107374163230526w=2


Re: multi page-sequence don't work for (XML+XSL) to PDF on the fly

2004-01-10 Thread Clóvis Wichoski


Hi,

Can't you use multiple page-sequences instead of just creating one sequence
'interrupted' by the 'ctrlPage' template?
 

but How?
this template is more difficult since it is used in with a more 
complicated XML like groupproduct/.../group..., the way that I 
sent is for brevety to discover because ctrlPage don't work, for groups 
I need print a header, followed by products, etc..., in original XSL i 
use xalan extensions to count how many lines I used PDF.

A few remarks to help you on your way:
1. I can't seem to find the reason why you are placing the whole
fo:static-content  into a separate template, since it is ... well, static
and it doesn't rely on the elements in the XML (unless something is
missing).
 

because, I reduced the code for brevety, then the static-content is for 
groups case. sorry

2. In the ctrlPage template, you are testing for a position(): you could
also use XPath to select these, like
xsl:apply-templates select=product[(position() mod 3) = 0]

Then inside the product template, use

xsl:for-each select=preceding::product[position()  3] /

to grab the two preceding product nodes.
 

but for-each select don't put Xalan in DOM process? consumes more 
memory? however I can't use position because the original XML is more 
complex. (I use xalan extensions to control this). like this xsl:if 
test=counter:read('ctLine') mod 3/xsl:if

3. Check our http://xml.apache.org/fop/resources.html page, among the books
and articles, there's a link to Dave Pawson's XSLT FAQ. Over there, you'll
find a lot of useful stuff (amongst others on grouping which I think you'll
find particularly helpful), so I'll bet you can work out a redesign which
affects only the XSL itself and leaves the other files alone.
If you really can't get any further, try posting your problem on Mulberry's
XSLT list. Warning: it's a quite high-traffic list, but the upside is that
the tips are 'highly-usable' ;)
Hope this helps!

Cheers,

Andreas

 

Thanks for tips

Clovis



cvs commit: xml-fop fop.bat

2004-01-10 Thread pbwest
pbwest  2004/01/10 08:33:03

  Added:   .Tag: FOP_0-20-0_Alt-Design fop.bat
  Log:
  Adding execution support for WIndows from HEAD
  
  Revision  ChangesPath
  No   revision
  No   revision
  1.3.2.2   +19 -1 xml-fop/fop.bat
  
  
  
  

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



cvs commit: xml-fop/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc RtfFootnote.java RtfTextrun.java

2004-01-10 Thread pherweg
pherweg 2004/01/10 11:43:58

  Modified:src/java/org/apache/fop/fo FOInputHandler.java
FOTreeHandler.java
   src/java/org/apache/fop/render/mif MIFHandler.java
   src/java/org/apache/fop/render/rtf RTFHandler.java
   src/java/org/apache/fop/fo/flow Footnote.java
FootnoteBody.java
   src/java/org/apache/fop/render/rtf/rtflib/rtfdoc
RtfTextrun.java
  Added:   src/java/org/apache/fop/render/rtf/rtflib/rtfdoc
RtfFootnote.java
  Log:
  added support for fo:footnote
  
  Revision  ChangesPath
  1.13  +24 -3 xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java
  
  Index: FOInputHandler.java
  ===
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- FOInputHandler.java   1 Jan 2004 21:19:55 -   1.12
  +++ FOInputHandler.java   10 Jan 2004 19:43:58 -  1.13
  @@ -58,6 +58,8 @@
   import org.apache.fop.fo.flow.BasicLink;
   import org.apache.fop.fo.flow.Block;
   import org.apache.fop.fo.flow.ExternalGraphic;
  +import org.apache.fop.fo.flow.Footnote;
  +import org.apache.fop.fo.flow.FootnoteBody;
   import org.apache.fop.fo.flow.Inline;
   import org.apache.fop.fo.flow.InstreamForeignObject;
   import org.apache.fop.fo.flow.Leader;
  @@ -365,9 +367,28 @@
   public abstract void foreignObject(InstreamForeignObject ifo);
   
   /**
  - * Process a footnote.
  + * Process the start of a footnote.
  + * @param footnote Footnote that is starting
*/
  -public abstract void footnote();
  +public abstract void startFootnote(Footnote footnote);
  +
  +/**
  + * Process the ending of a footnote.
  + * @param footnote Footnote that is ending
  + */
  +public abstract void endFootnote(Footnote footnote);
  +
  +/**
  + * Process the start of a footnote body.
  + * @param body FootnoteBody that is starting
  + */
  +public abstract void startFootnoteBody(FootnoteBody body);
  +
  +/**
  + * Process the ending of a footnote body.
  + * @param body FootnoteBody that is ending
  + */
  +public abstract void endFootnoteBody(FootnoteBody body);
   
   /**
* Process a Leader.
  
  
  
  1.12  +24 -4 xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java
  
  Index: FOTreeHandler.java
  ===
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- FOTreeHandler.java1 Jan 2004 21:19:55 -   1.11
  +++ FOTreeHandler.java10 Jan 2004 19:43:58 -  1.12
  @@ -62,6 +62,8 @@
   import org.apache.fop.fo.flow.BasicLink;
   import org.apache.fop.fo.flow.Block;
   import org.apache.fop.fo.flow.ExternalGraphic;
  +import org.apache.fop.fo.flow.Footnote;
  +import org.apache.fop.fo.flow.FootnoteBody;
   import org.apache.fop.fo.flow.InstreamForeignObject;
   import org.apache.fop.fo.flow.Inline;
   import org.apache.fop.fo.flow.Leader;
  @@ -446,11 +448,29 @@
   }
   
   /**
  - * @see org.apache.fop.fo.FOInputHandler#footnote()
  + * @see org.apache.fop.fo.FOInputHandler#startFootnote()
*/
  -public void footnote() {
  +public void startFootnote(Footnote footnote) {
   }
  -
  +
  +/**
  + * @see org.apache.fop.fo.FOInputHandler#endFootnote()
  + */
  +public void endFootnote(Footnote footnote) {
  +}
  +
  +/**
  + * @see org.apache.fop.fo.FOInputHandler#startFootnoteBody()
  + */
  +public void startFootnoteBody(FootnoteBody body) {
  +}
  +
  +/**
  + * @see org.apache.fop.fo.FOInputHandler#endFootnoteBody()
  + */
  +public void endFootnoteBody(FootnoteBody body) {
  +}
  +
   /**
* @see org.apache.fop.fo.FOInputHandler#leader(Leader)
*/
  
  
  
  1.4   +24 -4 xml-fop/src/java/org/apache/fop/render/mif/MIFHandler.java
  
  Index: MIFHandler.java
  ===
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/mif/MIFHandler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MIFHandler.java   1 Jan 2004 21:19:55 -   1.3
  +++ MIFHandler.java   10 Jan 2004 19:43:58 -  1.4
  @@ -60,6 +60,8 @@
   import org.apache.fop.fo.flow.BasicLink;
   import org.apache.fop.fo.flow.Block;
   import org.apache.fop.fo.flow.ExternalGraphic;
  +import org.apache.fop.fo.flow.Footnote;
  +import org.apache.fop.fo.flow.FootnoteBody;
   import org.apache.fop.fo.flow.InstreamForeignObject;
   import org.apache.fop.fo.flow.Inline;
   

cvs commit: xml-fop/src/java/org/apache/fop/fo Property.java PropertySets.java

2004-01-10 Thread gmazza
gmazza  2004/01/10 12:40:07

  Modified:src/codegen properties.xsl
   src/java/org/apache/fop/datatypes
ToBeImplementedProperty.java
   src/java/org/apache/fop/fo Property.java PropertySets.java
  Log:
  switch from Property.getPropName() to Property.getPropId(); comments added to
  PropertySets.java to clarify makeSparseIndices() method.
  
  Revision  ChangesPath
  1.31  +2 -2  xml-fop/src/codegen/properties.xsl
  
  Index: properties.xsl
  ===
  RCS file: /home/cvs/xml-fop/src/codegen/properties.xsl,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- properties.xsl9 Jan 2004 03:05:55 -   1.30
  +++ properties.xsl10 Jan 2004 20:40:07 -  1.31
  @@ -883,7 +883,7 @@
   xsl:value-of select=key('shorthandref', $shprop)/datatype-parser/
   xsl:text(listprop);
  p = shparser.getValueForProperty(
  -getPropName(), this, propertyList);
  +getPropId(), this, propertyList);
   }
   }/xsl:text
 /xsl:for-each
  
  
  
  1.5   +1 -1  
xml-fop/src/java/org/apache/fop/datatypes/ToBeImplementedProperty.java
  
  Index: ToBeImplementedProperty.java
  ===
  RCS file: 
/home/cvs/xml-fop/src/java/org/apache/fop/datatypes/ToBeImplementedProperty.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ToBeImplementedProperty.java  26 Dec 2003 23:41:47 -  1.4
  +++ ToBeImplementedProperty.java  10 Jan 2004 20:40:07 -  1.5
  @@ -69,7 +69,7 @@
   }
   
   ToBeImplementedProperty val =
  -new ToBeImplementedProperty(getPropName());
  +new ToBeImplementedProperty(getPropId());
   return val;
   }
   }
  
  
  
  1.15  +1 -1  xml-fop/src/java/org/apache/fop/fo/Property.java
  
  Index: Property.java
  ===
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/Property.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- Property.java 9 Jan 2004 22:32:27 -   1.14
  +++ Property.java 10 Jan 2004 20:40:07 -  1.15
  @@ -81,7 +81,7 @@
   /**
* @return the name of the property for this Maker
*/
  -protected int getPropName() {
  +protected int getPropId() {
   return propId;
   }
   
  
  
  
  1.3   +18 -4 xml-fop/src/java/org/apache/fop/fo/PropertySets.java
  
  Index: PropertySets.java
  ===
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertySets.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PropertySets.java 22 Dec 2003 23:23:05 -  1.2
  +++ PropertySets.java 10 Jan 2004 20:40:07 -  1.3
  @@ -1267,13 +1267,27 @@
   
   }
   
  +   /*  These arrays, one for each formatting object, define the properties that
  +*  are valid for an FO and its children.  The first element, indices[0], 
  +*  will be used in PropertyList to define the size of the Property[] array
  +*  for the FObj (= the number of properties valid for the element + 1.)  
  +*  Each other element of this array has a value of 0 if not supported by the FO,
  +*  1-based index otherwise.  This array will be used as a pointer to the 
Property[]
  +*  array in PropertyList holding the valid properties for the FO.
  +*  i.e., fo.propList.values[indices[propId]] will refer to the correct Property
  +*  element if the property is valid for the FO, values[indices[invalPropId]] =
  +*  values[0] = NULL otherwise.
  +*/
   private static short[] makeSparseIndices(BitSet set) {
  -short[] indices = new short[Constants.PROPERTY_COUNT];
  +short[] indices = new short[Constants.PROPERTY_COUNT +1];
  +
   indices[0] = (short) (set.cardinality() + 1);
  -int j = 1;
  +
  +int propIndex = 1;
   for (int i = set.nextSetBit(0); i = 0; i = set.nextSetBit(i+1)) {
  -indices[i] = (short) j++;
  +indices[i] = (short) propIndex++;
   }
  +
   return indices;
   }
   
  
  
  

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



Compile error in HEAD

2004-01-10 Thread Simon Pepping
Hi,

The code that I checked out this evening from CVS HEAD generates
compile errors, for example,

[javac] 
/fsd/source/xml-fop/build/gensrc/org/apache/fop/fo/properties/BorderBottomStyleMaker.java:21:
 cannot resolve symbol
[javac] symbol  : variable PR_BORDER_AFTER_STYLE 
[javac] location: interface org.apache.fop.fo.properties.Constants
[javac] p= 
propertyList.getExplicitOrShorthand(propertyList.wmMap(Constants.PR_BORDER_AFTER_STYLE,
 Constants.PR_BORDER_AFTER_STYLE, Constants.PR_BORDER_END_STYLE));
[javac]
 ^

The cause is that the import section is not sufficient:

package org.apache.fop.fo.properties;
  
import org.apache.fop.fo.*;
import org.apache.fop.apps.FOPException;

With these import statements the compiler applies interface
org.apache.fop.fo.properties.Constants instead of interface
org.apache.fop.fo.Constants. An explicit statement

import org.apache.fop.fo.Constants;

should be added. I did it as follows:

--- properties.xsl.~1.30.~  Sat Jan 10 20:02:04 2004
+++ properties.xsl  Sat Jan 10 21:53:43 2004
@@ -329,7 +329,8 @@
 import org.apache.fop.datatypes.*;/xsl:text
   /xsl:if
   xsl:text
-import org.apache.fop.fo.*;/xsl:text
+import org.apache.fop.fo.*;
+import org.apache.fop.fo.Constants;/xsl:text
   xsl:if test=not(
 (./datatype and ./datatype[. ='List'])
 or ./class-name[.='GenericCondPadding']
@@ -338,10 +339,6 @@
 xsl:text
 import org.apache.fop.apps.FOPException;/xsl:text
   /xsl:if
-  xsl:if test=.//enumeration and @type='generic'
-xsl:text
-import org.apache.fop.fo.Constants;/xsl:text
-/xsl:if
   xsl:text
 
 public class /xsl:text

The old code applies a precise test for the inclusion of the import
statement. My change includes the import statement in all property
makers. Not sure what a more precise test would look like, and if
there can be any.

Regards, Simon

-- 
Simon Pepping
email: [EMAIL PROTECTED]
home page: http://www.leverkruid.nl
public key: http://www.leverkruid.nl/personal/sp.asc
fingerprint: E3BF 7295 9AA8 8B8A C01A  219D FAAC 088C 6B28 F549



Re: [Bug 25480] - Experimental performance improvements.

2004-01-10 Thread Glen Mazza
--- Finn Bock [EMAIL PROTECTED] wrote:
  1.) For the new PropertyList constructor (in the
 patch), you appear to be 
  duplicating the element ID argument, once as el,
 the other time 
  as elementId--just to confirm, they are
 referring to the same thing (and 
  hence one of them can be removed)?
 
 Yes, it is a silly leftover from my own conversion
 process.
 

OK--BTW, what's your opinion on switching to FO
Constants at this time?  They probably will not give
us the rate of return that property constants have;
but there may be future indexing or processing
advantages with them.  I'm not strong one way or the
other on them.

One issue your brought up in the email below, was that
of extension elements needing their own ID's
dynamically:  

http://marc.theaimsgroup.com/?l=fop-devm=107182754300725w=2

Your solution in your email does not look difficult to
implement, but as a simplification, how about just
implementing getElementId() within FONode to query an
new ID if its value is unintialized, say, -1, and to
store that value with the FONode, *instead of* having
each Extension FO's implement that query  store
function themselves?  

  
 
 No, the + 1 is a deliberate trick to handle unknown
 properties which
 should return a null value during lookup().

snip/

Excellent--thanks for your full explanation--I
understand it now, and have added comments to
PropertySets.java to make it clearer for others who
may also have questions.


  --
  
 And it includes the properties that are valid for
 all the children element of
 each FO. That is what the large while loop does when
 it calls mergeContent.

OK--but to satisfy the spec, we probably need to add a
static boolean array for the properties, defining
true/false of whether each property is inheritable. 


Because one can attach an inheritable property to any
FO, regardless of whether or not it is relevant for it
or its children, we don't want to report an error if
the user chooses to do so--we can query this static
array to determine that we should just ignore the
property instead.  I can probably help out with
this--but I'll wait until later when 25873 is
settled--we may end up having this information created
anyway by then.

 , I've concluded that it would also be good design
 decision and I plan
 on updating patch 25873 to show that the
 Property.Maker can become
 simpler and easier to understand as well as faster.
 

Looking forward to seeing it--I haven't had much time
to look at 25873 yet.  One possible way I see of 
simplifying the makers would be for them to no longer
be a nested inner class of Property, but either part
of the Property class itself or part of its own class.


BTW, when you have write access available, let me know
when you'd like me to step back, I'll happily retreat
back to the renderers and let you take over the
properties at your much faster rate of speed.

Thanks,
Glen


__
Do you Yahoo!?
Yahoo! Hotjobs: Enter the Signing Bonus Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus


Re: Compile error in HEAD

2004-01-10 Thread Glen Mazza
--- Simon Pepping [EMAIL PROTECTED] wrote:
 
 The cause is that the import section is not
 sufficient:
 
 package org.apache.fop.fo.properties;
   
 import org.apache.fop.fo.*;
 import org.apache.fop.apps.FOPException;
 
 With these import statements the compiler applies
 interface
 org.apache.fop.fo.properties.Constants instead of
 interface
 org.apache.fop.fo.Constants. 

Simon,

I can't duplicate the problem on my machine but I
think I see the issue:  there is *no* more
org.apache.fop.fo.properties.Constants interface
anymore, it's been gone for a month or so.  I think
you just need to clear it out (delete the file), and
make sure you have the newest build.xml--it is the
script that formerly created that properties.Constants
interface (but doesn't anymore).

What I do before a full build is delete the BUILD
directory, then type ant--this forces everything to
be created from scratch.

Another note:  cvs update -dPC will overwrite and
replace your work (actually, moves them to other
files), but should remove unneeded files and also get
you in sync with HEAD completely.


 An explicit statement
 
 import org.apache.fop.fo.Constants;
 
 should be added. I did it as follows:
 

Yes, but the Eclipse warnings of unneeded imports
drives Peter West and a few others crazy.  If the
above does not work, our only other solution would be
a fully qualified import statement.

Thanks always!

Glen


__
Do you Yahoo!?
Yahoo! Hotjobs: Enter the Signing Bonus Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus


Re: Compile error in HEAD

2004-01-10 Thread Glen Mazza
--- Glen Mazza [EMAIL PROTECTED] wrote:
 
 Yes, but the Eclipse warnings of unneeded imports
 drives Peter West and a few others crazy.  If the
 above does not work, our only other solution would
 be
 a fully qualified import statement.
 

oops...I mean fully qualifying the Constants
variables.

Glen

__
Do you Yahoo!?
Yahoo! Hotjobs: Enter the Signing Bonus Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus


Re: [Bug 25480] - Experimental performance improvements.

2004-01-10 Thread Finn Bock
[Glen Mazza]

... what's your opinion on switching to FO
Constants at this time?  They probably will not give
us the rate of return that property constants have;
but there may be future indexing or processing
advantages with them.  I'm not strong one way or the
other on them.
Since then, you have removed the unused support for elementTable,
which was the only place a FO constanst id was used. So I would
delay the implementation of FO ids until that future arrives.
http://marc.theaimsgroup.com/?l=fop-devm=107182754300725w=2

Your solution in your email does not look difficult to
implement, but as a simplification, how about just
implementing getElementId() within FONode to query an
new ID if its value is unintialized, say, -1, and to
store that value with the FONode, *instead of* having
each Extension FO's implement that query  store
function themselves?  
That would also work, but the beauty of having each extension FO
do the work is that it saves the size of an int (4 bytes) for each
instance of a FONode. In my mail, the extension stores the id value
in a static vrbl so it doesn't weight down every FONode object.
And it includes the properties that are valid for
all the children element of
each FO. That is what the large while loop does when
it calls mergeContent.


OK--but to satisfy the spec, we probably need to add a
static boolean array for the properties, defining
true/false of whether each property is inheritable. 
Right, my patch stores that array in PropertyListBuilder.inherit.

Because one can attach an inheritable property to any
FO, regardless of whether or not it is relevant for it
or its children, we don't want to report an error if
the user chooses to do so--we can query this static
array to determine that we should just ignore the
property instead.
A good point, my patch just reports an error when a property is
specified that isn't relevant for the FO or any of its children.
regards,
finn