在允许用户提交他们自己的代码以供服务器运行的模拟服务器环境中,任何用户提交的代码都可以在沙箱中运行,这与使用Applet在浏览器中不同,这显然是有利的.我希望能够利用JVM本身,而不是添加另一个VM层来隔离这些提交的组件.
使用现有的Java沙箱模型似乎可以实现这种限制,但是有一种动态方法可以仅为正在运行的应用程序的用户提交的部分启用它吗?
我正在尝试在多个Gradle任务中重用通用逻辑,类似于本答案中建议的,但是我遇到了额外的项目属性不可见的问题.
归结起来,这就是问题所在.假设我有一个根Gradle构建脚本,build.gradle它设置了一个额外的项目属性,
project.ext.myProp = 'myValue'
Run Code Online (Sandbox Code Playgroud)
我有一个子项目settings.gradle,
include 'subproject'
Run Code Online (Sandbox Code Playgroud)
子项目定义并使用引用该额外项目属性的自定义任务,
class CustomTask extends DefaultTask {
CustomTask() {
doFirst {
println project.ext.myProp
}
}
}
task custom(type: CustomTask) {
println 'custom task'
}
Run Code Online (Sandbox Code Playgroud)
执行这个给了我这个:
FAILURE: Build failed with an exception.
...
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':subproject'.
...
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'CustomTask'.
...
Caused by: groovy.lang.MissingPropertyException: cannot get property 'myProp' on extra properties extension as it …Run Code Online (Sandbox Code Playgroud) 我们正在考虑切换到Spring 3.0并遇到Spring 3.0,EasyMock和Java Generics的问题.
在一个地方,我们正在嘲笑Spring 3.0 AbstractBeanFactory,特别是这个方法:
public Class<?> getType(String name) throws NoSuchBeanDefinitionException { ... }
Run Code Online (Sandbox Code Playgroud)
在早期版本的Spring中,这会返回一个非泛型的,一切都很好.但是,使用泛型,我们遇到了麻烦:
expect(mockBeanFactory.getType(CLASS_NAME)).andReturn(SOME_CLASS);
Run Code Online (Sandbox Code Playgroud)
因为getType返回Class<?>,andReturn需要Class<?>作为参数,这根本不能正常工作.
这有一个已知的解决方法吗?
我们试图在Gradle中从多个文件系统源代码树中构建一个复杂的Zip文件,但无论into我们提供多少规范,它们都将它们放在同一个文件系统中.这可以在Gradle中做到吗?
build/libs/foo.jar --> foo.jar
bar/* --> bar/*
Run Code Online (Sandbox Code Playgroud)
我们得到的是:
build/libs/foo.jar --> bar/foo.jar
bar/* --> bar/*
Run Code Online (Sandbox Code Playgroud)
使用这个:
task installZip(type: Zip, dependsOn: jar) {
from('build/libs/foo.jar').into('.')
from('bar').into('bar')
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
编辑:Gradle 1.0-milestone-3
我正在使用以下(基于此)来创建嵌入式Tomcat服务器:
File catalinaHome = new File(".");
File webAppDir = new File("web");
Embedded server = new Embedded();
server.setCatalinaHome(catalinaHome.getAbsolutePath());
Context rootContext = server.createContext("", webAppDir.getAbsolutePath());
rootContext.setParentClassLoader(Thread.currentThread().getContextClassLoader());
Host localHost = server.createHost("localhost", webAppDir.getAbsolutePath());
localHost.addChild(rootContext);
Engine engine = server.createEngine();
engine.setName("localEngine");
engine.addChild(localHost);
engine.setDefaultHost(localHost.getName());
server.addEngine(engine);
Connector http = server.createConnector((InetAddress) null, 8080, false);
server.addConnector(http);
server.setAwait(true);
server.start();
Run Code Online (Sandbox Code Playgroud)
web目录包含静态内容(index.html等)以及带有web.xml等servlet描述符的WEB-INF目录.这是毫无例外地开始的,并且web.xml中定义的servlet工作,但是像index.html这样的静态内容不起作用.
我很困惑:我错过了什么来处理静态内容?
我被一个在我们公司拥有某种权限的人告诉我,在数据库中创建触发器以改变另一个表中的行是一个"数据库禁止".
我已经使用这种技术来创建默认的初始配置,自动维护审计日志,以及在连接到该数据库的异构应用程序内持续维护的各种其他事情.十多年来,我已经读到这是一种集中关系约束维护并从与数据交互的应用程序中获取责任的适当方式.
因此,我的BS仪表与此挂钩.我是否遗漏了一些根本错误的技术,这使得它一般都是不好的做法?
在Groovy应用程序中,如果要初始化元类,那么放置这些初始化的最佳位置在哪里?在Grails应用程序中,我使用了Bootstrap.groovy文件.是否有类似的任意Groovy应用程序?
编辑:为了澄清,我正在寻找一种非侵入性的方法来保证在运行主应用程序时以及在相关代码的单元测试中调用它.