branch feature/GIT updated (de7e177 -> 95bd40c)
This is an automated email from the git hooks/post-receive script. New change to branch feature/GIT in repository scmwebeditor. See http://git.nuiton.org/scmwebeditor.git from de7e177 Corrected a few bugs new 95bd40c Made ScmWebEditorBaseAction abstract, added a new action class for the edit page (EditAction) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 95bd40cdb801208ee8017b5a6bf6eb0c7ff5b385 Author: Hugo PIGEON <hpigeon@codelutin.com> Date: Thu Apr 30 17:01:48 2015 +0200 Made ScmWebEditorBaseAction abstract, added a new action class for the edit page (EditAction) Summary of changes: .../org/nuiton/scmwebeditor/GitConnection.java | 18 +- .../org/nuiton/scmwebeditor/ScmConnection.java | 12 +- .../org/nuiton/scmwebeditor/SvnConnection.java | 20 +-- .../AbstractScmWebEditorAction.java} | 7 +- .../{SearchAction.java => BrowseAction.java} | 14 +- ...ScmWebEditorMainAction.java => EditAction.java} | 189 +-------------------- .../nuiton/scmwebeditor/actions/LogoutAction.java | 3 +- .../nuiton/scmwebeditor/actions/PreviewAction.java | 3 +- .../nuiton/scmwebeditor/actions/ResetAction.java | 3 +- .../actions/ScmWebEditorCommitAction.java | 4 +- .../actions/ScmWebEditorMainAction.java | 178 +------------------ .../nuiton/scmwebeditor/actions/UploadAction.java | 3 +- src/main/resources/struts.xml | 15 +- .../WEB-INF/content/{search.jsp => browse.jsp} | 4 +- .../content/{loginSearch.jsp => loginBrowse.jsp} | 0 src/main/webapp/WEB-INF/content/outConnection.jsp | 4 +- src/main/webapp/WEB-INF/content/uploadForm.jsp | 2 +- .../org/nuiton/scmwebeditor/BaseActionTest.java | 14 +- 18 files changed, 74 insertions(+), 419 deletions(-) rename src/main/java/org/nuiton/scmwebeditor/{ScmWebEditorBaseAction.java => actions/AbstractScmWebEditorAction.java} (97%) rename src/main/java/org/nuiton/scmwebeditor/actions/{SearchAction.java => BrowseAction.java} (94%) copy src/main/java/org/nuiton/scmwebeditor/actions/{ScmWebEditorMainAction.java => EditAction.java} (58%) rename src/main/webapp/WEB-INF/content/{search.jsp => browse.jsp} (95%) rename src/main/webapp/WEB-INF/content/{loginSearch.jsp => loginBrowse.jsp} (100%) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/GIT in repository scmwebeditor. See http://git.nuiton.org/scmwebeditor.git commit 95bd40cdb801208ee8017b5a6bf6eb0c7ff5b385 Author: Hugo PIGEON <hpigeon@codelutin.com> Date: Thu Apr 30 17:01:48 2015 +0200 Made ScmWebEditorBaseAction abstract, added a new action class for the edit page (EditAction) --- .../org/nuiton/scmwebeditor/GitConnection.java | 18 +- .../org/nuiton/scmwebeditor/ScmConnection.java | 12 +- .../org/nuiton/scmwebeditor/SvnConnection.java | 20 +-- .../AbstractScmWebEditorAction.java} | 7 +- .../{SearchAction.java => BrowseAction.java} | 14 +- ...ScmWebEditorMainAction.java => EditAction.java} | 189 +-------------------- .../nuiton/scmwebeditor/actions/LogoutAction.java | 3 +- .../nuiton/scmwebeditor/actions/PreviewAction.java | 3 +- .../nuiton/scmwebeditor/actions/ResetAction.java | 3 +- .../actions/ScmWebEditorCommitAction.java | 4 +- .../actions/ScmWebEditorMainAction.java | 178 +------------------ .../nuiton/scmwebeditor/actions/UploadAction.java | 3 +- src/main/resources/struts.xml | 15 +- .../WEB-INF/content/{search.jsp => browse.jsp} | 4 +- .../content/{loginSearch.jsp => loginBrowse.jsp} | 0 src/main/webapp/WEB-INF/content/outConnection.jsp | 4 +- src/main/webapp/WEB-INF/content/uploadForm.jsp | 2 +- .../org/nuiton/scmwebeditor/BaseActionTest.java | 14 +- 18 files changed, 74 insertions(+), 419 deletions(-) diff --git a/src/main/java/org/nuiton/scmwebeditor/GitConnection.java b/src/main/java/org/nuiton/scmwebeditor/GitConnection.java index 6369c42..feab836 100644 --- a/src/main/java/org/nuiton/scmwebeditor/GitConnection.java +++ b/src/main/java/org/nuiton/scmwebeditor/GitConnection.java @@ -40,8 +40,8 @@ import org.eclipse.jgit.storage.file.FileRepositoryBuilder; import org.eclipse.jgit.transport.CredentialsProvider; import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; import org.eclipse.jgit.treewalk.TreeWalk; +import org.nuiton.scmwebeditor.actions.BrowseAction; import org.nuiton.scmwebeditor.actions.ScmWebEditorCommitAction; -import org.nuiton.scmwebeditor.actions.SearchAction; import org.nuiton.scmwebeditor.actions.UploadAction; import javax.naming.AuthenticationException; @@ -107,7 +107,7 @@ public class GitConnection implements ScmConnection { @Override - public String search(SearchAction action) { + public String browse(BrowseAction action) { try { cloneRepository(action.getUsername(), action.getPw()); @@ -145,7 +145,7 @@ public class GitConnection implements ScmConnection { log.error("Error while getting the head branch name", e); } action.setError(true); - return SearchAction.ROOT; + return BrowseAction.ROOT; } action.setHeadBranchName(headBranchName); @@ -184,7 +184,7 @@ public class GitConnection implements ScmConnection { log.error("Can't access to the repository", e); } action.setError(true); - return SearchAction.ROOT; + return BrowseAction.ROOT; } String id = action.getId(); @@ -192,7 +192,7 @@ public class GitConnection implements ScmConnection { // if the id parameter is not given, we look for the root if (id.equals("")) { - return SearchAction.ROOT; + return BrowseAction.ROOT; } else if (id.equals("0")) { url = address; } else { @@ -206,7 +206,7 @@ public class GitConnection implements ScmConnection { if (!gitRepo.getObjectDatabase().exists()) { action.setError(true); - return SearchAction.ROOT; + return BrowseAction.ROOT; } RevCommit commit = null; @@ -221,7 +221,7 @@ public class GitConnection implements ScmConnection { } action.setError(true); - return SearchAction.ROOT; + return BrowseAction.ROOT; } RevTree tree = commit.getTree(); @@ -264,7 +264,7 @@ public class GitConnection implements ScmConnection { log.error("Can't access to the repository", e); } action.setError(true); - return SearchAction.ROOT; + return BrowseAction.ROOT; } action.setError(false); @@ -294,7 +294,7 @@ public class GitConnection implements ScmConnection { } } - return SearchAction.SUCCESS; + return BrowseAction.SUCCESS; } diff --git a/src/main/java/org/nuiton/scmwebeditor/ScmConnection.java b/src/main/java/org/nuiton/scmwebeditor/ScmConnection.java index f7fce5b..f56d97e 100644 --- a/src/main/java/org/nuiton/scmwebeditor/ScmConnection.java +++ b/src/main/java/org/nuiton/scmwebeditor/ScmConnection.java @@ -1,7 +1,7 @@ package org.nuiton.scmwebeditor; import org.nuiton.scmwebeditor.actions.ScmWebEditorCommitAction; -import org.nuiton.scmwebeditor.actions.SearchAction; +import org.nuiton.scmwebeditor.actions.BrowseAction; import org.nuiton.scmwebeditor.actions.UploadAction; import javax.naming.AuthenticationException; @@ -13,13 +13,13 @@ public interface ScmConnection { /** * Searches the repository's files to make a list of them - * @param action the SearchAction which contains the parameters (repository's address, username, password...) + * @param action the BrowseAction which contains the parameters (repository's address, username, password...) * and which will contain the result (a list of TreeNode for example) - * @return SearchAction.AUTH_ERROR if there has been a problem during the authentication - * SearchAction.ROOT if the result is the root of the repository - * SearchAction.SUCCESS otherwise + * @return BrowseAction.AUTH_ERROR if there has been a problem during the authentication + * BrowseAction.ROOT if the result is the root of the repository + * BrowseAction.SUCCESS otherwise */ - public String search(SearchAction action); + public String browse(BrowseAction action); /** diff --git a/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java b/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java index 90eb314..6932f94 100644 --- a/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java +++ b/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java @@ -25,8 +25,8 @@ import com.jgeppert.struts2.jquery.tree.result.TreeNode; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.scmwebeditor.actions.BrowseAction; import org.nuiton.scmwebeditor.actions.ScmWebEditorCommitAction; -import org.nuiton.scmwebeditor.actions.SearchAction; import org.nuiton.scmwebeditor.actions.UploadAction; import org.nuiton.util.FileUtil; import org.tmatesoft.svn.core.*; @@ -100,7 +100,7 @@ public class SvnConnection implements ScmConnection { @Override - public String search(SearchAction action) { + public String browse(BrowseAction action) { String url; @@ -130,7 +130,7 @@ public class SvnConnection implements ScmConnection { if (log.isErrorEnabled()) { log.error("Can't access to the repository : Auth Problem", e); } - return SearchAction.AUTH_ERROR; + return BrowseAction.AUTH_ERROR; } catch (SVNException e) { if (log.isErrorEnabled()) { log.error("Can't access to the repository", e); @@ -138,7 +138,7 @@ public class SvnConnection implements ScmConnection { action.setError(true); } - return SearchAction.ROOT; + return BrowseAction.ROOT; } else if (action.getId().equals("0")) { url = action.getAddress(); } else { @@ -164,7 +164,7 @@ public class SvnConnection implements ScmConnection { log.warn("There is no entry at '" + url + "'."); } action.setError(true); - return SearchAction.SUCCESS; + return BrowseAction.SUCCESS; } else if (nodeKind == SVNNodeKind.FILE) { if (log.isDebugEnabled()) { log.debug("The entry at '" + url + "' is a file."); @@ -175,7 +175,7 @@ public class SvnConnection implements ScmConnection { node.setState(TreeNode.NODE_STATE_LEAF); node.setIcon("ui-icon-document"); action.getNodes().add(node); - return SearchAction.SUCCESS; + return BrowseAction.SUCCESS; } action.setNumberOfFile(0); listEntries(repository, "", action); @@ -188,7 +188,7 @@ public class SvnConnection implements ScmConnection { if (log.isErrorEnabled()) { log.error("Can't access to the repository : Auth Problem"); } - return SearchAction.AUTH_ERROR; + return BrowseAction.AUTH_ERROR; } catch (SVNException svne) { if (log.isErrorEnabled()) { log.error("Can't access to the repository"); @@ -226,7 +226,7 @@ public class SvnConnection implements ScmConnection { } } - return SearchAction.SUCCESS; + return BrowseAction.SUCCESS; } @@ -253,7 +253,7 @@ public class SvnConnection implements ScmConnection { try { checkout(checkoutdir); } catch (SVNAuthenticationException authexep) { - action.getRequest().setAttribute(action.PARAMETER_ADDRESS, action.getAddress()); + action.getRequest().setAttribute(action.getParameterAddress(), action.getAddress()); // if svn authentication failed user is redirected on login page if (log.isDebugEnabled()) { @@ -879,7 +879,7 @@ public class SvnConnection implements ScmConnection { - public static void listEntries(SVNRepository repository, String path, SearchAction action) { + public static void listEntries(SVNRepository repository, String path, BrowseAction action) { action.setFiles(new LinkedList<String>()); action.setDirectories(new HashMap<String, String>()); diff --git a/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/AbstractScmWebEditorAction.java similarity index 97% rename from src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java rename to src/main/java/org/nuiton/scmwebeditor/actions/AbstractScmWebEditorAction.java index 60618ec..b835376 100644 --- a/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/AbstractScmWebEditorAction.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package org.nuiton.scmwebeditor; +package org.nuiton.scmwebeditor.actions; import com.opensymphony.xwork2.ActionContext; import info.monitorenter.cpdetector.io.*; @@ -31,6 +31,7 @@ import org.apache.tika.exception.TikaException; import org.apache.tika.metadata.Metadata; import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.sax.BodyContentHandler; +import org.nuiton.scmwebeditor.ScmSession; import org.nuiton.web.struts2.BaseAction; import org.xml.sax.SAXException; @@ -46,7 +47,7 @@ import java.util.Properties; * Date: 24 nov. 2009 * Time: 21:24:39 */ -public class ScmWebEditorBaseAction extends BaseAction implements ServletRequestAware { +public abstract class AbstractScmWebEditorAction extends BaseAction implements ServletRequestAware { public static final String AUTH_ERROR = "authError"; @@ -62,7 +63,7 @@ public class ScmWebEditorBaseAction extends BaseAction implements ServletRequest final static protected String CONTEXT_ACTION_KEY = "action"; - private static final Log log = LogFactory.getLog(ScmWebEditorBaseAction.class); + private static final Log log = LogFactory.getLog(AbstractScmWebEditorAction.class); //TODO-TC200924 : uniformize all this different parameter and attribute, this is a bit messy... protected static final String PARAMETER_ADDRESS = "address"; diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/BrowseAction.java similarity index 94% rename from src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java rename to src/main/java/org/nuiton/scmwebeditor/actions/BrowseAction.java index 47c7bb0..dd8b298 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/BrowseAction.java @@ -32,11 +32,11 @@ import java.util.List; import java.util.Map; -public class SearchAction extends ScmWebEditorBaseAction { +public class BrowseAction extends AbstractScmWebEditorAction { private static final long serialVersionUID = 4432027215087932750L; - private static final Log log = LogFactory.getLog(SearchAction.class); + private static final Log log = LogFactory.getLog(BrowseAction.class); public static final String ROOT = "root"; @@ -114,10 +114,10 @@ public class SearchAction extends ScmWebEditorBaseAction { public void setHeadBranchName(String headBranchName) { this.headBranchName = headBranchName; } - public String search() { + public String browse() { if (log.isDebugEnabled()) { - log.debug("Enter in search action"); + log.debug("Enter in browse action"); } if (address.endsWith("/")) { @@ -154,12 +154,12 @@ public class SearchAction extends ScmWebEditorBaseAction { return ROOT; } - returnCode = scmConn.search(this); + returnCode = scmConn.browse(this); /* BrowseDto totto = new BrowseDto(); totto.setUrl(address); - returnCode = scmConn.search(totto); + returnCode = scmConn.browse(totto); */ if (files == null && directories == null) { @@ -203,7 +203,7 @@ public class SearchAction extends ScmWebEditorBaseAction { public String getJSON() { - return search(); + return browse(); } public List<TreeNode> getNodes() { diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/EditAction.java similarity index 58% copy from src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java copy to src/main/java/org/nuiton/scmwebeditor/actions/EditAction.java index 6d346b6..8959d53 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/EditAction.java @@ -1,190 +1,26 @@ -/* - * #%L - * ScmWebEditor - * %% - * Copyright (C) 2009 - 2011 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.scmwebeditor.actions; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.shiro.codec.Base64; import org.apache.shiro.crypto.BlowfishCipherService; -import org.apache.struts2.interceptor.ServletResponseAware; -import org.nuiton.scmwebeditor.*; +import org.nuiton.scmwebeditor.ScmConnection; +import org.nuiton.scmwebeditor.ScmConnectionFactory; +import org.nuiton.scmwebeditor.ScmNotFoundException; +import org.nuiton.scmwebeditor.ScmWebEditorConfig; import javax.naming.AuthenticationException; import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.util.LinkedList; -import java.util.List; - - -public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements ServletResponseAware { - - - private static final long serialVersionUID = 8361035067228171624L; - - private static final Log log = LogFactory.getLog(ScmWebEditorMainAction.class); - - public static final String NO_PARAMETER = "noParameter"; - - public static final String EDIT_PAGE = "editPage"; - - protected String address; - - protected String projectUrl; - - protected String format; - - protected String origText; - - protected String mimeType; - - protected boolean saveCookie = true; - - protected boolean badLogin; - - protected String numRevision; - - protected String username; - - protected String pw; - - protected transient HttpServletResponse response; - - protected String repositoryId; - - protected boolean fromLoginPage; - - public String getMimeType() { - return mimeType; - } - - public String getRepositoryId() { - return repositoryId; - } - - public void setRepositoryId(String repositoryId) { - this.repositoryId = repositoryId; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPw() { - return pw; - } - - public void setPw(String pw) { - this.pw = pw; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - public String getFormat() { - return format; - } - - public void setFormat(String format) { - this.format = format; - } - - public String getOrigText() { - return origText; - } - - public String getProjectUrl() { - return projectUrl; - } - - public String getNumRevision() { - return numRevision; - } - - public void setProjectUrl(String projectUrl) { - this.projectUrl = projectUrl; - } - - public void setFromLoginPage(boolean fromLoginPage) { - this.fromLoginPage = fromLoginPage; - } - - public boolean isBadLogin() { - return badLogin; - } - - public List<String> getSupportedScms() { return ScmWebEditorConfig.getSupportedScms(); } - - /** - * We check whether the parameters are empty - * - * @return - */ - private boolean testParameters() { - if (address == null || address.length() == 0) { - return true; - } else { - return false; - } - } - - /** - * Main method of the class - * - * @return - */ - @Override - public String execute() { - - if (log.isDebugEnabled()) { - log.debug("Connection to SCMWebEditor\n"); - } - - - if (!fromLoginPage && projectUrl == null) { - projectUrl = request.getHeader("referer"); - } - - - if (log.isDebugEnabled()) { - log.debug("ProjectUrl= " + projectUrl); - } - - // if there is no parameter, the user is redirected to the search page - if (testParameters()) { - return NO_PARAMETER; - } +public class EditAction extends ScmWebEditorMainAction { + private static final Log log = LogFactory.getLog(EditAction.class); + public String edit() { HttpSession session = request.getSession(); String sessionId = session.getId(); @@ -359,14 +195,5 @@ public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements Se } return EDIT_PAGE; - } - - - @Override - public void setServletResponse(HttpServletResponse response) { - this.response = response; - } - - } diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java index dd5dd80..b9d9450 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java @@ -28,13 +28,12 @@ import org.apache.struts2.interceptor.ServletResponseAware; import org.nuiton.scmwebeditor.ScmConnection; import org.nuiton.scmwebeditor.ScmConnectionFactory; import org.nuiton.scmwebeditor.ScmNotFoundException; -import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -public class LogoutAction extends ScmWebEditorBaseAction implements ServletRequestAware, ServletResponseAware { +public class LogoutAction extends AbstractScmWebEditorAction implements ServletRequestAware, ServletResponseAware { private static final long serialVersionUID = 6937086747942656369L; diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/PreviewAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/PreviewAction.java index 853ec7e..1298d66 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/PreviewAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/PreviewAction.java @@ -27,12 +27,11 @@ import org.apache.struts2.interceptor.ServletRequestAware; import org.dom4j.Document; import org.nuiton.jrst.JRST; import org.nuiton.jrst.legacy.JRSTReader; -import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; import javax.servlet.http.HttpServletRequest; import java.io.StringReader; -public class PreviewAction extends ScmWebEditorBaseAction implements ServletRequestAware { +public class PreviewAction extends AbstractScmWebEditorAction implements ServletRequestAware { /** serialVersionUID. */ private static final long serialVersionUID = -2388759298175611718L; diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java index 080d1e9..455d99d 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java @@ -26,11 +26,10 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.scmwebeditor.ScmConnection; import org.nuiton.scmwebeditor.ScmConnectionFactory; import org.nuiton.scmwebeditor.ScmNotFoundException; -import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; import javax.naming.AuthenticationException; -public class ResetAction extends ScmWebEditorBaseAction { +public class ResetAction extends AbstractScmWebEditorAction { private static final long serialVersionUID = -1154924826535371319L; diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java index be11be5..37409e1 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java @@ -39,7 +39,7 @@ import javax.servlet.http.HttpSession; import java.io.StringReader; -public class ScmWebEditorCommitAction extends ScmWebEditorBaseAction implements ServletRequestAware, ServletResponseAware { +public class ScmWebEditorCommitAction extends AbstractScmWebEditorAction implements ServletRequestAware, ServletResponseAware { private static final long serialVersionUID = 6374273568146287730L; @@ -203,6 +203,8 @@ public class ScmWebEditorCommitAction extends ScmWebEditorBaseAction implements public void setBadLogin(boolean badLogin) { this.badLogin = badLogin; } + public String getParameterAddress() { return PARAMETER_ADDRESS; } + public boolean isBadLogin() { return badLogin; diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java index 6d346b6..8eebc14 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java @@ -37,7 +37,7 @@ import java.util.LinkedList; import java.util.List; -public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements ServletResponseAware { +public class ScmWebEditorMainAction extends AbstractScmWebEditorAction implements ServletResponseAware { private static final long serialVersionUID = 8361035067228171624L; @@ -179,187 +179,13 @@ public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements Se log.debug("ProjectUrl= " + projectUrl); } - // if there is no parameter, the user is redirected to the search page + // if there is no parameter, the user is redirected to the browse page if (testParameters()) { return NO_PARAMETER; - } - - - HttpSession session = request.getSession(); - String sessionId = session.getId(); - - ScmConnection scmConn = null; - try { - scmConn = ScmConnectionFactory.createScmConnection(address, scmType, sessionId); - } catch (ScmNotFoundException e) { - if (log.isErrorEnabled()) { - log.error("Can not create a connection to the SCM", e); - } - } - - format = scmConn.getFileName().substring(scmConn.getFileName().lastIndexOf(".") + 1); - - String originalText = ""; - - // if the repository is not protected, we get its UUID - String repositoryUUID = scmConn.getRepositoryId(); - if (repositoryUUID == null) { - repositoryUUID = address; - } - - if (log.isDebugEnabled()) { - log.debug("Login : " + username); - } - - - /* - * Reading the cookie - */ - - - String usernamepwCookie = null; - // read the cookies - - BlowfishCipherService bf = new BlowfishCipherService(); - - byte[] privateKey = Base64.decode(ScmWebEditorConfig.getKey()); - - if (request.getCookies() != null) { - for (Cookie c : request.getCookies()) { - if (c.getName().equals(repositoryUUID)) { - usernamepwCookie = c.getValue(); - } - } - } - - if (usernamepwCookie != null) { - - String usernameDecode = new String(bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes()); - - String[] resCookie = usernameDecode.split(","); - if (resCookie.length == 2) { - username = resCookie[0]; - pw = resCookie[1]; - } - } - - if (saveCookie) { - if (username != null && pw != null) { - - Cookie authCookie = new Cookie(repositoryUUID, bf.encrypt((username + "," + pw).getBytes(), privateKey).toBase64()); - authCookie.setMaxAge(60 * 60 * 24 * 365); - response.addCookie(authCookie); - } - - } - - - /* - * Getting the information in session - */ - if (username == null && pw == null) { - if (getScmSession().getUsername(repositoryUUID) != null && getScmSession().getPassword(repositoryUUID) != null) { - //On recupère les identifiants en session - username = getScmSession().getUsername(repositoryUUID); - pw = getScmSession().getPassword(repositoryUUID); - } else { - username = null; - pw = null; - } } else { - getScmSession().addScmUser(repositoryUUID, username, pw); - } - - String name = username; - String password = pw; - - if (name == null) { - name = "anonymous"; - } - if (password == null) { - password = "anonymous"; - } - - - /* - * Getting the file and its revision - */ - - try { - originalText = scmConn.getFileContent(address, name, password); - numRevision = scmConn.getHeadRevisionNumber(address, name, password); - } catch (AuthenticationException e) { - request.setAttribute(PARAMETER_ADDRESS, address); - - // if scm authentication failed user is redirected on login page - if (log.isDebugEnabled()) { - log.debug("Auth Fail ", e); - } - - // deleting the cookies for this repository - for (Cookie c : request.getCookies()) { - if (c.getName().equals(repositoryUUID)) { - c.setMaxAge(0);//On supprime le cookie - response.addCookie(c); - if (log.isDebugEnabled()) { - log.debug("Cookie supprimĂ©"); - } - } - } - - getScmSession().delScmUser(repositoryUUID); - //redirect to a login page - return LOGIN; - } - - mimeType = null; - - try { - mimeType = getMimeType(originalText, scmConn.getFileName()); - } catch (IOException e) { - if (log.isErrorEnabled()) { - log.error("Can't get MimeType, problem when reading file", e); - } - } - - - LinkedList<String> editableFiles = new LinkedList<String>(); - - editableFiles.add("text"); - editableFiles.add("xml"); - editableFiles.add("x-java"); - - editableFiles.addAll(ScmWebEditorConfig.getEditableFiles()); - - - boolean editable = false; - if (mimeType != null) { - for (String fileType : editableFiles) { - if (mimeType.matches(".*" + fileType + ".*")) { - editable = true; - } - } - } - - - // if the file is not of text type, we can't edit it - if (mimeType == null || !editable) { - - if (log.isErrorEnabled()) { - log.error("Can't edit this file, mimetype : " + mimeType); - } return ERROR_PATH; } - origText = originalText; - - - if (log.isInfoEnabled()) { - log.info("IP client : " + request.getRemoteAddr() + " , get file : " + address + ". File's mimetype : " + mimeType); - } - - return EDIT_PAGE; - } diff --git a/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java b/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java index fdb58f7..ad8f889 100644 --- a/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java +++ b/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java @@ -27,13 +27,12 @@ import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.ScmConnection; import org.nuiton.scmwebeditor.ScmConnectionFactory; import org.nuiton.scmwebeditor.ScmNotFoundException; -import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; -public class UploadAction extends ScmWebEditorBaseAction implements ServletRequestAware { +public class UploadAction extends AbstractScmWebEditorAction implements ServletRequestAware { private static final long serialVersionUID = 4244339447567114412L; diff --git a/src/main/resources/struts.xml b/src/main/resources/struts.xml index a6e9051..a0ef2f3 100644 --- a/src/main/resources/struts.xml +++ b/src/main/resources/struts.xml @@ -65,8 +65,11 @@ <default-interceptor-ref name="scmwebeditorDefaultStack"/> <action name="checkout" class="org.nuiton.scmwebeditor.actions.ScmWebEditorMainAction" method="execute"> - - + <result name="noParameter" >/WEB-INF/content/outConnection.jsp</result> + <result name="errorPath" >/WEB-INF/content/badFileRedirect.jsp</result> + </action> + + <action name="edit" class="org.nuiton.scmwebeditor.actions.EditAction" method="edit"> <result name="noParameter" >/WEB-INF/content/outConnection.jsp</result> <result name="login" >/WEB-INF/content/privateSvnRedirect.jsp</result> <result name="errorPath" >/WEB-INF/content/badFileRedirect.jsp</result> @@ -114,16 +117,16 @@ </action> - <action name="search" class="org.nuiton.scmwebeditor.actions.SearchAction" method="search"> + <action name="browse" class="org.nuiton.scmwebeditor.actions.BrowseAction" method="browse"> <param name="address"/> - <result name="root">/WEB-INF/content/search.jsp</result> + <result name="root">/WEB-INF/content/browse.jsp</result> <result name="success" type="json"> <param name="root">nodes</param> </result> - <result name="authError" >/WEB-INF/content/loginSearch.jsp</result> + <result name="authError" >/WEB-INF/content/loginBrowse.jsp</result> </action> - <action name="getBranches" class="org.nuiton.scmwebeditor.actions.SearchAction" method="getBranchesJSON"> + <action name="getBranches" class="org.nuiton.scmwebeditor.actions.BrowseAction" method="getBranchesJSON"> <param name="address"/> <result name="*" type="json"> <param name="branches">branches</param> diff --git a/src/main/webapp/WEB-INF/content/search.jsp b/src/main/webapp/WEB-INF/content/browse.jsp similarity index 95% rename from src/main/webapp/WEB-INF/content/search.jsp rename to src/main/webapp/WEB-INF/content/browse.jsp index f1f0187..3b4a082 100644 --- a/src/main/webapp/WEB-INF/content/search.jsp +++ b/src/main/webapp/WEB-INF/content/browse.jsp @@ -34,7 +34,7 @@ if (item.text().indexOf("/") == -1) { var scmType = $("#scmType").val(); - document.location.href = ("checkout.action?address=" + item.attr("id") + "&scmType=" + scmType); + document.location.href = ("edit.action?address=" + item.attr("id") + "&scmType=" + scmType); } }); @@ -89,7 +89,7 @@ <s:url id="searchTreeUrl" - action="search?address=%{address}&username=%{username}&pw=%{pw}&selectedBranch=%{selectedBranch}&scmType=%{scmType}"/> + action="browse?address=%{address}&username=%{username}&pw=%{pw}&selectedBranch=%{selectedBranch}&scmType=%{scmType}"/> <sjt:tree id="scmTree" htmlTitles="true" jstreetheme="classic" diff --git a/src/main/webapp/WEB-INF/content/loginSearch.jsp b/src/main/webapp/WEB-INF/content/loginBrowse.jsp similarity index 100% rename from src/main/webapp/WEB-INF/content/loginSearch.jsp rename to src/main/webapp/WEB-INF/content/loginBrowse.jsp diff --git a/src/main/webapp/WEB-INF/content/outConnection.jsp b/src/main/webapp/WEB-INF/content/outConnection.jsp index edb5ee3..56783f6 100644 --- a/src/main/webapp/WEB-INF/content/outConnection.jsp +++ b/src/main/webapp/WEB-INF/content/outConnection.jsp @@ -101,7 +101,7 @@ <s:hidden id="selectedBranch" name="selectedBranch" value=""/> - <s:url id="ajaxSearch" value="search.action"/> + <s:url id="ajaxSearch" value="browse.action"/> <s:set id="search"> <s:text name="scm.outConnection.search"/> @@ -154,7 +154,7 @@ --> </div> </div> -<p align="right">©2004-2014 CodeLutin</p> +<p align="right">©2004-2015 CodeLutin</p> </body> </html> diff --git a/src/main/webapp/WEB-INF/content/uploadForm.jsp b/src/main/webapp/WEB-INF/content/uploadForm.jsp index d6048db..b21882f 100644 --- a/src/main/webapp/WEB-INF/content/uploadForm.jsp +++ b/src/main/webapp/WEB-INF/content/uploadForm.jsp @@ -88,7 +88,7 @@ <div id="searchTree"> <s:url id="searchTreeUrl" - action="search?address=%{scmRoot}&username=%{username}&pw=%{pw}&selectedBranch=%{selectedBranch}&scmType=%{scmType}"/> + action="browse?address=%{scmRoot}&username=%{username}&pw=%{pw}&selectedBranch=%{selectedBranch}&scmType=%{scmType}"/> <sjt:tree id="scmTree" htmlTitles="true" jstreetheme="classic" diff --git a/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java b/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java index 788932f..a6c2edd 100644 --- a/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java +++ b/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java @@ -27,7 +27,8 @@ import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.nuiton.scmwebeditor.actions.SearchAction; +import org.nuiton.scmwebeditor.actions.BrowseAction; +import org.nuiton.scmwebeditor.actions.AbstractScmWebEditorAction; import org.nuiton.util.FileUtil; import org.tmatesoft.svn.core.SVNDepth; import org.tmatesoft.svn.core.SVNException; @@ -114,8 +115,7 @@ public class BaseActionTest { SvnConnection svnSess = new SvnConnection(tgtURL.toString()+"/testFile"); checkoutdirTest = FileUtil.createTempDirectory("scmCheckOutTest_", ""); - - ScmWebEditorBaseAction baseAction = new ScmWebEditorBaseAction(); + svnSess.checkout(checkoutdirTest); } catch (SVNException e) { @@ -134,14 +134,14 @@ public class BaseActionTest { @Test public void testSearch() { - SearchAction searchAction = new SearchAction(); + BrowseAction browseAction = new BrowseAction(); LinkedList<String> files = null; try { SVNRepository repository = SVNRepositoryFactory.create(tgtURL); - searchAction.setAddress(""); - SvnConnection.listEntries(repository , "", searchAction); + browseAction.setAddress(""); + SvnConnection.listEntries(repository , "", browseAction); files = new LinkedList<String>(); - files.addAll(searchAction.getFiles()); + files.addAll(browseAction.getFiles()); } catch (SVNException e) { log.error("Erreur SVN in test",e); } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm