protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, FormException { super.submit(req, rsp); JSONObject json = req.getSubmittedForm(); rootPOM = Util.fixEmpty(req.getParameter("rootPOM").trim()); if (rootPOM != null && rootPOM.equals("pom.xml")) rootPOM = null; // normalization goals = Util.fixEmpty(req.getParameter("goals").trim()); alternateSettings = Util.fixEmpty(req.getParameter("alternateSettings").trim()); mavenOpts = Util.fixEmpty(req.getParameter("mavenOpts").trim()); mavenName = req.getParameter("maven_version"); aggregatorStyleBuild = !req.hasParameter("maven.perModuleBuild"); usePrivateRepository = req.hasParameter("maven.usePrivateRepository"); ignoreUpstremChanges = !json.has("triggerByDependency"); incrementalBuild = req.hasParameter("maven.incrementalBuild"); archivingDisabled = req.hasParameter("maven.archivingDisabled"); reporters.rebuild(req, json, MavenReporters.getConfigurableList()); publishers.rebuild(req, json, BuildStepDescriptor.filter(Publisher.all(), this.getClass())); buildWrappers.rebuild(req, json, BuildWrappers.getFor(this)); }
/** * Generates an Unpublish bundle for a given bundle id operation (publish/unpublish) * * @param bundleId The Bundle id of the Bundle we want to generate * @param operation Download for publish or un-publish * @return The generated requested Bundle file * @throws DotPublisherException If fails retrieving the Bundle contents * @throws DotDataException If fails finding the system user * @throws DotPublishingException If fails initializing the Publisher * @throws IllegalAccessException If fails creating new Bundlers instances * @throws InstantiationException If fails creating new Bundlers instances * @throws DotBundleException If fails generating the Bundle * @throws IOException If fails compressing the all the Bundle contents into the final Bundle file */ @SuppressWarnings("unchecked") private Map<String, Object> generateBundle( String bundleId, PushPublisherConfig.Operation operation) throws DotPublisherException, DotDataException, DotPublishingException, IllegalAccessException, InstantiationException, DotBundleException, IOException { PushPublisherConfig pconf = new PushPublisherConfig(); PublisherAPI pubAPI = PublisherAPI.getInstance(); List<PublishQueueElement> tempBundleContents = pubAPI.getQueueElementsByBundleId(bundleId); List<PublishQueueElement> assetsToPublish = new ArrayList<PublishQueueElement>(); // all assets but contentlets for (PublishQueueElement c : tempBundleContents) { if (!c.getType().equals("contentlet")) { assetsToPublish.add(c); } } pconf.setDownloading(true); pconf.setOperation(operation); // all types of assets in the queue but contentlets are passed here, which are passed through // lucene queries pconf.setAssets(assetsToPublish); // Queries creation pconf.setLuceneQueries(PublisherUtil.prepareQueries(tempBundleContents)); pconf.setId(bundleId); pconf.setUser(APILocator.getUserAPI().getSystemUser()); // BUNDLERS List<Class<IBundler>> bundlers = new ArrayList<Class<IBundler>>(); List<IBundler> confBundlers = new ArrayList<IBundler>(); Publisher publisher = new PushPublisher(); publisher.init(pconf); // Add the bundles for this publisher for (Class clazz : publisher.getBundlers()) { if (!bundlers.contains(clazz)) { bundlers.add(clazz); } } // Create a new bundle id for this generated bundle String newBundleId = UUID.randomUUID().toString(); pconf.setId(newBundleId); File bundleRoot = BundlerUtil.getBundleRoot(pconf); // Run bundlers BundlerUtil.writeBundleXML(pconf); for (Class<IBundler> c : bundlers) { IBundler bundler = c.newInstance(); confBundlers.add(bundler); bundler.setConfig(pconf); BundlerStatus bundlerStatus = new BundlerStatus(bundler.getClass().getName()); // Generate the bundler bundler.generate(bundleRoot, bundlerStatus); } pconf.setBundlers(confBundlers); // Compressing bundle ArrayList<File> list = new ArrayList<File>(); list.add(bundleRoot); File bundle = new File(bundleRoot + File.separator + ".." + File.separator + pconf.getId() + ".tar.gz"); Map<String, Object> bundleData = new HashMap<String, Object>(); bundleData.put("id", newBundleId); bundleData.put("file", PushUtils.compressFiles(list, bundle, bundleRoot.getAbsolutePath())); return bundleData; }