Author: tchemit Date: 2009-09-12 01:29:25 +0200 (Sat, 12 Sep 2009) New Revision: 87 Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineConfigurationHelper.java maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineDataHelper.java maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DisplayDataMojo.java maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DownloadDataMojo.java maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java Log: fix when bug when host can not be reached Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineConfigurationHelper.java =================================================================== --- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineConfigurationHelper.java 2009-09-11 22:10:54 UTC (rev 86) +++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineConfigurationHelper.java 2009-09-11 23:29:25 UTC (rev 87) @@ -54,8 +54,12 @@ session = openSession(config, log); } catch (Exception e) { - log.error("could not open session to redmin server for reason : " + e.getMessage(), e); - throw e; + log.warn("could not open session to redmin server for reason : " + e.getMessage()); + if (config.isVerbose()) { + log.error("could not open session to redmin server for reason : " + e.getMessage(), e); + } + config.setOffline(true); + config.setOverwrite(false); } } Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineDataHelper.java =================================================================== --- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineDataHelper.java 2009-09-11 22:10:54 UTC (rev 86) +++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/RedmineDataHelper.java 2009-09-11 23:29:25 UTC (rev 87) @@ -231,9 +231,9 @@ reload = false; } boolean old = dataProvider.isOverwrite(); - if (reload) { - dataProvider.setOverwrite(true); - } +// if (reload) { + dataProvider.setOverwrite(reload); +// } try { T[] datas = dataProvider.getDatas(type, projectId, versionId); @@ -257,9 +257,9 @@ reload = false; } boolean old = dataProvider.isOverwrite(); - if (reload) { - dataProvider.setOverwrite(true); - } +// if (reload) { + dataProvider.setOverwrite(reload); +// } try { T data = dataProvider.getData(type, projectId, versionId); Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DisplayDataMojo.java =================================================================== --- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DisplayDataMojo.java 2009-09-11 22:10:54 UTC (rev 86) +++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DisplayDataMojo.java 2009-09-11 23:29:25 UTC (rev 87) @@ -43,19 +43,27 @@ @Override protected boolean init() throws Exception { - redmineDataTypes = getRedmineDataTypes(types, - RedmineDataType.issueStatuses, - RedmineDataType.issuePriorities, - RedmineDataType.issueCategories, - RedmineDataType.trackers, - RedmineDataType.users); + boolean init = super.init(); + if (init) { + if (offline) { + // can not download data where offline + getLog().warn("can not download data when offline flag is on, goal is skip"); + return false; + } + redmineDataTypes = getRedmineDataTypes(types, + RedmineDataType.issueStatuses, + RedmineDataType.issuePriorities, + RedmineDataType.issueCategories, + RedmineDataType.trackers, + RedmineDataType.users); - if (redmineDataTypes.length == 0) { - // no data to treate - getLog().warn("no data types detected, you must fill the required parameter dataTypes"); - return false; + if (redmineDataTypes.length == 0) { + // no data to treate + getLog().warn("no data types detected, you must fill the required parameter dataTypes"); + init = false; + } } - return super.init(); + return init; } @Override Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DownloadDataMojo.java =================================================================== --- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DownloadDataMojo.java 2009-09-11 22:10:54 UTC (rev 86) +++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/DownloadDataMojo.java 2009-09-11 23:29:25 UTC (rev 87) @@ -1,7 +1,6 @@ package org.nuiton.redmine.plugin; import java.io.File; -import org.apache.maven.plugin.MojoFailureException; import org.nuiton.redmine.RedmineDataType; import org.nuiton.util.PluginHelper; @@ -47,19 +46,23 @@ @Override protected boolean init() throws Exception { - if (offline) { - // can not download data where offline - throw new MojoFailureException("can not download data when offline flag is on"); - } + boolean init = super.init(); + if (init) { + if (offline) { + // can not download data where offline + getLog().warn("can not download data when offline flag is on, goal is skip"); + return false; + } - redmineDataTypes = getRedmineDataTypes(types); + redmineDataTypes = getRedmineDataTypes(types); - if (redmineDataTypes.length == 0) { - // no data to treate - getLog().warn("no data types detected, you must fill the required parameter dataTypes"); - return false; + if (redmineDataTypes.length == 0) { + // no data to treate + getLog().warn("no data types detected, you must fill the required parameter dataTypes"); + init = false; + } } - return super.init(); + return init; } @Override @@ -72,11 +75,11 @@ } File f = helper.uptodateLocalDataFile(type); - + getLog().info("data [" + type + "] stored in " + f); if (verbose) { String t = PluginHelper.readAsString(f, encoding); - getLog().info(t); + getLog().info(t); } } Modified: maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java =================================================================== --- maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java 2009-09-11 22:10:54 UTC (rev 86) +++ maven-redmine-plugin/trunk/src/main/java/org/nuiton/redmine/plugin/GenerateChangesMojo.java 2009-09-11 23:29:25 UTC (rev 87) @@ -161,190 +161,199 @@ return false; } - // check project exists - try { - Project p = helper.getProject(true); - this.redmineProject = p; - } catch (RedmineDataException e) { - throw new MojoExecutionException("the project named '" + projectId + "' does not exists on redmine server...", e); - } + // check project exists - // get version - try { - Version v = helper.getVersion(true); - this.releaseVersion = v; - } catch (RedmineDataException e) { - // la version n'existe pas - // must create a new version - // must create a versions ? - getLog().warn("the version " + versionId + " does not exist, will create it on redmine"); - if (offline) { - throw new MojoExecutionException("offline is on, can not reach nuiton server"); + try { + Project p = helper.getProject(); + this.redmineProject = p; + } catch (RedmineDataException e) { + throw new MojoExecutionException("the project named '" + projectId + "' does not exists on redmine server...", e); } - //TODO use rest/add_versions - // and reload versions - this.needCreateVersion = true; - } - // get user - try { - User user = helper.getUserByLogin(overwrite, redmineUsername); + // get version + try { + Version v = helper.getVersion(); + this.releaseVersion = v; + } catch (RedmineDataException e) { + // la version n'existe pas + // must create a new version + // must create a versions ? + getLog().warn("the version " + versionId + " does not exist, will create it on redmine"); + if (offline) { + throw new MojoExecutionException("offline is on, can not reach nuiton server"); + } + //TODO use rest/add_versions + // and reload versions + this.needCreateVersion = true; + } - if (user == null) { - throw new MojoExecutionException("user named " + redmineUsername + "' is not part of the project, can not execute the plugin..."); + // get user + try { + User user = helper.getUserByLogin(overwrite, redmineUsername); + + if (user == null) { + throw new MojoExecutionException("user named " + redmineUsername + "' is not part of the project, can not execute the plugin..."); + } + this.redmineUser = user; + } catch (RedmineDataException e) { + throw new MojoExecutionException("the user named '" + redmineUsername + "' could not be found on the project, can not execute the plugin...", e); } - this.redmineUser = user; - } catch (RedmineDataException e) { - throw new MojoExecutionException("the user named '" + redmineUsername + "' could not be found on the project, can not execute the plugin...", e); - } - // get trackers + // get trackers - Tracker[] trackers; - try { + Tracker[] trackers; + try { - trackers = helper.getTrackers(overwrite); + trackers = helper.getTrackers(overwrite); - } catch (RedmineDataException e) { - throw new MojoExecutionException("could not obtain trackers for reason " + e.getMessage(), e); - } + } catch (RedmineDataException e) { + throw new MojoExecutionException("could not obtain trackers for reason " + e.getMessage(), e); + } - // get statuses + // get statuses - IssueStatus[] statuses; - try { + IssueStatus[] statuses; + try { - statuses = helper.getIssueSatuses(overwrite); + statuses = helper.getIssueSatuses(overwrite); - } catch (RedmineDataException e) { - throw new MojoExecutionException("could not obtain statuses for reason " + e.getMessage(), e); - } + } catch (RedmineDataException e) { + throw new MojoExecutionException("could not obtain statuses for reason " + e.getMessage(), e); + } - // get categories + // get categories - IssueCategory[] categories; - try { + IssueCategory[] categories; + try { - categories = helper.getIssueCategories(overwrite); + categories = helper.getIssueCategories(overwrite); - } catch (RedmineDataException e) { - throw new MojoExecutionException("could not obtain categories for reason " + e.getMessage(), e); - } + } catch (RedmineDataException e) { + throw new MojoExecutionException("could not obtain categories for reason " + e.getMessage(), e); + } - // get versions + // get versions - try { + try { - versions = helper.getVersions(overwrite); + versions = helper.getVersions(overwrite); - } catch (RedmineDataException e) { - throw new MojoExecutionException("could not obtain versions for reason " + e.getMessage(), e); - } + } catch (RedmineDataException e) { + throw new MojoExecutionException("could not obtain versions for reason " + e.getMessage(), e); + } - filters = new HashMap<String, String>(); + filters = new HashMap<String, String>(); - // build trackerToAction and tracker filter + // build trackerToAction and tracker filter - trackerToAction = new HashMap<Integer, String>(); + trackerToAction = new HashMap<Integer, String>(); - String[] entries = actionMapping.split(","); - StringBuilder buffer = new StringBuilder(); - for (String entry : entries) { - String[] parts = entry.split(":"); - if (parts.length != 2) { - // error in syntax - throw new MojoExecutionException("the trackerMapping entry " + Arrays.toString(parts) + " is not well formed"); - } - String action = parts[0].trim().toLowerCase(); + String[] entries = actionMapping.split(","); + StringBuilder buffer = new StringBuilder(); + for (String entry : entries) { + String[] parts = entry.split(":"); + if (parts.length != 2) { + // error in syntax + throw new MojoExecutionException("the trackerMapping entry " + Arrays.toString(parts) + " is not well formed"); + } + String action = parts[0].trim().toLowerCase(); - try { - Actions.valueOf(action); - } catch (Exception e) { - throw new MojoExecutionException("the action " + action + " is unknown... authorized : " + Arrays.toString(Actions.values())); - } + try { + Actions.valueOf(action); + } catch (Exception e) { + throw new MojoExecutionException("the action " + action + " is unknown... authorized : " + Arrays.toString(Actions.values())); + } - Integer id = Integer.valueOf(parts[1].trim()); + Integer id = Integer.valueOf(parts[1].trim()); - Tracker t = Tracker.getTrackerById(id, trackers); + Tracker t = Tracker.getTrackerById(id, trackers); - if (t == null) { - throw new MojoExecutionException("could not obtain the tracker with id " + id); + if (t == null) { + throw new MojoExecutionException("could not obtain the tracker with id " + id); + } + + trackerToAction.put(id, action); + buffer.append(",").append(id); } - trackerToAction.put(id, action); - buffer.append(",").append(id); - } + filters.put("tracker", buffer.substring(1)); - filters.put("tracker", buffer.substring(1)); + // create status filters - // create status filters + for (String s : statusIds.split(",")) { + Integer id = Integer.valueOf(s.trim()); - for (String s : statusIds.split(",")) { - Integer id = Integer.valueOf(s.trim()); + IssueStatus t = IssueStatus.getIssueStatusById(id, statuses); - IssueStatus t = IssueStatus.getIssueStatusById(id, statuses); - - if (t == null) { - throw new MojoExecutionException("could not obtain the status with id " + id); + if (t == null) { + throw new MojoExecutionException("could not obtain the status with id " + id); + } } - } - filters.put("status", statusIds); + filters.put("status", statusIds); - if (categoryIds != null && !categoryIds.trim().isEmpty()) { + if (categoryIds != null && !categoryIds.trim().isEmpty()) { - // create category filters + // create category filters - for (String s : categoryIds.split(",")) { - Integer id = Integer.valueOf(s.trim()); + for (String s : categoryIds.split(",")) { + Integer id = Integer.valueOf(s.trim()); - IssueCategory t = IssueCategory.getIssueCategoryById(id, categories); + IssueCategory t = IssueCategory.getIssueCategoryById(id, categories); - if (t == null) { - throw new MojoExecutionException("could not obtain the category with id " + id); + if (t == null) { + throw new MojoExecutionException("could not obtain the category with id " + id); + } } + + filters.put("category", categoryIds); } - filters.put("category", categoryIds); - } + // create version filters - // create version filters + List<Version> versionList = new ArrayList<Version>(); + if (onlyCurrentVersion) { + // nothing to do here, the issue collector will treate this simple case + versionList.add(releaseVersion); - List<Version> versionList = new ArrayList<Version>(); - if (onlyCurrentVersion) { - // nothing to do here, the issue collector will treate this simple case - versionList.add(releaseVersion); + } else { - } else { + buffer = new StringBuilder(); - buffer = new StringBuilder(); + for (Version v : versions) { - for (Version v : versions) { + int id = v.getId(); - int id = v.getId(); + boolean keep = true; + if (id != releaseVersion.getId()) { - boolean keep = true; - if (id != releaseVersion.getId()) { + //TODO TC-20090914 make this better, since this is a very soft test + // to test only the effective date - //TODO TC-20090914 make this better, since this is a very soft test - // to test only the effective date + if (v.getEffectiveDate() == null) { + // skip this unclosed version + keep = false; + } + } - if (v.getEffectiveDate() == null) { - // skip this unclosed version - keep = false; + if (keep) { + + buffer.append(",").append(v.getName()); + versionList.add(v); } } - if (keep) { - - buffer.append(",").append(v.getName()); - versionList.add(v); - } + versions = versionList.toArray(new Version[versionList.size()]); + filters.put("version", buffer.substring(1)); } - - versions = versionList.toArray(new Version[versionList.size()]); - filters.put("version", buffer.substring(1)); + } catch (Exception e) { + if (verbose) { + getLog().warn("could not init the plugin for reason " + e.getMessage(), e); + } else { + getLog().warn("could not init the plugin for reason " + e.getMessage()); + } + result = false; } return result; } Modified: maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java =================================================================== --- maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java 2009-09-11 22:10:54 UTC (rev 86) +++ maven-redmine-plugin/trunk/src/test/java/org/nuiton/redmine/plugin/GenerateChangesMojoTest.java 2009-09-11 23:29:25 UTC (rev 87) @@ -38,7 +38,7 @@ // copy redmine test server configuration TestHelper.copyConfiguration(TestHelper.getTestConfiguration(GenerateChangesMojoTest.class.getSimpleName() + "-" + pomFile.getName()), mojo); - mojo.setVerbose(true); + // add a issue management IssueManagement i = new IssueManagement(); i.setSystem("redmine");