private static void updateJiraFixVersions()

in src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java [66:160]


    private static void updateJiraFixVersions(final String repo, final String start, final String end, final String tomeeVersion, final String openejbVersion) throws Exception {
        final InputStream in = Exec.read("svn", "log", "--verbose", "--xml", "-r" + start + ":" + end, repo);

        final String content = IO.slurp(in).toUpperCase();
        System.out.println(content);
        final Set<String> keys = new HashSet<String>(getJiraKeys(content));

        for (final String key : keys) {
            System.out.println(key);
        }

        final State state = new State();
        final Version tomee = state.jira.getVersion("TOMEE", tomeeVersion);
        final Version openejb = state.jira.getVersion("OPENEJB", openejbVersion);


        jiras:
        for (final String key : keys) {
            if ("TOMEE-1".equals(key)) continue;

            final Issue issue = state.jira.getIssue(key);
            if (issue == null) continue;

            final List<Version> fixVersions = issue.getFixVersions();

            for (final Version fixVersion : fixVersions) {
                if (fixVersion.getReleased()) continue jiras;
            }

            Version version = null;
            if (issue.getKey().startsWith("TOMEE")) {
                version = tomee;
            }

            if (issue.getKey().startsWith("OPENEJB")) {
                version = openejb;
            }

            System.out.println("Updating " + key);
            final Set<String> ids = new HashSet<String>();
            for (final Version v : issue.getFixVersions()) {
                if (v.getName().equals("1.6.0.beta1")) continue;
                ids.add(v.getId() + "");
            }

            final int versions = ids.size();
            ids.add(version.getId() + "");

            if (versions != ids.size()) {
                try {
                    System.out.printf("Adding version to %s\n", issue.getKey());

                    final Hashtable map = new Hashtable();
                    map.put("fixVersions", new Vector(ids));
                    call(state.jira, "updateIssue", issue.getKey(), map);
                } catch (final Exception e) {
                    e.printStackTrace();
                }
            }
        }

        // Close those jiras with links to the commits
        if (false) for (final IssueCommits ic : state.map.values()) {
            final Issue issue = ic.getIssue();

            final Version version;
            if (issue.getKey().startsWith("TOMEE-")) {
                version = state.jira.getVersion("TOMEE", tomeeVersion);
            } else if (issue.getKey().startsWith("OPENEJB-")) {
                version = state.jira.getVersion("OPENEJB", openejbVersion);
            } else {
                continue;
            }

            final Set<String> ids = new HashSet<String>();
            for (final Version v : issue.getFixVersions()) {
                ids.add(v.getId() + "");
            }

            final int versions = ids.size();
            ids.add(version.getId() + "");

            if (versions != ids.size()) {
                try {
                    System.out.printf("Adding version to %s\n", issue.getKey());

                    final Hashtable map = new Hashtable();
                    map.put("fixVersions", new Vector(ids));
                    call(state.jira, "updateIssue", issue.getKey(), map);
                } catch (final Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }