小编Jay*_*667的帖子

Redmine:多次复制问题

复制一个问题及其子问题是一个本机内置功能,因此工作得很好.

但有多种方法可以多次这样做?就像重新创造一个问题(包括它的孩子)二十或五十次?

编辑2

这个新功能应该可以通过Redmine界面访问,并兼容任何浏览器.

它是一个全新的插件,内置复制功能的扩展,对一个PHP-script或其他任何东西的调用并不重要.由于兼容性(网络,浏览器等),我想完全服务器端修改是唯一的方法.

必须更改默认插件的哪些部分(在投票教程中创建)或核心元素?

我在哪里可以找到本机问题复制功能的代码?

或者 - 如果所有这些都太复杂 - 我如何编写我的插件指向直接PHP操作SQL数据库的文件?

编辑:

澄清:就像正常的复制功能(在上下文菜单或右上角的链接中,我不在乎)我想复制一个问题及其子问题n次.要让用户设置金额n,任何用户编号输入都可以,例如文本框,弹出窗口等.

ruby sql ruby-on-rails redmine

29
推荐指数
1
解决办法
1602
查看次数

如何在VBA中实现自定义可迭代类

我想为我的类添加一个功能,所以我可以在for-each循环中使用它们.

我写了一些我要迭代的哈希映射,arraylists,队列,集等等.现在我正在寻找一种方法来实现IUnknown类来构建自定义迭代器.

我已经知道如何使用了

private objPeople as Collection
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
    Set NewEnum = objPeople.[_NewEnum]
End Property
Run Code Online (Sandbox Code Playgroud)

但那里的所有例子都基于Collection类,我不想使用它.

我想要关注的是尝试实现IUnknown接口,但我没有找到任何关于如何做到这一点的参考.

我在Java,C++,C#等方面有丰富的经验,所以我认为即使在VBA中也可以实现这一点,甚至可以使用API​​调用这样的东西.

excel foreach vba class iunknown

8
推荐指数
2
解决办法
5605
查看次数

如何使JavaCompiler.CompilationTask使用自定义ClassLoader或使用.class文件来安装missin .java文件?

更加有趣:我写了自己的ClassLoader,加载

  1. .jar 来自全局库路径的文件
  2. .jar 项目特定路径中的文件
  3. .java在项目特定路径中编译文件
  4. 加载.class项目特定路径中的所有文件

到目前为止,这将我的项目实例分开,从所有(子)目录加载一切正常,适用于(1)所有库和(2)子库,(3)可以编译所有.java文件,(4)可以加载.class文件,以及我也可以重新安装已经加载的类,因为我的ClassLoader管理子ClassLoader允许这样做.

现在,我想改善的是,在(3)当我打电话,编译器,我并不想重新编译每一个.java目录中的文件,但只有那些,其中相应的.class文件不存在或有错误的时间戳.

所以我只传递那些.java需要重新编译的文件,而不是全部,结果是编译器无法找到所有需要的类(在那些.java我没有通过他编译的文件中).相反,编译器应从已加载这些文件的ClassLoader中获取其缺少的编译信息(.class文件的文件instad .java).class.

为了实现这一点,我实现了自己的FileManager,我传递给了JavaCompiler.getTask().在该自定义中FileManager,我将返回我的ClassLoader FileManager.getClassLoader().

应该是这样的:

  1. .jar 来自全局库路径的文件
  2. .jar 项目特定路径中的文件
  3. 仅编译.java项目特定路径中的某些文件,从.class文件中加载缺少的类定义(由我的特定加载ClassLoader)
  4. 加载.class项目特定路径中的所有文件

但是JavaCompiler.CompilationTask运行时,它永远不会访问我的ClassLoader .loadClass().findClass()方法,因此找不到必要的.class文件,因此"抛出"了编译错误.(即我获得诊断,并将它们转换为异常)

所以,我的实际问题是:

  • 我的概念坏了吗?
  • 有可能吗?或者编译器无法使用.class文件而不是.java …

java runtime compilation class

6
推荐指数
1
解决办法
330
查看次数

如何在GlassFish中为自动传送的文件设置Content-Type?

将.war文件部署到GlassFish Server(当前为4.1)时,GF服务器会自动从该WEB-INF/文件夹中传送文件.(除非我通过指定Servlet覆盖它们的地址,即.)

实际上,当将.war文件部署到GF服务器时,它会将这些文件提取WEB-INF/{gf-home}/glassfish/domains/domain1/applications/{app-name}.然后它在访问时传递它们http://{hostname}:8080/{app-name}/{path}.

现在,当访问.json文件时,服务器不会发送HTTP Content-Type: application/json标头.这导致页面无法正确加载,FireFox控制台显示XML Parsing Error: not well-formed异常,即使文件内容完全相同.所以我的猜测是它缺少Content-Type标签.

如何更改app/project本身的mime-mapping?

从我到目前为止看到的页面,可以在{gf-home}/glassfish/domains/domain1/default-web.xml文件中重新定义此行为,定义mime-mapping.但假设我无法访问该文件,只能上传.war文件.有什么解决方案吗?是否有可能将default-web.xml某个地方打包到.war文件中?

我现在能想到的另一个解决方案是用servlet覆盖特定的.json文件的地址,并Content-Type在Java中添加头.但我不确定是否有一种在运行时访问和读取.json文件的万无一失的方法,但是没有将它们移动到Java源代码中的任何地方,而是将它们留在WEB-INF /文件夹中?有什么建议?

