[jsword-devel] Feature found
Joe Walker
joe at eireneh.com
Fri May 21 01:31:13 MST 2004
I was going to say - option 2, but on reflection a file can be modified
before it's arrival on your computer, so you're right and option 3 is
better.
Either solution would make me happy though.
I have a check-in to fix missing resources for the passage selection
pane, and an experiment to make getAction() assert or default in the
absence of said resources. Crosswire appears to be down, so I can't
check-in or even CVS diff, but my recollection is that in
common/swing/ActionFactory I changed createJLabel to:
/**
* Construct a JLabel from the Action.
* Only Action.NAME and Action.MNEMONIC_KEY are used.
* @param acronymn the internal name of the CWAction
* @return A label, asserting if missing resources or with default vals
*/
public JLabel createJLabel(String acronymn)
{
Action action = getAction(acronymn);
assert action != null : "Missing resource: "+acronymn;
JLabel label = new JLabel();
if (action != null)
{
label.setText(action.getValue(Action.NAME).toString());
Integer mnemonic=(Integer)action.getValue(Action.MNEMONIC_KEY);
if (mnemonic != null)
{
label.setDisplayedMnemonic(mnemonic.intValue());
}
}
else
{
label.setText(acronymn);
}
return label;
}
(slightly edited to stop wordwrap)
Does that make sense?
Joe.
DM Smith wrote:
> I found a "feature" which I am working on fixing.
>
> When the xsl is compiled for reuse, it works very well to check each
> time it is used to see if there is a change and recompile it when it
> does. The compilation is expensive so it is best for the user to compile
> it. And recompiling it when it changes allows a developer to bring up
> the application and test iterative changes to the xsl. It serves no
> advantage to a non-developer.
>
> The problem is when the xsl is in a jar the NetUtil.getLastModified
> returns the current time and the net result is that the xsl is compiled
> every time it is used.
>
> I see three possible solutions:
> 1) return 0 when the resource is in a jar. This is the simplest
> solution. The problem with this is that if there is any persistence of a
> n artifact based upon that timestamp, then it will not see any changes.
> 2) return the timestamp of the jar. So if there is persistence and the
> jar changes then it would force a recompile even if the xsl did not
> change. The basic thought is that the changes to the jar are going to be
> relatively infrequent and even recompiling the xsl once for each run of
> the application is not that big a deal.
> 3) return the timestamp on the file in the jar. This is a complete
> solution and matches the expectation of the method's contract.
>
> The form of the url that I am trying to work with is:
> jar:file:/a/b/c/jarname.jar!/x/y/filename.ext
>
> In this case I can pick off the file:.../jarname.jar and the
> .../filename.ext and use JarFile to get the JarEntry to interrogate.
>
> The problem is that the solution is still not completely generalized.
> What if the jar's file is served up via ftp or http. I don't know what
> that url would look like. Would it be something like:
> http:jar:file:.../jarname.jar!.../filename.ext.
>
> I am inclined to do nothing for this situation.
>
> On another note, I think Eclipse M9 is coming out later today. I have
> been using an integration build for the last week and it is better than M8.
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel
More information about the jsword-devel
mailing list