pet*_*ust 6 java open-source subclass maven
我正在使用一个大型开源库,需要生成一些类的个人子类.什么是最好的策略?我想保持原始库不变,并且在更新时可以轻松地重新配置.我的代码不太可能值得为该项目做出贡献(尽管我很乐意以允许这样做的方式编写代码).
这个问题很普遍,但我会用我的例子来说明.我正在使用Apache PDFBox,它有一个例程可以写入java.awt.Graphics2D.我用Apache Batik工具包替换了它,它提供了Graphics2D(org.apache.batik.svggen.SVGGraphics2D)的子类,因此我可以捕获SVG表示.我创建了一个实例
public static org.apache.batik.svggen.SVGGraphics2D createSVG() {
org.w3c.dom.DOMImplementation domImpl =
org.apache.batik.dom.GenericDOMImplementation.getDOMImplementation();
org.w3c.dom.Document document =
domImpl.createDocument("http://www.w3.org/2000/svg", "svg", null);
return new org.apache.batik.svggen.SVGGraphics2D(document);
}
Run Code Online (Sandbox Code Playgroud)
PDFBox使用图形的地方是org.apache.pdfbox.PDFReader我编辑的以允许新图形的地方:
protected void showPage(int pageNumber)
{
try
{
PageDrawer drawer = new PageDrawer();
PageWrapper wrapper = new PageWrapper( this );
PDPage page = (PDPage)pages.get(pageNumber);
wrapper.displayPage( page );
PDRectangle cropBox = page.findCropBox();
Dimension drawDimension = cropBox.createDimension();
svg = PDFPagePanel.createSVG(); // MY EDIT!!!!!!!!!
drawer.drawPage( svg, page, drawDimension );
writeSVG(pageNumber);
}
catch (IOException exception)
{
exception.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我有它工作(这不是问题).我担心的是,我不得不破解/编辑和重新编译许多分布式PDFBox类,只是为了生成和使用子类.我最终在与库相同的包中使用PMRPDFReader等类.它非常混乱 - 我无法立即记住我在哪里进行了编辑等.
我觉得我应该能够按原样使用库,只需添加/链接我的子类.我使用maven所以也许有一种方法可以排除原来的类.
我将这样做:
对于部署,您有两种选择:
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |