Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
jenkins
提交
106c680a
J
jenkins
项目概览
xxadev
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
106c680a
编写于
12月 16, 2010
作者:
K
Kohsuke Kawaguchi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
push the method up to AbstractItem
上级
9d1ce54e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
58 addition
and
48 deletion
+58
-48
core/src/main/java/hudson/model/AbstractItem.java
core/src/main/java/hudson/model/AbstractItem.java
+58
-0
core/src/main/java/hudson/model/Job.java
core/src/main/java/hudson/model/Job.java
+0
-48
未找到文件。
core/src/main/java/hudson/model/AbstractItem.java
浏览文件 @
106c680a
...
...
@@ -35,8 +35,11 @@ import hudson.model.listeners.SaveableListener;
import
hudson.security.AccessControlled
;
import
hudson.security.Permission
;
import
hudson.security.ACL
;
import
hudson.util.AtomicFileWriter
;
import
hudson.util.IOException2
;
import
org.apache.tools.ant.taskdefs.Copy
;
import
org.apache.tools.ant.types.FileSet
;
import
org.kohsuke.stapler.WebMethod
;
import
org.kohsuke.stapler.export.Exported
;
import
org.kohsuke.stapler.export.ExportedBean
;
...
...
@@ -52,6 +55,13 @@ import org.kohsuke.args4j.Argument;
import
org.kohsuke.args4j.CmdLineException
;
import
javax.servlet.ServletException
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerException
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.stream.StreamResult
;
import
javax.xml.transform.stream.StreamSource
;
import
static
javax
.
servlet
.
http
.
HttpServletResponse
.
SC_BAD_REQUEST
;
/**
* Partial default implementation of {@link Item}.
...
...
@@ -412,6 +422,54 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet
Util
.
deleteRecursive
(
getRootDir
());
}
/**
* Accepts <tt>config.xml</tt> submission, as well as serve it.
*/
@WebMethod
(
name
=
"config.xml"
)
public
void
doConfigDotXml
(
StaplerRequest
req
,
StaplerResponse
rsp
)
throws
IOException
{
if
(
req
.
getMethod
().
equals
(
"GET"
))
{
// read
checkPermission
(
EXTENDED_READ
);
rsp
.
setContentType
(
"application/xml;charset=UTF-8"
);
getConfigFile
().
writeRawTo
(
rsp
.
getWriter
());
return
;
}
if
(
req
.
getMethod
().
equals
(
"POST"
))
{
// submission
checkPermission
(
CONFIGURE
);
XmlFile
configXmlFile
=
getConfigFile
();
AtomicFileWriter
out
=
new
AtomicFileWriter
(
configXmlFile
.
getFile
());
try
{
try
{
// this allows us to use UTF-8 for storing data,
// plus it checks any well-formedness issue in the submitted
// data
Transformer
t
=
TransformerFactory
.
newInstance
()
.
newTransformer
();
t
.
transform
(
new
StreamSource
(
req
.
getReader
()),
new
StreamResult
(
out
));
out
.
close
();
}
catch
(
TransformerException
e
)
{
throw
new
IOException2
(
"Failed to persist configuration.xml"
,
e
);
}
// try to reflect the changes by reloading
new
XmlFile
(
Items
.
XSTREAM
,
out
.
getTemporaryFile
()).
unmarshal
(
this
);
onLoad
(
getParent
(),
getRootDir
().
getName
());
// if everything went well, commit this new version
out
.
commit
();
}
finally
{
out
.
abort
();
// don't leave anything behind
}
return
;
}
// huh?
rsp
.
sendError
(
SC_BAD_REQUEST
);
}
public
String
toString
()
{
return
super
.
toString
()+
'['
+
getFullName
()+
']'
;
}
...
...
core/src/main/java/hudson/model/Job.java
浏览文件 @
106c680a
...
...
@@ -990,54 +990,6 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
}
}
/**
* Accepts <tt>config.xml</tt> submission, as well as serve it.
*/
@WebMethod
(
name
=
"config.xml"
)
public
void
doConfigDotXml
(
StaplerRequest
req
,
StaplerResponse
rsp
)
throws
IOException
{
if
(
req
.
getMethod
().
equals
(
"GET"
))
{
// read
checkPermission
(
EXTENDED_READ
);
rsp
.
setContentType
(
"application/xml;charset=UTF-8"
);
getConfigFile
().
writeRawTo
(
rsp
.
getWriter
());
return
;
}
if
(
req
.
getMethod
().
equals
(
"POST"
))
{
// submission
checkPermission
(
CONFIGURE
);
XmlFile
configXmlFile
=
getConfigFile
();
AtomicFileWriter
out
=
new
AtomicFileWriter
(
configXmlFile
.
getFile
());
try
{
try
{
// this allows us to use UTF-8 for storing data,
// plus it checks any well-formedness issue in the submitted
// data
Transformer
t
=
TransformerFactory
.
newInstance
()
.
newTransformer
();
t
.
transform
(
new
StreamSource
(
req
.
getReader
()),
new
StreamResult
(
out
));
out
.
close
();
}
catch
(
TransformerException
e
)
{
throw
new
IOException2
(
"Failed to persist configuration.xml"
,
e
);
}
// try to reflect the changes by reloading
new
XmlFile
(
Items
.
XSTREAM
,
out
.
getTemporaryFile
()).
unmarshal
(
this
);
onLoad
(
getParent
(),
getRootDir
().
getName
());
// if everything went well, commit this new version
out
.
commit
();
}
finally
{
out
.
abort
();
// don't leave anything behind
}
return
;
}
// huh?
rsp
.
sendError
(
SC_BAD_REQUEST
);
}
/**
* Derived class can override this to perform additional config submission
* work.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录