good catch, there is indeed a design flaw that's being revealed.

The point is that I use two sinks in the fo module, the 'normal' FoSink, and the FoAggregateSink. The latter is used to transform a set of input files into only one target file, as required by a pdf plugin. For this to work, you need certain meta information that is not found in the single source files, eg to construct the TOC, the cover page, the 'rendering context', etc. The AggregateSink uses the DocumentModel of the docrenderer to represent this information. That's the only reason it depends on docrenderer, it doesn't (and shouldn't) need all the interface stuff.

I think there are two possible solutions:

-) move the FoAggregateSink into docrenderer, eg o.a.m.d.docrenderer.fo

-) factor out the DocumentModel from docrenderer and put it eg into doxia-core, or a separate project? It's only that part that should be part of doxia, not the whole docrenderer.

I don't like the first one as it limits the possibilities of the fo module (and any other module btw) to be used stand-alone. It would also imply that we limit the core modules to only handle single-document translations. OTOH, it's what Vincent has already effectively done with the itext module (even though he doesn't use a separate sink but merges the generated itext files by hand).

Note that the xhtml module uses its own RenderingContext to approach this same kind of problem, but this is not scalable, and it's not clear to me how to use it eg to generate one single html file from a set of input files. We need a separate document model that can be used by any doxia module.

As I said in the vote thread, I am going to re-write the doc-renderer anyway as it's currently not general enough (judging from my first experiences with the pdf plugin).

Let me know what you think.

-Lukas


Dennis Lundberg wrote:
This brings in a circular dependency between doxia and doxia-tools.

Below we have doxia:doxia-module-fo depending on doxia-sitetools:doxia-doc-renderer (with the wrong version here as well, it should be doxiaSitetoolsVersion not doxiaVersion) which in turn depends on doxia:core and company.

Is this an indication that doc-renderer should really be in doxia instead of in doxia-sitetools?

[EMAIL PROTECTED] wrote:

Author: ltheussl
Date: Mon Sep 24 05:27:45 2007
New Revision: 578786

URL: http://svn.apache.org/viewvc?rev=578786&view=rev
Log:
Adjust to new environment

Modified:
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/pom.xml

Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/pom.xml
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/pom.xml?rev=578786&r1=578785&r2=578786&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/pom.xml (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/pom.xml Mon Sep 24 05:27:45 2007
@@ -21,17 +21,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd";>
   <parent>
-    <artifactId>doxia</artifactId>
+    <artifactId>doxia-modules</artifactId>
     <groupId>org.apache.maven.doxia</groupId>
     <version>1.0-beta-1-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>doxia-module-fo</artifactId>
   <name>Doxia :: FO Module</name>
-
-  <properties>
-    <doxiaVersion>1.0-beta-1-SNAPSHOT</doxiaVersion>
-  </properties>
+ <description>A Doxia module for FO (Formatting Objects) source documents.</description> <developers>
     <developer>
@@ -48,18 +45,8 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
-      <artifactId>doxia-core</artifactId>
-      <version>${doxiaVersion}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.doxia</groupId>
-      <artifactId>doxia-sink-api</artifactId>
-      <version>${doxiaVersion}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-doc-renderer</artifactId>
-      <version>${doxiaVersion}</version>
+      <version>${projectVersion}</version>
     </dependency>
     <dependency>
       <groupId>commons-configuration</groupId>
@@ -70,20 +57,6 @@
       <groupId>org.apache.xmlgraphics</groupId>
       <artifactId>fop</artifactId>
       <version>0.93</version>
-    </dependency>
-    <!-- test dependencies -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.doxia</groupId>
-      <artifactId>doxia-core</artifactId>
-      <version>${doxiaVersion}</version>
-      <classifier>tests</classifier>
-      <scope>test</scope>
     </dependency>
   </dependencies>
   <build>





Reply via email to