Tag: groovy

validationIP地址(带掩码)

我有ip地址和一个掩码,如10.1.1.1/32 。 我想检查10.1.1.1是否在该范围内。 是否有可以执行此操作的库或实用程序,或者我是否需要自己编写内容?

Java脚本安全(JRuby,Jython,Groovy,BeanShell等)

我正在寻找运行一些未经validation的脚本(用一种尚未确定的语言编写,但需要基于Java,所以JRuby,Groovy,Jython,BeanShell等都是候选者)。 我希望这些脚本能够做一些事情并限制做其他事情。 通常,我只是使用Java的SecurityManager并完成它。 这非常简单,让我限制文件和网络访问,关闭JVM的能力等等。这对我想要阻止的高级别东西很有用。 但是我想要允许一些东西,但只能通过我提供的自定义API /库。 例如,我不想允许直接网络访问打开到yahoo.com的URLConnection,但如果使用MyURLConnection完成,我没关系。 那就是 – 我想要允许的一组方法/类,然后我想要的其他一切不受限制。 我不相信这种类型的安全性可以使用标准的Java安全模型来完成,但也许它可以。 我对脚本语言本身的性能或灵活性没有特定要求(脚本将通过基本循环/分支对我的API进行简单的过程调用)。 因此,即使是一个“大”的开销来检查每次reflection调用的安全检查也没问题。 建议?

在IntelliJ中的Java项目中使用.gdsl文件

我有一个文件pipeline.gdsl ,其中包含我的Jenkins管道DSL的语法。 在这篇博客文章之后,我把文件放到我的Java项目的/src文件夹中。 当我现在编辑我的Jenkinsfile (驻留在我的项目的根文件夹中)时,我没有像我期望的那样得到任何代码完成/语法解释。 我的项目是一个Java / Gradle项目,我不能用它来创建一个Groovy项目。 有没有其他方法使IntelliJ知道.gdsl文件并提供代码完成?

如何擦除ElasticSearch索引?

我的单元/集成测试包括搜索function的测试。 我的想法是在每次测试之前都有空的搜索索引。 所以,我试图删除setup方法索引中的所有元素(它是Groovy代码): Client client = searchConnection.client SearchResponse response = client.prepareSearch(“item”) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(termQuery(‘name’, ‘test’)) //tried also matchAllQuery() .setFrom(0).setSize(100).setExplain(false).execute().actionGet() List ids = response.hits.hits.collect { return it.id } client.close() client = searchConnection.client ids.each { DeleteResponse delete = client.prepareDelete(“item”, “item”, it) .setOperationThreaded(false) .execute().actionGet() } client.close() 似乎它正在异步处理所有删除,所以我在它之后添加了Thread.sleep(5000) 。 如你所见,我试图打开/关闭连接几次 – 它没有帮助。 有时需要更多时间的问题,有时它需要超过5秒才能删除,有时它无法找到刚刚添加的数据(来自之前的测试)等等。最烦人的是集成测试变得不稳定。 将Thread.sleep()放在可能看起来不太好的解决方案的任何地方。 有没有办法提交最后的更改,或者锁定直到所有数据都被写入?

一个字符串上有数百个RegEx

我正在使用Java / Groovy通过RegEx在字符串上查找匹配(并提取它们)。 在性能方面,在字符串(例如5000字符)上查找200或更多正则表达式的匹配的最佳方法是什么。 简而言之,是否可以避免为每个RegEx扫描字符串? 我可以使用java提供的Pattern和Matcher类,但是我将编译200个模式,然后将字符串传递给matcher 200次。 这是唯一的方法吗?

如何通过Java中的多部分请求上传大文件?

我正在使用本教程上传大文件,但它甚至无法上传300KB的文件。 此外,它不会上传*.txt或*.log文件以外的任何内容。 需要指针,可以帮助我上传大文件,无论文件类型。 共享修改后的代码 public class MultipartUtility { private final String boundary private static final String LINE_FEED = “\r\n” private HttpURLConnection httpConn private String charset private OutputStream outputStream private PrintWriter writer public MultipartUtility(String requestURL, String charset) throws IOException { this.charset = charset // creates a unique boundary based on time stamp boundary = “===” + […]

如何阅读控制台输出

使用Grails框架,如何阅读控制台输出。 我的意思是我的grails应用程序中有一个java库,它输出(system.out.println(“x”))到控制台,我想在我的grails应用程序的文本框中显示它。 我该怎么做呢 我不想将消息写入文件并以这种方式或数据库读取它们。 有没有直接从控制台读取。 提前致谢。 编辑** 它是我正在使用的第三方jar文件

奇怪的浮动除法结果

我发生在grails项目中的这个奇怪的除法错误中(但我认为grails与它没什么关系,我认为这是一个常规或java问题): 如果在groovy控制台中我运行它 float money = -1.30 float r = 0.01 println ((money/r).class.name) println ((money/r).floatValue()) println ((money/r).toString() ) 我得到了这个输出 java.lang.Double -130.0 -129.99999813735482 groovy中的float分区给了我一个Double,这是正确的,但为什么Double toString()给我一个如此奇怪的值“-129.99999813735482”而不是正确的“-130.0”?

从java类运行geb测试

我最近偶然发现了geb ,它看起来像是在我们的Web应用程序上执行集成测试的好方法。 我们的平台都是基于java的,从阅读它 “通过与流行的测试框架集成,例如…… JUnit,TestNG ……,Geb为function性Web测试提供了一流的支持。” 我假设从java类执行测试很容易(testng测试?)。 我是groovy和geb的新手。 到目前为止,我已经在我的pom中包含了geb-testng和groovy: org.codehaus.geb geb-testng 0.7.0 org.codehaus.groovy groovy 1.8.6 …但是我找不到任何创建测试并从java类运行它的示例。 帮助赞赏。

需要正则表达式帮助

我试图将两个或更多个(如同一个)标签的出现和两个 更换用以下模式替换 Pattern brTagPattern = Pattern.compile(“(\\s*){2,}”, Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 但是在某些情况下,’ ‘标签带有空格,并且它们被4个标签取代,实际上应该用2个标签代替。 我该怎么做才能忽略标签之间的2或3(几个)空格?