git://wamblee.org
/
utils
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Id is now a string.
[utils]
/
support
/
general
/
src
/
main
/
java
/
org
/
wamblee
/
xml
/
ClasspathUriResolver.java
diff --git
a/support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java
b/support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java
index 6ee7389e4014256d03c67acaa1a7d260e4971f7a..cad0cb2f388fb3ddab48b81545f6621b229eb8df 100644
(file)
--- a/
support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java
+++ b/
support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java
@@
-1,5
+1,5
@@
/*
/*
- * Copyright 2005-201
0
the original author or authors.
+ * Copyright 2005-201
1
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-33,12
+33,23
@@
import javax.xml.transform.stream.StreamSource;
* URI resolver that resolves stylesheets through the classpath.
*/
public class ClasspathUriResolver implements URIResolver, LSResourceResolver {
* URI resolver that resolves stylesheets through the classpath.
*/
public class ClasspathUriResolver implements URIResolver, LSResourceResolver {
+
+ private String base;
+
/**
* Constructs the resolver.
*
*/
public ClasspathUriResolver() {
/**
* Constructs the resolver.
*
*/
public ClasspathUriResolver() {
- // Empty.
+ base = null;
+ }
+
+ /**
+ * Location in the classpath relative to which resolution takes place.
+ * @param aBase Base.
+ */
+ public ClasspathUriResolver(String aBase) {
+ base = aBase;
}
/*
}
/*
@@
-49,7
+60,8
@@
public class ClasspathUriResolver implements URIResolver, LSResourceResolver {
*/
public Source resolve(String aHref, String aBase)
throws TransformerException {
*/
public Source resolve(String aHref, String aBase)
throws TransformerException {
- InputResource xslt = new ClassPathResource(aHref);
+
+ InputResource xslt = resolveImpl(aHref);
try {
return new StreamSource(xslt.getInputStream());
try {
return new StreamSource(xslt.getInputStream());
@@
-60,12
+72,20
@@
public class ClasspathUriResolver implements URIResolver, LSResourceResolver {
}
}
}
}
+ private InputResource resolveImpl(String aHref) {
+ String systemId = aHref;
+ if ( base != null ) {
+ systemId = base + "/" + aHref;
+ }
+ InputResource xslt = new ClassPathResource(systemId);
+ return xslt;
+ }
+
@Override
public LSInput resolveResource(String aType, String aNamespaceURI,
String aPublicId, String aSystemId, String aBaseURI) {
try {
@Override
public LSInput resolveResource(String aType, String aNamespaceURI,
String aPublicId, String aSystemId, String aBaseURI) {
try {
- InputStream xslt = new ClassPathResource(aSystemId)
- .getInputStream();
+ InputStream xslt = resolveImpl(aSystemId).getInputStream();
DOMImplementationLS impl = DomUtils.getDomImplementationLS();
LSInput input = impl.createLSInput();
input.setPublicId(aPublicId);
DOMImplementationLS impl = DomUtils.getDomImplementationLS();
LSInput input = impl.createLSInput();
input.setPublicId(aPublicId);