r540 - in trunk: simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/page
Author: glandais Date: 2008-01-25 10:24:40 +0000 (Fri, 25 Jan 2008) New Revision: 540 Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/SimExplorerWebException.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityEqualsTestCase.java trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityTestCase.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementExport.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/AttachmentStreamResponse.java trunk/simexplorer-is-web/src/main/webapp/ElementExport.tml Log: Better exception handling in web app Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java 2008-01-25 10:24:40 UTC (rev 540) @@ -25,55 +25,76 @@ @Remote public interface AuthenticationService { - public String loginUser(String login, String password); + public String loginUser(String login, String password) + throws SimExplorerServiceException; - public void closeSessionTimer(String token); + public void closeSessionTimer(String token) + throws SimExplorerServiceException; - public User requestAccount(String login, String mail); + public User requestAccount(String login, String mail) + throws SimExplorerServiceException; - public User saveUser(String token, String login, String mail); + public User saveUser(String token, String login, String mail) + throws SimExplorerServiceException; - public void resetPassword(String token, String login); + public void resetPassword(String token, String login) + throws SimExplorerServiceException; - public void changePassword(String token, String login, String password); + public void changePassword(String token, String login, String password) + throws SimExplorerServiceException; - public User getUser(String token, Integer id); + public User getUser(String token, Integer id) + throws SimExplorerServiceException; - public User getUser(String token, String login); + public User getUser(String token, String login) + throws SimExplorerServiceException; - public User updateUser(String token, User user); + public User updateUser(String token, User user) + throws SimExplorerServiceException; - public void deleteUser(String token, Integer id); + public void deleteUser(String token, Integer id) + throws SimExplorerServiceException; - public User[] getUsers(String token); + public User[] getUsers(String token) throws SimExplorerServiceException; - public User[] getUsersOfGroup(String token, Group group); + public User[] getUsersOfGroup(String token, Group group) + throws SimExplorerServiceException; public void setUsersOfGroup(String token, Group group, - Integer[] usersInGroup); + Integer[] usersInGroup) throws SimExplorerServiceException; - public void setGroupsOfGroup(String token, Group group, Integer[] groupsIds); + public void setGroupsOfGroup(String token, Group group, Integer[] groupsIds) + throws SimExplorerServiceException; - public Group[] getGroupsOfUser(String token, User user); + public Group[] getGroupsOfUser(String token, User user) + throws SimExplorerServiceException; - public Group[] getGroupsOfGroup(String token, Group group); + public Group[] getGroupsOfGroup(String token, Group group) + throws SimExplorerServiceException; - public void setGroupsOfUser(String token, User user, Integer[] groupsIds); + public void setGroupsOfUser(String token, User user, Integer[] groupsIds) + throws SimExplorerServiceException; - public Group saveGroup(String token, String name, User owner); + public Group saveGroup(String token, String name, User owner) + throws SimExplorerServiceException; - public Group getGroup(String token, Integer id); + public Group getGroup(String token, Integer id) + throws SimExplorerServiceException; - public Group getGroup(String token, String name); + public Group getGroup(String token, String name) + throws SimExplorerServiceException; - public Group updateGroup(String token, Group group); + public Group updateGroup(String token, Group group) + throws SimExplorerServiceException; - public void deleteGroup(String token, Integer id); + public void deleteGroup(String token, Integer id) + throws SimExplorerServiceException; - public Group[] getGroups(String token); + public Group[] getGroups(String token) throws SimExplorerServiceException; - public Group[] getGroupsOwnedBy(String token, User user); + public Group[] getGroupsOwnedBy(String token, User user) + throws SimExplorerServiceException; - public User getLoggedUser(String token); + public User getLoggedUser(String token) throws SimExplorerServiceException; } Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-01-25 10:24:40 UTC (rev 540) @@ -18,6 +18,7 @@ package fr.cemagref.simexplorer.is.service; import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -73,12 +74,12 @@ */ } - private String computeHash(String clearString) { + private String computeHash(String clearString) throws SimExplorerServiceException { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("SHA-1"); - } catch (Exception e) { - // TODO: handle exception + } catch (NoSuchAlgorithmException e) { + throw new SimExplorerServiceException(e); } messageDigest.reset(); messageDigest.update(clearString.getBytes()); @@ -137,7 +138,7 @@ return group; } - public User saveUser(String token, String login, String mail) { + public User saveUser(String token, String login, String mail) throws SimExplorerServiceException { User user = new User(); user.setLogin(login); user.setMail(mail); @@ -166,7 +167,7 @@ return loggedUser; } - private void checkSuperAdmin() { + private void checkSuperAdmin() throws SimExplorerServiceException { if (dao.getUser("superadmin") == null) { User user = new User(); user.setLogin("superadmin"); @@ -180,7 +181,7 @@ } } - public String loginUser(String login, String password) { + public String loginUser(String login, String password) throws SimExplorerServiceException { if (!superAdminCheck) { checkSuperAdmin(); superAdminCheck = true; @@ -210,7 +211,7 @@ dao.deleteToken(token); } - public User requestAccount(String login, String mail) { + public User requestAccount(String login, String mail) throws SimExplorerServiceException { User user = new User(); user.setLogin(login); user.setMail(mail); @@ -222,14 +223,14 @@ return user; } - public void changePassword(String token, String login, String password) { + public void changePassword(String token, String login, String password) throws SimExplorerServiceException { User user = getUser(token, login); String passwordHash = computeHash(password); user.setPasswordHash(passwordHash); dao.saveUser(user); } - public void resetPassword(String token, String login) { + public void resetPassword(String token, String login) throws SimExplorerServiceException { User user = getUser(token, login); String password = generatePassword(); sendMail(login, user.getMail(), password); Modified: trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityEqualsTestCase.java =================================================================== --- trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityEqualsTestCase.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityEqualsTestCase.java 2008-01-25 10:24:40 UTC (rev 540) @@ -44,7 +44,7 @@ } - public void testHashCode() { + public void testHashCode() throws SimExplorerServiceException { String token = authenticationService.loginUser("superadmin", "password"); User[] users1 = authenticationService.getUsers(token); User[] users2 = authenticationService.getUsers(token); Modified: trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityTestCase.java =================================================================== --- trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityTestCase.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/SecurityTestCase.java 2008-01-25 10:24:40 UTC (rev 540) @@ -45,7 +45,7 @@ } - public void testSecurityEntities() { + public void testSecurityEntities() throws SimExplorerServiceException { /* User user = authenticationService.getUser("user3"); Group[] groups = authenticationService.getGroupsOfUser(user); Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/SimExplorerWebException.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/SimExplorerWebException.java (rev 0) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/SimExplorerWebException.java 2008-01-25 10:24:40 UTC (rev 540) @@ -0,0 +1,40 @@ +/* +* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* 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 Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.ui.web; + +public class SimExplorerWebException extends RuntimeException { + + private static final long serialVersionUID = 4644835311729988659L; + + public SimExplorerWebException() { + super(); + } + + public SimExplorerWebException(Throwable cause) { + super(cause); + } + + public SimExplorerWebException(String message) { + super(message); + } + + public SimExplorerWebException(String message, Throwable cause) { + super(message, cause); + } + +} Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java 2008-01-25 10:24:40 UTC (rev 540) @@ -102,12 +102,12 @@ return elementList; } - public Object onActionFromApplicationList() throws Exception { + public Object onActionFromApplicationList() { elementList.searchQuery(null); return elementList; } - public Object onActionFromLogout() throws Exception { + public Object onActionFromLogout() { token = null; return elementList; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-01-25 10:24:40 UTC (rev 540) @@ -21,6 +21,8 @@ import org.apache.tapestry.grid.GridDataSource; import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; /** @@ -85,9 +87,8 @@ result = RemoteStorageService.getStorageService() .findFullTextCount(token, query, false); } - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } return result; } @@ -111,19 +112,19 @@ */ public void prepare(int startIndex, int endIndex, PropertyModel sortModel, boolean ascending) { - try { - this.indexStart = startIndex; + this.indexStart = startIndex; - int dateOrder = 0; - if (sortModel != null - && "creationDate".equals(sortModel.getPropertyName())) { - if (ascending) { - dateOrder = 1; - } else { - dateOrder = -1; - } + int dateOrder = 0; + if (sortModel != null + && "creationDate".equals(sortModel.getPropertyName())) { + if (ascending) { + dateOrder = 1; + } else { + dateOrder = -1; } + } + try { if (query.equals("")) { entities = RemoteStorageService.getStorageService() .findApplications(token, false, startIndex, @@ -133,11 +134,8 @@ .findFullText(token, query, false, startIndex, 1 + endIndex - startIndex, dateOrder); } - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - this.indexStart = 0; - entities = new MetaDataEntity[0]; + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java 2008-01-25 10:24:40 UTC (rev 540) @@ -22,6 +22,7 @@ import com.healthmarketscience.rmiio.RemoteInputStreamServer; import com.healthmarketscience.rmiio.SimpleRemoteInputStream; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; @@ -46,12 +47,16 @@ this.fileLib = fileLib; } - public void onSuccess() throws Exception { + public void onSuccess() { if (fileEA != null) { RemoteInputStreamServer zipRemoteStream = new SimpleRemoteInputStream( fileEA.getStream()); - RemoteStorageService.getStorageService().saveElement(getToken(), - zipRemoteStream.export()); + try { + RemoteStorageService.getStorageService().saveElement(getToken(), + zipRemoteStream.export()); + } catch (Exception e) { + throw new SimExplorerWebException(); + } } } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-01-25 10:24:40 UTC (rev 540) @@ -25,36 +25,16 @@ import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; -public class ElementDelete extends UserPage { +public class ElementDelete extends ElementPage { - @Inject - private ComponentResources resources; - - @Persist - private LoggableElement element; - - /** - * Prepare page - * - * @param uuid - * Id of element to display - * @param version - * Version of element to display - * @throws Exception - */ - public void setup(String uuid, String version) throws Exception { - element = RemoteStorageService.getStorageService().getElement( - getToken(), uuid, version); - } - -// public Object onDelete() throws Exception { +// public Object onDelete() { // RemoteStorageService.getStorageService().deleteElement(getToken(), // element.getMetaData().getUuid(), // element.getMetaData().getVersion()); // return null; // } // -// public Object onDeleteAll() throws Exception { +// public Object onDeleteAll() { // RemoteStorageService.getStorageService().deleteElement(getToken(), // element.getMetaData().getUuid()); // return null; Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-01-25 10:24:40 UTC (rev 540) @@ -17,8 +17,6 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.web.pages; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -29,14 +27,11 @@ import org.apache.tapestry.Link; import org.apache.tapestry.StreamResponse; import org.apache.tapestry.annotations.InjectPage; -import org.apache.tapestry.annotations.Persist; import org.apache.tapestry.ioc.annotations.Inject; import org.codelutin.tapestry.beans.TreeNode; import com.healthmarketscience.rmiio.RemoteInputStream; import com.healthmarketscience.rmiio.RemoteInputStreamClient; -import com.healthmarketscience.rmiio.RemoteOutputStreamServer; -import com.healthmarketscience.rmiio.SimpleRemoteOutputStream; import fr.cemagref.simexplorer.is.entities.data.Code; import fr.cemagref.simexplorer.is.entities.data.Component; @@ -48,19 +43,15 @@ import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.data.Structure; import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; -import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; import fr.cemagref.simexplorer.is.ui.web.tools.AttachmentStreamResponse; -import fr.cemagref.simexplorer.is.ui.web.tools.XMLAttachment; -public class ElementDetail extends UserPage { +public class ElementDetail extends ElementPage { @Inject private ComponentResources resources; - @Persist - private LoggableElement element; - @InjectPage private ElementExport elementExport; @@ -74,20 +65,6 @@ private ElementRights elementRights; /** - * Prepare page - * - * @param uuid - * Id of element to display - * @param version - * Version of element to display - * @throws Exception - */ - public void setup(String uuid, String version) throws Exception { - element = RemoteStorageService.getStorageService().getElement( - getToken(), uuid, version); - } - - /** * Headers of tree grid * * @return Headers @@ -107,42 +84,23 @@ return nodes; } - private Object exportElement(String uuid, String version) throws Exception { - StreamResponse response; - - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - RemoteOutputStreamServer xmlRemoteOutputStream = new SimpleRemoteOutputStream( - bos); - RemoteStorageService.getStorageService().exportElement(getToken(), - xmlRemoteOutputStream.export(), uuid, version); - - MetaDataEntity mde = RemoteStorageService.getStorageService() - .getMetadata(getToken(), uuid, version); - ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); - response = new XMLAttachment(bis, mde.getType() + "." + mde.getUuid() - + ".v" + mde.getVersion()); - - return response; - } - - public Object onExport(String context) throws Exception { + public Object onExport(String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); elementExport.setup(uuid, version); - // exportElement(uuid, version) return elementExport; } - public Object onHistory(String context) throws Exception { + public Object onHistory(String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); - elementHistory.setup(uuid); + elementHistory.setup(uuid, version); return elementHistory; } - public Object onDelete(String context) throws Exception { + public Object onDelete(String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); @@ -150,7 +108,7 @@ return elementDelete; } - public Object onRights(String context) throws Exception { + public Object onRights(String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); @@ -158,21 +116,25 @@ return elementRights; } - private Object downloadElement(String uuid, String version) - throws Exception { + private Object downloadElement(String uuid, String version) { StreamResponse response; - MetaDataEntity mde = RemoteStorageService.getStorageService() - .getMetadata(getToken(), uuid, version); - RemoteInputStream ris = RemoteStorageService.getStorageService() - .retrieveData(getToken(), uuid, version, "_xml"); - InputStream stream = RemoteInputStreamClient.wrap(ris); - response = new AttachmentStreamResponse(stream, "_xml"); + try { + MetaDataEntity mde = RemoteStorageService.getStorageService() + .getMetadata(getToken(), uuid, version); + RemoteInputStream ris = RemoteStorageService.getStorageService() + .retrieveData(getToken(), uuid, version, "_xml"); + InputStream stream = RemoteInputStreamClient.wrap(ris); + response = new AttachmentStreamResponse(stream, "_xml"); + } catch (Exception e) { + throw new SimExplorerWebException(e); + } + return response; } - public Object onDownload(String context) throws Exception { + public Object onDownload(String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementExport.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementExport.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementExport.java 2008-01-25 10:24:40 UTC (rev 540) @@ -17,34 +17,41 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.web.pages; -import org.apache.tapestry.ComponentResources; -import org.apache.tapestry.annotations.Persist; -import org.apache.tapestry.ioc.annotations.Inject; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; -import fr.cemagref.simexplorer.is.entities.data.LoggableElement; -import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; +import com.healthmarketscience.rmiio.RemoteOutputStreamServer; +import com.healthmarketscience.rmiio.SimpleRemoteOutputStream; + +import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; +import fr.cemagref.simexplorer.is.ui.web.tools.XMLAttachment; -public class ElementExport extends UserPage { +public class ElementExport extends ElementPage { - @Inject - private ComponentResources resources; + public Object onDownloadXML() { - @Persist - private LoggableElement element; + Object response; - /** - * Prepare page - * - * @param uuid - * Id of element to display - * @param version - * Version of element to display - * @throws Exception - */ - public void setup(String uuid, String version) throws Exception { - element = RemoteStorageService.getStorageService().getElement( - getToken(), uuid, version); + MetaDataEntity mde = element.getMetaData(); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + RemoteOutputStreamServer xmlRemoteOutputStream = new SimpleRemoteOutputStream( + bos); + try { + RemoteStorageService.getStorageService().exportElement(getToken(), + xmlRemoteOutputStream.export(), mde.getUuid(), + mde.getVersion().toString()); + } catch (Exception e) { + throw new SimExplorerWebException(e); + } + + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + response = new XMLAttachment(bis, mde.getType() + "." + mde.getUuid() + + ".v" + mde.getVersion()); + + return response; } } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java 2008-01-25 10:24:40 UTC (rev 540) @@ -27,10 +27,10 @@ import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; import fr.cemagref.simexplorer.is.entities.metadata.Version; -import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; -public class ElementHistory extends UserPage { +public class ElementHistory extends ElementPage { public class MetadataVersionComparator implements Comparator<MetaDataEntity> { @@ -44,9 +44,15 @@ @Persist private MetaDataEntity[] versions; - public void setup(String uuid) throws Exception { - versions = RemoteStorageService.getStorageService().getVersions( - getToken(), uuid); + @Override + public void setup(String uuid, String version) { + super.setup(uuid, version); + try { + versions = RemoteStorageService.getStorageService().getVersions( + getToken(), uuid); + } catch (Exception e) { + throw new SimExplorerWebException(e); + } } /** Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-01-25 10:24:40 UTC (rev 540) @@ -105,7 +105,7 @@ return result; } - public Object onActionFromDetailElement(String context) throws Exception { + public Object onActionFromDetailElement(String context) { StringTokenizer st = new StringTokenizer(context, ","); String uuid = st.nextToken(); String version = st.nextToken(); Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java (rev 0) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java 2008-01-25 10:24:40 UTC (rev 540) @@ -0,0 +1,51 @@ +/* +* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* 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 Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.ui.web.pages; + +import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.annotations.Persist; +import org.apache.tapestry.ioc.annotations.Inject; + +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; +import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; +import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; + +public abstract class ElementPage extends UserPage { + + @Persist + protected LoggableElement element; + + /** + * Prepare page + * + * @param uuid + * Id of element to display + * @param version + * Version of element to display + */ + public void setup(String uuid, String version) { + try { + element = RemoteStorageService.getStorageService().getElement( + getToken(), uuid, version); + } catch (Exception e) { + throw new SimExplorerWebException(e); + } + } + +} Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java 2008-01-25 10:24:40 UTC (rev 540) @@ -25,26 +25,8 @@ import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage; import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService; -public class ElementRights extends UserPage { +public class ElementRights extends ElementPage { - @Inject - private ComponentResources resources; + - @Persist - private LoggableElement element; - - /** - * Prepare page - * - * @param uuid - * Id of element to display - * @param version - * Version of element to display - * @throws Exception - */ - public void setup(String uuid, String version) throws Exception { - element = RemoteStorageService.getStorageService().getElement( - getToken(), uuid, version); - } - } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java 2008-01-25 10:24:40 UTC (rev 540) @@ -18,17 +18,17 @@ package fr.cemagref.simexplorer.is.ui.web.pages; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import java.util.Arrays; -import javax.naming.NamingException; - import org.apache.tapestry.ValueEncoder; import org.apache.tapestry.annotations.InjectPage; import org.apache.tapestry.annotations.Persist; import fr.cemagref.simexplorer.is.security.entities.Group; import fr.cemagref.simexplorer.is.security.entities.User; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage; import fr.cemagref.simexplorer.is.ui.web.services.GroupValueEncoder; import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; @@ -54,54 +54,66 @@ @Persist private GroupValueEncoder groupEncoder; - void setup(int groupId) throws Exception { + void setup(int groupId) { this.usersInGroup = new ArrayList<User>(); this.groupsInGroup = new ArrayList<Group>(); if (groupId == -1) { this.group = new Group(); this.group.setOwner(getUserLogged()); } else { - this.group = RemoteSecurityService.getAuthentificationService() - .getGroup(getToken(), groupId); + try { + this.group = RemoteSecurityService.getAuthentificationService() + .getGroup(getToken(), groupId); - User[] users = RemoteSecurityService.getAuthentificationService() - .getUsersOfGroup(getToken(), group); - this.usersInGroup.addAll(Arrays.asList(users)); + User[] users = RemoteSecurityService + .getAuthentificationService().getUsersOfGroup( + getToken(), group); + this.usersInGroup.addAll(Arrays.asList(users)); - Group[] groups = RemoteSecurityService.getAuthentificationService() - .getGroupsOfGroup(getToken(), group); - this.groupsInGroup.addAll(Arrays.asList(groups)); + Group[] groups = RemoteSecurityService + .getAuthentificationService().getGroupsOfGroup( + getToken(), group); + this.groupsInGroup.addAll(Arrays.asList(groups)); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } + } userEncoder = new UserValueEncoder(getToken()); groupEncoder = new GroupValueEncoder(getToken()); } - public Object onSuccess() throws Exception { - if (group.getId() == null) { - group = RemoteSecurityService.getAuthentificationService() - .saveGroup(getToken(), group.getName(), getUserLogged()); - } else { - group = RemoteSecurityService.getAuthentificationService() - .updateGroup(getToken(), group); - } + public Object onSuccess() { + try { + if (group.getId() == null) { + group = RemoteSecurityService + .getAuthentificationService() + .saveGroup(getToken(), group.getName(), getUserLogged()); + } else { + group = RemoteSecurityService.getAuthentificationService() + .updateGroup(getToken(), group); + } - Integer[] usersIds = new Integer[usersInGroup.size()]; - int i = 0; - for (User user : usersInGroup) { - usersIds[i] = user.getId(); - i++; - } - RemoteSecurityService.getAuthentificationService().setUsersOfGroup( - getToken(), group, usersIds); + Integer[] usersIds = new Integer[usersInGroup.size()]; + int i = 0; + for (User user : usersInGroup) { + usersIds[i] = user.getId(); + i++; + } + RemoteSecurityService.getAuthentificationService().setUsersOfGroup( + getToken(), group, usersIds); - Integer[] groupsIds = new Integer[groupsInGroup.size()]; - i = 0; - for (Group group : groupsInGroup) { - groupsIds[i] = group.getId(); - i++; + Integer[] groupsIds = new Integer[groupsInGroup.size()]; + i = 0; + for (Group group : groupsInGroup) { + groupsIds[i] = group.getId(); + i++; + } + RemoteSecurityService.getAuthentificationService() + .setGroupsOfGroup(getToken(), group, groupsIds); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } - RemoteSecurityService.getAuthentificationService().setGroupsOfGroup( - getToken(), group, groupsIds); return groupList; } @@ -110,19 +122,28 @@ return groupList; } - public List<User> getUsers() throws Exception { - User[] users = RemoteSecurityService.getAuthentificationService() - .getUsers(getToken()); + public List<User> getUsers() { List<User> result = new ArrayList<User>(); - result.addAll(Arrays.asList(users)); + try { + User[] users = RemoteSecurityService.getAuthentificationService() + .getUsers(getToken()); + result.addAll(Arrays.asList(users)); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } return result; } - public List<Group> getGroups() throws Exception { - Group[] groups = RemoteSecurityService.getAuthentificationService() - .getGroups(getToken()); + public List<Group> getGroups() { List<Group> result = new ArrayList<Group>(); - result.addAll(Arrays.asList(groups)); + try { + Group[] groups = RemoteSecurityService.getAuthentificationService() + .getGroups(getToken()); + result.addAll(Arrays.asList(groups)); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } + return result; } @@ -138,11 +159,11 @@ return isUserSuperAdmin(); } - public List<User> getUsersInGroup() throws NamingException { + public List<User> getUsersInGroup() { return usersInGroup; } - public void setUsersInGroup(List<User> usersInGroup) throws NamingException { + public void setUsersInGroup(List<User> usersInGroup) { this.usersInGroup = usersInGroup; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java 2008-01-25 10:24:40 UTC (rev 540) @@ -28,6 +28,8 @@ import org.apache.tapestry.services.BeanModelSource; import fr.cemagref.simexplorer.is.security.entities.Group; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage; import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; @@ -61,28 +63,42 @@ model.add("delete", null); } - public Group[] getGroups() throws Exception { + public Group[] getGroups() { Group[] groups; - if (isUserSuperAdmin()) { - groups = RemoteSecurityService.getAuthentificationService().getGroups(getToken()); - } else { - groups = RemoteSecurityService.getAuthentificationService() - .getGroupsOwnedBy(getToken(),getUserLogged()); + + try { + + if (isUserSuperAdmin()) { + groups = RemoteSecurityService.getAuthentificationService() + .getGroups(getToken()); + } else { + groups = RemoteSecurityService.getAuthentificationService() + .getGroupsOwnedBy(getToken(), getUserLogged()); + } + + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } + return groups; } - public Object onActionFromDelete(Integer context) throws Exception { - RemoteSecurityService.getAuthentificationService().deleteGroup(getToken(),context); + public Object onActionFromDelete(Integer context) { + try { + RemoteSecurityService.getAuthentificationService().deleteGroup( + getToken(), context); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } return null; } - public Object onActionFromEdit(Integer context) throws Exception { + public Object onActionFromEdit(Integer context) { groupEdit.setup(context); return groupEdit; } - public Object onActionFromAdd() throws Exception { + public Object onActionFromAdd() { groupEdit.setup(-1); return groupEdit; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java 2008-01-25 10:24:40 UTC (rev 540) @@ -20,8 +20,9 @@ import org.apache.tapestry.annotations.ApplicationState; import org.apache.tapestry.annotations.InjectPage; import org.apache.tapestry.annotations.Persist; -import org.apache.tapestry.ioc.annotations.Inject; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; public class Login { @@ -36,14 +37,20 @@ @ApplicationState private String token; - public Object onSuccess() throws Exception { + public Object onSuccess() { Object result = null; - token = RemoteSecurityService.getAuthentificationService().loginUser(user, - password); - if (token != null) { - RemoteSecurityService.getAuthentificationService().closeSessionTimer(token); - result = elementList; + try { + token = RemoteSecurityService.getAuthentificationService() + .loginUser(user, password); + if (token != null) { + RemoteSecurityService.getAuthentificationService() + .closeSessionTimer(token); + result = elementList; + } + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } + return result; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-01-25 10:24:40 UTC (rev 540) @@ -18,8 +18,8 @@ package fr.cemagref.simexplorer.is.ui.web.pages; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import java.util.Arrays; import org.apache.tapestry.ComponentResources; import org.apache.tapestry.ValueEncoder; @@ -32,6 +32,8 @@ import fr.cemagref.simexplorer.is.security.entities.Group; import fr.cemagref.simexplorer.is.security.entities.User; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage; import fr.cemagref.simexplorer.is.ui.web.services.GroupValueEncoder; import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; @@ -73,53 +75,71 @@ } } - void setup(int groupId) throws Exception { + void setup(int groupId) { this.groupsOfUser = new ArrayList<Group>(); if (groupId == -1) { this.user = new User(); } else { - this.user = RemoteSecurityService.getAuthentificationService() - .getUser(getToken(), groupId); - Group[] groups = RemoteSecurityService.getAuthentificationService() - .getGroupsOfUser(getToken(), this.user); - groupsOfUser.addAll(Arrays.asList(groups)); + try { + this.user = RemoteSecurityService.getAuthentificationService() + .getUser(getToken(), groupId); + Group[] groups = RemoteSecurityService + .getAuthentificationService().getGroupsOfUser( + getToken(), this.user); + groupsOfUser.addAll(Arrays.asList(groups)); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } + } groupEncoder = new GroupValueEncoder(getToken()); } - public Object onSuccess() throws Exception { + public Object onSuccess() { + try { + if (user.getId() == null) { + user = RemoteSecurityService.getAuthentificationService() + .saveUser(getToken(), user.getLogin(), user.getMail()); + } else { + user = RemoteSecurityService.getAuthentificationService() + .updateUser(getToken(), user); + } - if (user.getId() == null) { - user = RemoteSecurityService.getAuthentificationService().saveUser( - getToken(), user.getLogin(), user.getMail()); - } else { - user = RemoteSecurityService.getAuthentificationService() - .updateUser(getToken(), user); + Integer[] groupsIds = new Integer[groupsOfUser.size()]; + int i = 0; + for (Group group : groupsOfUser) { + groupsIds[i] = group.getId(); + i++; + } + RemoteSecurityService.getAuthentificationService().setGroupsOfUser( + getToken(), user, groupsIds); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } - Integer[] groupsIds = new Integer[groupsOfUser.size()]; - int i = 0; - for (Group group : groupsOfUser) { - groupsIds[i] = group.getId(); - i++; - } - RemoteSecurityService.getAuthentificationService().setGroupsOfUser( - getToken(), user, groupsIds); - return userList; } - public List<Group> getGroups() throws Exception { - Group[] groups = RemoteSecurityService.getAuthentificationService() - .getGroups(getToken()); + public List<Group> getGroups() { + Group[] groups; + try { + groups = RemoteSecurityService.getAuthentificationService() + .getGroups(getToken()); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } List<Group> result = new ArrayList<Group>(); result.addAll(Arrays.asList(groups)); return result; } - public Group[] getOwnedGroups() throws Exception { - return RemoteSecurityService.getAuthentificationService() - .getGroupsOwnedBy(getToken(), user); + public Group[] getOwnedGroups() { + try { + return RemoteSecurityService.getAuthentificationService() + .getGroupsOwnedBy(getToken(), user); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } } public ValueEncoder getGroupEncoder() { Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java 2008-01-25 10:24:40 UTC (rev 540) @@ -28,6 +28,8 @@ import org.apache.tapestry.services.BeanModelSource; import fr.cemagref.simexplorer.is.security.entities.User; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage; import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; @@ -65,23 +67,34 @@ model.add("delete", null); } - public User[] getUsers() throws Exception { + public User[] getUsers() { User[] users; - users = RemoteSecurityService.getAuthentificationService().getUsers(getToken()); + try { + users = RemoteSecurityService.getAuthentificationService() + .getUsers(getToken()); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } + return users; } - public Object onActionFromDelete(Integer context) throws Exception { - RemoteSecurityService.getAuthentificationService().deleteUser(getToken(),context); + public Object onActionFromDelete(Integer context) { + try { + RemoteSecurityService.getAuthentificationService().deleteUser( + getToken(), context); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } return null; } - public Object onActionFromEdit(Integer context) throws Exception { + public Object onActionFromEdit(Integer context) { userEdit.setup(context); return userEdit; } - public Object onActionFromAdd() throws Exception { + public Object onActionFromAdd() { userEdit.setup(-1); return userEdit; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java 2008-01-25 10:24:40 UTC (rev 540) @@ -19,9 +19,10 @@ import org.apache.tapestry.annotations.ApplicationState; import org.apache.tapestry.annotations.Persist; -import org.apache.tapestry.ioc.annotations.Inject; import fr.cemagref.simexplorer.is.security.entities.User; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; public abstract class ProtectedPage { @@ -71,8 +72,8 @@ try { loggedUser = RemoteSecurityService.getAuthentificationService() .getLoggedUser(token); - } catch (Exception e) { - // TODO: handle exception + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } } return loggedUser; Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java 2008-01-25 10:24:40 UTC (rev 540) @@ -20,6 +20,8 @@ import org.apache.tapestry.ValueEncoder; import fr.cemagref.simexplorer.is.security.entities.Group; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; public class GroupValueEncoder implements ValueEncoder<Group> { @@ -37,10 +39,10 @@ public Group toValue(String arg0) { Group group = null; try { - group = RemoteSecurityService.getAuthentificationService() - .getGroup(token, Integer.decode(arg0)); - } catch (Exception e) { - // TODO: handle exception + group = RemoteSecurityService.getAuthentificationService().getGroup( + token, Integer.decode(arg0)); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } return group; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java 2008-01-25 10:24:40 UTC (rev 540) @@ -21,8 +21,7 @@ public class RemoteSecurityService extends RemoteService { - public static AuthenticationService getAuthentificationService() - throws Exception { + public static AuthenticationService getAuthentificationService() { return (AuthenticationService) getService("AuthenticationService"); } } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java 2008-01-25 10:24:40 UTC (rev 540) @@ -25,12 +25,15 @@ import javax.naming.InitialContext; import javax.naming.NamingException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; + public abstract class RemoteService { protected static Map<String, Object> services = new HashMap<String, Object>(); - protected static Object getService(String serviceName) - throws NamingException { + protected static Object getService(String serviceName) { + Object service = null; + if (services.get(serviceName) == null) { Properties properties = (Properties) System.getProperties().clone(); properties.put("java.naming.provider.url", "jnp://localhost:1099"); @@ -39,15 +42,21 @@ properties .put("java.naming.factory.url.pkgs", "org.jnp.interfaces"); - Context context; try { - context = new InitialContext(properties); - } catch (Exception e) { - context = new InitialContext(); + Context context; + try { + context = new InitialContext(properties); + } catch (Exception e) { + context = new InitialContext(); + } + services.put(serviceName, context.lookup(serviceName)); + } catch (NamingException e) { + throw new SimExplorerWebException(e); } - services.put(serviceName, context.lookup(serviceName)); } - return services.get(serviceName); + service = services.get(serviceName); + + return service; } } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java 2008-01-25 10:24:40 UTC (rev 540) @@ -21,7 +21,7 @@ public class RemoteStorageService extends RemoteService { - public static StorageService getStorageService() throws Exception { + public static StorageService getStorageService() { return (StorageService) getService("StorageService"); } } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java 2008-01-25 10:24:40 UTC (rev 540) @@ -20,6 +20,8 @@ import org.apache.tapestry.ValueEncoder; import fr.cemagref.simexplorer.is.security.entities.User; +import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; +import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException; public class UserValueEncoder implements ValueEncoder<User> { @@ -39,8 +41,8 @@ try { user = RemoteSecurityService.getAuthentificationService().getUser( token, Integer.decode(arg0)); - } catch (Exception e) { - // TODO: handle exception + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); } return user; } Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/AttachmentStreamResponse.java =================================================================== --- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/AttachmentStreamResponse.java 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/AttachmentStreamResponse.java 2008-01-25 10:24:40 UTC (rev 540) @@ -41,7 +41,7 @@ return contentType; } - public InputStream getStream() throws IOException { + public InputStream getStream() { return is; } Modified: trunk/simexplorer-is-web/src/main/webapp/ElementExport.tml =================================================================== --- trunk/simexplorer-is-web/src/main/webapp/ElementExport.tml 2008-01-24 23:48:04 UTC (rev 539) +++ trunk/simexplorer-is-web/src/main/webapp/ElementExport.tml 2008-01-25 10:24:40 UTC (rev 540) @@ -1,4 +1,7 @@ <t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" title="message:windowtitle"> + <p><t:actionlink t:id="downloadXML">${message:downloadxml}</t:actionlink>* + </p> + </t:layout>
participants (1)
-
glandais@users.labs.libre-entreprise.org