[jdom-interest] How to specify a basedir from the Transformer
Ken Roberts
ken at 9ci.com
Wed Dec 29 16:28:56 PST 2004
On Wed, 2004-12-29 at 18:08, Per Norrman wrote:
> Ken Roberts wrote:
> > On Wed, 2004-12-29 at 17:27, Per Norrman wrote:
> >
> >>/Ken Roberts wrote:
> >>> Passing in a system property to a JVM is done by specifying
> >>> -Dvariable=value, no spaces on the command line.
> >>>
> >>> Doing this inside JBoss means editing your run.bat file or your run.sh
> >>> file, or (if redhat) the jboss_init_redhat.sh file.
> >>>
> >><irony>
> >> Thank you very much for that timely and accurate piece of information.
> >></irony>
> >>
> >>Serioulsy, next time, please read the entire thread before jumping in ...
> >>
> >>/pmn/
> >>
> >
> > Per,
> >
> > Sorry if my solution seems old-school, but I had read the entire thread.
> >
> > You answered the direct question of telling that the underlying
> > transformer has no such setting. I tried to answer the next question by
> > indirection.
>
> Aha, so you *anticipated* that the next question would be "Now that I have the
> URIResolver, and knowing that this specific URIResolver uses a system property
> to resolve relative urls, what can I possibly to do get that darn system
> property set?", and answered that question before it was posed.
>
> If that's the case, your'e too quick for the rest of us.
No, I went down the other path from the one you suggested, which is to
set a system property based on an environment variable. I did it to
offer a different solution to the same problem, since a URIResolver
didn't exactly fit the needs I had when I implemented my solution.
> There are all sorts of ways to define a base directory,
> > and the one I have used in the past is what I described because it fit
> > more easily with our needs. Your solution would take 10 minutes
>
> Actually, I said 10 *lines* of code.
As opposed to:
File myBaseDir = new File(System.getProperty("mybasedir"));
> Let's not continue this off-topic thread ...
Sure. We can stop as soon as you stop flaming me. I have in no way
earned this treatment, and as a matter of fact I have a few months to
spend on this if you like. Sarcasm and bitterness has no place on a
forum such as this. We're not in a contest to see who's the brightest
programmer, we're offering solutions to problems that people might have.
Whether my solution was in style or not, it did satisfy a certain
category of business needs. Generally it's considered a good idea to
look at multiple solutions before making a design decision, and you
offered one solution. I offered another.
> > code, you said, and mine took maybe 5. Which is correct depends a lot
> > on your application needs.
> >
> > The interesting bit is that your solution and mine would both be placed
> > in just about the same place in whatever code one would write. Since it
> > can't be done (by your statement) internally to the XSL parser, it would
> > have to be done in the wrapping code, no matter what the solution.
> >
> > Passing an environment variable is quaint and maybe not very elegant,
> > but it does work. I shared it because the original poster asked
> > specifically about passing system properties. Since the JVM used to
> > pass the environment of the operating system in but no longer does, I
> > thought my contribution was pertinent.
> >
> >>/> On Wed, 2004-12-29 at 16:38, Per Norrman wrote:
> >>>
> >>>>/Patrick JUSSEAU wrote:
> >>>>> Hi,
> >>>>>
> >>>>> So there is no way to pass in a system property to set this up?
> >>>>>
> >>>>Not that I'm aware of, no.
> >>>>
> >>>>> I guess the other solution would be to put all the files I need in the
> >>>>> same directory but I would rather have the option to set the base dir
> >>>>> of the external file that is referenced from the document() method.
> >>>>
> >>>>But that is exactly what you would/could do with an URIResolver. It is less
> >>>>that 10 lines of code to have a URIResolver resolve a relative url using a
> >>>>system property as the base uri.
> >>>>
> >>>>/pmn
> >>>>
> >>>>
> >>>>>
> >>>>> Patrick
> >>>>>
> >>>>> On 29 Dec 2004, at 19:51, Per Norrman wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I believe you can use the Transformer#setURIResolver method.
> >>>>>>
> >>>>>> /pmn
> >>>>>>
> >>>>>>
> >>>>>> patrick at openbase.com wrote:
> >>>>>>
> >>>>>>> Hi,
> >>>>>>> I am using JDOM to perform an XSL transformation. The problem I have
> >>>>>>> is that my XSL Document refers to an external file using the
> >>>>>>> document(URL) method. I don't want to use an absolute URL. What I
> >>>>>>> would like to do is tell JDOM (the Transformer) what the basedir is
> >>>>>>> (/Users/aUser) so that in my XSL file I could use:
> >>>>>>> ...
> >>>>>>> <xsl:variable name="lookupParam" select="document('aFile.xml')"/>
> >>>>>>> ...
> >>>>>>> and aFile.xml would abvioulsy be in /Users/aUser
> >>>>>>> Here is the code I am using
> >>>>>>> Document p_sourceDocument = ....
> >>>>>>> Document p_xslDocument = ....
> >>>>>>> // Create a JDOMSource from the source JDOM Document
> >>>>>>> JDOMSource source = new JDOMSource(p_sourceDocument);
> >>>>>>> // Create a JDOMSource from the source XSL Document
> >>>>>>> JDOMSource xslSource = new JDOMSource(p_xslDocument);
> >>>>>>> // Get a XSLT Transformer
> >>>>>>> Transformer transformer =
> >>>>>>> getTransformerFactory().newTransformer(xslSource);
> >>>>>>> // Create a JDOMResult
> >>>>>>> JDOMResult result = new JDOMResult();
> >>>>>>> // Populate the Result
> >>>>>>> transformer.transform(source, result);
> >>>>>>> I guess there must be some way to tell the underlying Transformer
> >>>>>>> what the basedir is?
> >>>>>>> Thanks,
> >>>>>>> Patrick
> >>>>>>> _______________________________________________
> >>>>>>> To control your jdom-interest membership:
> >>>>>>> //_//_http://www.jdom.org/mailman/options/jdom-interest/__ youraddr at yourhost.com
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> To control your jdom-interest membership:
> >>>>>> __http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com__
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>_______________________________________________
> >>>>To control your jdom-interest membership:
> >>>>__http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com__
> >>>>/
> >>>>
> >>/
> >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20041229/769f595e/attachment.htm
More information about the jdom-interest
mailing list