From a9327fccf2bfd54f44d278c40547e4f8c116b800 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 23 Feb 2012 11:25:54 +0000 Subject: [PATCH] LMS-2612 CorePluginScanner: Moved from package server -> shared. Ignore plugin versions which do not have subfolder specified ScannerType. SVN: 24535 --- .../shared/utils/CorePluginsInjector.java | 2 +- .../core-plugins/plugin-X/17/dss/.gitignore | 0 .../core-plugins/plugin-Y/2/dss/.gitignore | 0 .../openbis/generic/server/CommonServer.java | 2 +- .../generic/server/CommonServerLogger.java | 2 +- .../server/ICommonServerForInternalUse.java | 2 +- .../server/business/bo/CorePluginTable.java | 2 +- .../server/business/bo/ICorePluginTable.java | 2 +- .../coreplugin/CorePluginRegistrator.java | 3 +- .../coreplugin/CorePluginScanner.java | 8 +++- .../coreplugin/ICorePluginResourceLoader.java | 2 +- .../business/bo/CorePluginTableTest.java | 2 +- .../coreplugin/CorePluginScannerTest.java | 37 +++++++++++++++++-- 13 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 openbis/resource/test-data/core-plugins/plugin-X/17/dss/.gitignore create mode 100644 openbis/resource/test-data/core-plugins/plugin-Y/2/dss/.gitignore rename openbis/source/java/ch/systemsx/cisd/openbis/generic/{server => shared}/coreplugin/CorePluginScanner.java (95%) rename openbis/source/java/ch/systemsx/cisd/openbis/generic/{server => shared}/coreplugin/ICorePluginResourceLoader.java (94%) rename openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/{server => shared}/coreplugin/CorePluginScannerTest.java (68%) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/CorePluginsInjector.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/CorePluginsInjector.java index 451b9dc5b4e..b32f6d88c35 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/CorePluginsInjector.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/CorePluginsInjector.java @@ -42,8 +42,8 @@ import ch.systemsx.cisd.common.logging.LogLevel; import ch.systemsx.cisd.common.maintenance.MaintenanceTaskUtils; import ch.systemsx.cisd.common.utilities.PropertyParametersUtil; import ch.systemsx.cisd.openbis.dss.generic.shared.Constants; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.CorePluginScanner; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner; /** * diff --git a/openbis/resource/test-data/core-plugins/plugin-X/17/dss/.gitignore b/openbis/resource/test-data/core-plugins/plugin-X/17/dss/.gitignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/openbis/resource/test-data/core-plugins/plugin-Y/2/dss/.gitignore b/openbis/resource/test-data/core-plugins/plugin-Y/2/dss/.gitignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 39965fa5e99..a694f573433 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -75,7 +75,6 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.dynamic_property.calc import ch.systemsx.cisd.openbis.generic.server.business.bo.dynamic_property.calculator.api.IEntityAdaptor; import ch.systemsx.cisd.openbis.generic.server.business.bo.materiallister.IMaterialLister; import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO; @@ -176,6 +175,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTermReplaceme import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedUiAction; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IPerson; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentHolderPE; import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.AuthorizationGroupPE; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java index 52d5ba2a238..65c0312707d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java @@ -25,7 +25,6 @@ import org.apache.log4j.Level; import ch.systemsx.cisd.authentication.ISessionManager; import ch.systemsx.cisd.common.spring.IInvocationLoggerContext; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.AbstractServerLogger; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -98,6 +97,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTermReplacement; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedUiAction; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUpdatesDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentUpdatesDTO; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ICommonServerForInternalUse.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ICommonServerForInternalUse.java index 7caf5c64400..43fccb94e9e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ICommonServerForInternalUse.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ICommonServerForInternalUse.java @@ -20,10 +20,10 @@ import java.util.List; import org.springframework.transaction.annotation.Transactional; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTable.java index c8b54466950..fe1134ae8e4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTable.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTable.java @@ -28,11 +28,11 @@ import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.logging.LogLevel; import ch.systemsx.cisd.openbis.generic.server.coreplugin.AsCorePluginPaths; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.IMasterDataScriptRegistrationRunner; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataRegistrationException; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.dto.CorePluginPE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.translator.CorePluginTranslator; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICorePluginTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICorePluginTable.java index 2e93f8c05bf..7f617539d4d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICorePluginTable.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICorePluginTable.java @@ -18,8 +18,8 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo; import java.util.List; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ICorePluginResourceLoader; /** * @author Kaloyan Enimanev diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginRegistrator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginRegistrator.java index fcb9212dd34..8073eeabff2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginRegistrator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginRegistrator.java @@ -25,8 +25,9 @@ import org.springframework.beans.factory.InitializingBean; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.CorePluginScanner.ScannerType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner.ScannerType; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; import ch.systemsx.cisd.openbis.generic.shared.util.ServerUtils; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginScanner.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/CorePluginScanner.java similarity index 95% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginScanner.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/CorePluginScanner.java index ce7f073557d..cc8c756d65a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginScanner.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/CorePluginScanner.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.generic.server.coreplugin; +package ch.systemsx.cisd.openbis.generic.shared.coreplugin; import java.io.File; import java.util.ArrayList; @@ -120,7 +120,11 @@ public class CorePluginScanner implements ICorePluginResourceLoader if (isValidVersionDir(versionDir)) { CorePlugin pluginVersion = createPlugin(pluginRootDir, versionDir); - allVersionsForPlugin.add(pluginVersion); + File folder = getFolderForPlugin(pluginVersion); + if (folder.exists()) + { + allVersionsForPlugin.add(pluginVersion); + } } else { log.log(LogLevel.WARN, String.format("Invalid version '%s' for plugin '%s'. " diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/ICorePluginResourceLoader.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/ICorePluginResourceLoader.java similarity index 94% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/ICorePluginResourceLoader.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/ICorePluginResourceLoader.java index 4ea6ee6974f..0985b901cc0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/ICorePluginResourceLoader.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/ICorePluginResourceLoader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.generic.server.coreplugin; +package ch.systemsx.cisd.openbis.generic.shared.coreplugin; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTableTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTableTest.java index 1f7217542ab..53d92c077b8 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTableTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/CorePluginTableTest.java @@ -29,11 +29,11 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.test.RecordingMatcher; import ch.systemsx.cisd.openbis.generic.server.coreplugin.AsCorePluginPaths; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.IMasterDataScriptRegistrationRunner; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataRegistrationException; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.MasterDataTransactionErrors; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ICorePluginResourceLoader; import ch.systemsx.cisd.openbis.generic.shared.dto.CorePluginPE; /** diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginScannerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/CorePluginScannerTest.java similarity index 68% rename from openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginScannerTest.java rename to openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/CorePluginScannerTest.java index e570257034b..74077f5b9a0 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/coreplugin/CorePluginScannerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/coreplugin/CorePluginScannerTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.generic.server.coreplugin; +package ch.systemsx.cisd.openbis.generic.shared.coreplugin; import java.io.File; import java.io.FileFilter; @@ -28,8 +28,10 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase; import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.logging.MockLogger; -import ch.systemsx.cisd.openbis.generic.server.coreplugin.CorePluginScanner.ScannerType; +import ch.systemsx.cisd.openbis.generic.server.coreplugin.AsCorePluginPaths; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner; +import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner.ScannerType; /** * @author Kaloyan Enimanev @@ -39,7 +41,7 @@ public class CorePluginScannerTest extends AbstractFileSystemTestCase private final String CORE_PLUGINS_DIR = "../openbis/resource/test-data/core-plugins"; @Test - public void testWithRealFolder() throws IOException + public void testWithRealFolderScannerTypeAS() throws IOException { MockLogger logger = new MockLogger(); File pluginsDir = preparePluginsDirectory(CORE_PLUGINS_DIR); @@ -69,6 +71,35 @@ public class CorePluginScannerTest extends AbstractFileSystemTestCase assertEquals(output, logger.toString()); } + @Test + public void testWithRealFolderScannerTypeDSS() throws IOException + { + MockLogger logger = new MockLogger(); + File pluginsDir = preparePluginsDirectory(CORE_PLUGINS_DIR); + CorePluginScanner scanner = + new CorePluginScanner(pluginsDir.getAbsolutePath(), ScannerType.DSS, logger); + + List<CorePlugin> plugins = scanner.scanForPlugins(); + Collections.sort(plugins); + + assertEquals(2, plugins.size()); + + CorePlugin plugin = plugins.get(0); + assertEquals("plugin-X", plugin.getName()); + assertEquals(17, plugin.getVersion()); + + plugin = plugins.get(1); + assertEquals("plugin-Y", plugin.getName()); + assertEquals(2, plugin.getVersion()); + + String output = + String.format( + "WARN: No valid versions have been detected for plugin '%s/invalid-folder'.\n" + + "WARN: Invalid version 'NaN-version' for plugin '%s/plugin-X'. Plugin version must be non-negative integer numbers.\n", + pluginsDir.getAbsolutePath(), pluginsDir.getAbsolutePath()); + assertEquals(output, logger.toString()); + } + private File preparePluginsDirectory(String originalPath) throws IOException { File originalDir = new File(originalPath); -- GitLab