Jredmine-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
July 2012
- 1 participants
- 62 discussions
19 Jul '12
Author: tchemit
Date: 2012-07-19 11:09:40 +0200 (Thu, 19 Jul 2012)
New Revision: 320
Url: http://nuiton.org/repositories/revision/jredmine/320
Log:
fixes #2034: Updates to helper-m-p 1.5
fixes #937: Maven test utilise les properties de test de la distribution (introduce RedmineConfigurationUtil + update docs)
refs #2197: Can use api Key to connect to redmine (begin of it, but still not used by any redmine service, nor any mojo)
Added:
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineConfigurationUtil.java
Modified:
branches/jredmine-1.x/jredmine-client/pom.xml
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
branches/jredmine-1.x/jredmine-client/src/test/resources/test-config.properties
branches/jredmine-1.x/jredmine-maven-plugin/pom.xml
branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoTest.java
branches/jredmine-1.x/jredmine-maven-plugin/src/test/resources/test-config.properties
branches/jredmine-1.x/pom.xml
branches/jredmine-1.x/src/site/apt/tests.apt
Modified: branches/jredmine-1.x/jredmine-client/pom.xml
===================================================================
--- branches/jredmine-1.x/jredmine-client/pom.xml 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-client/pom.xml 2012-07-19 09:09:40 UTC (rev 320)
@@ -79,6 +79,11 @@
</dependency>
<dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
Added: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineConfigurationUtil.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineConfigurationUtil.java (rev 0)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineConfigurationUtil.java 2012-07-19 09:09:40 UTC (rev 320)
@@ -0,0 +1,362 @@
+package org.nuiton.jredmine;
+/*
+ * #%L
+ * JRedmine :: Client
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+
+import org.apache.commons.beanutils.BeanUtilsBean;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.io.rest.RestException;
+import org.nuiton.jredmine.rest.RedmineRestClient;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Properties;
+
+/**
+ * Helper methods about configuration.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public class RedmineConfigurationUtil {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(RedmineConfigurationUtil.class);
+
+ public static final String PROPERTY_PREFIX = "jredmine-test.";
+
+ protected RedmineConfigurationUtil() {
+ // avoid instance
+ }
+
+ public static RedmineServiceConfiguration obtainRedmineConfiguration(RedmineServiceConfiguration anoConf) throws IOException {
+
+ RedmineServiceConfiguration conf = newLogguedConfiguration(anoConf);
+
+ boolean ok = false;
+
+ RedmineRestClient client = new RedmineRestClient(conf);
+
+ try {
+
+ client.open();
+ ok = client.isOpen();
+ } catch (Exception e) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Could not connect to redmine with configuration: " + conf, e);
+ }
+
+ } finally {
+ try {
+ client.close();
+ } catch (RestException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not close session", e);
+ }
+ }
+ }
+
+ if (!ok) {
+
+ // try to connect anonymous
+ conf = cloneConfiguration(anoConf);
+
+ client = new RedmineRestClient(conf);
+
+ try {
+
+ client.open();
+ ok = client.isOpen();
+ } catch (Exception e) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Could not connect to redmine with configuration: " + conf, e);
+ }
+ } finally {
+ try {
+ client.close();
+ } catch (RestException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not close session", e);
+ }
+ }
+ }
+ }
+
+ if (!ok) {
+
+ // no conf available
+ conf = null;
+ }
+ return conf;
+ }
+
+ public static RedmineServiceConfiguration newAnonymousConfiguration(String propertiesFromEnv,
+ String classPathPropertiesLocation)
+ throws IOException {
+
+ Properties props = new Properties();
+
+ InputStream in = null;
+ try {
+ String jredmineConfiguration = System.getenv(propertiesFromEnv);
+ if (jredmineConfiguration == null) {
+ if (log.isWarnEnabled()) {
+ log.warn("Could not find environement variable " +
+ "'jredmine-test.properties' will use " +
+ "default test configuration");
+ }
+
+ in = RedmineConfigurationUtil.class.getResourceAsStream(classPathPropertiesLocation);
+ } else {
+
+ File file = new File(jredmineConfiguration);
+
+ if (!file.exists()) {
+ throw new IllegalStateException("Could not find " + jredmineConfiguration +
+ " file");
+ }
+ in = FileUtils.openInputStream(file);
+ }
+ props.load(in);
+ in.close();
+ } finally {
+ IOUtils.closeQuietly(in);
+ }
+
+ RedmineServiceConfiguration result = new SimpleRedmineServiceConfiguration();
+
+ overridePropertyFromProperties(result, "url", "restUrl", props);
+ overridePropertyFromProperties(result, "encoding", props);
+ overridePropertyFromProperties(result, "verbose", props);
+
+ overridePropertyFromEnv(result, "url", "restUrl");
+ overridePropertyFromEnv(result, "encoding");
+ overridePropertyFromEnv(result, "verbose");
+ result.setAnonymous(true);
+ return result;
+ }
+
+ public static RedmineServiceConfiguration newLogguedConfiguration(RedmineServiceConfiguration anoConf)
+ throws IOException {
+
+ // use anonymous configuration
+
+ RedmineServiceConfiguration result = cloneConfiguration(anoConf);
+
+ overridePropertyFromEnv(result, "login", "restUsername");
+ overridePropertyFromEnv(result, "password", "restPassword");
+ overridePropertyFromEnv(result, "apiKey", "apiKey");
+
+ result.setAnonymous(false);
+
+ return result;
+ }
+
+ public static RedmineServiceConfiguration cloneConfiguration(
+ RedmineServiceConfiguration src) {
+ RedmineServiceConfiguration dst = new SimpleRedmineServiceConfiguration();
+ dst.setRestUrl(src.getRestUrl());
+ dst.setRestUsername(src.getRestUsername());
+ dst.setRestPassword(src.getRestPassword());
+ dst.setApiKey(src.getApiKey());
+ dst.setEncoding(src.getEncoding());
+ dst.setVerbose(src.isVerbose());
+ dst.setAnonymous(src.isAnonymous());
+ return dst;
+ }
+
+ public static void copyConfiguration(RedmineServiceConfiguration src,
+ RedmineServiceConfiguration dst) {
+ dst.setRestUrl(src.getRestUrl());
+ dst.setRestUsername(src.getRestUsername());
+ dst.setRestPassword(src.getRestPassword());
+ dst.setApiKey(src.getApiKey());
+ dst.setEncoding(src.getEncoding());
+ dst.setVerbose(src.isVerbose());
+ dst.setAnonymous(src.isAnonymous());
+ }
+
+ protected static void overridePropertyFromProperties(RedmineServiceConfiguration conf,
+ String prop,
+ Properties props) throws IOException {
+ overridePropertyFromProperties(conf, prop, prop, props);
+ }
+
+ protected static void overridePropertyFromProperties(RedmineServiceConfiguration conf,
+ String prop,
+ String beanProp,
+ Properties props) throws IOException {
+ String value = props.getProperty(PROPERTY_PREFIX + prop);
+ if (StringUtils.isNotEmpty(value)) {
+ try {
+ BeanUtilsBean.getInstance().setProperty(conf, beanProp, value);
+ } catch (Exception e) {
+ throw new IOException(
+ "Could not set property '" + beanProp +
+ "' with value '" + value + "' to configuration");
+ }
+ }
+ }
+
+ protected static void overridePropertyFromEnv(RedmineServiceConfiguration conf,
+ String prop) throws IOException {
+ overridePropertyFromEnv(conf, prop, prop);
+ }
+
+ protected static void overridePropertyFromEnv(RedmineServiceConfiguration conf,
+ String prop,
+ String beanProp) throws IOException {
+ String value = System.getenv(PROPERTY_PREFIX + prop);
+ if (StringUtils.isNotEmpty(value) && !"null".equals(value)) {
+ try {
+ BeanUtilsBean.getInstance().setProperty(conf, beanProp, value);
+ } catch (Exception e) {
+ throw new IOException(
+ "Could not set property '" + prop +
+ "' with value '" + value + "' to configuration");
+ }
+ }
+ }
+
+ /**
+ * Configuration of a redmine service for test purposes.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.4
+ */
+ public static class SimpleRedmineServiceConfiguration implements RedmineServiceConfiguration {
+
+ URL restUrl;
+
+ String restUsername;
+
+ String restPassword;
+
+ boolean verbose;
+
+ boolean anonymous;
+
+ String encoding;
+
+ String apiKey;
+
+ @Override
+ public String getEncoding() {
+ return encoding;
+ }
+
+ @Override
+ public void setEncoding(String encoding) {
+ this.encoding = encoding;
+ }
+
+ @Override
+ public String getRestPassword() {
+ return restPassword;
+ }
+
+ @Override
+ public void setRestPassword(String restPassword) {
+ this.restPassword = restPassword;
+ }
+
+ @Override
+ public URL getRestUrl() {
+ return restUrl;
+ }
+
+ @Override
+ public void setRestUrl(URL restUrl) {
+ this.restUrl = restUrl;
+ }
+
+ @Override
+ public String getRestUsername() {
+ return restUsername;
+ }
+
+ @Override
+ public void setRestUsername(String restUsername) {
+ this.restUsername = restUsername;
+ }
+
+ @Override
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ @Override
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+ @Override
+ public boolean isAnonymous() {
+ return anonymous;
+ }
+
+ @Override
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ @Override
+ public String toString() {
+ ToStringBuilder b = new ToStringBuilder(
+ this,
+ ToStringStyle.MULTI_LINE_STYLE
+ );
+ b.append("redmineUrl", restUrl);
+ if (anonymous) {
+ b.append("anonymous", true);
+ } else {
+ b.append("redmineUsername", restUsername);
+ b.append("redminePassword", "***");
+ }
+ b.append("encoding", encoding);
+ b.append("verbose", verbose);
+ return b.toString();
+ }
+
+ @Override
+ public String getApiKey() {
+ return apiKey;
+ }
+
+ @Override
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
+ }
+}
Property changes on: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineConfigurationUtil.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-19 09:09:40 UTC (rev 320)
@@ -24,7 +24,6 @@
*/
import com.google.common.base.Strings;
-import com.google.common.collect.Maps;
import org.nuiton.io.rest.AbstractRequestFactory;
import org.nuiton.io.rest.RestMethod;
import org.nuiton.io.rest.RestRequestBuilder;
@@ -92,13 +91,13 @@
checkRequestArgs(1, "apiKey", args);
}
- @Override
- public Map<String, String> getHeaders(Object... args) {
- Map<String, String> headers = Maps.newHashMap();
- String apiKey = (String) args[0];
- headers.put("X-Redmine-API-Key", apiKey);
- return headers;
- }
+// @Override
+// public Map<String, String> getHeaders(Object... args) {
+// Map<String, String> headers = Maps.newHashMap();
+// String apiKey = (String) args[0];
+// headers.put("X-Redmine-API-Key", apiKey);
+// return headers;
+// }
});
// data with no scope requests
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-19 09:09:40 UTC (rev 320)
@@ -23,16 +23,10 @@
* #L%
*/
-import com.google.common.base.Charsets;
import com.google.common.collect.ArrayListMultimap;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.io.rest.RestException;
import org.nuiton.jredmine.model.Attachment;
import org.nuiton.jredmine.model.Issue;
import org.nuiton.jredmine.model.IssueCategory;
@@ -45,15 +39,10 @@
import org.nuiton.jredmine.model.User;
import org.nuiton.jredmine.model.Version;
import org.nuiton.jredmine.model.io.xpp3.RedmineDataConverter;
-import org.nuiton.jredmine.rest.RedmineRestClient;
-import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
import java.util.Date;
import java.util.List;
-import java.util.Properties;
/**
* TODO
@@ -88,81 +77,21 @@
return "1925";
}
+ public RedmineServiceConfiguration obtainRedmineConfiguration() throws IOException {
- protected RedmineServiceConfiguration obtainRedmineConfiguration() throws IOException {
-
- RedmineServiceConfiguration conf = newLogguedConfiguration();
-
- boolean ok = false;
-
- RedmineRestClient client = new RedmineRestClient(conf);
-
- try {
-
- client.open();
- ok = client.isOpen();
- } catch (Exception e) {
-
- if (log.isDebugEnabled()) {
- log.debug("Could not connect to redmine with configuration: " + conf, e);
- }
-
- } finally {
- try {
- client.close();
- } catch (RestException e) {
- if (log.isErrorEnabled()) {
- log.error("Could not close session", e);
- }
- }
- }
-
- if (!ok) {
-
- // try to connect anonymous
- conf = newAnonymousConfiguration();
-
- client = new RedmineRestClient(conf);
-
- try {
-
- client.open();
- ok = client.isOpen();
- } catch (Exception e) {
-
- if (log.isDebugEnabled()) {
- log.debug("Could not connect to redmine with configuration: " + conf, e);
- }
- } finally {
- try {
- client.close();
- } catch (RestException e) {
- if (log.isErrorEnabled()) {
- log.error("Could not close session", e);
- }
- }
- }
- }
-
- if (!ok) {
-
- // no conf available
- conf = null;
- }
- return conf;
+ return RedmineConfigurationUtil.obtainRedmineConfiguration(
+ newAnonymousConfiguration());
}
public RedmineServiceConfiguration newAnonymousConfiguration()
throws IOException {
- RedmineServiceConfiguration conf = new FakeRedmineServiceConfiguration();
- copyConfiguration(getAnonymousConfiguration(), conf);
+ RedmineServiceConfiguration conf = RedmineConfigurationUtil.cloneConfiguration(getAnonymousConfiguration());
return conf;
}
public RedmineServiceConfiguration newLogguedConfiguration()
throws IOException {
- RedmineServiceConfiguration conf = new FakeRedmineServiceConfiguration();
- copyConfiguration(getLogguedConfiguration(), conf);
+ RedmineServiceConfiguration conf = RedmineConfigurationUtil.cloneConfiguration(getLogguedConfiguration());
return conf;
}
@@ -183,56 +112,11 @@
protected RedmineServiceConfiguration getAnonymousConfiguration()
throws IOException {
if (anonymousConfiguration == null) {
+ anonymousConfiguration = RedmineConfigurationUtil.newAnonymousConfiguration(
+ "jredmine-test.properties",
+ "/test-config.properties"
+ );
- Properties props = new Properties();
-
- InputStream inputStream = null;
- try {
- String jredmineConfiguration = System.getenv("jredmine-test.properties");
- if (jredmineConfiguration == null) {
- if (log.isWarnEnabled()) {
- log.warn("Could not find environement variable " +
- "'jredmine-test.properties' will use " +
- "default test configuration");
- }
-
- inputStream = getClass().getResourceAsStream("/test-config.properties");
- } else {
-
- File file = new File(jredmineConfiguration);
-
- if (!file.exists()) {
- throw new IllegalStateException("Could not find " + jredmineConfiguration +
- " file");
- }
- inputStream = FileUtils.openInputStream(file);
- }
- props.load(inputStream);
- } finally {
- if (inputStream != null) {
- inputStream.close();
- }
- }
- anonymousConfiguration = new FakeRedmineServiceConfiguration();
-
- String url = props.getProperty("test.redmineUrl");
- anonymousConfiguration.setRestUrl(new URL(url));
-
- String e = props.getProperty("test.encoding");
- anonymousConfiguration.setEncoding(e);
-
- String verbose = props.getProperty("test.verbose");
- if (StringUtils.isNotEmpty(verbose)) {
- anonymousConfiguration.setVerbose(Boolean.valueOf(verbose));
- }
- anonymousConfiguration.setEncoding(Charsets.UTF_8.name());
- anonymousConfiguration.setAnonymous(true);
-
- verbose = System.getenv("jredmine-test.verbose");
- if (StringUtils.isNotEmpty(verbose)) {
- anonymousConfiguration.setVerbose(Boolean.valueOf(verbose));
- }
-
}
return anonymousConfiguration;
}
@@ -241,43 +125,12 @@
throws IOException {
if (logguedConfiguration == null) {
- // use anonymous configuration
-
RedmineServiceConfiguration anoConf = getAnonymousConfiguration();
- if (anoConf != null) {
- logguedConfiguration = new FakeRedmineServiceConfiguration();
- copyConfiguration(anoConf, logguedConfiguration);
-
- // get system login password from env
- String login = System.getenv("jredmine-test.login");
- String password = System.getenv("jredmine-test.password");
- String apiKey = System.getenv("jredmine-test.apiKey");
- if (!"null".equals(login)) {
- logguedConfiguration.setRestUsername(login);
- }
- if (!"null".equals(password)) {
- logguedConfiguration.setRestPassword(password);
- }
- if (!"null".equals(apiKey)) {
- logguedConfiguration.setApiKey(apiKey);
- }
- logguedConfiguration.setAnonymous(false);
- }
+ logguedConfiguration = RedmineConfigurationUtil.newLogguedConfiguration(anoConf);
}
return logguedConfiguration;
}
- protected void copyConfiguration(RedmineServiceConfiguration src,
- RedmineServiceConfiguration dst) {
- dst.setRestUrl(src.getRestUrl());
- dst.setRestUsername(src.getRestUsername());
- dst.setRestPassword(src.getRestPassword());
- dst.setApiKey(src.getApiKey());
- dst.setEncoding(src.getEncoding());
- dst.setVerbose(src.isVerbose());
- dst.setAnonymous(src.isAnonymous());
- }
-
public List<Attachment> getAttachments() {
return get(Attachment.class);
}
@@ -785,115 +638,4 @@
attachmentToAdd.setDescription("Description");
return attachmentToAdd;
}
-
- /**
- * Configuration of a redmine service for test purposes.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.4
- */
- public static class FakeRedmineServiceConfiguration implements RedmineServiceConfiguration {
-
- URL restUrl;
-
- String restUsername;
-
- String restPassword;
-
- boolean verbose;
-
- boolean anonymous;
-
- String encoding;
-
- String apiKey;
-
- @Override
- public String getEncoding() {
- return encoding;
- }
-
- @Override
- public void setEncoding(String encoding) {
- this.encoding = encoding;
- }
-
- @Override
- public String getRestPassword() {
- return restPassword;
- }
-
- @Override
- public void setRestPassword(String restPassword) {
- this.restPassword = restPassword;
- }
-
- @Override
- public URL getRestUrl() {
- return restUrl;
- }
-
- @Override
- public void setRestUrl(URL restUrl) {
- this.restUrl = restUrl;
- }
-
- @Override
- public String getRestUsername() {
- return restUsername;
- }
-
- @Override
- public void setRestUsername(String restUsername) {
- this.restUsername = restUsername;
- }
-
- @Override
- public boolean isVerbose() {
- return verbose;
- }
-
- @Override
- public void setVerbose(boolean verbose) {
- this.verbose = verbose;
- }
-
- @Override
- public boolean isAnonymous() {
- return anonymous;
- }
-
- @Override
- public void setAnonymous(boolean anonymous) {
- this.anonymous = anonymous;
- }
-
- @Override
- public String toString() {
- ToStringBuilder b = new ToStringBuilder(
- this,
- ToStringStyle.MULTI_LINE_STYLE
- );
- b.append("redmineUrl", restUrl);
- if (anonymous) {
- b.append("anonymous", true);
- } else {
- b.append("redmineUsername", restUsername);
- b.append("redminePassword", "***");
- }
- b.append("encoding", encoding);
- b.append("verbose", verbose);
- return b.toString();
- }
-
- @Override
- public String getApiKey() {
- return apiKey;
- }
-
- @Override
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
- }
}
Modified: branches/jredmine-1.x/jredmine-client/src/test/resources/test-config.properties
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/resources/test-config.properties 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-client/src/test/resources/test-config.properties 2012-07-19 09:09:40 UTC (rev 320)
@@ -23,6 +23,6 @@
# #L%
###
# default values for test configuration (see org.nuiton.jredmine.TestHelper)
-test.redmineUrl=http://nuiton.org
-test.encoding=UTF-8
-test.verbose=false
\ No newline at end of file
+jredmine-test.url=http://nuiton.org
+jredmine-test.encoding=UTF-8
+jredmine-test.verbose=false
\ No newline at end of file
Modified: branches/jredmine-1.x/jredmine-maven-plugin/pom.xml
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/pom.xml 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-maven-plugin/pom.xml 2012-07-19 09:09:40 UTC (rev 320)
@@ -63,11 +63,6 @@
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
-
- <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-19 09:09:40 UTC (rev 320)
@@ -23,21 +23,10 @@
* #L%
*/
-import com.google.common.base.Charsets;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.io.rest.RestException;
-import org.nuiton.jredmine.rest.RedmineRestClient;
-import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Properties;
/**
* TODO
@@ -72,15 +61,13 @@
public RedmineServiceConfiguration newAnonymousConfiguration()
throws IOException {
- RedmineServiceConfiguration conf = new FakeRedmineServiceConfiguration();
- copyConfiguration(getAnonymousConfiguration(), conf);
+ RedmineServiceConfiguration conf = RedmineConfigurationUtil.cloneConfiguration(getAnonymousConfiguration());
return conf;
}
public RedmineServiceConfiguration newLogguedConfiguration()
throws IOException {
- RedmineServiceConfiguration conf = new FakeRedmineServiceConfiguration();
- copyConfiguration(getLogguedConfiguration(), conf);
+ RedmineServiceConfiguration conf = RedmineConfigurationUtil.cloneConfiguration(getLogguedConfiguration());
return conf;
}
@@ -98,132 +85,14 @@
return service;
}
- public void copyConfiguration(RedmineServiceConfiguration src,
- RedmineServiceConfiguration dst) {
- dst.setRestUrl(src.getRestUrl());
- dst.setRestUsername(src.getRestUsername());
- dst.setRestPassword(src.getRestPassword());
- dst.setEncoding(src.getEncoding());
- dst.setVerbose(src.isVerbose());
- dst.setAnonymous(src.isAnonymous());
- }
-
- public RedmineServiceConfiguration obtainRedmineConfiguration() throws IOException {
-
- RedmineServiceConfiguration conf = newLogguedConfiguration();
-
- boolean ok = false;
-
- RedmineRestClient client = new RedmineRestClient(conf);
-
- try {
-
- client.open();
- ok = client.isOpen();
- } catch (Exception e) {
-
- if (log.isDebugEnabled()) {
- log.debug("Could not connect to redmine with configuration: " + conf, e);
- }
-
- } finally {
- try {
- client.close();
- } catch (RestException e) {
- if (log.isErrorEnabled()) {
- log.error("Could not close session", e);
- }
- }
- }
-
- if (!ok) {
-
- // try to connect anonymous
- conf = newAnonymousConfiguration();
-
- client = new RedmineRestClient(conf);
-
- try {
-
- client.open();
- ok = client.isOpen();
- } catch (Exception e) {
-
- if (log.isDebugEnabled()) {
- log.debug("Could not connect to redmine with configuration: " + conf, e);
- }
- } finally {
- try {
- client.close();
- } catch (RestException e) {
- if (log.isErrorEnabled()) {
- log.error("Could not close session", e);
- }
- }
- }
- }
-
- if (!ok) {
-
- // no conf available
- conf = null;
- }
- return conf;
- }
-
protected RedmineServiceConfiguration getAnonymousConfiguration()
throws IOException {
if (anonymousConfiguration == null) {
+ anonymousConfiguration = RedmineConfigurationUtil.newAnonymousConfiguration(
+ "jredmine-test.properties",
+ "/test-config.properties"
+ );
- Properties props = new Properties();
-
- InputStream inputStream = null;
- try {
- String jredmineConfiguration = System.getenv("jredmine-test.properties");
- if (jredmineConfiguration == null) {
- if (log.isWarnEnabled()) {
- log.warn("Could not find environement variable " +
- "'jredmine-test.properties' will use " +
- "default test configuration");
- }
-
- inputStream = getClass().getResourceAsStream("/test-config.properties");
- } else {
-
- File file = new File(jredmineConfiguration);
-
- if (!file.exists()) {
- throw new IllegalStateException("Could not find " + jredmineConfiguration +
- " file");
- }
- inputStream = FileUtils.openInputStream(file);
- }
- props.load(inputStream);
- } finally {
- if (inputStream != null) {
- inputStream.close();
- }
- }
- anonymousConfiguration = new FakeRedmineServiceConfiguration();
-
- String url = props.getProperty("test.redmineUrl");
- anonymousConfiguration.setRestUrl(new URL(url));
-
- String e = props.getProperty("test.encoding");
- anonymousConfiguration.setEncoding(e);
-
- String verbose = props.getProperty("test.verbose");
- if (StringUtils.isNotEmpty(verbose)) {
- anonymousConfiguration.setVerbose(Boolean.valueOf(verbose));
- }
- anonymousConfiguration.setEncoding(Charsets.UTF_8.name());
- anonymousConfiguration.setAnonymous(true);
-
- verbose = System.getenv("jredmine-test.verbose");
- if (StringUtils.isNotEmpty(verbose)) {
- anonymousConfiguration.setVerbose(Boolean.valueOf(verbose));
- }
-
}
return anonymousConfiguration;
}
@@ -232,136 +101,16 @@
throws IOException {
if (logguedConfiguration == null) {
- // use anonymous configuration
-
RedmineServiceConfiguration anoConf = getAnonymousConfiguration();
- if (anoConf != null) {
- logguedConfiguration = new FakeRedmineServiceConfiguration();
- copyConfiguration(anoConf, logguedConfiguration);
-
- // get system login password from env
- String login = System.getenv("jredmine-test.login");
- String password = System.getenv("jredmine-test.password");
- if (!"null".equals(login)) {
- logguedConfiguration.setRestUsername(login);
- }
- if (!"null".equals(password)) {
- logguedConfiguration.setRestPassword(password);
- }
- logguedConfiguration.setAnonymous(false);
- }
+ logguedConfiguration = RedmineConfigurationUtil.newLogguedConfiguration(anoConf);
}
return logguedConfiguration;
}
- /**
- * Configuration of a redmine service for test purposes.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.4
- */
- public static class FakeRedmineServiceConfiguration implements RedmineServiceConfiguration {
+ public RedmineServiceConfiguration obtainRedmineConfiguration() throws IOException {
- URL restUrl;
-
- String restUsername;
-
- String restPassword;
-
- boolean verbose;
-
- boolean anonymous;
-
- String encoding;
-
- String apiKey;
-
- @Override
- public String getEncoding() {
- return encoding;
- }
-
- @Override
- public void setEncoding(String encoding) {
- this.encoding = encoding;
- }
-
- @Override
- public String getRestPassword() {
- return restPassword;
- }
-
- @Override
- public void setRestPassword(String restPassword) {
- this.restPassword = restPassword;
- }
-
- @Override
- public URL getRestUrl() {
- return restUrl;
- }
-
- @Override
- public void setRestUrl(URL restUrl) {
- this.restUrl = restUrl;
- }
-
- @Override
- public String getRestUsername() {
- return restUsername;
- }
-
- @Override
- public void setRestUsername(String restUsername) {
- this.restUsername = restUsername;
- }
-
- @Override
- public boolean isVerbose() {
- return verbose;
- }
-
- @Override
- public void setVerbose(boolean verbose) {
- this.verbose = verbose;
- }
-
- @Override
- public boolean isAnonymous() {
- return anonymous;
- }
-
- @Override
- public void setAnonymous(boolean anonymous) {
- this.anonymous = anonymous;
- }
-
- @Override
- public String toString() {
- ToStringBuilder b = new ToStringBuilder(
- this,
- ToStringStyle.MULTI_LINE_STYLE
- );
- b.append("redmineUrl", restUrl);
- if (anonymous) {
- b.append("anonymous", true);
- } else {
- b.append("redmineUsername", restUsername);
- b.append("redminePassword", "***");
- }
- b.append("encoding", encoding);
- b.append("verbose", verbose);
- return b.toString();
- }
-
- @Override
- public String getApiKey() {
- return apiKey;
- }
-
- @Override
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
+ return RedmineConfigurationUtil.obtainRedmineConfiguration(
+ newAnonymousConfiguration());
}
+
}
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoTest.java 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoTest.java 2012-07-19 09:09:40 UTC (rev 320)
@@ -30,6 +30,7 @@
import org.codehaus.plexus.util.StringUtils;
import org.junit.After;
import org.junit.Assert;
+import org.nuiton.jredmine.RedmineConfigurationUtil;
import org.nuiton.jredmine.RedmineFixtures;
import org.nuiton.jredmine.RedmineServiceConfiguration;
import org.nuiton.plugin.AbstractMojoTest;
@@ -103,7 +104,7 @@
RedmineServiceConfiguration configuration = getConfiguration();
// copy redmine test server configuration
- getFixtures().copyConfiguration(configuration, mojo);
+ RedmineConfigurationUtil.copyConfiguration(configuration, mojo);
beforeMojoInit(mojo, pomFile);
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/resources/test-config.properties
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/resources/test-config.properties 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/resources/test-config.properties 2012-07-19 09:09:40 UTC (rev 320)
@@ -23,6 +23,6 @@
# #L%
###
# default values for test configuration (see org.nuiton.jredmine.TestHelper)
-test.redmineUrl=http://nuiton.org
-test.encoding=UTF-8
-test.verbose=false
\ No newline at end of file
+jredmine-test.url=http://nuiton.org
+jredmine-test.encoding=UTF-8
+jredmine-test.verbose=false
\ No newline at end of file
Modified: branches/jredmine-1.x/pom.xml
===================================================================
--- branches/jredmine-1.x/pom.xml 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/pom.xml 2012-07-19 09:09:40 UTC (rev 320)
@@ -536,7 +536,8 @@
<projectId>jredmine</projectId>
- <helperPluginVersion>1.5-SNAPSHOT</helperPluginVersion>
+ <!-- TODO Remove this when using mavenpom >= 3.3.5 -->
+ <helperPluginVersion>1.5</helperPluginVersion>
<!-- must be on a fixed version, not on the snapshot to make possible release -->
<jredminePluginVersion>1.3</jredminePluginVersion>
@@ -557,16 +558,17 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<environmentVariables>
- <test.redmineUrl>${test.redmineUrl}</test.redmineUrl>
- <jredmine-test.login>
- ${jredmine-test.login}
- </jredmine-test.login>
+ <jredmine-test.url>${jredmine-test.url}</jredmine-test.url>
+ <jredmine-test.login>${jredmine-test.login}</jredmine-test.login>
<jredmine-test.password>
${jredmine-test.password}
</jredmine-test.password>
<jredmine-test.verbose>
${jredmine-test.verbose}
</jredmine-test.verbose>
+ <jredmine-test.encoding>
+ ${jredmine-test.verbose}
+ </jredmine-test.encoding>
</environmentVariables>
</configuration>
</plugin>
Modified: branches/jredmine-1.x/src/site/apt/tests.apt
===================================================================
--- branches/jredmine-1.x/src/site/apt/tests.apt 2012-07-19 06:50:02 UTC (rev 319)
+++ branches/jredmine-1.x/src/site/apt/tests.apt 2012-07-19 09:09:40 UTC (rev 320)
@@ -36,29 +36,45 @@
Configuration de base
- Par défaut, les tests vont chercher dans un fichier dans le class-path
- nommé <<test-config.properties>> les informations de base pour communiquer
- avec un servuer redmine.
+ Par défaut, la configuration des tests est chargée à partir d'un fichier
+ properties (nommé <<test-config.properties>>) localisé dans le class-path.
Voici la configuration par défaut actuelle :
-------------------------------------------------------------------------------
-test.redmineUrl=http://nuiton.org
-test.encoding=UTF-8
-test.verbose=false
+jredmine-test.url=http://nuiton.org
+jredmine-test.encoding=UTF-8
+jredmine-test.verbose=false
-------------------------------------------------------------------------------
Cette configuration permet de tester uniquement les fonctionnalités non
authentifiés de l'api.
-Surcharger la configuration de base
+* Changer la configuration de base
+ Il est possible d'indiquer le chemin d'un fichier de configuration à utiliser
+ au lieu de celui fournit via une variable d'environnement nommée
+ <<jredmine-test.properties>>.
+
+ Exemple :
+
+-------------------------------------------------------------------------------
+mvn install -Djredmine-test.properties=/tmp/maConfig.properties
+-------------------------------------------------------------------------------
+
+* Surcharger la configuration de base
+
Il est possible de surcharger cette configuration de base en utilisant des
variables d'environnement :
- * <<test.redmineUrl>> : pour changer l'url du serveur redmine à utiliser
- * <<jredmine-test.verbose>> : pour changer la verbosité dans les tests.
+ * <<jredmine-test.url>> : pour changer l'url du serveur redmine à utiliser
+ * <<jredmine-test.encoding>> : pour changer l'encoding dans les tests
+
+ * <<jredmine-test.verbose>> : pour changer la verbosité dans les tests
+
+ []
+
Exemple :
-------------------------------------------------------------------------------
@@ -70,8 +86,12 @@
Des tests ont aussi été écrits pour tester les fonctionnées authentifiés
de l'api.
- Pour cela il faut fournir aux tests un login + password et ceci peut être fait de plusieurs manières différentes
+ Pour cela il faut fournir aux tests un login + password et ceci peut être
+ fait de plusieurs manières différentes.
+ A noter que dans la version 2.0, on pourra aussi utiliser un <<apiKey>> (voir
+ {{{http://nuiton.org/issues/2197}évolution 2197}}).
+
* Via des variables d'environnement
Renseigner les deux variables suivantes :
@@ -80,6 +100,8 @@
* <<jredmine-test.password>>
+ []
+
Exemple :
-------------------------------------------------------------------------------
@@ -93,7 +115,7 @@
Le serveur à utiliser est nommé <<jredmine-test>>
-Exemple :
+ Exemple :
-------------------------------------------------------------------------------
<!-- login to jredmine test -->
@@ -128,7 +150,7 @@
<!-- On crée un profile vide par défaut pour ne pas avoir de warning
pour les autres builds maven... ... -->
<profile>
- <id>jredmine-server-test</id>
+ <id>jredmine-test-profile</id>
</profile>
<!-- ... -->
@@ -136,12 +158,14 @@
<activeProfiles>
<!-- ... -->
- <activeProfile>jredmine-server-test</activeProfile>
+ <activeProfile>jredmine-test-profile</activeProfile>
</activeProfiles>
-------------------------------------------------------------------------------
Jeu de test
- En version <<2.0>> le jeu de test sera configurable et clairement spécifié.
+ En version <<2.0>> le jeu de test sera clairement spécifié pour permettre
+ une meilleure testabilité du projet
+ (voir {{{http://nuiton.org/issues/2201}évolution 2201}}).
Pour le moment, le projet testé est <<jredmine>> en version<<1.3>>.
1
0
19 Jul '12
Author: tchemit
Date: 2012-07-19 08:50:02 +0200 (Thu, 19 Jul 2012)
New Revision: 319
Url: http://nuiton.org/repositories/revision/jredmine/319
Log:
refs #2197: Can use api Key to connect to redmine (prepare api but do nothing in mojo...)
Modified:
branches/jredmine-1.x/jredmine-client/pom.xml
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/ModelHelper.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java
branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
Modified: branches/jredmine-1.x/jredmine-client/pom.xml
===================================================================
--- branches/jredmine-1.x/jredmine-client/pom.xml 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/pom.xml 2012-07-19 06:50:02 UTC (rev 319)
@@ -74,6 +74,11 @@
</dependency>
<dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -33,5 +33,8 @@
*/
public interface RedmineServiceConfiguration extends RestClientConfiguration {
+ String getApiKey();
+ void setApiKey(String apiKey);
+
}
\ No newline at end of file
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/ModelHelper.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/ModelHelper.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/ModelHelper.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -86,6 +86,8 @@
public static final String LOGIN_REQUEST_NAME = "Login";
+ public static final String LOGIN_BY_API_KEY_REQUEST_NAME = "LoginByAPiKey";
+
public static final String LOGOUT_REQUEST_NAME = "Logout";
public static final String PING_REQUEST_NAME = "Ping";
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -24,6 +24,7 @@
*/
import com.google.common.base.Strings;
+import com.google.common.collect.Maps;
import org.nuiton.io.rest.AbstractRequestFactory;
import org.nuiton.io.rest.RestMethod;
import org.nuiton.io.rest.RestRequestBuilder;
@@ -82,6 +83,24 @@
}
});
+ addRequestBuilder(new DefaultRequestBuilder(ModelHelper.LOGIN_BY_API_KEY_REQUEST_NAME, RestMethod.POST, "jredmine", "login") {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(1, "apiKey", args);
+ }
+
+ @Override
+ public Map<String, String> getHeaders(Object... args) {
+ Map<String, String> headers = Maps.newHashMap();
+ String apiKey = (String) args[0];
+ headers.put("X-Redmine-API-Key", apiKey);
+ return headers;
+ }
+ });
+
// data with no scope requests
addRequestBuilder(new DefaultRequestBuilder(ModelHelper.GET_ALL_PROJECT_REQUEST_NAME, RestMethod.GET, "jredmine", "get_projects.xml"));
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRestClient.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -29,11 +29,13 @@
import org.apache.commons.httpclient.StatusLine;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.codehaus.plexus.util.StringUtils;
import org.nuiton.io.rest.RequestFactory;
import org.nuiton.io.rest.RestClient;
import org.nuiton.io.rest.RestClientConfiguration;
import org.nuiton.io.rest.RestRequest;
import org.nuiton.io.rest.RestSession;
+import org.nuiton.jredmine.RedmineServiceConfiguration;
import org.nuiton.jredmine.model.ModelHelper;
import java.io.IOException;
@@ -130,10 +132,21 @@
protected void login(RestSession session) throws IOException {
- RestRequest request = getRequest(ModelHelper.LOGIN_REQUEST_NAME,
- configuration.getRestUsername(),
- configuration.getRestPassword());
+ RestRequest request;
+ String apiKey = getConfiguration().getApiKey();
+ boolean useApiKey = StringUtils.isNotBlank(apiKey);
+ if (useApiKey) {
+ // use api key to login
+ request = getRequest(ModelHelper.LOGIN_BY_API_KEY_REQUEST_NAME,
+ apiKey);
+ } else {
+ // use normal login / password
+ request = getRequest(ModelHelper.LOGIN_REQUEST_NAME,
+ configuration.getRestUsername(),
+ configuration.getRestPassword());
+ }
+
HttpMethod gm = session.doRequest(request);
StatusLine sl = gm.getStatusLine();
@@ -153,4 +166,8 @@
}
+ @Override
+ public RedmineServiceConfiguration getConfiguration() {
+ return (RedmineServiceConfiguration) super.getConfiguration();
+ }
}
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -32,7 +32,6 @@
import org.apache.commons.lang3.time.DateUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.io.rest.RestClientConfiguration;
import org.nuiton.io.rest.RestException;
import org.nuiton.jredmine.model.Attachment;
import org.nuiton.jredmine.model.Issue;
@@ -69,9 +68,9 @@
private ArrayListMultimap<Class<?>, Object> model;
- private RestClientConfiguration anonymousConfiguration;
+ private RedmineServiceConfiguration anonymousConfiguration;
- private RestClientConfiguration logguedConfiguration;
+ private RedmineServiceConfiguration logguedConfiguration;
public String projectName() {
return "jredmine";
@@ -181,7 +180,7 @@
return service;
}
- protected RestClientConfiguration getAnonymousConfiguration()
+ protected RedmineServiceConfiguration getAnonymousConfiguration()
throws IOException {
if (anonymousConfiguration == null) {
@@ -238,13 +237,13 @@
return anonymousConfiguration;
}
- protected RestClientConfiguration getLogguedConfiguration()
+ protected RedmineServiceConfiguration getLogguedConfiguration()
throws IOException {
if (logguedConfiguration == null) {
// use anonymous configuration
- RestClientConfiguration anoConf = getAnonymousConfiguration();
+ RedmineServiceConfiguration anoConf = getAnonymousConfiguration();
if (anoConf != null) {
logguedConfiguration = new FakeRedmineServiceConfiguration();
copyConfiguration(anoConf, logguedConfiguration);
@@ -252,23 +251,28 @@
// get system login password from env
String login = System.getenv("jredmine-test.login");
String password = System.getenv("jredmine-test.password");
+ String apiKey = System.getenv("jredmine-test.apiKey");
if (!"null".equals(login)) {
logguedConfiguration.setRestUsername(login);
}
if (!"null".equals(password)) {
logguedConfiguration.setRestPassword(password);
}
+ if (!"null".equals(apiKey)) {
+ logguedConfiguration.setApiKey(apiKey);
+ }
logguedConfiguration.setAnonymous(false);
}
}
return logguedConfiguration;
}
- protected void copyConfiguration(RestClientConfiguration src,
- RestClientConfiguration dst) {
+ protected void copyConfiguration(RedmineServiceConfiguration src,
+ RedmineServiceConfiguration dst) {
dst.setRestUrl(src.getRestUrl());
dst.setRestUsername(src.getRestUsername());
dst.setRestPassword(src.getRestPassword());
+ dst.setApiKey(src.getApiKey());
dst.setEncoding(src.getEncoding());
dst.setVerbose(src.isVerbose());
dst.setAnonymous(src.isAnonymous());
@@ -802,6 +806,8 @@
String encoding;
+ String apiKey;
+
@Override
public String getEncoding() {
return encoding;
@@ -879,5 +885,15 @@
b.append("verbose", verbose);
return b.toString();
}
+
+ @Override
+ public String getApiKey() {
+ return apiKey;
+ }
+
+ @Override
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
}
}
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -74,6 +74,11 @@
}
@Test
+ public void loginByApiKey() {
+ assertRequestParameters(assertRequestUrl("/jredmine/login", ModelHelper.LOGIN_BY_API_KEY_REQUEST_NAME, "apiKey"));
+ }
+
+ @Test
public void logout() {
assertRequestParameters(assertRequestUrl("/jredmine/logout", ModelHelper.LOGOUT_REQUEST_NAME));
}
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -27,6 +27,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.StringUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
@@ -196,8 +197,23 @@
askData(ModelHelper.GET_ALL_ATTACHMENTS_REQUEST_NAME, projectName, versionName);
}
+ @Test
+ public void login() throws Exception {
+ Assume.assumeTrue(!getConfiguration().isAnonymous());
+ Assume.assumeTrue(StringUtils.isBlank(getConfiguration().getApiKey()));
+ client.open();
+ }
+
@Test
+ public void loginByApiKey() throws Exception {
+
+ Assume.assumeTrue(!getConfiguration().isAnonymous());
+ Assume.assumeTrue(StringUtils.isNotBlank(getConfiguration().getApiKey()));
+ client.open();
+ }
+
+ @Test
public void getUserProjects() throws Exception {
Assume.assumeTrue(!getConfiguration().isAnonymous());
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -68,11 +68,22 @@
@Parameter(property = "redmine.url")
protected URL url;
+// /**
+// * The redmine's server login apiKey.
+// * <p/>
+// * <b>Note:</b> This parameter (or username/password) is mandatory if you
+// * not use a {@code anonymous} service.
+// *
+// * @since 2.0
+// */
+// @Parameter(property = "redmine.apiKey")
+// protected String apiKey;
+
/**
* The redmine's server login.
* <p/>
- * <b>Note:</b> : this parameter is mandatory if you not use a {@code anonymous} service.
- * configuration.
+ * <b>Note:</b> This parameter (or username/password) is mandatory if you
+ * not use a {@code anonymous} service.
*
* @since 1.0.0
*/
@@ -82,8 +93,8 @@
/**
* The redmine's server password.
* <p/>
- * <b>Note:</b> : this parameter is mandatory if you not use a {@code anonymous} service.
- * configuration.
+ * <b>Note:</b> This parameter (or username/password) is mandatory if you
+ * not use a {@code anonymous} service.
*
* @since 1.0.0
*/
@@ -183,9 +194,15 @@
getLog().info("Redmine anonymous configuration :\n>> host : " +
getRestUrl());
} else {
+// if (StringUtils.isNotBlank(apiKey)) {
+// getLog().info("Redmine configuration :\n>> host : " +
+// getRestUrl() + "\n>> apiKey: " +
+// getApiKey());
+// } else {
getLog().info("Redmine configuration :\n>> host : " +
getRestUrl() + "\n>> username : " +
getRestUsername());
+// }
}
}
@@ -316,6 +333,29 @@
username = restUsername;
}
+ /**
+ * <strong>Note:</strong> Still not used (will be in version 2.0)
+ *
+ * @return the api key
+ * @since 2.0
+ */
+ @Override
+ public String getApiKey() {
+ return null;
+// return apiKey;
+ }
+
+ /**
+ * <strong>Note:</strong> Still not used (will be in version 2.0)
+ *
+ * @param apiKey the niew api key to set
+ * @since 2.0
+ */
+ @Override
+ public void setApiKey(String apiKey) {
+// this.apiKey = apiKey;
+ }
+
///////////////////////////////////////////////////////////////////////////
/// Others
///////////////////////////////////////////////////////////////////////////
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/LoginMojo.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -101,6 +101,16 @@
@Parameter(property = "redmine.serverId", required = true)
protected String serverId;
+// /**
+// * Un flag pour utiliser le clef API pluto que le login/password.
+// * <p/>
+// * Il faut alors que le serveur contienne en username le clef API (encrypté ou non).
+// *
+// * @since 2.0
+// */
+// @Parameter(property = "redmine.useApiKey", defaultValue = "false")
+// private boolean useApiKey;
+
/**
* Settings.
*
@@ -137,6 +147,8 @@
private static final String REDMINE_PASSWORD = "redmine.password";
+ private static final String REDMINE_API_KEY = "redmine.apiKey";
+
///////////////////////////////////////////////////////////////////////////
/// Plugin
///////////////////////////////////////////////////////////////////////////
@@ -146,8 +158,12 @@
if (plugin == null) {
plugin = new ShareServerSecretPlugin();
plugin.setServerId(serverId);
- plugin.setUsernameOut(REDMINE_USERNAME);
- plugin.setPasswordOut(REDMINE_PASSWORD);
+// if (useApiKey) {
+// plugin.setUsernameOut(REDMINE_API_KEY);
+// } else {
+ plugin.setUsernameOut(REDMINE_USERNAME);
+ plugin.setPasswordOut(REDMINE_PASSWORD);
+// }
plugin.setRunOnce(true);
plugin.setProject(project);
@@ -213,7 +229,7 @@
plugin.setRunOnce(false);
plugin.execute();
plugin.setRunOnce(true);
-
+
if (!checkLogin) {
// no more thing to do
return;
@@ -339,4 +355,12 @@
this.safe = safe;
}
+ @Override
+ public String getApiKey() {
+ return project.getProperties().getProperty(REDMINE_API_KEY);
+ }
+
+ @Override
+ public void setApiKey(String apiKey) {
+ }
}
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-18 00:15:23 UTC (rev 318)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-19 06:50:02 UTC (rev 319)
@@ -274,6 +274,8 @@
String encoding;
+ String apiKey;
+
@Override
public String getEncoding() {
return encoding;
@@ -351,5 +353,15 @@
b.append("verbose", verbose);
return b.toString();
}
+
+ @Override
+ public String getApiKey() {
+ return apiKey;
+ }
+
+ @Override
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
}
}
1
0
r318 - in branches/jredmine-1.x/jredmine-client/src: main/java/org/nuiton/jredmine main/java/org/nuiton/jredmine/rest test/java/org/nuiton/jredmine/rest
by tchemit@users.nuiton.org 18 Jul '12
by tchemit@users.nuiton.org 18 Jul '12
18 Jul '12
Author: tchemit
Date: 2012-07-18 02:15:23 +0200 (Wed, 18 Jul 2012)
New Revision: 318
Url: http://nuiton.org/repositories/revision/jredmine/318
Log:
- clean unused code
- use improved RequestBuilder api from helper-maven-plugin
Modified:
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineAnonymousService.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineAnonymousService.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineAnonymousService.java 2012-07-17 16:50:23 UTC (rev 317)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineAnonymousService.java 2012-07-18 00:15:23 UTC (rev 318)
@@ -243,66 +243,4 @@
return result;
}
- ///////////////////////////////////////////////////////////////////////////
- /// RedmineServiceImplementor implementation
- ///////////////////////////////////////////////////////////////////////////
-
-// @Override
-// public RedmineServiceImplementor init(RedmineServiceConfiguration configuration) throws RedmineServiceException {
-// // Force to not be loggued
-// configuration.setAnonymous(true);
-// if (log.isDebugEnabled()) {
-// log.debug("init configuration for " + this);
-// }
-// return delegateImplementor.init(configuration);
-// }
-//
-// @Override
-// public <T> T getData(String requestName,
-// Class<T> type,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.getData(requestName, type, args);
-// }
-//
-// @Override
-// public <T> T[] getDatas(String requestName,
-// Class<T> type,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.getDatas(requestName, type, args);
-// }
-//
-// @Override
-// public <T> T sendData(String requestName,
-// Class<T> klazz,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.sendData(requestName, klazz, args);
-// }
-//
-// @Override
-// public <T> T[] sendDatas(String requestName,
-// Class<T> klazz,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.sendDatas(requestName, klazz, args);
-// }
-//
-// @Override
-// public boolean isInit() {
-// return delegateImplementor.isInit();
-// }
-//
-// @Override
-// public void destroy() throws RedmineServiceException {
-// delegateImplementor.destroy();
-// }
-//
-// @Override
-// public void checkNotLoggued(RestClient session) throws IllegalStateException, RedmineServiceLoginException, NullPointerException {
-// delegateImplementor.checkNotLoggued(session);
-// }
-//
-// @Override
-// public void checkLoggued() throws IllegalStateException, RedmineServiceLoginException, NullPointerException {
-// delegateImplementor.checkLoggued();
-// }
-
}
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java 2012-07-17 16:50:23 UTC (rev 317)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineService.java 2012-07-18 00:15:23 UTC (rev 318)
@@ -307,63 +307,4 @@
return result;
}
- ///////////////////////////////////////////////////////////////////////////
- /// RedmineServiceImplementor implementation
- ///////////////////////////////////////////////////////////////////////////
-
-// @Override
-// public RedmineServiceImplementor init(RedmineServiceConfiguration configuration) throws RedmineServiceException {
-// if (log.isDebugEnabled()) {
-// log.debug("init configuration for " + this);
-// }
-// return delegateImplementor.init(configuration);
-// }
-//
-// @Override
-// public <T> T getData(String requestName,
-// Class<T> type,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.getData(requestName, type, args);
-// }
-//
-// @Override
-// public <T> T[] getDatas(String requestName,
-// Class<T> type,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.getDatas(requestName, type, args);
-// }
-//
-// @Override
-// public <T> T sendData(String requestName,
-// Class<T> klazz,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.sendData(requestName, klazz, args);
-// }
-//
-// @Override
-// public <T> T[] sendDatas(String requestName,
-// Class<T> klazz,
-// Object... args) throws RedmineServiceException {
-// return delegateImplementor.sendDatas(requestName, klazz, args);
-// }
-//
-// @Override
-// public boolean isInit() {
-// return delegateImplementor.isInit();
-// }
-//
-// @Override
-// public void destroy() throws RedmineServiceException {
-// delegateImplementor.destroy();
-// }
-//
-// @Override
-// public void checkNotLoggued(RestClient session) throws IllegalStateException, RedmineServiceLoginException, NullPointerException {
-// delegateImplementor.checkNotLoggued(session);
-// }
-//
-// @Override
-// public void checkLoggued() throws IllegalStateException, RedmineServiceLoginException, NullPointerException {
-// delegateImplementor.checkLoggued();
-// }
}
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java 2012-07-17 16:50:23 UTC (rev 317)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java 2012-07-18 00:15:23 UTC (rev 318)
@@ -228,12 +228,11 @@
protected <T> T getDataFromStream(Class<T> type,
InputStream stream) throws RedmineServiceException {
- if (stream == null) {
- return null;
- }
-
try {
- T result = xpp3Helper.readObject(type, stream, false);
+ T result = null;
+ if (stream != null) {
+ result = xpp3Helper.readObject(type, stream, false);
+ }
return result;
} catch (Exception ex) {
throw new RedmineServiceException(
@@ -244,11 +243,11 @@
protected <T> T[] getDatasFromStream(Class<T> type,
InputStream stream) throws RedmineServiceException {
- if (stream == null) {
- return null;
- }
try {
- T[] result = xpp3Helper.readObjects(type, stream, false);
+ T[] result = null;
+ if (stream != null) {
+ result = xpp3Helper.readObjects(type, stream, false);
+ }
return result;
} catch (Exception ex) {
throw new RedmineServiceException(
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-17 16:50:23 UTC (rev 317)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-18 00:15:23 UTC (rev 318)
@@ -23,12 +23,9 @@
* #L%
*/
-import com.google.common.base.Joiner;
import com.google.common.base.Strings;
-import org.apache.commons.lang3.ArrayUtils;
import org.nuiton.io.rest.AbstractRequestFactory;
import org.nuiton.io.rest.RestMethod;
-import org.nuiton.io.rest.RestRequest;
import org.nuiton.io.rest.RestRequestBuilder;
import org.nuiton.jredmine.model.Attachment;
import org.nuiton.jredmine.model.ModelHelper;
@@ -73,6 +70,11 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(2, "userName, password", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
String login = (String) args[0];
String password = (String) args[1];
@@ -103,6 +105,11 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(2, "projectName, version", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
Version version = (Version) args[1];
String date = getVersionEffectiveDate(version);
@@ -120,6 +127,11 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(2, "projectName, version", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
Version version = (Version) args[1];
String date = getVersionEffectiveDate(version);
@@ -137,9 +149,14 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(3,
+ "projectName, version, oldVersionName", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
-
Version version = (Version) args[1];
String date = getVersionEffectiveDate(version);
String status = getVersionStatus(version);
@@ -158,6 +175,11 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(2, "projectName, news", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
News news = (News) args[1];
return new String[]{
@@ -177,6 +199,12 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(3,
+ "projectName, versionName, attachment", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
String versionId = (String) args[1];
Attachment attachment = (Attachment) args[2];
@@ -203,6 +231,12 @@
private static final long serialVersionUID = 1L;
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(3,
+ "projectName, issueId, timeEntry", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
String issueId = (String) args[1];
TimeEntry timeEntry = (TimeEntry) args[2];
@@ -243,18 +277,12 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0.0
*/
- protected static class DefaultRequestBuilder implements RestRequestBuilder {
+ protected static class DefaultRequestBuilder extends AbstractRequestBuilder {
private static final long serialVersionUID = 1L;
- protected String name;
-
- protected String[] action;
-
protected String scope;
- protected final RestMethod method;
-
public DefaultRequestBuilder(String name,
RestMethod method,
String... action) {
@@ -265,79 +293,25 @@
String scope,
RestMethod method,
String... action) {
- this.name = name;
- this.action = action;
- this.method = method;
+ super(name, method, action);
this.scope = scope;
}
- @Override
- public String getName() {
- return name;
- }
-
+ /**
+ * Gets the scope of this request (scope can be null,project,
+ * version issue,...).
+ *
+ * @return the scope of this request
+ */
public final String getScope() {
return scope;
}
- /**
- * @param args the args of the request
- * @return TODO
- */
- public String[] getParameters(Object... args) {
- // by default, no parameter
- return ArrayUtils.EMPTY_STRING_ARRAY;
- }
-
- public String[] getPath(Object... args) {
- // by default, path is contextPath / action
- return action;
- }
-
- public Map<String, File> getAttachments(Object... args) {
- // by default, no attachments
- return null;
- }
-
@Override
- public RestRequest create(final Object... args) {
+ public void checkRequestArgs(Object... args) {
- return new RestRequest() {
-
- @Override
- public String[] getPath() {
- return DefaultRequestBuilder.this.getPath(args);
- }
-
- @Override
- public String[] getParameters() {
- return DefaultRequestBuilder.this.getParameters(args);
- }
-
- @Override
- public Map<String, File> getAttachments() {
- return DefaultRequestBuilder.this.getAttachments(args);
- }
-
- @Override
- public boolean containsAttachments() {
- Map<String, File> attachments = getAttachments();
- return attachments != null && !attachments.isEmpty();
- }
-
- @Override
- public String toPath(String redmineUrl) {
- String result = redmineUrl + "/" +
- Joiner.on('/').join(getPath());
- return result;
- }
-
- @Override
- public RestMethod getMethod() {
- return method;
- }
-
- };
+ // by default request have no ags
+ checkRequestArgs(0, "", args);
}
}
@@ -365,6 +339,11 @@
}
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(1, "projectName", args);
+ }
+
+ @Override
public String[] getPath(Object... args) {
// one args : projectName
@@ -396,6 +375,10 @@
super(name, ModelHelper.ISSUE_SCOPE, method, action);
}
+ @Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(2, "projectName, issueId", args);
+ }
@Override
public String[] getParameters(Object... args) {
@@ -428,6 +411,11 @@
}
@Override
+ public void checkRequestArgs(Object... args) {
+ checkRequestArgs(2, "projectName, versionName", args);
+ }
+
+ @Override
public String[] getParameters(Object... args) {
// args 1 = project id
@@ -440,4 +428,5 @@
};
}
}
+
}
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java 2012-07-17 16:50:23 UTC (rev 317)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRestClientTest.java 2012-07-18 00:15:23 UTC (rev 318)
@@ -52,7 +52,8 @@
LogFactory.getLog(RedmineRestClientTest.class);
@ClassRule
- public static final RedmineAnonymousFixtureClassRule checkConfigRule = new RedmineAnonymousFixtureClassRule();
+ public static final RedmineAnonymousFixtureClassRule checkConfigRule =
+ new RedmineAnonymousFixtureClassRule();
protected RedmineFixtures getFixtures() {
return checkConfigRule.getFixtures();
@@ -200,7 +201,7 @@
public void getUserProjects() throws Exception {
Assume.assumeTrue(!getConfiguration().isAnonymous());
- askData(ModelHelper.GET_USER_PROJECTS_REQUEST_NAME, projectName);
+ askData(ModelHelper.GET_USER_PROJECTS_REQUEST_NAME);
}
@Test
1
0
r317 - branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine
by tchemit@users.nuiton.org 17 Jul '12
by tchemit@users.nuiton.org 17 Jul '12
17 Jul '12
Author: tchemit
Date: 2012-07-17 18:50:23 +0200 (Tue, 17 Jul 2012)
New Revision: 317
Url: http://nuiton.org/repositories/revision/jredmine/317
Log:
fixes #2039: jredmine rest plugin should fix what to send out
Modified:
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java 2012-07-17 16:46:35 UTC (rev 316)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java 2012-07-17 16:50:23 UTC (rev 317)
@@ -233,7 +233,7 @@
}
try {
- T result = xpp3Helper.readObject(type, stream, true);
+ T result = xpp3Helper.readObject(type, stream, false);
return result;
} catch (Exception ex) {
throw new RedmineServiceException(
@@ -248,7 +248,7 @@
return null;
}
try {
- T[] result = xpp3Helper.readObjects(type, stream, true);
+ T[] result = xpp3Helper.readObjects(type, stream, false);
return result;
} catch (Exception ex) {
throw new RedmineServiceException(
1
0
r316 - in branches/jredmine-1.x/jredmine-client/src/test: java/org/nuiton/jredmine/model/io/xpp3 resources/org/nuiton/jredmine/model/io/xpp3/array-multi resources/org/nuiton/jredmine/model/io/xpp3/single
by tchemit@users.nuiton.org 17 Jul '12
by tchemit@users.nuiton.org 17 Jul '12
17 Jul '12
Author: tchemit
Date: 2012-07-17 18:46:35 +0200 (Tue, 17 Jul 2012)
New Revision: 316
Url: http://nuiton.org/repositories/revision/jredmine/316
Log:
refs #2039: jredmine rest plugin should fix what to send out (tests that you can have unknown tag and attributes)
Modified:
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3HelperTest.java
branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/array-multi/attachment.xml
branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/single/attachment.xml
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3HelperTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3HelperTest.java 2012-07-17 16:45:36 UTC (rev 315)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3HelperTest.java 2012-07-17 16:46:35 UTC (rev 316)
@@ -224,12 +224,12 @@
if (result instanceof SingleDataSupplier<?>) {
- T actual = builder.readObject(type, stream, true);
+ T actual = builder.readObject(type, stream, false);
assertMyEquals(type, expected.get(0), actual);
} else {
- T[] actual = builder.readObjects(type, stream, true);
+ T[] actual = builder.readObjects(type, stream, false);
assertMyListEquals(type, expected, actual);
}
} catch (Exception e) {
Modified: branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/array-multi/attachment.xml
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/array-multi/attachment.xml 2012-07-17 16:45:36 UTC (rev 315)
+++ branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/array-multi/attachment.xml 2012-07-17 16:46:35 UTC (rev 316)
@@ -26,7 +26,8 @@
<attachments type="array">
<attachment>
- <author-id type="integer">4</author-id>
+ <BadTag><!--Pour tester que l'on autorise des champs non connus par le modele--></BadTag>
+ <author-id type="integer" badAttribute="dummy">4</author-id>
<container-id type="integer">1</container-id>
<id type="integer">1</id>
<filesize type="integer">411</filesize>
Modified: branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/single/attachment.xml
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/single/attachment.xml 2012-07-17 16:45:36 UTC (rev 315)
+++ branches/jredmine-1.x/jredmine-client/src/test/resources/org/nuiton/jredmine/model/io/xpp3/single/attachment.xml 2012-07-17 16:46:35 UTC (rev 316)
@@ -25,7 +25,8 @@
-->
<attachment>
- <author-id type="integer">4</author-id>
+ <BadTag><!--Pour tester que l'on autorise des champs non connus par le modele--></BadTag>
+ <author-id type="integer" badAttribute="dummy">4</author-id>
<container-id type="integer">1</container-id>
<id type="integer">1</id>
<filesize type="integer">411</filesize>
1
0
r315 - branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine
by tchemit@users.nuiton.org 17 Jul '12
by tchemit@users.nuiton.org 17 Jul '12
17 Jul '12
Author: tchemit
Date: 2012-07-17 18:45:36 +0200 (Tue, 17 Jul 2012)
New Revision: 315
Url: http://nuiton.org/repositories/revision/jredmine/315
Log:
fix fixtures
Modified:
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-15 20:54:36 UTC (rev 314)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-17 16:45:36 UTC (rev 315)
@@ -770,8 +770,8 @@
timeEntry.setComments("Comments");
Date date = new Date();
DateUtils.setYears(date, 2012);
- DateUtils.setMonths(date, 7);
- DateUtils.setDays(date, 15);
+ date = DateUtils.setMonths(date, 6);
+ date = DateUtils.setDays(date, 15);
timeEntry.setSpentOn(date);
return timeEntry;
}
1
0
15 Jul '12
Author: tchemit
Date: 2012-07-15 22:54:36 +0200 (Sun, 15 Jul 2012)
New Revision: 314
Url: http://nuiton.org/repositories/revision/jredmine/314
Log:
fix copyright
Modified:
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/VersionStatusEnum.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousServiceTest.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServer.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceAsAnonymousTest.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceTest.java
branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DryRunAware.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineProjectAware.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineVersionAware.java
branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java
branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java
branches/jredmine-1.x/src/site/apt/tests.apt
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceConfiguration.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/VersionStatusEnum.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/VersionStatusEnum.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/VersionStatusEnum.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2011 CodeLutin
+ * Copyright (C) 2009 - 2011 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousServiceTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousServiceTest.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineAnonymousServiceTest.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServer.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServer.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServer.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceAsAnonymousTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceAsAnonymousTest.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceAsAnonymousTest.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceTest.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineServiceTest.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-client/src/test/java/org/nuiton/jredmine/rest/RedmineRequestFactoryTest.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProject.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojoWithProjectAndVersion.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DryRunAware.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DryRunAware.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DryRunAware.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineProjectAware.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineProjectAware.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineProjectAware.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineVersionAware.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineVersionAware.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/RedmineVersionAware.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineAnonymousFixtureClassRule.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/test/java/org/nuiton/jredmine/RedmineLogguedFixtureClassRule.java 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2012 CodeLutin
+ * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: branches/jredmine-1.x/src/site/apt/tests.apt
===================================================================
--- branches/jredmine-1.x/src/site/apt/tests.apt 2012-07-15 20:50:20 UTC (rev 313)
+++ branches/jredmine-1.x/src/site/apt/tests.apt 2012-07-15 20:54:36 UTC (rev 314)
@@ -5,7 +5,7 @@
~~ $Id$
~~ $HeadURL$
~~ %%
-~~ Copyright (C) 2009 - 2012 CodeLutin,Tony Chemit
+~~ Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin,Tony Chemit
~~ %%
~~ This program is free software: you can redistribute it and/or modify
~~ it under the terms of the GNU Lesser General Public License as
1
0
r313 - in branches/jredmine-1.x: jredmine-client/src/main/java/org/nuiton/jredmine jredmine-client/src/main/java/org/nuiton/jredmine/model jredmine-client/src/main/java/org/nuiton/jredmine/model/io/xpp3 jredmine-client/src/main/java/org/nuiton/jredmine/rest jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin
by tchemit@users.nuiton.org 15 Jul '12
by tchemit@users.nuiton.org 15 Jul '12
15 Jul '12
Author: tchemit
Date: 2012-07-15 22:50:20 +0200 (Sun, 15 Jul 2012)
New Revision: 313
Url: http://nuiton.org/repositories/revision/jredmine/313
Log:
improve the display data mojo (no more use of dummy enum from api
Removed:
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelEnum.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelScope.java
Modified:
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3Helper.java
branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/DefaultRedmineServiceImplementor.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -109,6 +109,11 @@
}
@Override
+ public RestClient getSession() {
+ return session;
+ }
+
+ @Override
public <T> T getData(String requestName,
Class<T> type,
Object... args) throws RedmineServiceException {
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/RedmineServiceImplementor.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -49,16 +49,6 @@
*/
boolean isInit();
-// /**
-// * Initialize the service given a redmine client already initialized.
-// *
-// * @param session the redmine client to be used by the service
-// * @return the initialized service
-// * @throws RedmineServiceException if any pb
-// * @see RedmineRestClient
-// */
-// RedmineServiceImplementor init(RestClient session) throws RedmineServiceException;
-
/**
* Initialize the service given a client configuration.
*
@@ -76,6 +66,13 @@
void destroy() throws RedmineServiceException;
/**
+ * Gets the transport layer based on {@link RestClient}.
+ *
+ * @return the transport layer.
+ */
+ RestClient getSession();
+
+ /**
* Generic method to obtain a single data from a redmine server.
*
* @param <T> the type of data to obtain
Deleted: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelEnum.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelEnum.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelEnum.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -1,95 +0,0 @@
-/*
- * #%L
- * JRedmine :: Client
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.jredmine.model;
-
-/**
- * Un énumération pour connaitre l'ensemble des classes du modèle.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.0
- */
-public enum RedmineModelEnum {
-
- issueStatus(IssueStatus.class, RedmineModelScope.none, ModelHelper.GET_ALL_ISSUE_STATUS_REQUEST_NAME),
- issuePriority(IssuePriority.class, RedmineModelScope.none, ModelHelper.GET_ALL_ISSUE_PRIORITY_REQUEST_NAME),
- project(Project.class, RedmineModelScope.none, ModelHelper.GET_ALL_PROJECT_REQUEST_NAME),
- issueCategory(IssueCategory.class, RedmineModelScope.project, ModelHelper.GET_ALL_ISSUE_CATEGORY_REQUEST_NAME),
- tracker(Tracker.class, RedmineModelScope.project, ModelHelper.GET_ALL_TRACKER_REQUEST_NAME),
- user(User.class, RedmineModelScope.project, ModelHelper.GET_ALL_USER_REQUEST_NAME),
- news(News.class, RedmineModelScope.project, ModelHelper.GET_ALL_NEWS_REQUEST_NAME),
- version(Version.class, RedmineModelScope.project, ModelHelper.GET_ALL_VERSION_REQUEST_NAME),
- issue(Issue.class, RedmineModelScope.version, ModelHelper.GET_ALL_ISSUES_REQUEST_NAME),
- timeEntry(TimeEntry.class, RedmineModelScope.issue, ModelHelper.GET_ALL_ISSUE_TIME_ENTRY_REQUEST_NAME),
- attachment(Attachment.class, RedmineModelScope.version, ModelHelper.GET_ALL_ATTACHMENTS_REQUEST_NAME);
-
- private final Class<?> modelType;
-
- private final RedmineModelScope scope;
-
- private final String requestAll;
-
- RedmineModelEnum(Class<?> modelType, RedmineModelScope scope, String requestAll) {
- this.modelType = modelType;
- this.scope = scope;
- this.requestAll = requestAll;
- }
-
-
- public Class<?> getModelType() {
- return modelType;
- }
-
- public RedmineModelScope getScope() {
- return scope;
- }
-
- public String getRequestAll() {
- return requestAll;
- }
-
- public static RedmineModelEnum valueOf(Class<?> type) {
- for (RedmineModelEnum e : values()) {
- if (e.getModelType().equals(type)) {
- return e;
- }
- }
- return null;
- }
-
- public static RedmineModelEnum safeValueOf(Class<?> type) {
- if (type == null) {
- throw new NullPointerException("klass parameter can not be null");
- }
-
- // check dataType is authorized
-
- RedmineModelEnum r = valueOf(type);
- if (r == null) {
- throw new IllegalArgumentException("the type " + type.getName() + " is not allowed!");
- }
-
- return r;
- }
-}
Deleted: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelScope.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelScope.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/RedmineModelScope.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -1,56 +0,0 @@
-/*
- * #%L
- * JRedmine :: Client
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2012 Tony Chemit, CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.jredmine.model;
-
-/**
- * Une enumeration pour caracteriser le scope d'une donnée dans le modèle.
- * <p/>
- * <p/>
- * Pour une donnée qui ne dépend de rien, elle est en scope {@link #none}.
- * <p/>
- * Pour une donnée qui dépend d'un projet, elle est en scope {@link #project}.
- * <p/>
- * Pour une donnée qui dépend d'une version, elle est en scpoe {@link #version}.
- * <p/>
- * Pour une donnée qui dépend d'une issue, elle est en scpoe {@link #issue}.
- * <p/>
- * A savoir qu'une donnée de scope {@link #version} (resp. {@link #issue}),
- * elle est aussi de scope {@link #project} car la version (resp. l'issue)
- * dépend en dépend.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.0
- */
-public enum RedmineModelScope {
-
- /** none scope, requires nothing. */
- none,
- /** project scope, requires a project. */
- project,
- /** version scope, requires a project and a version. */
- version,
- /** issue scope, requires a project and an issue. */
- issue
-}
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3Helper.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3Helper.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/model/io/xpp3/RedmineXpp3Helper.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -31,7 +31,6 @@
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.nuiton.io.xpp3.Xpp3Helper;
import org.nuiton.io.xpp3.Xpp3Reader;
-import org.nuiton.jredmine.model.RedmineModelEnum;
import java.io.ByteArrayInputStream;
import java.io.File;
@@ -101,8 +100,6 @@
InputStream stream,
boolean strict) throws IOException, XmlPullParserException {
- RedmineModelEnum.safeValueOf(klass);
-
O result = readObject(klass,
ReaderFactory.newXmlReader(stream),
strict
@@ -115,8 +112,6 @@
InputStream stream,
boolean strict) throws IOException, XmlPullParserException {
- RedmineModelEnum.safeValueOf(klass);
-
O[] results = readObjects(klass,
ReaderFactory.newXmlReader(stream),
strict
Modified: branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java
===================================================================
--- branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-client/src/main/java/org/nuiton/jredmine/rest/RedmineRequestFactory.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -50,6 +50,17 @@
*/
public class RedmineRequestFactory extends AbstractRequestFactory {
+ public static String getRequestScope(RestRequestBuilder requestBuilder) {
+ String scope;
+ if (requestBuilder instanceof DefaultRequestBuilder) {
+
+ scope = ((DefaultRequestBuilder) requestBuilder).getScope();
+ } else {
+ scope = null;
+ }
+ return scope;
+ }
+
@Override
public void addDefaultRequests() {
@@ -240,14 +251,24 @@
protected String[] action;
+ protected String scope;
+
protected final RestMethod method;
public DefaultRequestBuilder(String name,
RestMethod method,
String... action) {
+ this(name, null, method, action);
+ }
+
+ public DefaultRequestBuilder(String name,
+ String scope,
+ RestMethod method,
+ String... action) {
this.name = name;
this.action = action;
this.method = method;
+ this.scope = scope;
}
@Override
@@ -255,6 +276,10 @@
return name;
}
+ public final String getScope() {
+ return scope;
+ }
+
/**
* @param args the args of the request
* @return TODO
@@ -326,14 +351,17 @@
private static final long serialVersionUID = 1L;
- public ProjectScopeRequestBuilder(String name, String... action) {
- this(name, null, action);
+ public ProjectScopeRequestBuilder(String name,
+ RestMethod method,
+ String... action) {
+ this(name, ModelHelper.PROJECT_SCOPE, method, action);
}
public ProjectScopeRequestBuilder(String name,
+ String scope,
RestMethod method,
String... action) {
- super(name, method, action);
+ super(name, scope, method, action);
}
@Override
@@ -365,12 +393,9 @@
public IssueScopeRequestBuilder(String name,
RestMethod method,
String... action) {
- super(name, method, action);
+ super(name, ModelHelper.ISSUE_SCOPE, method, action);
}
- public IssueScopeRequestBuilder(String name, String... action) {
- this(name, null, action);
- }
@Override
public String[] getParameters(Object... args) {
@@ -396,14 +421,12 @@
private static final long serialVersionUID = 1L;
- public VersionScopeRequestBuilder(String name, RestMethod method, String... action) {
- super(name, method, action);
+ public VersionScopeRequestBuilder(String name,
+ RestMethod method,
+ String... action) {
+ super(name, ModelHelper.VERSION_SCOPE, method, action);
}
- public VersionScopeRequestBuilder(String name, String... action) {
- this(name, null, action);
- }
-
@Override
public String[] getParameters(Object... args) {
Modified: branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java
===================================================================
--- branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2012-07-15 19:53:22 UTC (rev 312)
+++ branches/jredmine-1.x/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/DisplayDataMojo.java 2012-07-15 20:50:20 UTC (rev 313)
@@ -24,20 +24,34 @@
*/
package org.nuiton.jredmine.plugin;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
+import org.nuiton.io.rest.RequestFactory;
+import org.nuiton.io.rest.RestRequestBuilder;
+import org.nuiton.jredmine.RedmineServiceImplementor;
import org.nuiton.jredmine.model.I18nAble;
import org.nuiton.jredmine.model.IdAble;
+import org.nuiton.jredmine.model.Issue;
+import org.nuiton.jredmine.model.IssueCategory;
+import org.nuiton.jredmine.model.IssuePriority;
+import org.nuiton.jredmine.model.IssueStatus;
import org.nuiton.jredmine.model.ModelHelper;
-import org.nuiton.jredmine.model.RedmineModelEnum;
-import org.nuiton.jredmine.model.RedmineModelScope;
+import org.nuiton.jredmine.model.News;
+import org.nuiton.jredmine.model.Project;
+import org.nuiton.jredmine.model.Tracker;
+import org.nuiton.jredmine.model.User;
+import org.nuiton.jredmine.model.Version;
+import org.nuiton.jredmine.rest.RedmineRequestFactory;
import org.nuiton.plugin.PluginHelper;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Locale;
+import java.util.Map;
/**
* Display in console some data from redmine's server.
@@ -106,8 +120,36 @@
protected boolean anonymous;
/** list of actions to perform */
- protected List<RedmineModelEnum> actions;
+ protected Map<String, Class<?>> actions;
+ private final Map<Class<?>, String> typesToRequestName;
+
+ private final Map<String, Class<?>> namesToType;
+
+ public DisplayDataMojo() {
+ typesToRequestName = Maps.newHashMap();
+ typesToRequestName.put(Project.class, ModelHelper.GET_ALL_PROJECT_REQUEST_NAME);
+ typesToRequestName.put(Version.class, ModelHelper.GET_ALL_VERSION_REQUEST_NAME);
+ typesToRequestName.put(Issue.class, ModelHelper.GET_ALL_ISSUES_REQUEST_NAME);
+ typesToRequestName.put(News.class, ModelHelper.GET_ALL_NEWS_REQUEST_NAME);
+ typesToRequestName.put(IssueStatus.class, ModelHelper.GET_ALL_ISSUE_STATUS_REQUEST_NAME);
+ typesToRequestName.put(IssuePriority.class, ModelHelper.GET_ALL_ISSUE_PRIORITY_REQUEST_NAME);
+ typesToRequestName.put(IssueCategory.class, ModelHelper.GET_ALL_ISSUE_CATEGORY_REQUEST_NAME);
+ typesToRequestName.put(Tracker.class, ModelHelper.GET_ALL_TRACKER_REQUEST_NAME);
+ typesToRequestName.put(User.class, ModelHelper.GET_ALL_USER_REQUEST_NAME);
+
+ namesToType = Maps.newHashMap();
+ namesToType.put("project", Project.class);
+ namesToType.put("version", Version.class);
+ namesToType.put("issue", Issue.class);
+ namesToType.put("news", News.class);
+ namesToType.put("issuestatus", IssueStatus.class);
+ namesToType.put("issuepriority", IssuePriority.class);
+ namesToType.put("issuecategory", IssueCategory.class);
+ namesToType.put("tracker", Tracker.class);
+ namesToType.put("user", User.class);
+ }
+
@Override
protected boolean checkRunOnceDone() {
return false;
@@ -131,21 +173,9 @@
versionId = PluginHelper.removeSnapshotSuffix(versionId);
}
- actions = getDownloadActions(types,
- RedmineModelEnum.project,
- RedmineModelEnum.version,
- RedmineModelEnum.issue,
- RedmineModelEnum.news,
- RedmineModelEnum.issueStatus,
- RedmineModelEnum.issuePriority,
- RedmineModelEnum.issueCategory,
- RedmineModelEnum.tracker,
- RedmineModelEnum.user);
- if (actions == null || actions.isEmpty()) {
- // no need to connect, nothing to do...
- return;
- }
super.init();
+
+ actions = getDownloadActions();
}
@Override
@@ -188,84 +218,120 @@
@Override
protected boolean checkSkip() {
+ boolean canContinue;
if (actions == null || actions.isEmpty()) {
// no data to treate
- getLog().warn("No data types detected, you must fill the required parameter types, will skip goal");
- return false;
+ getLog().warn("No data types detected, you must fill the " +
+ "required parameter types, will skip goal");
+ canContinue = false;
+ } else {
+
+ canContinue = super.checkSkip();
}
- boolean b = super.checkSkip();
- return b;
+ return canContinue;
}
@Override
protected void doAction() throws Exception {
StringBuilder buffer = new StringBuilder("\n");
- for (RedmineModelEnum entry : actions) {
+ for (Map.Entry<String, Class<?>> entry : actions.entrySet()) {
- RedmineModelScope scope = entry.getScope();
+ Class<?> type = entry.getValue();
+ String dataTypeName = entry.getKey();
+ String scope = getDataScope(type);
+ String requestName = typesToRequestName.get(type);
- String requestName = entry.getRequestAll();
- IdAble[] datas = (IdAble[]) service.getDelegateImplementor().getDatas(requestName, entry.getModelType(), projectId, versionId);
+ IdAble[] datas;
+
+ RedmineServiceImplementor implementor =
+ service.getDelegateImplementor();
+
+ if (ModelHelper.VERSION_SCOPE.equals(scope)) {
+ datas = (IdAble[]) implementor.getDatas(requestName, type, projectId, versionId);
+ } else if (ModelHelper.PROJECT_SCOPE.equals(scope)) {
+ datas = (IdAble[]) implementor.getDatas(requestName, type, projectId);
+ } else {
+ datas = (IdAble[]) implementor.getDatas(requestName, type);
+ }
List<IdAble> list = Arrays.asList(datas);
if (sortById) {
Collections.sort(list, ModelHelper.ID_ABLE_COMPARATOR);
}
- buffer.append("\nValues of '").append(entry).append('\'');
- if (scope == RedmineModelScope.project || scope == RedmineModelScope.version) {
+ buffer.append("\nValues of '").append(dataTypeName).append('\'');
+ if (ModelHelper.VERSION_SCOPE.equals(scope) || ModelHelper.PROJECT_SCOPE.equals(scope)) {
buffer.append(" for project '").append(projectId).append("'");
}
- if (scope == RedmineModelScope.version) {
+ if (ModelHelper.VERSION_SCOPE.equals(scope)) {
buffer.append(" and version '").append(versionId).append("'");
}
buffer.append('\n');
for (IdAble data : list) {
- buffer.append(" - ").append(data.getId()).append(" = ").append(((I18nAble) data).getName()).append('\n');
+ buffer.append(" - ");
+ buffer.append(data.getId());
+ buffer.append(" = ");
+ buffer.append(((I18nAble) data).getName());
+ buffer.append('\n');
}
}
System.out.println(buffer.toString());
}
- protected List<RedmineModelEnum> getDownloadActions(String dataTypes, RedmineModelEnum... universe) throws MojoFailureException {
+ protected Map<String, Class<?>> getDownloadActions() throws MojoFailureException {
- if (universe.length == 0) {
- throw new MojoFailureException("List of accepted data types is empty!");
- }
+ Map<String, Class<?>> results = Maps.newTreeMap();
- List<RedmineModelEnum> results = new ArrayList<RedmineModelEnum>();
+ List<Class<?>> universeList = Lists.newArrayList(typesToRequestName.keySet());
- List<RedmineModelEnum> universeList = new ArrayList<RedmineModelEnum>(Arrays.asList(universe));
+ for (String dataType : types.split(",")) {
- for (String dataType : dataTypes.split(",")) {
+ dataType = dataType.toLowerCase(Locale.ENGLISH);
- RedmineModelEnum result;
- try {
- result = RedmineModelEnum.valueOf(dataType.trim());
- } catch (Exception e) {
- throw new MojoFailureException("Unkown data type '" + dataType + "', Accepted types are : " + universeList);
- }
- if (!universeList.contains(result)) {
+ Class<?> result = namesToType.get(dataType);
+
+ if (result == null || !universeList.contains(result)) {
// can not accept these value
- throw new MojoFailureException("The data type '" + result + "' can not be used, Accepted types are : " + universeList);
+ throw new MojoFailureException(
+ "The data type '" + result +
+ "' can not be used, Accepted types are : " +
+ universeList);
}
- RedmineModelScope scope = result.getScope();
+ String scope = getDataScope(result);
- if (scope == RedmineModelScope.project || scope == RedmineModelScope.version) {
+ if (ModelHelper.VERSION_SCOPE.equals(scope) || ModelHelper.PROJECT_SCOPE.equals(scope)) {
// check projectId used
if (projectId == null || projectId.isEmpty()) {
- throw new MojoFailureException("The data type '" + result + "', depends on a project, but the 'projectId' was not filled.");
+ throw new MojoFailureException(
+ "The data type '" + result +
+ "', depends on a project, but the 'projectId' was " +
+ "not filled.");
}
}
- if (scope == RedmineModelScope.version) {
+ if (ModelHelper.VERSION_SCOPE.equals(scope)) {
// check versionId use
if (versionId == null || versionId.isEmpty()) {
- throw new MojoFailureException("The data type '" + result + "', depends on a version, but the 'versionId' was not filled.");
+ throw new MojoFailureException(
+ "The data type '" + result +
+ "', depends on a version, but the 'versionId' was " +
+ "not filled.");
}
}
- results.add(result);
+ results.put(dataType, result);
}
return results;
}
+
+ protected String getDataScope(Class<?> type) {
+
+ RequestFactory requestFactory =
+ service.getDelegateImplementor().getSession().getRequestFactory();
+
+ String requestName = typesToRequestName.get(type);
+ RestRequestBuilder requestBuilder =
+ requestFactory.getRequestBuilder(requestName);
+
+ return RedmineRequestFactory.getRequestScope(requestBuilder);
+ }
}
1
0
Author: tchemit
Date: 2012-07-15 21:53:22 +0200 (Sun, 15 Jul 2012)
New Revision: 312
Url: http://nuiton.org/repositories/revision/jredmine/312
Log:
complete doc for release 1.4 + go back for the moment on main site
Modified:
branches/jredmine-1.x/pom.xml
Modified: branches/jredmine-1.x/pom.xml
===================================================================
--- branches/jredmine-1.x/pom.xml 2012-07-15 19:50:12 UTC (rev 311)
+++ branches/jredmine-1.x/pom.xml 2012-07-15 19:53:22 UTC (rev 312)
@@ -60,7 +60,7 @@
<distributionManagement>
<site>
<id>${platform}</id>
- <url>${our.site.repository}/${projectId}/1.x</url>
+ <url>${our.site.repository}/${projectId}</url>
</site>
</distributionManagement>
1
0
Author: tchemit
Date: 2012-07-15 21:50:12 +0200 (Sun, 15 Jul 2012)
New Revision: 311
Url: http://nuiton.org/repositories/revision/jredmine/311
Log:
complete doc for release 1.4 + go back for the moment on main site
Modified:
branches/jredmine-1.x/pom.xml
branches/jredmine-1.x/src/site/apt/index.apt
branches/jredmine-1.x/src/site/apt/tests.apt
Modified: branches/jredmine-1.x/pom.xml
===================================================================
--- branches/jredmine-1.x/pom.xml 2012-07-15 19:48:53 UTC (rev 310)
+++ branches/jredmine-1.x/pom.xml 2012-07-15 19:50:12 UTC (rev 311)
@@ -509,16 +509,16 @@
<inceptionYear>2009</inceptionYear>
- <url>http://maven-site.nuiton.org/jredmine/1.x</url>
+ <url>http://maven-site.nuiton.org/jredmine</url>
<developers>
<developer>
<name>Tony Chemit</name>
<id>tchemit</id>
- <email>chemit(a)codelutin.com</email>
+ <email>chemit at codelutin dot com</email>
<organization>CodeLutin</organization>
- <timezone>+2</timezone>
+ <timezone>Europe/Paris</timezone>
<roles>
<role>Developer</role>
</roles>
Modified: branches/jredmine-1.x/src/site/apt/index.apt
===================================================================
--- branches/jredmine-1.x/src/site/apt/index.apt 2012-07-15 19:48:53 UTC (rev 310)
+++ branches/jredmine-1.x/src/site/apt/index.apt 2012-07-15 19:50:12 UTC (rev 311)
@@ -5,7 +5,7 @@
~~ $Id$
~~ $HeadURL$
~~ %%
-~~ Copyright (C) 2009 - 2010 CodeLutin
+~~ Copyright (C) 2009 - 2010 CodeLutin,Tony Chemit
~~ %%
~~ This program is free software: you can redistribute it and/or modify
~~ it under the terms of the GNU Lesser General Public License as
@@ -54,6 +54,15 @@
Notes
+* Version 1.4
+
+ La version <<1.4>> prépare la passage à la version 2.0 de redmine. La version
+ <<2.0>> de JRedmine utilisera exclusivement l'api REST de redmine (et donc
+ le plugin redmine jredmine ne sera plus obligatoire).
+
+ Un soin tout particulier a été apporté pour améliorer la configuration des
+ tests ({{{./tests.html}détails}}).
+
* Version 1.3
La version <<1.3>> est compatible avec {{{http://www.redmine.org/versions/42}<redmine 1.3.2>}} après la
Modified: branches/jredmine-1.x/src/site/apt/tests.apt
===================================================================
--- branches/jredmine-1.x/src/site/apt/tests.apt 2012-07-15 19:48:53 UTC (rev 310)
+++ branches/jredmine-1.x/src/site/apt/tests.apt 2012-07-15 19:50:12 UTC (rev 311)
@@ -3,7 +3,7 @@
~~ JRedmine
~~
~~ $Id$
-~~ $HeadURL: http://svn.nuiton.org/svn/jredmine/branches/jredmine-1.x/src/site/apt/index… $
+~~ $HeadURL$
~~ %%
~~ Copyright (C) 2009 - 2012 CodeLutin,Tony Chemit
~~ %%
Property changes on: branches/jredmine-1.x/src/site/apt/tests.apt
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
1
0