Author: dblevins
Date: Mon Apr 22 03:10:54 2013
New Revision: 1470379

URL: http://svn.apache.org/r1470379
Log:
fixed velocity issue in swizzle-jirareport 1.6.3-SNAPSHOT
smarter logic for release notes
votes email now updated for latest infra changes -- new svn staging area for 
binaries
update jiras script for pulling changes from svn and updating jira versions

Modified:
    tomee/sandbox/release-tools/pom.xml
    
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
    
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
    
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
    tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm
    tomee/sandbox/release-tools/src/main/resources/vote.vm

Modified: tomee/sandbox/release-tools/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/pom.xml?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- tomee/sandbox/release-tools/pom.xml (original)
+++ tomee/sandbox/release-tools/pom.xml Mon Apr 22 03:10:54 2013
@@ -105,7 +105,7 @@
     <dependency>
       <groupId>org.codehaus.swizzle</groupId>
       <artifactId>swizzle-jirareport</artifactId>
-      <version>1.6.2</version>
+      <version>1.6.3-SNAPSHOT</version>
       <exclusions>
         <exclusion>
           <groupId>velocity</groupId>

Modified: 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
URL: 
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
 (original)
+++ 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
 Mon Apr 22 03:10:54 2013
@@ -47,37 +47,14 @@ public class Upgrades {
 
     public List<Issue> getIssues() throws Exception {
 
-        Server server = Maven.settings.getServer("apache.jira");
-        final String username = server.getUsername();
-        final String password = server.getPassword();
-
-        final Options options = new Options(System.getProperties());
-        Jira jira = new Jira("https://issues.apache.org/jira/rpc/xmlrpc";);
-        jira.login(username, password);
-
         final List<String> missing = new ArrayList<String>();
         final List<String> urls = new ArrayList<String>();
 
         for (Upgrade upgrade : upgrades) {
-            final Project project = jira.getProject(upgrade.getKey());
-
-            if (project == null) {
-                missing.add(upgrade.getKey());
-            }
+            final String key = upgrade.getKey();
 
             for (String version : upgrade.getVersions()) {
-                try {
-
-                    final Version ver = jira.getVersion(project, version);
-
-                    if (ver == null) {
-                        missing.add(project + ":" + version);
-                        continue;
-                    }
-
-                    
urls.add(String.format("https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&pid=%s&status=5&status=6&fixfor=%s&tempMax=1000&reset=true&decorator=none";,
 project.getId(), ver.getId()));
-                } catch (Exception e) {
-                }
+                
urls.add("https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+";
 + key + "+AND+fixVersion+%3D+%22" + version + 
"%22+AND+status+in+%28Resolved%2C+Closed%29&tempMax=1000");
             }
         }
 

Modified: 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
URL: 
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
 (original)
+++ 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
 Mon Apr 22 03:10:54 2013
@@ -22,10 +22,12 @@ import org.apache.openejb.tools.release.
 import org.apache.openejb.tools.release.Maven;
 import org.apache.openejb.tools.release.Release;
 import org.apache.openejb.tools.release.util.Exec;
+import org.apache.openejb.tools.release.util.IO;
 import org.apache.openejb.tools.release.util.ObjectList;
 import org.apache.openejb.tools.release.util.Options;
 import org.codehaus.swizzle.jira.Issue;
 import org.codehaus.swizzle.jira.Jira;
+import org.codehaus.swizzle.jira.Status;
 import org.codehaus.swizzle.jira.Version;
 
 import javax.xml.bind.JAXBContext;
@@ -34,13 +36,18 @@ import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
+import java.util.concurrent.Semaphore;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @version $Rev$ $Date$
@@ -50,62 +57,80 @@ public class UpdateJiras {
 
     private static SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
 
-    public static void main(String... args) throws Exception {
+    public static void _main(String... args) throws Exception {
 
         final String tag = Release.tags + Release.openejbVersionName;
 
         updateJiraFixVersions(tag, "HEAD", "{" + Release.lastReleaseDate + 
"}", Release.tomeeVersion, Release.openejbVersion);
     }
 
-    public static void _main(String[] args) throws Exception {
-        
updateJiraFixVersions("http://svn.apache.org/repos/asf/openejb/trunk/openejb/";, 
"1364034","1364034", "1.1.0" ,"4.1.0");
+    public static void main(String[] args) throws Exception {
+
+//        final List<String> jiraKeys = 
getJiraKeys("TOMEE-1TOMEE-2TOMEE-3TOMEE-4");
+//        for (String jiraKey : jiraKeys) {
+//            System.out.println(jiraKey);
+//        }
+
+        
updateJiraFixVersions("http://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.5.2";,
 "1417791","HEAD", "1.5.2" ,"4.5.2");
     }
 
+    static final Pattern pattern = Pattern.compile("((OPENEJB|TOMEE)-[0-9]+)");
+
     private static void updateJiraFixVersions(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 JAXBContext context = JAXBContext.newInstance(Commit.Log.class);
-        final Unmarshaller unmarshaller = context.createUnmarshaller();
+        final String content = IO.slurp(in).toUpperCase();
+        System.out.println(content);
+        final Set<String> keys = new HashSet<String>(getJiraKeys(content));
 
-        final Commit.Log log = (Commit.Log) unmarshaller.unmarshal(in);
+        for (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);
 
-        { // Collect the work that made it into the release
-            ObjectList<Commit> commits = log.getCommits();
-            commits = commits.ascending("revision");
-
-            mine:
-            for (Commit commit : commits) {
-                final String[] tokens = 
commit.getMessage().toUpperCase().split("[^A-Z0-9-]+");
-                for (String token : tokens) {
-                    if (token.matches("(OPENEJB|TOMEE)-[0-9]+")) {
-                        try {
-                            state.get(token).add(commit);
-//                            break mine;
-                        } catch (Exception e) {
-                            System.err.printf("Bad issue %s\n", token);
-                        }
-                    }
-                }
+
+        jiras: for (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 (Version fixVersion : fixVersions) {
+                if (fixVersion.getReleased()) continue jiras;
             }
-        }
 
-        // Close those jiras with links to the commits
-        for (IssueCommits ic : state.map.values()) {
-            final Issue issue = ic.getIssue();
+            Version version = null;
+            if (issue.getKey().startsWith("TOMEE")) {
+                version = tomee;
+            }
 
-            final StringBuilder comment = new StringBuilder();
-            for (Commit commit : ic.getCommits()) {
-                comment.append(String.format("%s - 
http://svn.apache.org/viewvc?view=revision&revision=%s - %s\n", 
date.format(commit.getDate()), commit.getRevision(), commit.getAuthor()));
+            if (issue.getKey().startsWith("OPENEJB")) {
+                version = openejb;
             }
 
-            try {
-                System.out.println("\n\n" + comment);
-                System.out.printf("Adding comment to %s\n", issue.getKey());
-//                state.jira.addComment(issue.getKey(), comment.toString());
-            } catch (Exception e) {
-                synchronized (System.out) {
+            System.out.println("Updating " + key);
+            final Set<String> ids = new HashSet<String>();
+            for (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 (Exception e) {
                     e.printStackTrace();
                 }
             }
@@ -146,6 +171,26 @@ public class UpdateJiras {
         }
     }
 
+    private static boolean isClosed(Issue issue) {
+        final String name = issue.getStatus().getName();
+        if ("Closed".equals(name)) return true;
+        if ("Resolved".equals(name)) return true;
+
+        return false;
+    }
+
+    private static List<String> getJiraKeys(String message) {
+        final Matcher matcher = pattern.matcher(message);
+
+        final List<String> list = new ArrayList<String>();
+
+        while (matcher.find()) {
+            list.add(matcher.group());
+        }
+
+        return list;
+    }
+
     private static void call(Jira jira, String command, Object... args) throws 
NoSuchMethodException, IllegalAccessException, InvocationTargetException {
         final Method method = Jira.class.getDeclaredMethod("call", 
String.class, Object[].class);
         method.setAccessible(true);
@@ -167,7 +212,7 @@ public class UpdateJiras {
             jira.login(username, password);
         }
 
-        public IssueCommits get(String key) {
+        public synchronized IssueCommits get(String key) {
             final IssueCommits commits = map.get(key);
             if (commits != null) return commits;
 
@@ -200,7 +245,7 @@ public class UpdateJiras {
             return commits;
         }
 
-        public void add(Commit commit) {
+        public synchronized void add(Commit commit) {
             this.commits.add(commit);
         }
 

Modified: 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
URL: 
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
 (original)
+++ 
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
 Mon Apr 22 03:10:54 2013
@@ -24,6 +24,9 @@ import org.apache.creadur.tentacles.Temp
 import java.io.IOException;
 import java.io.OutputStream;
 import java.lang.reflect.Field;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
 
 /**
  * @version $Rev$ $Date$
@@ -43,13 +46,17 @@ public class Vote {
             }
         }
 
+        final Date end = new Date(System.currentTimeMillis() + 
TimeUnit.HOURS.toMillis(72));
+        final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("E 
hh:mma z");
+        template.add("endDateUS", simpleDateFormat.format(end));
+
         final String email = template.apply();
 
         System.out.println(email);
 
-        final OutputStream out = Exec.write("ssh", "people.apache.org", 
"/usr/sbin/sendmail -it");
-        out.write(email.getBytes());
-        out.flush();
-        out.close();
+//        final OutputStream out = Exec.write("ssh", "people.apache.org", 
"/usr/sbin/sendmail -it");
+//        out.write(email.getBytes());
+//        out.flush();
+//        out.close();
     }
 }

Modified: tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm
URL: 
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm 
(original)
+++ tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm Mon 
Apr 22 03:10:54 2013
@@ -2,16 +2,8 @@
 #set( $upgrades = $utils.load("org.apache.openejb.tools.release.Upgrades") )
 #set( $upgrades = $upgrades.add("TOMEE", [$tomeeVersion]) )
 #set( $upgrades = $upgrades.add("OPENEJB", [$openejbVersion]) )
-#set( $upgrades = $upgrades.add("OWB", ["1.1.7"]) )
-#set( $upgrades = $upgrades.add("AMQ", ["5.7.0"]) )
-#set( $upgrades = $upgrades.add("CXF", ["2.6.3"]) )
-#set( $upgrades = $upgrades.add("MYFACES", ["2.1.10"]) )
 #set( $issues = $upgrades.issues.unique("key") )
 
-Apache TomEE $version
-
-$date
-
 <h2>Upgrades</h2>
 
 <ul>

Modified: tomee/sandbox/release-tools/src/main/resources/vote.vm
URL: 
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/resources/vote.vm?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- tomee/sandbox/release-tools/src/main/resources/vote.vm (original)
+++ tomee/sandbox/release-tools/src/main/resources/vote.vm Mon Apr 22 03:10:54 
2013
@@ -1,4 +1,4 @@
-Subject: [VOTE] OpenEJB $openejbVersion/TomEE $tomeeVersion (staging-$build)
+Subject: [VOTE] TomEE $tomeeVersion/OpenEJB $openejbVersion (staging-$build)
 To: $to
 From: $from
 
@@ -6,7 +6,7 @@ From: $from
 
 SVN Tag:
 
- $tags$openejbVersionName/
+ $tags$tomeeVersionName/
 
 Maven Repo:
 
@@ -14,12 +14,8 @@ Maven Repo:
 
 Binaries & Source:
 
- http://people.apache.org/~$user/staging-$build/$openejbVersionName/
+ https://dist.apache.org/repos/dist/dev/tomee/staging-$build/$tomeeVersionName
 
-Legal:
 
- http://people.apache.org/~$user/staging-$build/legal/archives.html
-
-
-Vote will be open for 72 hours or as needed.
+Vote will be open for 72 hours ($endDate) or as needed.
 


Reply via email to