diff --git a/screening/build/build.xml b/screening/build/build.xml index d99f44c6b45abd98c1de4a11c2cb5209f79313bc..d61b7ccc0a05cf7991484577458608861ab3246f 100644 --- a/screening/build/build.xml +++ b/screening/build/build.xml @@ -8,12 +8,13 @@ <property name="variant" value="-screening" /> <property name="dist.screening-api" value="${dist}/screening_api" /> - <property name="dist.screening-api.lib" value="${dist.screening-api}/lib" /> + <property name="dist.screening-api.lib" value="${dist.screening-api}" /> <property name="dist.screening-api.jar" value="${dist.screening-api.lib}/openbis_screening_api.jar" /> <property name="dist.screening-api.javadoc" value="${dist.screening-api}/doc" /> <property name="classes.screening" value="../screening/targets/www/WEB-INF/classes" /> <property name="classes.common-server" value="../server-common/targets/ant/classes" /> + <property name="classes.common" value="../common/targets/ant/classes" /> <target name="compile" depends="build-common.compile, clean" /> @@ -122,6 +123,7 @@ </fileset> <manifest> <attribute name="Main-Class" value="ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.ScreeningClientApiTest" /> + <attribute name="Class-Path" value="spring-ext.jar" /> <attribute name="Version" value="${version.number}" /> <attribute name="Build-Number" value="${version.number} (r${revision.number},${clean.flag})" /> @@ -129,15 +131,20 @@ </recursive-jar> <jar update="true" destfile="${dist.screening-api.jar}"> <fileset dir="${classes.common-server}"> - <include name="ch/systemsx/cisd/common/spring/*.class" /> + <include name="ch/systemsx/cisd/common/spring/HttpInvokerUtils.class" /> </fileset> + <fileset dir="${classes.common}"> + <include name="ch/systemsx/cisd/common/exceptions/**/*.class" /> + </fileset> + </jar> + <recursive-jar destfile="${dist.screening-api.lib}/spring-ext.jar"> <zipfileset src="${lib}/spring/spring.jar" /> <zipfileset src="${lib}/spring/third-party/stream-supporting-httpinvoker.jar" /> <zipfileset src="${lib}/commons-logging/commons-logging.jar" /> <zipfileset src="${lib}/commons-httpclient/commons-httpclient.jar" /> <zipfileset src="${lib}/commons-codec/commons-codec.jar" /> <zipfileset src="${lib}/log4j/log4j.jar" /> - </jar> + </recursive-jar> </target> <target name="screening-api" depends="screening-api-doc, screening-api-libs" /> diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java index 281a9da24fa91d604ca36a553035156f6a2476b5..86d16dbaae4b98e62ff74d1c62efdf826d35be8e 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java @@ -27,8 +27,10 @@ import java.util.List; import org.apache.log4j.lf5.util.StreamUtils; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDataset; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDatasetReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.IDatasetIdentifier; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetMetadata; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Plate; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateImageReference; @@ -68,11 +70,20 @@ public class ScreeningClientApiTest System.out.println("Feature vector datasets: " + featureVectorDatasets); // test for feature vector dataset - // String datasetCode = "20091214153212961-474922"; // feature vector - String datasetCode = "20091216162628729-475111"; // image - IDatasetIdentifier datasetIdentifier = getDatasetIdentifier(facade, datasetCode); + // String featureVectorDatasetCode = "20100423170945059-29"; // feature vector + String imageDatasetCode = "20100423163638457-16"; // image + IDatasetIdentifier datasetIdentifier = getDatasetIdentifier(facade, imageDatasetCode); loadImages(facade, datasetIdentifier); + List<String> featureNames = facade.listAvailableFeatureNames(featureVectorDatasets); + System.out.println("Feature names: " + featureNames); + List<FeatureVectorDataset> features = + facade.loadFeatures(featureVectorDatasets, featureNames); + System.out.println("Features: " + features); + + List<ImageDatasetMetadata> imageMetadata = facade.listImageMetadata(imageDatasets); + System.out.println("Image metadata: " + imageMetadata); + facade.logout(); } @@ -87,17 +98,20 @@ public class ScreeningClientApiTest private static void loadImages(ScreeningOpenbisServiceFacade facade, IDatasetIdentifier datasetIdentifier) throws FileNotFoundException, IOException { - for (int channel = 1; channel <= 2; channel++) + for (int well = 1; well <= 5; well++) { - for (int tile = 4; tile <= 6; tile++) + for (int channel = 1; channel <= 2; channel++) { - List<PlateImageReference> imageRefs = new ArrayList<PlateImageReference>(); - imageRefs.add(new PlateImageReference(1, 3, tile, channel, datasetIdentifier)); - List<PlateSingleImage> images = facade.loadImages(imageRefs); - saveImages(images); + for (int tile = 1; tile <= 1; tile++) + { + List<PlateImageReference> imageRefs = new ArrayList<PlateImageReference>(); + imageRefs.add(new PlateImageReference(well, well, tile, channel, + datasetIdentifier)); + List<PlateSingleImage> images = facade.loadImages(imageRefs); + saveImages(images); + } } } - } private static void saveImages(List<PlateSingleImage> images) throws FileNotFoundException, @@ -116,7 +130,7 @@ public class ScreeningClientApiTest private static String createImageFileName(PlateSingleImage image) { WellPosition well = image.getWellPosition(); - return "img_r" + well.getWellRow() + "_c" + well.getWellColumn() + "_ch" - + image.getChannel() + "_t" + image.getTile() + ".png"; + return "img_row" + well.getWellRow() + "_col" + well.getWellColumn() + "_channel" + + image.getChannel() + "_tile" + image.getTile() + ".png"; } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java index 61464bbbc2b194a60a14dda2880ffbdf2b6595d0..3773bbe592a2206f0514c0dd1208937e28dc0bfe 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java @@ -190,83 +190,40 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl public List<FeatureVectorDatasetReference> listFeatureVectorDatasets(String sessionToken, List<? extends PlateIdentifier> plates) { - try - { - return createScreeningApiImpl(sessionToken).listFeatureVectorDatasets(plates); - } catch (UserFailureException e) - { - throw translateException(e); - } + return createScreeningApiImpl(sessionToken).listFeatureVectorDatasets(plates); } public List<ImageDatasetReference> listImageDatasets(String sessionToken, List<? extends PlateIdentifier> plates) { - try - { - return createScreeningApiImpl(sessionToken).listImageDatasets(plates); - } catch (UserFailureException e) - { - throw translateException(e); - } + return createScreeningApiImpl(sessionToken).listImageDatasets(plates); } public List<Plate> listPlates(String sessionToken) { - try - { - return createScreeningApiImpl(sessionToken).listPlates(); - } catch (UserFailureException e) - { - throw translateException(e); - } + return createScreeningApiImpl(sessionToken).listPlates(); } public List<IDatasetIdentifier> getDatasetIdentifiers(String sessionToken, List<String> datasetCodes) { - try - { - return createScreeningApiImpl(sessionToken).getDatasetIdentifiers(datasetCodes); - } catch (UserFailureException e) - { - throw translateException(e); - } + return createScreeningApiImpl(sessionToken).getDatasetIdentifiers(datasetCodes); } private ScreeningApiImpl createScreeningApiImpl(String sessionToken) { - try - { - final Session session = getSession(sessionToken); - return new ScreeningApiImpl(session, businessObjectFactory, getDAOFactory()); - } catch (UserFailureException e) - { - throw translateException(e); - } + final Session session = getSession(sessionToken); + return new ScreeningApiImpl(session, businessObjectFactory, getDAOFactory()); } public void logoutScreening(String sessionToken) { - try - { - logout(sessionToken); - } catch (UserFailureException e) - { - throw translateException(e); - } + logout(sessionToken); } public String tryLoginScreening(String userId, String userPassword) { - SessionContextDTO sessionContext; - try - { - sessionContext = tryToAuthenticate(userId, userPassword); - } catch (UserFailureException e) - { - throw translateException(e); - } + SessionContextDTO sessionContext = tryToAuthenticate(userId, userPassword); if (sessionContext != null) { return sessionContext.getSessionToken(); @@ -275,10 +232,4 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl return null; } } - - private static RuntimeException translateException(UserFailureException e) - { - return new IllegalArgumentException(e.getMessage()); - } - } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java index 9635f8cbe00ad7e4158d9bdffc18d359f931bc3a..087878928be0d9a222de3d67ff6a729ed4b2473f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java @@ -46,7 +46,8 @@ public interface IScreeningApiServer * *@return sessionToken if authentication suceeded, null otherwise */ - @Transactional(readOnly = true) + @Transactional + // this is not a readOnly transaction - it can create new users String tryLoginScreening(String userId, String userPassword) throws IllegalArgumentException; /**