diff --git a/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py b/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py index 7cf814637fd3e3db7871be092ea532a95bd1b376..3ba83888a394bbe3f67e0461060573fd8026e74b 100644 --- a/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py +++ b/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py @@ -1,6 +1,7 @@ from ch.systemsx.cisd.openbis.ipad.v2.server import AbstractRequestHandler, ClientPreferencesRequestHandler, RootRequestHandler from ch.systemsx.cisd.openbis.ipad.v2.server import DrillRequestHandler, NavigationRequestHandler, DetailRequestHandler from ch.systemsx.cisd.openbis.ipad.v2.server import EmptyDataRequestHandler, IpadServiceUtilities +from ch.systemsx.cisd.openbis.ipad.v2.server import IRequestHandlerFactory, RequestHandlerDispatcher from ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2 import MaterialIdentifierCollection from ch.systemsx.cisd.openbis.generic.shared.basic.dto import MaterialIdentifier from com.fasterxml.jackson.databind import ObjectMapper @@ -328,18 +329,26 @@ class TestingNavigationRequestHandler(ExampleNavigationRequestHandler): probe_nav = navigation_dict('Probes', []) self.addRows([probe_nav]) +class NavigationRequestHandlerFactory(IRequestHandlerFactory): + def createRequestHandler(self, parameters, builder, searchService): + return TestingNavigationRequestHandler(parameters, builder, searchService) + +class RootRequestHandlerFactory(IRequestHandlerFactory): + def createRequestHandler(self, parameters, builder, searchService): + return ExampleRootRequestHandler(parameters, builder, searchService) + +class DrillRequestHandlerFactory(IRequestHandlerFactory): + def createRequestHandler(self, parameters, builder, searchService): + return ExampleDrillRequestHandler(parameters, builder, searchService) + +class DetailRequestHandlerFactory(IRequestHandlerFactory): + def createRequestHandler(self, parameters, builder, searchService): + return ExampleDetailRequestHandler(parameters, builder, searchService) + def aggregate(parameters, builder): - request_key = parameters.get('requestKey') - if 'CLIENT_PREFS' == request_key: - handler = ExampleClientPreferencesRequestHandler(parameters, builder, searchService) - elif 'NAVIGATION' == request_key: - handler = TestingNavigationRequestHandler(parameters, builder, searchService) - elif 'ROOT' == request_key: - handler = ExampleRootRequestHandler(parameters, builder, searchService) - elif 'DRILL' == request_key: - handler = ExampleDrillRequestHandler(parameters, builder, searchService) - elif 'DETAIL' == request_key: - handler = ExampleDetailRequestHandler(parameters, builder, searchService) - else: - handler = EmptyDataRequestHandler(parameters, builder, searchService) - handler.processRequest() + dispatcher = RequestHandlerDispatcher() + dispatcher.navigationRequestHandlerFactory = NavigationRequestHandlerFactory() + dispatcher.rootRequestHandlerFactory = RootRequestHandlerFactory() + dispatcher.drillRequestHandlerFactory = DrillRequestHandlerFactory() + dispatcher.detailRequestHandlerFactory = DetailRequestHandlerFactory() + dispatcher.dispatch(parameters, builder, searchService) diff --git a/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/lib/ipad-framework.jar b/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/lib/ipad-framework.jar index 7f4b30f07994055b0176c8cb3dda135571e97610..960af774d9c21f44aa9c4e2d393259ed161f6c6b 100644 Binary files a/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/lib/ipad-framework.jar and b/openbis-ipad/source/core-plugins/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/lib/ipad-framework.jar differ diff --git a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DetailRequestHandler.java b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DetailRequestHandler.java index 21f077bdd44f80b805ff6e0cd82cab9979d98eb0..a57aa0a13c5bef9f46d9f76e51c813cd58615595 100644 --- a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DetailRequestHandler.java +++ b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DetailRequestHandler.java @@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchServic import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; /** + * Abstract superclass for the handlers for the DETAIL request. + * * @author cramakri */ public class DetailRequestHandler extends AbstractRequestHandler diff --git a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DrillRequestHandler.java b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DrillRequestHandler.java index 218856df0fbf1545ff300b5bb170354fe3cbc238..7b6d0c4c141b7f36335259c517d2c609c4850955 100644 --- a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DrillRequestHandler.java +++ b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/DrillRequestHandler.java @@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchServic import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; /** + * Abstract superclass for the handlers for the DRILL request. + * * @author cramakri */ public class DrillRequestHandler extends AbstractRequestHandler diff --git a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/EmptyDataRequestHandler.java b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/EmptyDataRequestHandler.java index 1d3f54da0db9bc487b81aa115c00cbca460350ce..93ec60a9479175d98a72a98a8ab5c5d3e090340c 100644 --- a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/EmptyDataRequestHandler.java +++ b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/EmptyDataRequestHandler.java @@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchServic import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; /** + * A simple request handler that just returns an empty table. + * * @author cramakri */ public class EmptyDataRequestHandler extends AbstractRequestHandler diff --git a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/IRequestHandlerFactory.java b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/IRequestHandlerFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..efab37d275fb74a39d32c2341b580d0535aaa4c6 --- /dev/null +++ b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/IRequestHandlerFactory.java @@ -0,0 +1,31 @@ +/* + * Copyright 2013 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.ipad.v2.server; + +import java.util.Map; + +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; + +/** + * @author cramakri + */ +public interface IRequestHandlerFactory +{ + IRequestHandler createRequestHandler(Map<String, Object> parameters, + ISimpleTableModelBuilderAdaptor builder, ISearchService searchService); +} diff --git a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/NavigationRequestHandler.java b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/NavigationRequestHandler.java index 242c13a1f81793cbe4e68c3dc5c0ad21b77f55e6..a4b6f012d47f6f6556c26030313dffd107014125 100644 --- a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/NavigationRequestHandler.java +++ b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/NavigationRequestHandler.java @@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchServic import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; /** + * Abstract superclass for the handlers for the NAVIGATION request. + * * @author cramakri */ public class NavigationRequestHandler extends AbstractRequestHandler diff --git a/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/RequestHandlerDispatcher.java b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/RequestHandlerDispatcher.java new file mode 100644 index 0000000000000000000000000000000000000000..db2b199bb9c0abc285319b99ceda4e5571b4063d --- /dev/null +++ b/openbis-ipad/source/java/ch/systemsx/cisd/openbis/ipad/v2/server/RequestHandlerDispatcher.java @@ -0,0 +1,189 @@ +/* + * Copyright 2013 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.ipad.v2.server; + +import java.util.Map; + +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; + +/** + * A class that takes an aggregation service request and dispatches it to the appropriate handler. + * + * @author cramakri + */ +public class RequestHandlerDispatcher +{ + + public static enum RequestType + { + CLIENT_PREFS, NAVIGATION, ROOT, DRILL, DETAIL + } + + private IRequestHandlerFactory clientPreferencesRequestHandlerFactory; + + private IRequestHandlerFactory navigationRequestHandlerFactory; + + private IRequestHandlerFactory rootRequestHandlerFactory; + + private IRequestHandlerFactory drillRequestHandlerFactory; + + private IRequestHandlerFactory detailRequestHandlerFactory; + + private IRequestHandlerFactory emptyDataRequestHandlerFactory; + + /** + * The constructor initialized the clientPreferencesRequestHandlerFactory and + * emptyDataRequestHandlerFactory variables. All others must be initialized by the client of + * this object. + */ + public RequestHandlerDispatcher() + { + clientPreferencesRequestHandlerFactory = new IRequestHandlerFactory() + { + @Override + public IRequestHandler createRequestHandler(Map<String, Object> parameters, + ISimpleTableModelBuilderAdaptor builder, ISearchService searchService) + { + return new ClientPreferencesRequestHandler(parameters, builder, searchService); + } + + }; + emptyDataRequestHandlerFactory = new IRequestHandlerFactory() + { + @Override + public IRequestHandler createRequestHandler(Map<String, Object> parameters, + ISimpleTableModelBuilderAdaptor builder, ISearchService searchService) + { + return new EmptyDataRequestHandler(parameters, builder, searchService); + } + + }; + } + + public IRequestHandlerFactory getClientPreferencesRequestHandlerFactory() + { + return clientPreferencesRequestHandlerFactory; + } + + public void setClientPreferencesRequestHandlerFactory( + IRequestHandlerFactory clientPreferencesRequestHandlerFactory) + { + this.clientPreferencesRequestHandlerFactory = clientPreferencesRequestHandlerFactory; + } + + public IRequestHandlerFactory getNavigationRequestHandlerFactory() + { + return navigationRequestHandlerFactory; + } + + public void setNavigationRequestHandlerFactory( + IRequestHandlerFactory navigationRequestHandlerFactory) + { + this.navigationRequestHandlerFactory = navigationRequestHandlerFactory; + } + + public IRequestHandlerFactory getRootRequestHandlerFactory() + { + return rootRequestHandlerFactory; + } + + public void setRootRequestHandlerFactory(IRequestHandlerFactory rootRequestHandlerFactory) + { + this.rootRequestHandlerFactory = rootRequestHandlerFactory; + } + + public IRequestHandlerFactory getDrillRequestHandlerFactory() + { + return drillRequestHandlerFactory; + } + + public void setDrillRequestHandlerFactory(IRequestHandlerFactory drillRequestHandlerFactory) + { + this.drillRequestHandlerFactory = drillRequestHandlerFactory; + } + + public IRequestHandlerFactory getDetailRequestHandlerFactory() + { + return detailRequestHandlerFactory; + } + + public void setDetailRequestHandlerFactory(IRequestHandlerFactory detailRequestHandlerFactory) + { + this.detailRequestHandlerFactory = detailRequestHandlerFactory; + } + + public IRequestHandlerFactory getEmptyDataRequestHandlerFactory() + { + return emptyDataRequestHandlerFactory; + } + + public void setEmptyDataRequestHandlerFactory( + IRequestHandlerFactory emptyDataRequestHandlerFactory) + { + this.emptyDataRequestHandlerFactory = emptyDataRequestHandlerFactory; + } + + public void dispatch(Map<String, Object> parameters, ISimpleTableModelBuilderAdaptor builder, + ISearchService searchService) + { + RequestType requestType = tryRequestType(parameters); + IRequestHandlerFactory handlerFactory = getHandlerFactory(requestType); + handlerFactory.createRequestHandler(parameters, builder, searchService).processRequest(); + } + + protected RequestType tryRequestType(Map<String, Object> parameters) + { + String requestKey = (String) parameters.get("requestKey"); + RequestType requestType; + try + { + requestType = RequestType.valueOf(requestKey); + } catch (IllegalArgumentException e) + { + requestType = null; + } + return requestType; + } + + protected IRequestHandlerFactory getHandlerFactory(RequestType requestType) + { + IRequestHandlerFactory handlerFactory; + switch (requestType) + { + case CLIENT_PREFS: + handlerFactory = clientPreferencesRequestHandlerFactory; + break; + case DETAIL: + handlerFactory = detailRequestHandlerFactory; + break; + case DRILL: + handlerFactory = drillRequestHandlerFactory; + break; + case NAVIGATION: + handlerFactory = navigationRequestHandlerFactory; + break; + case ROOT: + handlerFactory = rootRequestHandlerFactory; + break; + default: + handlerFactory = emptyDataRequestHandlerFactory; + break; + } + return handlerFactory; + } +} diff --git a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m index 146fad8ad096a783562cf5d317f3c91ff86fbbbb..e397d7d7e0a889277c55771823dabdde8f94fc7f 100644 --- a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m +++ b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManager.m @@ -239,6 +239,7 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl // Login and then retry the call managerCall.retryCount = managerCall.retryCount + 1; CISDOBAsyncCall *call = [self.service.connection loginUser: _username password: _password]; + managerCall.loginRetryCall = call; call.success = ^(id result) { // Fix the session token CISDOBIpadServiceCall *serviceCall = (CISDOBIpadServiceCall *)managerCall.serviceCall; diff --git a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManagerInternal.h b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManagerInternal.h index a09651015330d84e21ba29ea99f7c020e8aeebc8..23bad964875d91c61ee9fcdc293bad03f3a94d35 100644 --- a/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManagerInternal.h +++ b/openbis-ipad/source/objc/BisKit/Classes/CISDOBIpadServiceManagerInternal.h @@ -31,6 +31,7 @@ @property(weak, nonatomic) CISDOBIpadServiceManager *serviceManager; @property(strong, nonatomic) CISDOBAsyncCall *serviceCall; @property(nonatomic) NSUInteger retryCount; //<! How many times has this call been retried +@property(strong, nonatomic) CISDOBAsyncCall *loginRetryCall; //<! On a retry, it is necessary to keep the retry call live until it completes @property(copy, nonatomic) NSString *willCallNotificationName; //<! The notification called before the call takes place, may be nil @property(copy, nonatomic) NSString *didCallNotificationName; //<! The notification called after the call has completed, may be nil diff --git a/openbis-ipad/source/objc/BisKit/Tests/CISDOBIpadServiceManagerTest.m b/openbis-ipad/source/objc/BisKit/Tests/CISDOBIpadServiceManagerTest.m index e2f0521fb2238341106c19c0497edb34f79a06c7..73dd399c6fb5058f3186fde569b84055cd5d880d 100644 --- a/openbis-ipad/source/objc/BisKit/Tests/CISDOBIpadServiceManagerTest.m +++ b/openbis-ipad/source/objc/BisKit/Tests/CISDOBIpadServiceManagerTest.m @@ -279,12 +279,21 @@ static BOOL IsPermIdTarget(NSString *permId) } - (void)performDrill:(CISDOBIpadEntity *)drillEntity +{ + [self performDrill: drillEntity retry: YES]; +} + +- (void)performDrill:(CISDOBIpadEntity *)drillEntity retry:(BOOL)shouldRetry { CISDOBAsyncCall *call; [self assertBeforeDrill]; call = [self.serviceManager drillOnEntity: drillEntity]; + if (!shouldRetry) { + ((CISDOBIpadServiceManagerCall *) call).retryCount = 2; + } [self configureAndRunCallSynchronously: call]; - STAssertNotNil(_callResult, @"The iPad service should have returned some entities."); + + STAssertTrue(_callResult != nil || _callError != nil, @"The iPad service should have returned some entities or an error."); [self assertAfterDrill]; } @@ -374,8 +383,24 @@ static BOOL IsPermIdTarget(NSString *permId) NSArray *entitiesWithChildren = [self entitiesWithChildren]; STAssertTrue([entitiesWithChildren count] > 0, @"There should be some entities with children"); CISDOBIpadEntity *drillEntity = [entitiesWithChildren objectAtIndex: 0]; - [self performDrill: drillEntity]; - NSLog(@"Error %@", _callError); + [self performDrill: drillEntity retry: NO]; + STAssertNotNil(_callError, @"The request should have failed with an error"); +} + +- (void)testInvalidSessionTokenRetry +{ + [self performLogin]; + [self performRootLevelCall]; + + // Switch the session token + [self.serviceManager.service.connection setSessionTokenForTesting: @"junk"]; + + // Get drill information on some entity + NSArray *entitiesWithChildren = [self entitiesWithChildren]; + STAssertTrue([entitiesWithChildren count] > 0, @"There should be some entities with children"); + CISDOBIpadEntity *drillEntity = [entitiesWithChildren objectAtIndex: 0]; + [self performDrill: drillEntity retry: YES]; + STAssertNotNil(_callResult, @"The request should have succeeded with an error"); } - (void)retrieveRootLevelEntitiesSimulatingRemovalOfCategory:(CISDOBIpadEntity *)categoryToRemove diff --git a/openbis-ipad/source/objc/BisKit/Tests/CISDOBLiveConnectionTest.m b/openbis-ipad/source/objc/BisKit/Tests/CISDOBLiveConnectionTest.m index 42039b2d688986e3417751ac663553fb2cb8abb5..5ee8b8cc0a0e4684ec328beb1a7f84c4529d48df 100644 --- a/openbis-ipad/source/objc/BisKit/Tests/CISDOBLiveConnectionTest.m +++ b/openbis-ipad/source/objc/BisKit/Tests/CISDOBLiveConnectionTest.m @@ -86,7 +86,7 @@ STAssertTrue([rows count] == 0, @"The ipad-read-service-v1 should have returned empty data."); // Call with the correct parameters - NSDictionary *parameters = [NSDictionary dictionaryWithObject: @"ROOT" forKey: @"requestKey"]; + NSDictionary *parameters = [NSDictionary dictionaryWithObject: @"NAVIGATION" forKey: @"requestKey"]; call = [_connection createReportFromDataStore: [service objectForKey: @"dataStoreCode"] diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.pbxproj b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.pbxproj index e15253b7a477aea07a90b5a53a95a8dcbe425c69..adbf2601f5cf2beca5fed7a63241692a93da7582 100644 --- a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.pbxproj +++ b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.pbxproj @@ -424,7 +424,7 @@ 3680779715D0F78600843AD5 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0450; + LastUpgradeCheck = 0460; }; buildConfigurationList = 3680779A15D0F78600843AD5 /* Build configuration list for PBXProject "BisMac" */; compatibilityVersion = "Xcode 3.2"; @@ -635,7 +635,10 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_OBJCPP_ARC_ABI = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; @@ -643,6 +646,7 @@ GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; @@ -655,11 +659,15 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_OBJCPP_ARC_ABI = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.7; SDKROOT = ""; diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate index f12403d09a8b352867f2ef7cea421ab158bcf7ae..bcc4d5432ec30b74b574185ba13de64d762d94b8 100644 Binary files a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate and b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMac.xcscheme b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMac.xcscheme index 6737b3390ddb1c569d91f041fd1fd0f10e49162d..b17575e0f13eacaff677cf2822fc116959c91b0f 100644 --- a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMac.xcscheme +++ b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMac.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0450" + LastUpgradeVersion = "0460" version = "1.8"> <BuildAction parallelizeBuildables = "YES" diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacImporter.xcscheme b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacImporter.xcscheme index ff73167ff84a687dc45d8213addc318d29c1d44c..8ac9f2deaf260c2402cac5d63cf8ca8fe582d6e4 100644 --- a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacImporter.xcscheme +++ b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacImporter.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0450" + LastUpgradeVersion = "0460" version = "1.8"> <BuildAction parallelizeBuildables = "YES" diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacTests.xcscheme b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacTests.xcscheme index efe629ce808254264962a529cf099ebb8990e611..84eae79b3a21a0070d5908f586987ef1ff1ffbcd 100644 --- a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacTests.xcscheme +++ b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/BisMacTests.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0450" + LastUpgradeVersion = "0460" version = "1.3"> <BuildAction parallelizeBuildables = "YES" diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/Test Minimal.xcscheme b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/Test Minimal.xcscheme index 5a2866d3b58b284f30dee7c8629ad19e9f79cd63..1cd199ea42f7b5171a184079cfba639f30ee28f5 100644 --- a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/Test Minimal.xcscheme +++ b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/Test Minimal.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0450" + LastUpgradeVersion = "0460" version = "1.8"> <BuildAction parallelizeBuildables = "YES" @@ -41,9 +41,6 @@ <Test Identifier = "BisMacTests"> </Test> - <Test - Identifier = "CISDOBAsyncTest"> - </Test> <Test Identifier = "CISDOBJsonRpcCallGenericTest"> </Test> @@ -53,15 +50,36 @@ <Test Identifier = "CISDOBJsonRpcCallTest"> </Test> - <Test - Identifier = "CISDOBLiveConnectionTest"> - </Test> <Test Identifier = "CISDOBIpadServiceTest"> </Test> <Test Identifier = "CISDOBIpadEntityTest"> </Test> + <Test + Identifier = "CISDOBAsyncTest"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest/testDeletedEntities"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest/testNilUrl"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest/testPersistDrillAndDetailsOnCollections"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest/testPersistEntities"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest/testUnicode"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest/testImageRetrieval"> + </Test> + <Test + Identifier = "CISDOBIpadServiceManagerTest"> + </Test> </SkippedTests> </TestableReference> </Testables> diff --git a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/YeastLab.xcscheme b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/YeastLab.xcscheme index 2ed27407963dbcfd09ff05be0b66f5dab3651593..8f9b41a60837f17219eea21073ae14f2507857c3 100644 --- a/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/YeastLab.xcscheme +++ b/openbis-ipad/source/objc/Research/BisMac.xcodeproj/xcuserdata/cramakri.xcuserdatad/xcschemes/YeastLab.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0450" + LastUpgradeVersion = "0460" version = "1.3"> <BuildAction parallelizeBuildables = "YES" diff --git a/openbis-ipad/source/objc/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/source/objc/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate index 74f56696e61eccd65e8063ae3301e11338e9f761..ba1e115369a4b2cd7b4fd8a6dc5cfbbc97d07dae 100644 Binary files a/openbis-ipad/source/objc/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate and b/openbis-ipad/source/objc/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate differ