提交 3edb9fdc 编写于 作者: K kzantow

JENKINS-33296 - plugin dependency issues during install

上级 25ac68ec
......@@ -634,10 +634,8 @@ public class UpdateSite {
this.categories = o.has("labels") ? (String[])o.getJSONArray("labels").toArray(new String[0]) : null;
for(Object jo : o.getJSONArray("dependencies")) {
JSONObject depObj = (JSONObject) jo;
// Make sure there's a name attribute, that that name isn't maven-plugin - we ignore that one -
// and that the optional value isn't true.
if (get(depObj,"name")!=null
&& !get(depObj,"name").equals("maven-plugin")) {
// Make sure there's a name attribute and that the optional value isn't true.
if (get(depObj,"name")!=null) {
if (get(depObj, "optional").equals("false")) {
dependencies.put(get(depObj, "name"), get(depObj, "version"));
} else {
......
......@@ -358,7 +358,7 @@ public class HudsonPrivateSecurityRealm extends AbstractPasswordBasedSecurityRea
if(si.fullname==null || si.fullname.length()==0)
si.fullname = si.username;
if(si.email==null || !si.email.contains("@"))
if(isMailerPluginPresent() && (si.email==null || !si.email.contains("@")))
si.errorMessage = Messages.HudsonPrivateSecurityRealm_CreateAccount_InvalidEmailAddress();
if (! User.isIdOrFullnameAllowed(si.username)) {
......@@ -379,19 +379,31 @@ public class HudsonPrivateSecurityRealm extends AbstractPasswordBasedSecurityRea
// register the user
User user = createAccount(si.username,si.password1);
user.setFullName(si.fullname);
try {
// legacy hack. mail support has moved out to a separate plugin
Class<?> up = Jenkins.getInstance().pluginManager.uberClassLoader.loadClass("hudson.tasks.Mailer$UserProperty");
Constructor<?> c = up.getDeclaredConstructor(String.class);
user.addProperty((UserProperty)c.newInstance(si.email));
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
LOGGER.log(Level.WARNING, "Failed to set the e-mail address",e);
if(isMailerPluginPresent()) {
try {
// legacy hack. mail support has moved out to a separate plugin
Class<?> up = Jenkins.getInstance().pluginManager.uberClassLoader.loadClass("hudson.tasks.Mailer$UserProperty");
Constructor<?> c = up.getDeclaredConstructor(String.class);
user.addProperty((UserProperty)c.newInstance(si.email));
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
user.save();
return user;
}
public boolean isMailerPluginPresent() {
try {
// mail support has moved to a separate plugin
return null != Jenkins.getInstance().pluginManager.uberClassLoader.loadClass("hudson.tasks.Mailer$UserProperty");
} catch (ClassNotFoundException e) {
LOGGER.finer("Mailer plugin not present");
}
return false;
}
/**
* Creates a new user account by registering a password to the user.
......
......@@ -22,7 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<!-- tag file sed by both signup.jelly and addUser.jelly -->
<!-- tag file used by both signup.jelly and addUser.jelly -->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<h1>${title}</h1>
......@@ -49,10 +49,12 @@ THE SOFTWARE.
<td>${%Full name}:</td>
<td><input type="text" name="fullname" value="${data.fullname}" /></td>
</tr>
<j:if test="${it.mailerPluginPresent}">
<tr>
<td>${%E-mail address}:</td>
<td><input type="text" name="email" value="${data.email}" /></td>
</tr>
</j:if>
<j:if test="${captcha}">
<tr>
<td>${%Enter text as shown}:</td>
......
......@@ -19,7 +19,7 @@ exports.recommendedPlugins = [
"gradle",
"ldap",
"mailer",
// "matrix-auth",
"matrix-auth",
"pam-auth",
"pipeline-stage-view",
"ssh-slaves",
......@@ -38,7 +38,7 @@ exports.availablePlugins = [
{
"category":"Organization and Administration",
"plugins": [
// { "name": "dashboard-view" },
{ "name": "dashboard-view" },
{ "name": "build-monitor-plugin" },
{ "name": "cloudbees-folder" },
{ "name": "antisamy-markup-formatter" }
......@@ -49,15 +49,15 @@ exports.availablePlugins = [
"description":"Add general purpose features to your jobs",
"plugins": [
{ "name": "ansicolor" },
// { "name": "build-name-setter" },
{ "name": "build-name-setter" },
{ "name": "build-timeout" },
{ "name": "config-file-provider" },
{ "name": "credentials-binding" },
{ "name": "rebuild" },
{ "name": "ssh-agent" },
// { "name": "throttle-concurrents" },
{ "name": "timestamper" }
// { "name": "ws-cleanup" }
{ "name": "throttle-concurrents" },
{ "name": "timestamper" },
{ "name": "ws-cleanup" }
]
},
{
......@@ -72,12 +72,12 @@ exports.availablePlugins = [
{
"category":"Build Analysis and Reporting",
"plugins": [
// { "name": "checkstyle" },
// { "name": "cobertura" },
{ "name": "checkstyle" },
{ "name": "cobertura" },
{ "name": "htmlpublisher" },
{ "name": "junit" },
// { "name": "sonar" },
// { "name": "warnings" },
{ "name": "sonar" },
{ "name": "warnings" },
{ "name": "xunit" }
]
},
......@@ -88,8 +88,8 @@ exports.availablePlugins = [
{ "name": "github-organization-folder" },
{ "name": "pipeline-stage-view" },
{ "name": "build-pipeline-plugin" },
// { "name": "conditional-buildstep" },
// { "name": "jenkins-multijob-plugin" },
{ "name": "conditional-buildstep" },
{ "name": "jenkins-multijob-plugin" },
{ "name": "parameterized-trigger" },
{ "name": "copyartifact" }
]
......@@ -122,10 +122,10 @@ exports.availablePlugins = [
{
"category":"User Management and Security",
"plugins": [
// { "name": "matrix-auth" },
{ "name": "matrix-auth" },
{ "name": "pam-auth" },
{ "name": "ldap" },
// { "name": "role-strategy" },
{ "name": "role-strategy" },
{ "name": "active-directory" }
]
},
......
......@@ -599,7 +599,13 @@ var createPluginSetupWizard = function(appendTarget) {
$('.plugin-list .selected').addClass('match');
}
else {
var matches = findElementsWithText($pl[0], text.toLowerCase(), function(d) { return d.toLowerCase(); });
var matches = [];
$containers.find('.title,.description').each(function() {
var localMatches = findElementsWithText(this, text.toLowerCase(), function(d) { return d.toLowerCase(); });
if(localMatches.length > 0) {
matches = matches.concat(localMatches);
}
});
$(matches).parents('.plugin').addClass('match');
if(lastSearch !== text && scroll) {
scrollPlugin($pl, matches, text);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册