Author: glandais Date: 2008-01-25 16:48:09 +0000 (Fri, 25 Jan 2008) New Revision: 546 Removed: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/ Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java trunk/simexplorer-is-web/src/main/webapp/ElementDelete.tml trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties Log: Delete page Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-01-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-01-25 16:48:09 UTC (rev 546) @@ -148,4 +148,14 @@ } return generator; } + + public void deleteElement(String token, String uuid, String version) { + // TODO Auto-generated method stub + + } + + public void deleteElement(String token, String uuid) { + // TODO Auto-generated method stub + + } } Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-01-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-01-25 16:48:09 UTC (rev 546) @@ -17,17 +17,19 @@ * ##% */ package fr.cemagref.simexplorer.is.service; +import java.util.Map; + +import javax.ejb.Remote; + import com.healthmarketscience.rmiio.RemoteInputStream; import com.healthmarketscience.rmiio.RemoteOutputStream; + import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; -import javax.ejb.Remote; -import java.util.Map; - /** * Service interface - * + * * @author glandais */ @Remote @@ -35,26 +37,30 @@ /** * Commit in storage - * + * * @throws SimExplorerServiceException */ void commit() throws SimExplorerServiceException; /** * Login user onto system Not used for local usages - * - * @param login Login - * @param password Password + * + * @param login + * Login + * @param password + * Password * @return Token as logon evidence * @throws SimExplorerServiceException */ - String loginUser(String login, String password) throws SimExplorerServiceException; + String loginUser(String login, String password) + throws SimExplorerServiceException; /** * Save a remote element - * + * * @param token - * @param zipRemoteStream RIIO stream containing data inside a zip + * @param zipRemoteStream + * RIIO stream containing data inside a zip * @return Metadata of element imported * @throws SimExplorerServiceException */ @@ -63,31 +69,34 @@ /** * Save a remote element - * + * * @param token - * @param xmlRemoteStream RIIO stream containing XML Stream - * @param attachmentsRemoteStream RIIO stream containing attached data. Key matches metadata - * attachment keys + * @param xmlRemoteStream + * RIIO stream containing XML Stream + * @param attachmentsRemoteStream + * RIIO stream containing attached data. Key matches metadata + * attachment keys * @return Metadata of element saved * @throws SimExplorerServiceException */ MetaDataEntity saveElement(String token, RemoteInputStream xmlRemoteStream, - Map<String, RemoteInputStream> attachmentsRemoteStream) + Map<String, RemoteInputStream> attachmentsRemoteStream) throws SimExplorerServiceException; /** * Retrieve metadata (latest version) - * + * * @param token * @param uuid * @return * @throws SimExplorerServiceException */ - MetaDataEntity getMetadata(String token, String uuid) throws SimExplorerServiceException; + MetaDataEntity getMetadata(String token, String uuid) + throws SimExplorerServiceException; /** * Retrieve metadata - * + * * @param token * @param uuid * @param version @@ -99,19 +108,20 @@ /** * Export element to a remote stream - * + * * @param token - * @param xmlOutputStream RMIIO stream where to save data + * @param xmlOutputStream + * RMIIO stream where to save data * @param uuid * @param version * @throws SimExplorerServiceException */ void exportElement(String token, RemoteOutputStream xmlOutputStream, - String uuid, String version) throws SimExplorerServiceException; + String uuid, String version) throws SimExplorerServiceException; /** * Retrieve data related to an entity - * + * * @param token * @param uuid * @param version @@ -120,11 +130,11 @@ * @throws SimExplorerServiceException */ RemoteInputStream retrieveData(String token, String uuid, String version, - String dataKey) throws SimExplorerServiceException; + String dataKey) throws SimExplorerServiceException; /** * Retrieve number of elements matching query - * + * * @param token * @param query * @param onlyLatest @@ -136,7 +146,7 @@ /** * Find elements matching query - * + * * @param token * @param query * @param onlyLatest @@ -147,12 +157,12 @@ * @throws SimExplorerServiceException */ MetaDataEntity[] findFullText(String token, String query, - boolean onlyLatest, int indexStart, int count, int dateOrder) + boolean onlyLatest, int indexStart, int count, int dateOrder) throws SimExplorerServiceException; /** * Retrieve number of applications - * + * * @param token * @param onlyLatest * @return @@ -163,7 +173,7 @@ /** * Get a list of applications - * + * * @param token * @param onlyLatest * @param start @@ -173,11 +183,12 @@ * @throws SimExplorerServiceException */ MetaDataEntity[] findApplications(String token, boolean onlyLatest, - int start, int count, int dateOrder) throws SimExplorerServiceException; + int start, int count, int dateOrder) + throws SimExplorerServiceException; /** * Fully load an element - * + * * @param token * @param uuid * @param version @@ -189,25 +200,28 @@ /** * Get all version of an element - * + * * @param token * @param uuid * @return * @throws SimExplorerServiceException */ - MetaDataEntity[] getVersions(String token, String uuid) throws SimExplorerServiceException; + MetaDataEntity[] getVersions(String token, String uuid) + throws SimExplorerServiceException; /** * @param token * @param uuid * @param version */ -// void deleteElement(String token, String uuid, Version version); + void deleteElement(String token, String uuid, String version) + throws SimExplorerServiceException; /** * @param token * @param uuid */ -// void deleteElement(String token, String uuid); + void deleteElement(String token, String uuid) + throws SimExplorerServiceException; } Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-01-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-01-25 16:48:09 UTC (rev 546) @@ -50,7 +50,8 @@ import fr.cemagref.simexplorer.is.storage.engine.StorageEngine; import fr.cemagref.simexplorer.is.storage.StorageException; -public abstract class StorageServiceCommon implements StorageService, XmlConstants { +public abstract class StorageServiceCommon implements StorageService, + XmlConstants { protected StorageEngine storageEngine; @@ -81,7 +82,8 @@ } } - public MetaDataEntity saveElement(String token, RemoteInputStream zipRemoteStream) + public MetaDataEntity saveElement(String token, + RemoteInputStream zipRemoteStream) throws SimExplorerServiceException { InputStream zipStream; try { @@ -92,15 +94,18 @@ } } - public MetaDataEntity saveElement(String token, RemoteInputStream xmlRemoteStream, + public MetaDataEntity saveElement(String token, + RemoteInputStream xmlRemoteStream, Map<String, RemoteInputStream> attachmentsRemoteStream) throws SimExplorerServiceException { try { - InputStream xmlStream = RemoteInputStreamClient.wrap(xmlRemoteStream); + InputStream xmlStream = RemoteInputStreamClient + .wrap(xmlRemoteStream); Map<String, InputStream> attachmentStreams = new HashMap<String, InputStream>(); for (Map.Entry<String, RemoteInputStream> entry : attachmentsRemoteStream .entrySet()) { - InputStream stream = RemoteInputStreamClient.wrap(entry.getValue()); + InputStream stream = RemoteInputStreamClient.wrap(entry + .getValue()); attachmentStreams.put(entry.getKey(), stream); } return saveElement(token, xmlStream, attachmentStreams); @@ -109,7 +114,8 @@ } } - public MetaDataEntity getMetadata(String token, String uuid) throws SimExplorerServiceException { + public MetaDataEntity getMetadata(String token, String uuid) + throws SimExplorerServiceException { try { return storageEngine.getMetadata(token, uuid); } catch (StorageException e) { @@ -126,10 +132,12 @@ } } - public MetaDataEntity[] findFullText(String token, String query, boolean onlyLatest, - int indexStart, int count, int dateOrder) throws SimExplorerServiceException { + public MetaDataEntity[] findFullText(String token, String query, + boolean onlyLatest, int indexStart, int count, int dateOrder) + throws SimExplorerServiceException { try { - return storageEngine.findFullText(token, query, onlyLatest, indexStart, count,dateOrder); + return storageEngine.findFullText(token, query, onlyLatest, + indexStart, count, dateOrder); } catch (StorageException e) { throw new SimExplorerServiceException(e); } @@ -144,18 +152,23 @@ } } - public int findApplicationsCount(String token, boolean onlyLatest) throws SimExplorerServiceException { + public int findApplicationsCount(String token, boolean onlyLatest) + throws SimExplorerServiceException { try { - return storageEngine.findElementsByTypeCount(token, VALUE_METADATA_TYPE_EA,onlyLatest); + return storageEngine.findElementsByTypeCount(token, + VALUE_METADATA_TYPE_EA, onlyLatest); } catch (StorageException e) { throw new SimExplorerServiceException(e); } } - public MetaDataEntity[] findApplications(String token, boolean onlyLatest, int start, - int count, int dateOrder) throws SimExplorerServiceException { + public MetaDataEntity[] findApplications(String token, boolean onlyLatest, + int start, int count, int dateOrder) + throws SimExplorerServiceException { try { - return storageEngine.findElementsByType(token, VALUE_METADATA_TYPE_EA,onlyLatest, start, count, dateOrder); + return storageEngine + .findElementsByType(token, VALUE_METADATA_TYPE_EA, + onlyLatest, start, count, dateOrder); } catch (StorageException e) { throw new SimExplorerServiceException(e); } @@ -168,8 +181,9 @@ try { LoggableElement le; le = (LoggableElement) BaseEntityFactory.getFactory( - LoggableElement.class.getPackage().getName() + "." + mde.getType()) - .loadElement(storageEngine.retrieveData(token, mde, KEY_XML)); + LoggableElement.class.getPackage().getName() + "." + + mde.getType()).loadElement( + storageEngine.retrieveData(token, mde, KEY_XML)); return le; } catch (Exception e) { @@ -177,7 +191,8 @@ } } - private MetaDataEntity saveElement(String token, InputStream zipStream) throws SimExplorerServiceException { + private MetaDataEntity saveElement(String token, InputStream zipStream) + throws SimExplorerServiceException { String xmlFile = null; Map<String, String> attachments = new HashMap<String, String>(); @@ -192,8 +207,8 @@ xmlFile = storageEngine.storeTempData(zis); } else { if (entryName.startsWith(FILE_DATA_PREFIX)) { - String fileName = entryName.replace(FILE_DATA_PREFIX - + "/", ""); + String fileName = entryName.replace( + FILE_DATA_PREFIX + "/", ""); String idFile = storageEngine.storeTempData(zis); attachments.put(fileName, idFile); } @@ -222,7 +237,8 @@ String version, String dataKey) throws SimExplorerServiceException { try { MetaDataEntity mde = getMetadata(token, uuid, version); - InputStream stream = storageEngine.retrieveData(token, mde, dataKey); + InputStream stream = storageEngine + .retrieveData(token, mde, dataKey); RemoteInputStreamServer remoteStream = new SimpleRemoteInputStream( stream); return remoteStream.export(); @@ -233,11 +249,12 @@ } } - public void exportElement(String token, RemoteOutputStream xmlOutputStream, String uuid, - String version) throws SimExplorerServiceException { + public void exportElement(String token, RemoteOutputStream xmlOutputStream, + String uuid, String version) throws SimExplorerServiceException { MetaDataEntity mde = getMetadata(token, uuid, version); try { - InputStream xmlStream = storageEngine.retrieveData(token, mde, KEY_XML); + InputStream xmlStream = storageEngine.retrieveData(token, mde, + KEY_XML); OutputStream os = RemoteOutputStreamClient.wrap(xmlOutputStream); // Buffer copy stream to stream @@ -271,7 +288,8 @@ private MetaDataEntity saveElement(String token, String idxml, Map<String, String> idsattachment) throws Exception { // Load metadata xml - MetaDataEntityFactory mdeFactory = MetaDataEntityFactory.getFactory(MetaDataEntity.class); + MetaDataEntityFactory mdeFactory = MetaDataEntityFactory + .getFactory(MetaDataEntity.class); MetaDataEntity metaData = mdeFactory .loadElementFromParentXML(storageEngine.retrieveTempData(idxml)); @@ -289,7 +307,8 @@ List<String[]> explorationDatas = new ArrayList<String[]>(); // Retrieve elements - extractChildren(token, idxml, idsattachment, components, explorationDatas); + extractChildren(token, idxml, idsattachment, components, + explorationDatas); // For each exploration data for (String[] explorationData : explorationDatas) { @@ -334,11 +353,12 @@ return metaData; } - private void processVersionRules(String token, MetaDataEntity metaData) throws Exception { + private void processVersionRules(String token, MetaDataEntity metaData) + throws Exception { // Check existing version in storage - MetaDataEntity previousVersion = storageEngine.getMetadata(token, metaData - .getUuid(), metaData.getVersion()); + MetaDataEntity previousVersion = storageEngine.getMetadata(token, + metaData.getUuid(), metaData.getVersion()); /* * MetaDataEntity parentData = storageEngine.getElementVersion(metaData * .getParentData().getUuid(), metaData.getParentData() .getVersion()); @@ -360,7 +380,8 @@ Map<String, String> idsattachment, List<String> components, List<String[]> explorationDatas) throws Exception { - BaseEntityFactory<MetaDataEntity> elementFactory = MetaDataEntityFactory.getFactory(MetaDataEntity.class); + BaseEntityFactory<MetaDataEntity> elementFactory = MetaDataEntityFactory + .getFactory(MetaDataEntity.class); Document document = BaseEntityFactory.getXMLBuilder().parse( storageEngine.retrieveTempData(idxml)); @@ -399,19 +420,41 @@ explorationDataArray = new String[1]; } explorationDataArray[0] = storageEngine - .storeTempData(BaseEntityFactory.serializeElement(elementAD)); + .storeTempData(BaseEntityFactory + .serializeElement(elementAD)); explorationDatas.add(explorationDataArray); } } - public MetaDataEntity[] getVersions(String token, String uuid) throws SimExplorerServiceException { + public MetaDataEntity[] getVersions(String token, String uuid) + throws SimExplorerServiceException { try { - Set<MetaDataEntity> versions = storageEngine.getElementVersions(token, uuid); + Set<MetaDataEntity> versions = storageEngine.getElementVersions( + token, uuid); return versions.toArray(new MetaDataEntity[versions.size()]); } catch (StorageException e) { throw new SimExplorerServiceException(e); } } + + public void deleteElement(String token, String uuid, String version) + throws SimExplorerServiceException { + try { + storageEngine.deleteElement(token, uuid, new Version(version)); + } catch (StorageException e) { + throw new SimExplorerServiceException(e); + } + } + + public void deleteElement(String token, String uuid) + throws SimExplorerServiceException { + try { + storageEngine.deleteElements(token, uuid); + } catch (StorageException e) { + throw new SimExplorerServiceException(e); + } + } + } Modified: trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java =================================================================== --- trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-01-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-01-25 16:48:09 UTC (rev 546) @@ -198,7 +198,8 @@ * @return id for retrieval * @throws Exception */ - public abstract String storeTempData(InputStream stream) throws StorageException; + public abstract String storeTempData(InputStream stream) + throws StorageException; /** * Retrieve temporary data @@ -208,7 +209,8 @@ * @return Data stream * @throws Exception */ - public abstract InputStream retrieveTempData(String id) throws StorageException; + public abstract InputStream retrieveTempData(String id) + throws StorageException; /** * Delete temporary data 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-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-01-25 16:48:09 UTC (rev 546) @@ -18,30 +18,44 @@ package fr.cemagref.simexplorer.is.ui.web.pages; import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.annotations.InjectPage; 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.service.SimExplorerServiceException; +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 class ElementDelete extends ElementPage { -// public Object onDelete() { -// RemoteStorageService.getStorageService().deleteElement(getToken(), -// element.getMetaData().getUuid(), -// element.getMetaData().getVersion()); -// return null; -// } -// -// public Object onDeleteAll() { -// RemoteStorageService.getStorageService().deleteElement(getToken(), -// element.getMetaData().getUuid()); -// return null; -// } + @InjectPage + private ElementDetail elementDetail; + public Object onActionFromConfirm() { + try { + RemoteStorageService.getStorageService().deleteElement(getToken(), + getElement().getMetaData().getUuid(), + getElement().getMetaData().getVersion().toString()); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } + return elementDetail; + } + + public Object onActionFromConfirmAll() { + try { + RemoteStorageService.getStorageService().deleteElement(getToken(), + getElement().getMetaData().getUuid()); + } catch (SimExplorerServiceException e) { + throw new SimExplorerWebException(e); + } + return elementDetail; + } + public String getWindowTitle() { return ""; } - + } Modified: trunk/simexplorer-is-web/src/main/webapp/ElementDelete.tml =================================================================== --- trunk/simexplorer-is-web/src/main/webapp/ElementDelete.tml 2008-01-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-web/src/main/webapp/ElementDelete.tml 2008-01-25 16:48:09 UTC (rev 546) @@ -5,6 +5,14 @@ <p><t:actionlink t:id="confirm">${message:confirm}</t:actionlink> - <t:back label="${message:cancel}" /></p> + <hr /> + + <p>${message:confirmdeleteAll}</p> + <p><t:actionlink t:id="confirmall">${message:confirm}</t:actionlink> + - <t:back label="${message:cancel}" /></p> + + <hr /> + <p><t:back label="${message:back}" /></p> </t:layout> Modified: trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties =================================================================== --- trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties 2008-01-25 16:16:46 UTC (rev 545) +++ trunk/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties 2008-01-25 16:48:09 UTC (rev 546) @@ -13,6 +13,7 @@ upload=Upload confirmdelete=Confirm delete? +confirmdeleteAll=Confirm delete all versions? resetPassword=Reset password name=Name