r446 - in trunk/jredmine-client/src: main/java/org/nuiton/jredmine/client main/java/org/nuiton/jredmine/service test/java/org/nuiton/jredmine test/java/org/nuiton/jredmine/client test/java/org/nuiton/jredmine/test
Author: tchemit Date: 2014-04-16 14:52:49 +0200 (Wed, 16 Apr 2014) New Revision: 446 Url: http://forge.nuiton.org/projects/jredmine/repository/revisions/446 Log: fixes #3156 Removed: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineAnonymousService.java Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientAuthConfiguration.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientConfiguration.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/AbstractRedmineService.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineService.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineAnonymousService.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineConfigurationUtil.java trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineLogguedService.java trunk/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java trunk/jredmine-client/src/test/java/org/nuiton/jredmine/client/RedmineClientTest.java trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/AbstractRedmineFixtures.java trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/RedmineFixtureClassRule.java Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java 2014-04-16 12:52:49 UTC (rev 446) @@ -124,7 +124,7 @@ CoreProtocolPNames.HTTP_CONTENT_CHARSET, configuration.getEncoding()); - if (!configuration.isAnonymous()) { +// if (!configuration.isAnonymous()) { RedmineClientAuthConfiguration authConfiguration = configuration.getAuthConfiguration(); if (authConfiguration.isUseApiKey()) { @@ -137,7 +137,7 @@ defaultHeaders.put("X-Redmine-API-Key", authConfiguration.getApiKey()); } - } +// } } public boolean isOpen() { @@ -167,28 +167,6 @@ throw e; } -// if (!configuration.isAnonymous()) { -// -// // log in -// RedmineClientAuthConfiguration conf = -// getConfiguration().getAuthConfiguration(); -// RedmineRequest<Void> loginRequest; -// -// if (conf.isUseApiKey()) { -// -// // use api key to login -// loginRequest = RedmineRequestHelper.postAction("login", void.class). -// parameter("apiKey", conf.getApiKey()); -// } else { -// // use normal login / password -// loginRequest = RedmineRequestHelper.postAction("login", void.class). -// parameter("username", conf.getUsername()). -// parameter("password", conf.getPassword()); -// } -// -// executeRequest(loginRequest); -// } - open = true; } } @@ -258,30 +236,9 @@ open = false; } - -// try { -// -// RedmineRequest<Void> request = -// RedmineRequestHelper.action("logout", void.class); -// executeRequest(request); -// } catch (Exception e) { -// throw new IOException( -// "could not close client for reason " + -// e.getMessage(), e); -// } finally { -// -// try { -// -// client.getConnectionManager().shutdown(); -// } finally { -// -// open = false; -// } -// } } } - protected <T> HttpRequestBase prepareRequest(RedmineRequest<T> request) throws IOException { if (showRequest) { Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientAuthConfiguration.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientAuthConfiguration.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientAuthConfiguration.java 2014-04-16 12:52:49 UTC (rev 446) @@ -78,4 +78,13 @@ public boolean isUseApiKey() { return StringUtils.isNotBlank(apiKey); } + + public boolean isUseUsername() { + return StringUtils.isNotBlank(username); + } + + public boolean isUseLoginPassword() { + return StringUtils.isNotBlank(username) && StringUtils.isNotBlank(password); + } + } Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientConfiguration.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientConfiguration.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClientConfiguration.java 2014-04-16 12:52:49 UTC (rev 446) @@ -44,8 +44,8 @@ /** @return {@code true} to make verbose client (show request and parameters) */ boolean isVerbose(); - /** @return {@code true} if rest client does not need login */ - boolean isAnonymous(); +// /** @return {@code true} if rest client does not need login */ +// boolean isAnonymous(); /** @param url the url of server to set */ void setUrl(URL url); @@ -56,8 +56,8 @@ /** @param verbose the flag verbose to set */ void setVerbose(boolean verbose); - /** @param anonymous the flag anonymous to set */ - void setAnonymous(boolean anonymous); +// /** @param anonymous the flag anonymous to set */ +// void setAnonymous(boolean anonymous); RedmineClientAuthConfiguration getAuthConfiguration(); Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/AbstractRedmineService.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/AbstractRedmineService.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/AbstractRedmineService.java 2014-04-16 12:52:49 UTC (rev 446) @@ -134,7 +134,8 @@ checkInit(); checkSessionNotNull(); checkSessionConfigurationNotNull(); - if (client.getConfiguration().isAnonymous()) { + boolean anonymous = !RedmineConfigurationUtil.isLoggued(client.getConfiguration()); + if (anonymous) { throw new RedmineServiceLoginException( "can not access this service in anonymous mode"); } Deleted: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineAnonymousService.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineAnonymousService.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineAnonymousService.java 2014-04-16 12:52:49 UTC (rev 446) @@ -1,264 +0,0 @@ -package org.nuiton.jredmine.service; - -/* - * #%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 com.google.common.base.Preconditions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.jredmine.client.RedmineRequest; -import org.nuiton.jredmine.client.RedmineRequestHelper; -import org.nuiton.jredmine.model.Attachment; -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.News; -import org.nuiton.jredmine.model.Project; -import org.nuiton.jredmine.model.TimeEntry; -import org.nuiton.jredmine.model.Tracker; -import org.nuiton.jredmine.model.User; -import org.nuiton.jredmine.model.Version; -import org.nuiton.jredmine.model.VersionStatusEnum; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - - -/** - * Default implementation of {@link RedmineAnonymousService}. - * - * @author tchemit <chemit@codelutin.com> - * @plexus.component role="org.nuiton.jredmine.service.RedmineAnonymousService" role-hint="default" - * @since 1.5 - */ -public class DefaultRedmineAnonymousService extends AbstractRedmineService implements RedmineAnonymousService { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(DefaultRedmineAnonymousService.class); - - @Override - public void init(RedmineServiceConfiguration configuration) throws RedmineServiceException { - Preconditions.checkNotNull(configuration, "the client configuration was not be null!"); - - // always clone the configuration to keep it in the service - RedmineServiceConfiguration serviceConfiguration = - RedmineConfigurationUtil.cloneConfiguration(configuration); - - // Force to not be loggued - serviceConfiguration.setAnonymous(true); - - if (log.isDebugEnabled()) { - log.debug("init service with configuration: " + serviceConfiguration); - } - if (!isInit()) { - super.init(serviceConfiguration); - } - } - - /////////////////////////////////////////////////////////////////////////// - /// RedmineAnonymousService - /////////////////////////////////////////////////////////////////////////// - - @Override - public IssueStatus[] getIssueStatuses() throws RedmineServiceException { - RedmineRequest<IssueStatus> request = - RedmineRequestHelper.action("get_issue_statuses.xml", - IssueStatus.class); - return executeRequestAndReturnDatas(request); - } - - @Override - public IssuePriority[] getIssuePriorities() throws RedmineServiceException { - RedmineRequest<IssuePriority> request = RedmineRequestHelper.action( - "get_issue_priorities.xml", IssuePriority.class); - return executeRequestAndReturnDatas(request); - } - - @Override - public Project[] getProjects() throws RedmineServiceException { - RedmineRequest<Project> request = RedmineRequestHelper.action( - "get_projects.xml", Project.class); - return executeRequestAndReturnDatas(request); - } - - @Override - public IssueCategory[] getIssueCategories(String projectName) throws RedmineServiceException { - RedmineRequest<IssueCategory> request = - RedmineRequestHelper.actionWithProject( - "get_issue_categories.xml", - IssueCategory.class, - projectName); - return executeRequestAndReturnDatas(request); - } - - @Override - public Project getProject(String projectName) throws RedmineServiceException { - RedmineRequest<Project> request = - RedmineRequestHelper.actionWithProject("get_project.xml", - Project.class, - projectName); - return executeRequestAndReturnData(request - ); - } - - @Override - public Tracker[] getTrackers(String projectName) throws RedmineServiceException { - RedmineRequest<Tracker> request = - RedmineRequestHelper.actionWithProject("get_project_trackers.xml", - Tracker.class, - projectName); - return executeRequestAndReturnDatas(request); - } - - @Override - public News[] getNews(String projectName) throws RedmineServiceException { - RedmineRequest<News> request = - RedmineRequestHelper.actionWithProject("get_project_news.xml", - News.class, - projectName); - return executeRequestAndReturnDatas(request); - } - - @Override - public User[] getProjectMembers(String projectName) throws RedmineServiceException { - RedmineRequest<User> request = - RedmineRequestHelper.actionWithProject("get_project_users.xml", - User.class, - projectName); - return executeRequestAndReturnDatas(request); - } - - @Override - public Version[] getVersions(String projectName) throws RedmineServiceException { - RedmineRequest<Version> request = - RedmineRequestHelper.actionWithProject("get_project_versions.xml", - Version.class, - projectName); - return executeRequestAndReturnDatas(request); - } - - @Override - public Version getVersion(String projectName, - String versionName) throws RedmineServiceException { - RedmineRequest<Version> request = - RedmineRequestHelper.actionWithProjectAndVersion("get_version.xml", - Version.class, - projectName, - versionName); - return executeRequestAndReturnData(request); - } - - @Override - public Version getLastestClosedVersion(String projectName) throws RedmineServiceException { - - // get all versions - Version[] versions = getVersions(projectName); - List<Version> closedVersions = new ArrayList<Version>(); - for (Version version : versions) { - if (version.getEffectiveDate() != null && - VersionStatusEnum.closed.name().equals(version.getStatus())) { - closedVersions.add(version); - } - } - - Version result = null; - if (!closedVersions.isEmpty()) { - Collections.sort(closedVersions, new Comparator<Version>() { - @Override - public int compare(Version o1, Version o2) { - return o2.getEffectiveDate().compareTo(o1.getEffectiveDate()); - } - }); - result = closedVersions.get(0); - } - return result; - } - - @Override - public Attachment[] getAttachments(String projectName, - String versionName) throws RedmineServiceException { - RedmineRequest<Attachment> request = - RedmineRequestHelper.actionWithProjectAndVersion("get_version_attachments.xml", - Attachment.class, - projectName, - versionName); - return executeRequestAndReturnDatas(request); - } - - @Override - public Issue[] getIssues(String projectName, - String versionName) throws RedmineServiceException { - RedmineRequest<Issue> request = - RedmineRequestHelper.actionWithProjectAndVersion("get_version_issues.xml", - Issue.class, - projectName, - versionName); - return executeRequestAndReturnDatas(request); - } - - @Override - public TimeEntry[] getIssueTimeEntries(String projectName, - String issueId) throws RedmineServiceException { - RedmineRequest<TimeEntry> request = - RedmineRequestHelper.actionWithProjectAndIssue("get_issue_times.xml", - TimeEntry.class, - projectName, - issueId); - return executeRequestAndReturnDatas(request); - } - - @Override - public Issue[] getIssues(String projectName) throws RedmineServiceException { - RedmineRequest<Issue> request = - RedmineRequestHelper.actionWithProject("get_project_issues.xml", - Issue.class, - projectName); - Issue[] result = executeRequestAndReturnDatas(request); - return result; - } - - @Override - public Issue[] getOpenedIssues(String projectName) throws RedmineServiceException { - RedmineRequest<Issue> request = - RedmineRequestHelper.actionWithProject("get_project_opened_issues.xml", - Issue.class, - projectName); - Issue[] result = executeRequestAndReturnDatas(request); - return result; - } - - @Override - public Issue[] getClosedIssues(String projectName) throws RedmineServiceException { - RedmineRequest<Issue> request = - RedmineRequestHelper.actionWithProject("get_project_closed_issues.xml", - Issue.class, - projectName); - Issue[] result = executeRequestAndReturnDatas(request); - return result; - } -} Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineService.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineService.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/DefaultRedmineService.java 2014-04-16 12:52:49 UTC (rev 446) @@ -44,7 +44,11 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; +import java.util.List; /** * Default implementation of the {@link RedmineService}. @@ -59,18 +63,6 @@ private static final Log log = LogFactory.getLog(DefaultRedmineService.class); - /** - * Delegate all anonymous call to the anonymous service. - * - * @see RedmineAnonymousService - * @since 1.5 - */ - protected final RedmineAnonymousService anonymousService; - - public DefaultRedmineService() { - this.anonymousService = new DefaultRedmineAnonymousService(); - } - @Override public void init(RedmineServiceConfiguration configuration) throws RedmineServiceException { if (log.isDebugEnabled()) { @@ -84,9 +76,6 @@ // init the service using the configuration super.init(serviceConfiguration); - - // init the anonymous service - anonymousService.init(configuration); } } @@ -96,107 +85,179 @@ @Override public IssueStatus[] getIssueStatuses() throws RedmineServiceException { - IssueStatus[] result = anonymousService.getIssueStatuses(); - return result; + RedmineRequest<IssueStatus> request = + RedmineRequestHelper.action("get_issue_statuses.xml", + IssueStatus.class); + return executeRequestAndReturnDatas(request); } @Override public IssuePriority[] getIssuePriorities() throws RedmineServiceException { - IssuePriority[] result = anonymousService.getIssuePriorities(); - return result; + RedmineRequest<IssuePriority> request = RedmineRequestHelper.action( + "get_issue_priorities.xml", IssuePriority.class); + return executeRequestAndReturnDatas(request); } @Override public Project[] getProjects() throws RedmineServiceException { - Project[] result = anonymousService.getProjects(); - return result; + RedmineRequest<Project> request = RedmineRequestHelper.action( + "get_projects.xml", Project.class); + return executeRequestAndReturnDatas(request); } @Override public IssueCategory[] getIssueCategories(String projectName) throws RedmineServiceException { - IssueCategory[] result = anonymousService.getIssueCategories(projectName); - return result; + RedmineRequest<IssueCategory> request = + RedmineRequestHelper.actionWithProject( + "get_issue_categories.xml", + IssueCategory.class, + projectName); + return executeRequestAndReturnDatas(request); } @Override public Project getProject(String projectName) throws RedmineServiceException { - Project result = anonymousService.getProject(projectName); - return result; + RedmineRequest<Project> request = + RedmineRequestHelper.actionWithProject("get_project.xml", + Project.class, + projectName); + return executeRequestAndReturnData(request + ); } @Override public Tracker[] getTrackers(String projectName) throws RedmineServiceException { - Tracker[] result = anonymousService.getTrackers(projectName); - return result; + RedmineRequest<Tracker> request = + RedmineRequestHelper.actionWithProject("get_project_trackers.xml", + Tracker.class, + projectName); + return executeRequestAndReturnDatas(request); } @Override public News[] getNews(String projectName) throws RedmineServiceException { - News[] result = anonymousService.getNews(projectName); - return result; + RedmineRequest<News> request = + RedmineRequestHelper.actionWithProject("get_project_news.xml", + News.class, + projectName); + return executeRequestAndReturnDatas(request); } @Override public User[] getProjectMembers(String projectName) throws RedmineServiceException { - User[] result = anonymousService.getProjectMembers(projectName); - return result; + RedmineRequest<User> request = + RedmineRequestHelper.actionWithProject("get_project_users.xml", + User.class, + projectName); + return executeRequestAndReturnDatas(request); } @Override public Version[] getVersions(String projectName) throws RedmineServiceException { - Version[] result = anonymousService.getVersions(projectName); - return result; + RedmineRequest<Version> request = + RedmineRequestHelper.actionWithProject("get_project_versions.xml", + Version.class, + projectName); + return executeRequestAndReturnDatas(request); } @Override public Version getVersion(String projectName, String versionName) throws RedmineServiceException { - Version result = anonymousService.getVersion(projectName, versionName); - return result; + RedmineRequest<Version> request = + RedmineRequestHelper.actionWithProjectAndVersion("get_version.xml", + Version.class, + projectName, + versionName); + return executeRequestAndReturnData(request); } @Override public Version getLastestClosedVersion(String projectName) throws RedmineServiceException { - Version result = anonymousService.getLastestClosedVersion(projectName); + + // get all versions + Version[] versions = getVersions(projectName); + List<Version> closedVersions = new ArrayList<Version>(); + for (Version version : versions) { + if (version.getEffectiveDate() != null && + VersionStatusEnum.closed.name().equals(version.getStatus())) { + closedVersions.add(version); + } + } + + Version result = null; + if (!closedVersions.isEmpty()) { + Collections.sort(closedVersions, new Comparator<Version>() { + @Override + public int compare(Version o1, Version o2) { + return o2.getEffectiveDate().compareTo(o1.getEffectiveDate()); + } + }); + result = closedVersions.get(0); + } return result; } @Override public Attachment[] getAttachments(String projectName, String versionName) throws RedmineServiceException { - Attachment[] result = anonymousService.getAttachments(projectName, versionName); - return result; + RedmineRequest<Attachment> request = + RedmineRequestHelper.actionWithProjectAndVersion("get_version_attachments.xml", + Attachment.class, + projectName, + versionName); + return executeRequestAndReturnDatas(request); } @Override public Issue[] getIssues(String projectName, String versionName) throws RedmineServiceException { - Issue[] result = anonymousService.getIssues(projectName, versionName); - return result; + RedmineRequest<Issue> request = + RedmineRequestHelper.actionWithProjectAndVersion("get_version_issues.xml", + Issue.class, + projectName, + versionName); + return executeRequestAndReturnDatas(request); } @Override public TimeEntry[] getIssueTimeEntries(String projectName, String issueId) throws RedmineServiceException { - TimeEntry[] result = anonymousService.getIssueTimeEntries(projectName, issueId); - return result; + RedmineRequest<TimeEntry> request = + RedmineRequestHelper.actionWithProjectAndIssue("get_issue_times.xml", + TimeEntry.class, + projectName, + issueId); + return executeRequestAndReturnDatas(request); } @Override public Issue[] getIssues(String projectName) throws RedmineServiceException { - Issue[] result = anonymousService.getIssues(projectName); + RedmineRequest<Issue> request = + RedmineRequestHelper.actionWithProject("get_project_issues.xml", + Issue.class, + projectName); + Issue[] result = executeRequestAndReturnDatas(request); return result; } @Override public Issue[] getOpenedIssues(String projectName) throws RedmineServiceException { - Issue[] result = anonymousService.getOpenedIssues(projectName); + RedmineRequest<Issue> request = + RedmineRequestHelper.actionWithProject("get_project_opened_issues.xml", + Issue.class, + projectName); + Issue[] result = executeRequestAndReturnDatas(request); return result; } @Override public Issue[] getClosedIssues(String projectName) throws RedmineServiceException { - Issue[] result = anonymousService.getClosedIssues(projectName); + RedmineRequest<Issue> request = + RedmineRequestHelper.actionWithProject("get_project_closed_issues.xml", + Issue.class, + projectName); + Issue[] result = executeRequestAndReturnDatas(request); return result; } @@ -209,10 +270,6 @@ checkLoggued(); RedmineRequest<User> request = RedmineRequestHelper.action("get_user.xml", User.class); - //FIXME-tchemit-2014-05-16 Should remove this! - if (getClient().getConfiguration().getAuthConfiguration().isUseApiKey()) { - request.getParams().put("key", getClient().getConfiguration().getAuthConfiguration().getApiKey()); - } return executeRequestAndReturnData(request); } Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineAnonymousService.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineAnonymousService.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineAnonymousService.java 2014-04-16 12:52:49 UTC (rev 446) @@ -37,14 +37,12 @@ import org.nuiton.jredmine.model.Version; /** - * Contract of all redmine operations which do not requires any login to server. + * Contract of all redmine operations which do not requires any login to server (if project is public). * <p/> - * A default implementation is {@link DefaultRedmineAnonymousService}. * <p/> * Created: 2 janv. 2010 * * @author tchemit <chemit@codelutin.com> - * @see DefaultRedmineAnonymousService * @since 1.0.3 */ public interface RedmineAnonymousService { Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineConfigurationUtil.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineConfigurationUtil.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineConfigurationUtil.java 2014-04-16 12:52:49 UTC (rev 446) @@ -33,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.jredmine.client.RedmineClient; import org.nuiton.jredmine.client.RedmineClientAuthConfiguration; +import org.nuiton.jredmine.client.RedmineClientConfiguration; import java.io.File; import java.io.IOException; @@ -163,6 +164,7 @@ overridePropertyFromProperties(result, "url", props); overridePropertyFromProperties(result, "encoding", props); overridePropertyFromProperties(result, "verbose", props); + // Anonymous means no credential filled overridePropertyFromProperties(authConfiguration, "username", props); overridePropertyFromProperties(authConfiguration, "password", props); overridePropertyFromProperties(authConfiguration, "apiKey", props); @@ -170,7 +172,6 @@ overridePropertyFromEnv(result, "url"); overridePropertyFromEnv(result, "encoding"); overridePropertyFromEnv(result, "verbose"); - result.setAnonymous(true); return result; } @@ -187,8 +188,6 @@ overridePropertyFromEnv(authConfiguration, "password"); overridePropertyFromEnv(authConfiguration, "apiKey"); - result.setAnonymous(false); - return result; } @@ -204,7 +203,6 @@ dst.setUrl(src.getUrl()); dst.setEncoding(src.getEncoding()); dst.setVerbose(src.isVerbose()); - dst.setAnonymous(src.isAnonymous()); RedmineClientAuthConfiguration authConfiguration = new RedmineClientAuthConfiguration(); authConfiguration.setApiKey(src.getAuthConfiguration().getApiKey()); @@ -223,7 +221,8 @@ } catch (Exception e) { throw new IOException( "Could not set property '" + prop + - "' with value '" + value + "' to configuration"); + "' with value '" + value + "' to configuration" + ); } } } @@ -237,11 +236,17 @@ } catch (Exception e) { throw new IOException( "Could not set property '" + prop + - "' with value '" + value + "' to configuration"); + "' with value '" + value + "' to configuration" + ); } } } + public static boolean isLoggued(RedmineClientConfiguration configuration) { + RedmineClientAuthConfiguration authConfiguration = configuration.getAuthConfiguration(); + return authConfiguration.isUseApiKey() || authConfiguration.isUseLoginPassword(); + } + /** * Configuration of a redmine service for test purposes. * @@ -254,8 +259,6 @@ boolean verbose; - boolean anonymous; - String encoding; RedmineClientAuthConfiguration authConfiguration; @@ -301,29 +304,12 @@ } @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 - ); + ToStringBuilder b = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE); b.append("redmineUrl", url); - if (anonymous) { - b.append("anonymous", true); - } else { - b.append("apiKey", authConfiguration.getApiKey()); - b.append("username", authConfiguration.getUsername()); - b.append("password", "***"); - } + b.append("apiKey", authConfiguration.getApiKey()); + b.append("username", authConfiguration.getUsername()); + b.append("password", "***"); b.append("encoding", encoding); b.append("verbose", verbose); return b.toString(); Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineLogguedService.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineLogguedService.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/service/RedmineLogguedService.java 2014-04-16 12:52:49 UTC (rev 446) @@ -34,7 +34,7 @@ /** - * Contract of all redmine operations that needs a login to be performed. + * Contract of all redmine operations that needs a login to be performed (for both public or private projects). * <p/> * A default implementation is offered in {@link DefaultRedmineService}. * <p/> Modified: trunk/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java =================================================================== --- trunk/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/test/java/org/nuiton/jredmine/RedmineFixtures.java 2014-04-16 12:52:49 UTC (rev 446) @@ -48,8 +48,6 @@ /** Logger. */ private static final Log log = LogFactory.getLog(RedmineFixtures.class); -// private ArrayListMultimap<Class<?>, Object> model; - public String projectName() { return "jredmine"; } Modified: trunk/jredmine-client/src/test/java/org/nuiton/jredmine/client/RedmineClientTest.java =================================================================== --- trunk/jredmine-client/src/test/java/org/nuiton/jredmine/client/RedmineClientTest.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/test/java/org/nuiton/jredmine/client/RedmineClientTest.java 2014-04-16 12:52:49 UTC (rev 446) @@ -44,6 +44,7 @@ import org.nuiton.jredmine.model.Tracker; import org.nuiton.jredmine.model.User; import org.nuiton.jredmine.model.Version; +import org.nuiton.jredmine.service.RedmineConfigurationUtil; import org.nuiton.jredmine.service.RedmineServiceConfiguration; import org.nuiton.jredmine.test.RedmineFixtureClassRule; @@ -253,25 +254,17 @@ } @Test - public void login() throws Exception { - - Assume.assumeTrue(!getConfiguration().isAnonymous()); - //Assume.assumeTrue(StringUtils.isBlank(getConfiguration().getApiKey())); - client.open(); + public void getUser() throws Exception { + assumeIsLoggued(); + RedmineRequest<User> request = RedmineRequestHelper.action( + "get_user.xml", User.class); + askData(request); } @Test - public void loginByApiKey() throws Exception { - - Assume.assumeTrue(!getConfiguration().isAnonymous()); - //Assume.assumeTrue(StringUtils.isNotBlank(getConfiguration().getAuthConfiguration().getApiKey())); - client.open(); - } - - @Test public void getUserProjects() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); RedmineRequest<Project> request = RedmineRequestHelper.action( "get_user_projects.xml", Project.class); askDatas(request); @@ -279,37 +272,42 @@ @Test public void addVersion() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); //TODO } @Test public void addAttachment() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); //TODO } @Test public void addNews() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); //TODO } + public void assumeIsLoggued() { + boolean loggued = RedmineConfigurationUtil.isLoggued(getConfiguration()); + Assume.assumeTrue(loggued); + } + @Test public void updateVersion() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); //TODO } @Test public void nextVersion() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); //TODO } @Test public void addIssueTime() throws Exception { - Assume.assumeTrue(!getConfiguration().isAnonymous()); + assumeIsLoggued(); //TODO } Modified: trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/AbstractRedmineFixtures.java =================================================================== --- trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/AbstractRedmineFixtures.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/AbstractRedmineFixtures.java 2014-04-16 12:52:49 UTC (rev 446) @@ -23,7 +23,6 @@ * #L% */ -import org.nuiton.jredmine.service.DefaultRedmineAnonymousService; import org.nuiton.jredmine.service.DefaultRedmineService; import org.nuiton.jredmine.service.RedmineAnonymousService; import org.nuiton.jredmine.service.RedmineConfigurationUtil; @@ -68,7 +67,7 @@ public RedmineAnonymousService newRedmineAnonymousService(RedmineServiceConfiguration configuration) throws IOException, RedmineServiceException { - RedmineAnonymousService service = new DefaultRedmineAnonymousService(); + RedmineAnonymousService service = new DefaultRedmineService(); service.init(configuration); return service; } Modified: trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/RedmineFixtureClassRule.java =================================================================== --- trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/RedmineFixtureClassRule.java 2014-04-16 12:52:01 UTC (rev 445) +++ trunk/jredmine-client/src/test/java/org/nuiton/jredmine/test/RedmineFixtureClassRule.java 2014-04-16 12:52:49 UTC (rev 446) @@ -80,18 +80,6 @@ testClass.getName()); } Assume.assumeTrue(false); - } else { - - // configuration must NOT be anonymous - - if (conf.isAnonymous()) { - - if (log.isWarnEnabled()) { - log.warn("A authenticated configuration was required, will skip test " + - testClass.getName()); - } - Assume.assumeTrue(false); - } } } catch (IOException e) {
participants (1)
-
tchemit@users.nuiton.org