小编lis*_*sak的帖子

mysql转储到derby中

我在eclipse中使用derby进行开发.是否可以从MySQL转储表并以某种方式将其用于德比?我知道ddl和dml对于两个dbms都是不同的,但我正在寻找一种合适的方法,而不是转储/导出.

mysql dump derby

5
推荐指数
1
解决办法
3056
查看次数

用例图 - 条件或决策节点

伙计们如何在用例图中制作条件?像活动图中的决策节点.

例如,如果存在可以导致Y或N的"评估"用例,则根本无法表达它.只有约束功能会导致重复{if evaluated} {if evaluated} ......

uml use-case

5
推荐指数
1
解决办法
3768
查看次数

如何使@BeforeClass运行之前Spring TestContext加载?

它应该是程序员使用testNG的小菜一碟.我有这种情况

    @ContextConfiguration(locations={"customer-form-portlet.xml", "classpath:META-INF2/base-spring.xml" })
    public class BaseTestCase extends AbstractTestNGSpringContextTests {

...
        @BeforeClass
        public void setUpClass() throws Exception {
Run Code Online (Sandbox Code Playgroud)

但是我需要在@BeforeClass之后加载spring上下文.我想出了重写AbstractTestNGSpringContextTests方法:

@BeforeClass(alwaysRun = true)
protected void springTestContextBeforeTestClass() throws Exception {
    this.testContextManager.beforeTestClass();
}

@BeforeClass(alwaysRun = true, dependsOnMethods = "springTestContextBeforeTestClass")
protected void springTestContextPrepareTestInstance() throws Exception {
    this.testContextManager.prepareTestInstance(this);
}
Run Code Online (Sandbox Code Playgroud)

并制作我的方法

@BeforeClass(alwaysRun = true, dependsOnMethods = "setUpClass")
protected void springTestContextPrepareTestClass() throws Exception {
}
Run Code Online (Sandbox Code Playgroud)

但后来我得到:

引起:org.testng.TestNGException:org.springframework.test.context.testng.AbstractTestNGSpringContextTests.springTestContextPrepareTestInstance()不允许依赖受保护的void org.springframework.test.context.testng.AbstractTestNGSpringContextTests.springTestContextBeforeTestClass()抛出java. lang.Exception

公开也没有帮助.可以请任何人在这里提到它是否可以以一种工作方式完成:-)我知道我可以手动加载testContext,但这不会那么花哨.

它的工作方式与此类似,但TestContextManager不可见,因此我无法对其调用prepareTestInstance()方法:

@Override
@BeforeClass(alwaysRun = true, dependsOnMethods = "setUpClass")
public void springTestContextPrepareTestInstance() throws Exception {
}
Run Code Online (Sandbox Code Playgroud)

java junit testng spring spring-test

5
推荐指数
1
解决办法
2842
查看次数

为特定包设置java Logger

任何人都可以向我解释一下如何从具体包中为各种类设置java Logger?

例如:如果我得到这个并设置它

Logger logger = Logger.getLogger("com.google.api.client.*");
        logger.setLevel(Level.CONFIG);
        logger.addHandler(new Handler() {

            @Override
            public void close() throws SecurityException {
            }

            @Override
            public void flush() {
            }

            @Override
            public void publish(LogRecord record) {
                // default ConsoleHandler will take care of >= INFO
                if (record.getLevel().intValue() < Level.INFO.intValue()) {
                    System.out.println(record.getMessage());
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

有这样的条件

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);

在图书馆,在那里HttpTransport是的一部分com.google.api.client.*

但问题是,那个

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG); 
Run Code Online (Sandbox Code Playgroud)

false...就像是获得了不同的记录器一样

我应该如何为同一个包中的所有类设置它?如果有像HttpTransport这样的具体类的记录器的条件.

java logging java.util.logging

5
推荐指数
1
解决办法
2855
查看次数

为什么不在Apache的Abdera框架之上构建google api客户端库?

首先,我要感谢Google GData API工程师的出色工作,我想提一下这个问题并不是要批评任何事情.它只是指出了事情.

有人可以向我解释一下吗?据我所知,java的谷歌api客户端库的开发人员正在重新发明轮子.这就像为Java项目编写一个新的JDK,因为abdera客户端执行google api客户端库所做的事情,abdera服务器功能和适配器也可用于许多事情,例如入口持久性和许多其他事情.

我知道google数据协议是一个特定的原子发布,但如果需要使用Apache Abdera项目为此协议提供的一些花哨的扩展和功能,最好不要使用google api客户端库并且从头开始用Abdera实现客户端...而且我敢肯定,在很多情况下,它的功能,如Abdera的JCR适配器将变得非常方便谷歌文档,谷歌翻译工具包,实际上对大多数其他人.

现在很高兴有一个谷歌api客户端库用于谷歌文档,但我将如何处理文档和原子Feed响应?我相信在一半以上的案例中,另一方面也有一个存储库或数据库.在这种情况下,需要abdera,而不是简单的google api客户端,它们只是编组/解组订阅源...

事实上,所有的谷歌API都有一些东西要坚持下去.如果google决定将努力投入到Abdera增强或集成中,那将是有道理的......这不是......特别是考虑到软件开发中一个众所周知的事实,第二个版本通常是从头开始重写.Apache Abdera是一个成熟的项目,有5年的存在,被大量的应用程序使用.

如果有原因,我没有看到并实现使用pull解析器的客户端只是非常必要,我至少会使用一个不被弃用的xml pull解析器.Xmlpull.org已有6年历史,但尚未启用,甚至没有实现StAX api.stax.codehaus.org参考实现,JRE默认stax实现,Apache Axiom实现以及主要woodstox.codehaus.org实现会更好,为什么要避免规范和活动项目的支持和社区?

我向google api客户端java库的开发人员致歉,但我真的很喜欢google apis,但是使用这个客户端的第一个版本真的很痛苦,目前的版本很不错.但实际上浪费了很多时间主要是因为重新发明轮子以及从版本0到gdata-java-client到google-api-client-java的那些极端的版本间更改.

最后,谷歌在人们投入时间和金钱后限制API,所以为什么要关心,对吧?:-)

我收回了我所说的内容,从那时起软件和协议发生了很大变化......现在当GData支持JSON时,使用它甚至没有意义!

java atompub google-data-api apache-abdera

5
推荐指数
1
解决办法
622
查看次数

是否有BeanShell的替代品?像Java的javascript或groovy控制台?

我想知道是否有某种shell只能监听用户输入(使用行缓冲区)并在main方法内部运行,包括类路径上的jdk.因此它在浏览器或groovy控制台中看起来像JavaScript控制台.它可以方便地测试代码片段.

可以把它写入shell并点击返回:

Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
    System.out.format("%s=%s%n", envName, env.get(envName));
}
Run Code Online (Sandbox Code Playgroud)

这就是bsh.Interpreter可以做的事情.但我发现它很难使用.我不能用光标在shell线上向后/向左移动...... ^ [[D ^ [[D ^ [[D ....我只能删除最后一个字符.不确定它是否是特定于操作系统的(我在Linux上),但它非常不方便......

我的意思是Java语言,而不是Jruby,Jython或Groovy

java shell beanshell

5
推荐指数
1
解决办法
1749
查看次数

如何在PageObjects模式中使用WebDriver/Selenium 2 LoadComponents?

我很难习惯WebDriver PageObject模式.请分享您使用PageObjects模式和loadableComponents的经验和方法.

由于PageObject通常代表一个组件或一部分功能,我起初想到我应该使用它来实际执行load()中的一些事情,看看它是否在isLoaded()中做了它应该做的事情.

然后我意识到它应该仅用于"加载"对象(可能是初始化),就像在网站中移动一样,每个对象都有自己的URL.并使用isLoaded()来测试对象是否为READY进行测试.

但是如果你有一个复杂的JavaScript命令提交者进行测试,那就是JS文件上传器的复合,JS表单基于2个独立的部分而且有三种Orders,你不会移动到任何地方(关于URL),只是元素状态正在发生变化.

考虑get()方法.您将使用交互式表单进入该页面.当表单存在于页面上时加载它.然后你有form1和form2对象......他们的load()和isLoaded()方法应该是什么样的,他们可以立即采取行动,因为他们不需要任何加载,只需测试他们的服务.

这是一个烂摊子,人们不知道isLoaded()方法是否用于检查是否加载了对象,或者是否加载了对象并且设置正确.但我想前一种方法是正确的,并且应该在测试中确保设置它的有效性.

场景:

Testing first part of html form - test that field client side validation works
Testing the second one that depends on the first one
Testing the following file uploader - upload, canceling, clearing, order, fileIDs
Testing the overall html form submission - ServerSide validation errors, results
Run Code Online (Sandbox Code Playgroud)

文件说:

  • LoadableComponent
  • PageObjects

    1. 公共方法表示页面提供的服务

      验证,上传,上传多个,取消,清除

    2. 尽量不要暴露页面的内部

      我唯一想到的就是将Driver实例隐藏到UnitTests并使用Only PageObjects来保存所有字段名,在PageObjects中的css类名+提供带有输入数据的PageObjects并断言服务/功能的布尔结果

    3. 方法返回其他PageObjects

      这是最难以习惯的事情.对于一个交互式表单有4个页面对象有点不自然.他们推荐Form1,Form2(Form1),Upload(Form2),Submit(Upload),虽然我发现链接并将前一个对象的引用非常混乱.在测试方法中对所有这些调用get()似乎更好.但我想它背后的想法不是将驱动程序实例暴露给测试,而只使用内部使用驱动程序实例的PageObjects

    4. 对于同一个动作的不同结果被建模为不同的方法 我认为这意味着不应该在Page对象侧决定该动作的有效性,而是在Test侧

java design-patterns webdriver pageobjects selenium-webdriver

5
推荐指数
1
解决办法
3626
查看次数

关于依赖关系共享的Maven多模块项目组成

有几个类似的问题,但没有这样的.你如何处理这种情况(典型情况):

一个由8-11个子项目组成的项目,具有父工件/项目和一个主要项目,主要使用/声明其他项目作为模块.

问题是所有项目"严格"只共享公共依赖项,如testng, logging, apache commons and stuff.但总是喜欢其中3个使用50-60%相同的特定deps(apache-chemistry,jackrabbit,abdera等),另外2-3个也使用50-60%相同但不同的依赖.而主要的使用了很多相同的deps.

我不能将这些"非严格"共享deps放入父项目中以供其他人继承.所以只有常见的deps才会被继承.并且有大量重复的依赖项.我只能通过管理他们的版本<dependencyManagement>.

另一个选择是父pom包含大多数依赖项,但子项目甚至继承了它们不需要的项.

我可以拥有多个父项目,但感觉不对.父项目的继承也可能是噩梦,因为如果你没有正确地记录/评论父pom定义你不知道项目需要什么依赖项.

另一种方法是创建仅作为依赖容器的pom工件 - 它们声明特定的依赖关系组,以便模块只声明那些以获得传递依赖关系.但是,嘿,你想部署和提交某种

OneDepArtifact声明 jackrabit, abdera, chemistry

AnotherDepArtifact声明 htmlcleaner, google-api, tika

ThirdDepArtifact声明 spring, httpclient, selenium

这是一个巨大的混乱,我不确定我<dependencyManagement>是否正确使用它,它似乎只对管理依赖版本有用.

我正在考虑将我的应用程序开发改编为"maven multimodule design".但是如果你想创建spring服务/ bean,只使用各种库,在一个模块中,你不在不同的模块中实现它们,只是因为它们使用其他模块也使用的库:-)

java inheritance dependencies maven-3 multi-module

5
推荐指数
1
解决办法
3405
查看次数

Jackrabbit用户管理

我几乎找不到任何关于如何为多个用户设计和构建存储库的文档.

我是Jackrabbit的新手,我总是使用一个主用户凭证来构建一个只有一个主用户访问的存储库.

现在我需要一个由成千上万的用户共享的存储库,每个用户都可以使用他的节点,并且没有其他用户的权限.

SimpleAccessManager非常简单:

public boolean isGranted(ItemId id, int permissions) throws RepositoryException {
    checkInitialized();
    if (system) {
        // system has always all permissions
        return true;
    } else if (anonymous) {
        // anonymous is always denied WRITE & REMOVE permissions
        if ((permissions & WRITE) == WRITE
                || (permissions & REMOVE) == REMOVE) {
            return false;
        }
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

看起来无法使用SimpleLoginModule和SimpleAccessManager创建这样的多用户存储库.因为它只区分ADMIN和匿名用户,它们可以读取所有内容但无法写入...

所以必须使用DefaultAccessManager,也许这样做:

Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray())); 

UserManager um = ((JackrabbitSession) session).getUserManager(); 
User user = um.createUser("john", "doe"); 

/*   And assign …
Run Code Online (Sandbox Code Playgroud)

java user-management jackrabbit jcr

5
推荐指数
1
解决办法
5282
查看次数

将各种类型的文档(ods,ms office,pdf)保存到Jackrabbit存储库中

我不确定选择哪种方法来存储这些类型的文档,因为关键要求是尽可能多地收集元数据,pdf,ods和MS office文档有各种类型的元数据 ......

因此,如果节点树具有"组/用户/类别/文档"或"类别/组/用户/文档"结构(我不确定哪个更好),则每个文档都必须具有属性"键入"如果它是pdf/doc/odt/ppt等,我每次都要测试它,知道它有哪些元数据类型,对吧?在我看来非常无效..

java metadata jackrabbit jcr

4
推荐指数
1
解决办法
2178
查看次数