Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dream21st
jenkins
提交
70706d9d
J
jenkins
项目概览
dream21st
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
70706d9d
编写于
10月 25, 2012
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:jenkinsci/jenkins
上级
69ef22f5
edbe2aed
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
50 addition
and
21 deletion
+50
-21
core/pom.xml
core/pom.xml
+1
-1
core/src/main/java/hudson/widgets/RenderOnDemandClosure.java
core/src/main/java/hudson/widgets/RenderOnDemandClosure.java
+14
-0
maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java
...n/src/main/java/hudson/maven/reporters/MavenArtifact.java
+1
-1
maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java
...in/java/hudson/maven/reporters/MavenArtifactArchiver.java
+7
-10
test/src/test/java/lib/layout/RenderOnDemandTest.java
test/src/test/java/lib/layout/RenderOnDemandTest.java
+7
-2
test/src/test/resources/lib/layout/RenderOnDemandTest/externalScript.jelly
...ources/lib/layout/RenderOnDemandTest/externalScript.jelly
+3
-0
test/src/test/resources/lib/layout/RenderOnDemandTest/testScript.jelly
.../resources/lib/layout/RenderOnDemandTest/testScript.jelly
+4
-2
war/src/main/webapp/scripts/hudson-behavior.js
war/src/main/webapp/scripts/hudson-behavior.js
+13
-5
未找到文件。
core/pom.xml
浏览文件 @
70706d9d
...
...
@@ -42,7 +42,7 @@ THE SOFTWARE.
<properties>
<staplerFork>
true
</staplerFork>
<stapler.version>
1.19
7
</stapler.version>
<stapler.version>
1.19
8
</stapler.version>
</properties>
<dependencies>
...
...
core/src/main/java/hudson/widgets/RenderOnDemandClosure.java
浏览文件 @
70706d9d
...
...
@@ -37,7 +37,9 @@ import org.kohsuke.stapler.Stapler;
import
org.kohsuke.stapler.StaplerRequest
;
import
org.kohsuke.stapler.StaplerResponse
;
import
org.kohsuke.stapler.bind.JavaScriptMethod
;
import
org.kohsuke.stapler.framework.adjunct.AdjunctsInPage
;
import
org.kohsuke.stapler.jelly.DefaultScriptInvoker
;
import
org.xml.sax.SAXException
;
import
javax.servlet.ServletException
;
import
java.io.IOException
;
...
...
@@ -45,6 +47,7 @@ import java.util.ArrayList;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
...
...
@@ -61,6 +64,8 @@ public class RenderOnDemandClosure {
private
final
Map
<
String
,
Object
>
variables
;
private
final
String
currentDescriptorByNameUrl
;
private
final
Set
<
String
>
adjuncts
;
public
RenderOnDemandClosure
(
JellyContext
context
,
String
attributesToCapture
)
{
List
<
Script
>
bodyStack
=
new
ArrayList
<
Script
>();
for
(
JellyContext
c
=
context
;
c
!=
null
;
c
=
c
.
getParent
())
{
...
...
@@ -78,6 +83,8 @@ public class RenderOnDemandClosure {
currentDescriptorByNameUrl
=
Descriptor
.
getCurrentDescriptorByNameUrl
();
this
.
variables
=
PackedMap
.
of
(
variables
);
this
.
adjuncts
=
AdjunctsInPage
.
get
().
getIncluded
();
}
/**
...
...
@@ -96,6 +103,13 @@ public class RenderOnDemandClosure {
context
=
new
JellyContext
(
context
);
context
.
setVariable
(
"org.apache.commons.jelly.body"
,
bodyStack
[
i
]);
}
try
{
AdjunctsInPage
.
get
().
assumeIncluded
(
adjuncts
);
}
catch
(
IOException
e
)
{
LOGGER
.
log
(
Level
.
WARNING
,
"Failed to resurrect adjunct context"
,
e
);
}
catch
(
SAXException
e
)
{
LOGGER
.
log
(
Level
.
WARNING
,
"Failed to resurrect adjunct context"
,
e
);
}
return
context
;
}
...
...
maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java
浏览文件 @
70706d9d
...
...
@@ -221,7 +221,7 @@ public final class MavenArtifact implements Serializable {
*/
public
void
archive
(
MavenBuildProxy
build
,
File
file
,
BuildListener
listener
)
throws
IOException
,
InterruptedException
{
if
(
build
.
isArchivingDisabled
())
{
listener
.
getLogger
().
println
(
"[JENKINS]
Archiving disabled - not archiving "
+
file
);
LOGGER
.
fine
(
"
Archiving disabled - not archiving "
+
file
);
}
else
{
FilePath
target
=
getArtifactArchivePath
(
build
,
groupId
,
artifactId
,
version
);
...
...
maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java
浏览文件 @
70706d9d
...
...
@@ -153,19 +153,16 @@ public class MavenArtifactArchiver extends MavenReporter {
// do we have any assembly artifacts?
// System.out.println("Considering "+assemblies+" at "+MavenArtifactArchiver.this);
// new Exception().fillInStackTrace().printStackTrace();
if
(
assemblies
!=
null
)
{
if
(
build
.
isArchivingDisabled
())
{
listener
.
getLogger
().
println
(
"[JENKINS] Archiving disabled"
);
}
else
if
(
assemblies
!=
null
)
{
for
(
File
assembly
:
assemblies
)
{
if
(
mavenArtifacts
.
contains
(
assembly
))
continue
;
// looks like this is already archived
if
(
build
.
isArchivingDisabled
())
{
listener
.
getLogger
().
println
(
"[JENKINS] Archiving disabled - not archiving "
+
assembly
);
}
else
{
FilePath
target
=
build
.
getArtifactsDir
().
child
(
assembly
.
getName
());
listener
.
getLogger
().
println
(
"[JENKINS] Archiving "
+
assembly
+
" to "
+
target
);
new
FilePath
(
assembly
).
copyTo
(
target
);
// TODO: fingerprint
}
FilePath
target
=
build
.
getArtifactsDir
().
child
(
assembly
.
getName
());
listener
.
getLogger
().
println
(
"[JENKINS] Archiving "
+
assembly
+
" to "
+
target
);
new
FilePath
(
assembly
).
copyTo
(
target
);
// TODO: fingerprint
}
}
...
...
test/src/test/java/lib/layout/RenderOnDemandTest.java
浏览文件 @
70706d9d
...
...
@@ -52,15 +52,20 @@ public class RenderOnDemandTest extends HudsonTestCase {
*/
public
void
testScript
()
throws
Exception
{
HtmlPage
p
=
createWebClient
().
goTo
(
"self/testScript"
);
assertNull
(
p
.
getElementById
(
"loaded"
));
p
.
getElementById
(
"button"
).
click
();
// all AJAX calls complete before the above method returns
assertNotNull
(
p
.
getElementById
(
"loaded"
));
ScriptResult
r
=
p
.
executeJavaScript
(
"x"
);
assertEquals
(
"foo"
,
r
.
getJavaScriptResult
().
toString
());
assertEquals
(
"xxx"
,
r
.
getJavaScriptResult
().
toString
());
r
=
p
.
executeJavaScript
(
"y"
);
assertEquals
(
"yyy"
,
r
.
getJavaScriptResult
().
toString
());
// if you want to test this in the browser
System
.
out
.
println
(
"Try http://localhost:"
+
localPort
+
"
\"
self/testScript"
);
System
.
out
.
println
(
"Try http://localhost:"
+
localPort
+
"
/
self/testScript"
);
interactiveBreak
();
}
}
test/src/test/resources/lib/layout/RenderOnDemandTest/externalScript.jelly
0 → 100644
浏览文件 @
70706d9d
<j:jelly xmlns:j="jelly:core">
y = "yyy";
</j:jelly>
\ No newline at end of file
test/src/test/resources/lib/layout/RenderOnDemandTest/testScript.jelly
浏览文件 @
70706d9d
...
...
@@ -32,6 +32,7 @@ THE SOFTWARE.
<input type="button" value="Test" id="button"/>
<script>
var x = null;
var y = null;
$("button").onclick = function() {
renderOnDemand(document.getElementsBySelector('.lazy')[0]);
}
...
...
@@ -39,10 +40,11 @@ THE SOFTWARE.
<l:renderOnDemand clazz="lazy">
<div id="
eye">hello
</div>
<div id="
loaded">loaded
</div>
<script>
x = "
foo
";
x = "
xxx
";
</script>
<script src="externalScript"></script>
</l:renderOnDemand>
</l:main-panel>
</l:layout>
...
...
war/src/main/webapp/scripts/hudson-behavior.js
浏览文件 @
70706d9d
...
...
@@ -364,6 +364,14 @@ function parseHtml(html) {
return
c
.
firstChild
;
}
/**
* Evaluates the script in global context.
*/
function
geval
(
script
)
{
// see http://perfectionkills.com/global-eval-what-are-the-options/
return
(
this
.
execScript
||
eval
)(
script
);
}
/**
* Emulate the firing of an event.
*
...
...
@@ -396,7 +404,7 @@ var tooltip;
function
registerValidator
(
e
)
{
e
.
targetElement
=
findFollowingTR
(
e
,
"
validation-error-area
"
).
firstChild
.
nextSibling
;
e
.
targetUrl
=
function
()
{
return
eval
(
this
.
getAttribute
(
"
checkUrl
"
));
return
eval
(
this
.
getAttribute
(
"
checkUrl
"
));
// need access to 'this'
};
var
method
=
e
.
getAttribute
(
"
checkMethod
"
);
if
(
!
method
)
method
=
"
get
"
;
...
...
@@ -492,7 +500,7 @@ function isInsideRemovable(e) {
*/
function
renderOnDemand
(
e
,
callback
,
noBehaviour
)
{
if
(
!
e
||
!
Element
.
hasClassName
(
e
,
"
render-on-demand
"
))
return
;
var
proxy
=
eval
(
e
.
getAttribute
(
"
proxy
"
));
var
proxy
=
g
eval
(
e
.
getAttribute
(
"
proxy
"
));
proxy
.
render
(
function
(
t
)
{
var
contextTagName
=
e
.
parentNode
.
tagName
;
var
c
;
...
...
@@ -537,7 +545,7 @@ function evalInnerHtmlScripts(text,callback) {
});
}
else
{
q
.
push
(
function
(
cont
)
{
eval
(
s
.
match
(
matchOne
)[
2
]);
g
eval
(
s
.
match
(
matchOne
)[
2
]);
cont
();
});
}
...
...
@@ -708,7 +716,7 @@ var jenkinsRules = {
(
function
()
{
var
cmdKeyDown
=
false
;
var
mode
=
e
.
getAttribute
(
"
script-mode
"
)
||
"
text/x-groovy
"
;
var
readOnly
=
eval
(
e
.
getAttribute
(
"
script-readOnly
"
))
||
false
;
var
readOnly
=
g
eval
(
e
.
getAttribute
(
"
script-readOnly
"
))
||
false
;
var
w
=
CodeMirror
.
fromTextArea
(
e
,{
mode
:
mode
,
...
...
@@ -2134,7 +2142,7 @@ function validateButton(checkUrl,paramList,button) {
var
s
=
rsp
.
getResponseHeader
(
"
script
"
);
if
(
s
!=
null
)
try
{
eval
(
s
);
g
eval
(
s
);
}
catch
(
e
)
{
window
.
alert
(
"
failed to evaluate
"
+
s
+
"
\n
"
+
e
.
message
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录