servlets glassfish mime-types

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

JPA创建@ManyToMany表名不是通过'type_type'而是通过'type_varname'

假设我们有两个(或更多)类,其中一个是@ManyToMany-引用其他类:(为了简化,我在这里省略了很多注释)

@Entity
class Newspaper {
    @Id long                    id;
    @ManyToMany Set<Author>     authors     = new HashSet<>();
    @ManyToMany Set<Article>    oldArticles = new HashSet<>();
    @ManyToMany Set<Article>    newArticles = new HashSet<>();
}

@Entity
class Article {
    @Id long id;
}

@Entity
class Author {
    @Id long id;
}
Run Code Online (Sandbox Code Playgroud)

现在默认情况下,JPA 将创建两个表:

Newspaper_Author
Newspaper_Article
Run Code Online (Sandbox Code Playgroud)

甚至将oldArticles和混合newArticles到同一张表中,产生有趣的结果;-)

@JoinTable现在,可以通过定义至少一个或所有成员变量来轻松解决此问题:

    @Entity
class Newspaper {
    @Id long                                                            id;
    @ManyToMany Set<Author>                                             authors     = new HashSet<>();
    @ManyToMany Set<Article>                                            oldArticles = new HashSet<>();
    @ManyToMany @JoinTable(name = "Newspaper_newArticles") Set<Article> …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa eclipselink jakarta-ee

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

跳到JEditorPane的内部锚点

我遇到了一个问题:我想在JEditorPane中使用内部锚点<a name="x">和链接<a href="#x">.

窗格的内容不是从资源加载,而是动态创建并作为String提供.

如何让我的JEditorPane滚动到正确的位置?(在示例中它应该滚动到顶部)侦听器只捕获null,这会增加问题.

这是我的SSCCCE:

public static void main(final String[] args) {
    final JFrame f = new JFrame();
    f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    f.setTitle("JEditorPane Test");

    final String text = "<html><body><a name='link1'>test</a>some text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />some more text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />some more text<a href='#link1'>jump to top</a></body></html>";

    final JEditorPane ep = new JEditorPane();
    ep.setContentType("text/html");
    ep.setText(text);
    ep.setEditable(false);
    ep.addHyperlinkListener(new HyperlinkListener() …
Run Code Online (Sandbox Code Playgroud)

html java swing jeditorpane hyperlink

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

Java 8,等于,==和Lambdas

(最后的实际问题)

你好,世界!我在这里发生了一些令人不安的事情,我无法绕过头...

像我一样懒惰,我讨厌一遍又一遍地重新实施愚蠢的euqals()方法; 还有hashCode()方法,但仍然关注选定成员变量的"相等".我还可以通过使用检查类实例或使用反射的默认接口来减少实现,但我想我已经使用了这个静态实用程序方法和labmda:

public class StackOverflow_TestEq {

    static public interface JcLambda_pG1_pG1_rBool<T> {
        boolean test(T p1, T p2);
    }

    static public <T> boolean equals_internal(final T pThisObject, final Object pOtherObject, final JcLambda_pG1_pG1_rBool<T> pEqualizer) {
        if (pThisObject == null) return pOtherObject == null;
        if (pOtherObject == null) return false;

        final Class<? extends Object> thisClass = pThisObject.getClass();
        if (!thisClass.isInstance(pOtherObject)) return false;

        @SuppressWarnings("unchecked") final T other = (T) pOtherObject;
        final boolean res = pEqualizer.test(pThisObject, other);
        //      System.out.println("Testing " + pThisObject + " vs " …
Run Code Online (Sandbox Code Playgroud)

java lambda equals-operator java-8

2
推荐指数
1
解决办法
1122
查看次数

如何从应用程序内部检测 JVM 垃圾收集周期?

我只是想知道是否有一种方法可以从正在 gc 的代码/JVM 中检测垃圾收集周期。

时机不起作用。因此,事件发生在实际周期之前还是之后并不重要。(在循环期间发生事件似乎极不可能,而且也可能很危险,具体取决于所使用的 GC 实现)。

我能找到的只是可以与正在运行的 JVM 并行使用的应用程序,例如 jstat:https: //dzone.com/articles/how-monitor-java-garbage以及此处的源代码,例如:https:// /github.com/eagle518/jdk-source-code/blob/master/jdk5.0_src/j2se/src/share/classes/sun/tools/jstat/Jstat.java

我所看到的是他们使用

    MonitoredHost monitoredHost = MonitoredHost.getMonitoredHost(vmId);
    MonitoredVm monitoredVm = monitoredHost.getMonitoredVm(vmId, interval);
Run Code Online (Sandbox Code Playgroud)

所以我的问题基于两个问题。如果第二个问题有解,我们就不需要回答第一个问题:

  1. 我对MonitoredVm的了解还不够好,不知道如何访问本地JVM。通常需要 VM ID。我怎样才能可靠地解决这个问题,或者是否有其他方法可以获取“本地” MonitoredVm
  2. 甚至有必要使用 MonitoredVm,还是有更简单的方法,比如可以“安装”关闭挂钩并检测该事件 ( Runtime.getRuntime().addShutdownHook(hookThread);)?Java Reflection 也是一个受欢迎的解决方案!

java garbage-collection

2
推荐指数
1
解决办法
174
查看次数