On 08.05.2004 23:04:40 Simon Pepping wrote: > I am trying to enable user configuration of the directory of > hyphenation files, like in the maintenance code. Configuration of the > renderers is easy, because they are instantiated in Fop.main(). But > hyphenation is done deep down in the process, where any reference to > the start-up objects is lost. How can I configure it? > > If I am correct, in the maintenance code the user configuration could > be accessed by a static method, anywhere in the process, just like a > log file in commons logging. I suppose that is not the preferred > way of accessing configuration in HEAD?
Indeed. Logging is a special case where static lookup is in order. For the other cases lookup via references is preferred (IMO). > This is the stack frame: > > [1] org.apache.fop.layout.hyphenation.Hyphenator.getHyphenationTree > (Hyphenator.java:67) > [2] org.apache.fop.layout.hyphenation.Hyphenator.hyphenate (Hyphenator.java:232) > [3] org.apache.fop.layoutmgr.LineLayoutManager.getHyphenContext > (LineLayoutManager.java:479) > [4] org.apache.fop.layoutmgr.LineLayoutManager.getNextBreakPoss > (LineLayoutManager.java:228) > [5] org.apache.fop.layoutmgr.BlockLayoutManager.getNextBreakPoss > (BlockLayoutManager.java:204) > [6] org.apache.fop.layoutmgr.FlowLayoutManager.getNextBreakPoss > (FlowLayoutManager.java:79) > [7] org.apache.fop.layoutmgr.PageLayoutManager.getNextBreakPoss > (PageLayoutManager.java:229) > [8] org.apache.fop.layoutmgr.PageLayoutManager.doLayout > (PageLayoutManager.java:194) > > The first two frames are in static context. The LMs share a reference > to a user agent object, of type > layoutmgr.AbstractLayoutManager.userAgent. Would this be the right > object to hold a reference to the user configuration? On first thought, yes. But I feel the scope of the FOUserAgent is still somewhat undefined. Maybe we need to finally settle this issue. Until this is done I consider it safe to hold the user configuration in there. We can change that easily later. Jeremias Maerki