下面列出了怎么用hudson.model.TopLevelItemDescriptor的API类实例代码及写法,或者点击链接到github查看源代码。
protected @Nonnull TopLevelItem createProject(String name, String descriptorName, Class<? extends TopLevelItemDescriptor> descriptorClass, BlueOrganization organization) throws IOException {
ModifiableTopLevelItemGroup p = getParent(organization);
final ACL acl = (p instanceof AccessControlled) ? ((AccessControlled) p).getACL() : Jenkins.getInstance().getACL();
Authentication a = Jenkins.getAuthentication();
if(!acl.hasPermission(a, Item.CREATE)){
throw new ServiceException.ForbiddenException(
String.format("Failed to create pipeline: %s. User %s doesn't have Job create permission", name, a.getName()));
}
TopLevelItemDescriptor descriptor = Items.all().findByName(descriptorName);
if(descriptor == null || !(descriptorClass.isAssignableFrom(descriptor.getClass()))){
throw new ServiceException.BadRequestException(String.format("Failed to create pipeline: %s, descriptor %s is not found", name, descriptorName));
}
if (!descriptor.isApplicableIn(p)) {
throw new ServiceException.ForbiddenException(
String.format("Failed to create pipeline: %s. Pipeline can't be created in Jenkins root folder", name));
}
if (!acl.hasCreatePermission(a, p, descriptor)) {
throw new ServiceException.ForbiddenException("Missing permission: " + Item.CREATE.group.title+"/"+Item.CREATE.name + " " + Item.CREATE + "/" + descriptor.getDisplayName());
}
return p.createProject(descriptor, name, true);
}
@Override
public TopLevelItem createProject(TopLevelItemDescriptor type, String name, boolean notify) throws IOException {
return null;
}
@Override
public TopLevelItem createProject(TopLevelItemDescriptor type, String name, boolean notify) throws IOException {
return null;
}
@Override public TopLevelItem createProject(TopLevelItemDescriptor type, String name, boolean notify) throws IOException {
return mixin().createProject(type, name, notify);
}
/** Convenience method to create a {@link FreeStyleProject} or similar. */
public <T extends TopLevelItem> T createProject(Class<T> type, String name) throws IOException {
return type.cast(createProject((TopLevelItemDescriptor) Jenkins.getInstance().getDescriptor(type), name, true));
}
@Override public TopLevelItemDescriptor getDescriptor() {
return Jenkins.getInstance().getDescriptorByType(DescriptorImpl.class);
}
@Override
public TopLevelItemDescriptor getDescriptor() {
return (DescriptorImpl) Hudson.getInstance().getDescriptorOrDie(getClass());
}
public DynamicProject createProject(final Class<DynamicProject> type, final String projectName) throws IOException {
return type.cast(createProject((TopLevelItemDescriptor) Hudson.getInstance().getDescriptor(type), projectName));
}
public TopLevelItem createProject(final TopLevelItemDescriptor type, final String name) throws IOException {
return createProject(type, name, true);
}
public TopLevelItem createProject(final TopLevelItemDescriptor type, final String name, final boolean notify) throws IOException {
return this.mixin.createProject(type, name, notify);
}