草庐IT

php - 将遗留应用程序移动到 Symfony2 : How to execute native php scripts in a controller?

我有一个遗留应用程序,我想将其移至Symfony2。这个应用程序不是用MVC构建的,它没有PSR-0兼容性,它在很大程度上是一个遗留应用程序,因为“/search.php”指向文件“search.php”并且包含菜单、页眉和页脚不同的文件共享。如果我能以某种方式将这个应用程序快速而肮脏地插入到Symfony2中,然后开始将它的一部分一次一个地移动到Symfony2应用程序架构中,那将是理想的。我真的不想做一些瀑布式的尝试来移植整个东西,然后在3-6个月内做一些大规模的更新。任何人都可以推荐一种方法来执行nativephp脚本,该脚本将在Symfony2Controller中包含诸如my

java - 学习旧版Java系统

我的任务是维护和重构旧版Java系统。尽管我对Java熟悉,但我目前正在使用C#和.NET。遗留系统使用RMI(一种客户端/服务器体系结构),并且是针对1.4JVM设计的。它用于UI(据我所知),Swing和AWT。我的问题是:与我刚接触过的代码库达成共识的最佳方法是什么?我在考虑屏幕流程图,定义RMI调用之间的边界,并编写单元测试(针对可测试的位)。当您遇到不熟悉的代码库时,您会如何处理?谢谢!-贾罗德 最佳答案 我要处理的任何新代码的第一件事是查看现有的单元测试。编写新测试通常是第二件事。

java - 方法取决于不存在的组 - Testng

我正在尝试创建两个测试,其中一个依赖于另一个的执行。我正在处理的项目充满了遗留代码,因此我试图使应用程序的主要部分可测试。第一个测试基本上会尝试创建一些到数据库的连接并设置一些静态变量。然后Test2将使用连接和变量插入一些数据。我宁愿不再做Test1在Test2中做的事情。我已经让Test2依赖于test1,这样如果Test1失败,Test2就不会执行。但如果Test2失败,我希望它能够重新运行。当我在IntellijIDEA中尝试这个时,我得到以下信息:java.lang.Throwable:Methoda.stack.Test2.failingTest()dependsonnon

java - 如何使用 OSGI 打包和使用现有的 Java 库

在寻求帮助管理Java中相同库的不同版本的依赖关系后,有人建议我应该看一下OSGI实现。在截止日期的压力下,我真的可以使用一些帮助来避免我挖掘无休止的OSGI文档。我有一个正在运行的应用程序,它将使用一个新框架。该框架使用了我已经在使用的不同版本的jar,因此我想将新框架打包为OSGI包。我可以让我的应用程序保持原样,只将OSGI包用作JVM中的容器吗?这意味着我将仅使用OSGIbundle将一组类与JVM的其余部分隔离开来,以避免不同版本的类之间发生冲突。换句话说,我想使用OSGI而无需将我的所有代码都带到基于OSGI的设置中。亲切的问候塞夫 最佳答案

java - 包装 slf4j API

我想使用Logback将slf4j改造为遗留应用程序。好消息是,遗留应用程序有自己的日志框架。所以我所要做的就是更改日志记录框架以记录到slf4j而不是log4j。一切如梦如幻。我很高兴,直到我注意到Logback为每个日志事件记录的位置:Logger.java:...哎呀!当我试图找出日志事件的来源时,这对我的开发人员同事们没有多大帮助。我如何告诉Logback在堆栈中向上查找几层以获取要记录的实际位置?logger类是一个实用类,具有如下方法:publicstaticvoiddebug(Stringclazz,Stringmessage){org.slf4j.Loggerlogge

java - "Cosmetic"清理旧的未知代码。哪些步骤,哪些顺序?侵入性如何?

当我收到以前从未见过的代码以将其重构为正常状态时,我通常会修复“装饰性”的东西(比如将StringTokenizers转换为String#split(),用更新的集合替换1.2之前的集合,使字段final,将C风格的数组转换为Java风格的数组,...)同时阅读我必须熟悉的源代码。是否有很多人使用这种策略(也许这是某种我不知道的“最佳实践”?),或者这被认为太危险了,如果不是绝对必要,通常首选不接触旧代码?还是将“化妆品清理”步骤与更具侵入性的“一般重构”步骤结合起来更常见?在进行“整容清理”(相对于具有更多侵入性更改的重构)时,常见的“唾手可得的果实”是什么?

java - 使用类加载器隔离静态单例类

免责声明:鉴于此问题,这可能不是最佳解决方案,但我很好奇如何实现此实现。问题我正在尝试处理一些具有如下定义的单例的遗留代码:publicclassLegacySingleton{privatestaticBooleanvalue;publicstaticvoidsetup(booleanv){if(value!=null){thrownewRuntimeException("AlreadySetup");}value=v;System.out.println("Setupcomplete");}publicstaticvoidteardown(){value=null;System.o

java - 在源代码不可用的情况下实现访问者模式

考虑Visitor_pattern的原因之一:Apracticalresultofthisseparationistheabilitytoaddnewoperationstoexistingobjectstructureswithoutmodifyingthosestructures.假设您没有第三方库的源代码,并且您在相关对象上添加了一个操作。由于您没有对象,因此无法修改您的元素(第三方类)以添加访客。在这种情况下,双重分派(dispatch)是不可能的。那么通常首选哪个选项?选项1:在第三方类之上再扩展一个继承层次结构并实现如图所示的双重分派(dispatch)模式?对于扩展A类的

java - com.sun.net.ssl.internal.ssl.Provider() 的旧版 Java 代码使用

我正在使用2003年的一些代码。有对以下类的引用:newcom.sun.net.ssl.internal.ssl.Provider()它导致了一个错误:访问限制:由于所需库/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib/jsse.jar的限制,无法访问类型Provider有没有人对使用此类的合适替代方案有任何建议? 最佳答案 扔掉那行代码。同时丢弃对com.sun.net.ssl包及其子包的任何引用:修复导入,以便它们引用javax.net.ssl.

java - 删除或注释掉不工作的 JUnit 测试?

我目前正在为遗留应用程序构建CI构建脚本。有零星的JUnit测试可用,我将把所有测试的JUnit执行集成到CI构建中。但是,我想知道如何处理我在非维护的JUnit测试中遇到的100次失败。我是否:1)将它们注释掉,因为它们看起来具有合理的(如果未维护的话)业务逻辑,希望有人最终取消注释并修复它们2)删除它们,因为不太可能有人修复它们,注释掉的代码只会被忽略或永远困惑3)追踪那些把这个烂摊子留在我手上的人,并用代码的打印输出敲打他们的脑袋(由于长方法的气味将足以完成任务),同时宣扬一个维护良好且经过单元测试的代码库 最佳答案 如果您使