Quellcode durchsuchen

Added events to the implementation of the catalog command-line option


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@829532 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_0
Simon Pepping vor 14 Jahren
Ursprung
Commit
af822593a3

+ 5
- 1
src/java/org/apache/fop/cli/CommandLineOptions.java Datei anzeigen

@@ -1025,7 +1025,11 @@ public class CommandLineOptions {
case IF_INPUT:
return new IFInputHandler(iffile);
case XSLT_INPUT:
return new InputHandler(xmlfile, xsltfile, xsltParams, useCatalogResolver);
InputHandler handler = new InputHandler(xmlfile, xsltfile, xsltParams);
if (useCatalogResolver) {
handler.createCatalogResolver(foUserAgent);
}
return handler;
case IMAGE_INPUT:
return new ImageInputHandler(imagefile, xsltfile, xsltParams);
default:

+ 9
- 21
src/java/org/apache/fop/cli/InputHandler.java Datei anzeigen

@@ -51,6 +51,7 @@ import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.events.ResourceEventProducer;
import org.apache.fop.render.awt.viewer.Renderable;

/**
@@ -64,8 +65,8 @@ public class InputHandler implements ErrorListener, Renderable {
protected File sourcefile;
private File stylesheet; // for XML/XSLT usage
private Vector xsltParams; // for XML/XSLT usage
private EntityResolver entityResolver;
private URIResolver uriResolver;
private EntityResolver entityResolver = null;
private URIResolver uriResolver = null;

/** the logger */
protected Log log = LogFactory.getLog(InputHandler.class);
@@ -84,23 +85,6 @@ public class InputHandler implements ErrorListener, Renderable {
xsltParams = params;
}

/**
* Constructor for XML->XSLT->FO input
*
* @param xmlfile XML file
* @param xsltfile XSLT file
* @param params Vector of command-line parameters (name, value,
* name, value, ...) for XSL stylesheet, null if none
* @param useCatalogResolver if true, use a catalog resolver
* for XML parsing and XSLT URI resolution
*/
public InputHandler(File xmlfile, File xsltfile, Vector params, boolean useCatalogResolver) {
this(xmlfile, xsltfile, params);
if (useCatalogResolver) {
createCatalogResolver();
}
}

/**
* Constructor for FO input
* @param fofile the file to read the FO document.
@@ -213,10 +197,12 @@ public class InputHandler implements ErrorListener, Renderable {
* Tries the Apache Commons Resolver, and if unsuccessful,
* tries the same built into Java 6.
*/
private void createCatalogResolver() {
public void createCatalogResolver(FOUserAgent userAgent) {
String[] classNames = new String[] {
"org.apache.xml.resolver.tools.CatalogResolver",
"com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver"};
ResourceEventProducer eventProducer =
ResourceEventProducer.Provider.get(userAgent.getEventBroadcaster());
Class resolverClass = null;
for (int i = 0; i < classNames.length && resolverClass == null; ++i) {
try {
@@ -226,7 +212,7 @@ public class InputHandler implements ErrorListener, Renderable {
}
}
if (resolverClass == null) {
log.error("Could not find catalog resolver in class path");
eventProducer.catalogResolverNotFound(this);
return;
}
try {
@@ -234,8 +220,10 @@ public class InputHandler implements ErrorListener, Renderable {
uriResolver = (URIResolver) resolverClass.newInstance();
} catch (InstantiationException e) {
log.error("Error creating the catalog resolver: " + e.getMessage());
eventProducer.catalogResolverNotCreated(this, e.getMessage());
} catch (IllegalAccessException e) {
log.error("Error creating the catalog resolver: " + e.getMessage());
eventProducer.catalogResolverNotCreated(this, e.getMessage());
}
}


+ 2
- 0
src/java/org/apache/fop/events/EventFormatter.xml Datei anzeigen

@@ -79,6 +79,8 @@ Any reference to it will be considered a reference to the first occurrence in th
<message key="org.apache.fop.events.ResourceEventProducer.foreignXMLNoHandler">Some XML content will be ignored. No handler defined for XML with namespace "{namespaceURI}".</message>
<message key="org.apache.fop.events.ResourceEventProducer.imageWritingError">Error while writing an image to the target file.[ Reason: {e}]</message>
<message key="org.apache.fop.events.ResourceEventProducer.cannotDeleteTempFile">Temporary file could not be deleted: {tempFile}</message>
<message key="org.apache.fop.events.ResourceEventProducer.catalogResolverNotFound">Catalog resolver not found along the classpath</message>
<message key="org.apache.fop.events.ResourceEventProducer.catalogResolverNotCreated">Error creating the catalog resolver: {message}</message>
<message key="org.apache.fop.layoutmgr.inline.InlineLevelEventProducer.leaderWithoutContent">fo:leader is set to "use-content" but has no content.{{locator}}</message>
<message key="org.apache.fop.layoutmgr.inline.InlineLevelEventProducer.lineOverflows">Line {line} of a paragraph overflows the available area by {overflowLength,choice,50000#{overflowLength} millipoints|50000&lt;more than 50 points}.{{locator}}</message>
<message key="org.apache.fop.layoutmgr.BlockLevelEventProducer.rowTooTall">The contents of table-row {row} are taller than they should be (there is a block-progression-dimension or height constraint on the indicated row). Due to its contents the row grows to {effCellBPD} millipoints, but the row shouldn't get any taller than {maxCellBPD} millipoints.{{locator}}</message>

+ 14
- 0
src/java/org/apache/fop/events/ResourceEventProducer.java Datei anzeigen

@@ -133,4 +133,18 @@ public interface ResourceEventProducer extends EventProducer {
*/
void cannotDeleteTempFile(Object source, File tempFile);

/**
* Catalog Resolver not found along the class path
* @param source the event source
* @event.severity ERROR
*/
void catalogResolverNotFound(Object source);

/**
* Catalog Resolver not created, due to InstantiationException or IllegalAccessException
* @param source the event source
* @param message the exception message
* @event.severity ERROR
*/
void catalogResolverNotCreated(Object source, String message);
}

Laden…
Abbrechen
Speichern