public void doExecute()

in src/java/org/apache/ivy/ant/IvyPublish.java [230:333]


    public void doExecute() throws BuildException {
        Ivy ivy = getIvyInstance();
        IvySettings settings = ivy.getSettings();

        organisation = getProperty(organisation, settings, "ivy.organisation");
        module = getProperty(module, settings, "ivy.module");
        revision = getProperty(revision, settings, "ivy.revision");
        pubBranch = getProperty(pubBranch, settings, "ivy.deliver.branch");
        pubRevision = getProperty(pubRevision, settings, "ivy.deliver.revision");
        if (artifactspattern.isEmpty()) {
            String p = getProperty(null, settings, "ivy.publish.src.artifacts.pattern");
            if (p != null) {
                artifactspattern.add(p);
            }
        }
        if (srcivypattern == null) {
            srcivypattern = getArtifactspattern();
        }
        status = getProperty(status, settings, "ivy.status");
        if (organisation == null) {
            throw new BuildException("no organisation provided for ivy publish task: "
                    + "It can either be set explicitly via the attribute 'organisation' "
                    + "or via 'ivy.organisation' property or a prior call to <resolve/>");
        }
        if (module == null) {
            throw new BuildException("no module name provided for ivy publish task: "
                    + "It can either be set explicitly via the attribute 'module' "
                    + "or via 'ivy.module' property or a prior call to <resolve/>");
        }
        if (revision == null) {
            throw new BuildException("no module revision provided for ivy publish task: "
                    + "It can either be set explicitly via the attribute 'revision' "
                    + "or via 'ivy.revision' property or a prior call to <resolve/>");
        }
        if (artifactspattern.isEmpty()) {
            throw new BuildException(
                    "no artifacts pattern: either provide it through parameter or "
                            + "through ivy.publish.src.artifacts.pattern property");
        }
        if (publishResolverName == null) {
            throw new BuildException(
                    "no publish deliver name: please provide it through parameter 'resolver'");
        }
        if ("working".equals(revision)) {
            revision = Ivy.getWorkingRevision();
        }
        Date pubdate = getPubDate(this.pubdate, new Date());
        if (pubRevision == null) {
            if (revision.startsWith("working@")) {
                pubRevision = DateUtil.format(pubdate);
            } else {
                pubRevision = revision;
            }
        }
        if (status == null) {
            throw new BuildException("no status provided: either provide it as parameter "
                    + "or through the ivy.status.default property");
        }
        ModuleRevisionId mrid = ModuleRevisionId.newInstance(organisation, module, revision);
        try {
            File ivyFile = getProject().resolveFile(
                IvyPatternHelper.substitute(srcivypattern, organisation, module, pubRevision,
                    "ivy", "ivy", "xml"));
            if (publishivy && (!ivyFile.exists() || forcedeliver)) {
                IvyDeliver deliver = new IvyDeliver();
                deliver.setSettingsRef(getSettingsRef());
                deliver.setTaskName(getTaskName());
                deliver.setProject(getProject());
                deliver.setDeliverpattern(getSrcivypattern());
                deliver.setDelivertarget(deliverTarget);
                deliver.setDeliveryList(deliveryList);
                deliver.setModule(getModule());
                deliver.setOrganisation(getOrganisation());
                deliver.setPubdate(DateUtil.format(pubdate));
                deliver.setPubrevision(getPubrevision());
                deliver.setPubbranch(getPubbranch());
                deliver.setRevision(getRevision());
                deliver.setStatus(getStatus());
                deliver.setValidate(doValidate(settings));
                deliver.setReplacedynamicrev(isReplacedynamicrev());
                deliver.setMerge(merge);
                deliver.setConf(conf);

                deliver.execute();
            }

            ivy.publish(
                mrid,
                artifactspattern,
                publishResolverName,
                new PublishOptions().setPubrevision(getPubrevision()).setPubbranch(getPubbranch())
                        .setSrcIvyPattern(publishivy ? srcivypattern : null).setStatus(getStatus())
                        .setPubdate(pubdate)
                        .setExtraArtifacts(artifacts.toArray(new Artifact[artifacts.size()]))
                        .setValidate(doValidate(settings)).setOverwrite(overwrite)
                        .setUpdate(update).setMerge(merge).setWarnOnMissing(warnonmissing)
                        .setHaltOnMissing(haltonmissing).setConfs(splitToArray(conf)));
        } catch (Exception e) {
            if (e instanceof BuildException) {
                throw (BuildException) e;
            }
            throw new BuildException("impossible to publish artifacts for " + mrid + ": " + e, e);
        }
    }