Github user neykov commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/236#discussion_r69895917
  
    --- Diff: 
camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java
 ---
    @@ -85,63 +95,97 @@
             REPLACE_CATALOG_WITH_NEWER_VERSION;
         }
         
    -    @Test
    -    public void testRebindWithCatalogAndApp() throws Exception {
    -        runRebindWithCatalogAndApp(RebindWithCatalogTestMode.NO_OP);
    -    }
    +    private Boolean defaultEnablementOfFeatureAutoFixatalogRefOnRebind;
         
    -    @Test
    -    public void testRebindWithCatalogDeprecatedAndAppExisting() throws 
Exception {
    -        
runRebindWithCatalogAndApp(RebindWithCatalogTestMode.DEPRECATE_CATALOG);
    +    @BeforeMethod(alwaysRun=true)
    +    @Override
    +    public void setUp() throws Exception {
    +        defaultEnablementOfFeatureAutoFixatalogRefOnRebind = 
BrooklynFeatureEnablement.isEnabled(BrooklynFeatureEnablement.FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND);
    +        super.setUp();
         }
         
    -    @Test
    -    public void testRebindWithCatalogDisabledAndAppExisting() throws 
Exception {
    -        
runRebindWithCatalogAndApp(RebindWithCatalogTestMode.DISABLE_CATALOG);
    -    }
    -    
    -    // See https://issues.apache.org/jira/browse/BROOKLYN-149.
    -    // Deletes the catalog item before rebind, but the referenced types 
are still on the 
    -    // default classpath.
    -    // Will fallback to loading from classpath.
    -    @Test
    -    public void testRebindWithCatalogDeletedAndAppExisting() throws 
Exception {
    -        
runRebindWithCatalogAndApp(RebindWithCatalogTestMode.DELETE_CATALOG);
    +    @AfterMethod(alwaysRun=true)
    +    @Override
    +    public void tearDown() throws Exception {
    +        if (defaultEnablementOfFeatureAutoFixatalogRefOnRebind != null) {
    +            
BrooklynFeatureEnablement.setEnablement(BrooklynFeatureEnablement.FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND,
 defaultEnablementOfFeatureAutoFixatalogRefOnRebind);
    +        }
    +        super.tearDown();
         }
         
    -    // Upgrades the catalog item before rebind, deleting the old version.
    -    // Will automatically upgrade.
    -    @Test
    -    public void 
testRebindWithCatalogUpgradedWithOldDeletedAndAppExisting() throws Exception {
    -        
BrooklynFeatureEnablement.enable(BrooklynFeatureEnablement.FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND);
    -        
runRebindWithCatalogAndApp(RebindWithCatalogTestMode.REPLACE_CATALOG_WITH_NEWER_VERSION);
    +    protected boolean useOsgi() {
    +        return true;
         }
    -    
    -    /**
    -     * Old persisted state for catalog items may not have a "deprecated" 
or "disabled"
    -     * value. Need to check that their absence will default to false.
    -     */
    -    @Test
    -    public void 
testRebindWithCatalogPropertiesForDeprecationAndEnablementAbsent() throws 
Exception {
    -        
runRebindWithCatalogAndApp(RebindWithCatalogTestMode.STRIP_DEPRECATION_AND_ENABLEMENT_FROM_CATALOG_ITEM);
    +
    +    @DataProvider
    +    public Object[][] dataProvider() {
    +        return new Object[][] {
    +            {RebindWithCatalogTestMode.NO_OP, false},
    +            {RebindWithCatalogTestMode.NO_OP, true},
    +            
    +            
{RebindWithCatalogTestMode.STRIP_DEPRECATION_AND_ENABLEMENT_FROM_CATALOG_ITEM, 
false},
    +            
{RebindWithCatalogTestMode.STRIP_DEPRECATION_AND_ENABLEMENT_FROM_CATALOG_ITEM, 
true},
    +            
    +            {RebindWithCatalogTestMode.DEPRECATE_CATALOG, false},
    +            {RebindWithCatalogTestMode.DEPRECATE_CATALOG, true},
    +            
    +            {RebindWithCatalogTestMode.DISABLE_CATALOG, false},
    +            {RebindWithCatalogTestMode.DISABLE_CATALOG, true},
    +            
    +            // For DELETE_CATALOG, see 
https://issues.apache.org/jira/browse/BROOKLYN-149.
    +            // Deletes the catalog item before rebind, but the referenced 
types are still on the 
    +            // default classpath. Will fallback to loading from classpath.
    +            //
    +            // Does not work for OSGi, because our bundle will no longer 
be available.
    +            {RebindWithCatalogTestMode.DELETE_CATALOG, false},
    +            
    +            // Upgrades the catalog item before rebind, deleting the old 
version.
    +            // Will automatically upgrade. Test will enable 
"FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND"
    +            {RebindWithCatalogTestMode.REPLACE_CATALOG_WITH_NEWER_VERSION, 
false},
    +            {RebindWithCatalogTestMode.REPLACE_CATALOG_WITH_NEWER_VERSION, 
true},
    +        };
         }
     
    -    @SuppressWarnings({ "unused", "deprecation" })
    -    protected void runRebindWithCatalogAndApp(RebindWithCatalogTestMode 
mode) throws Exception {
    +    @Test(dataProvider = "dataProvider")
    +    @SuppressWarnings("deprecation")
    +    public void testRebindWithCatalogAndApp(RebindWithCatalogTestMode 
mode, boolean useOsgi) throws Exception {
    +        if (mode == 
RebindWithCatalogTestMode.REPLACE_CATALOG_WITH_NEWER_VERSION) {
    +            
BrooklynFeatureEnablement.enable(BrooklynFeatureEnablement.FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND);
    +        }
    +
             String appSymbolicName = "my.catalog.app.id.load";
             String appVersion = "0.1.0";
    -        String appCatalogFormat = Joiner.on("\n").join(
    -                "brooklyn.catalog:",
    -                "  id: " + appSymbolicName,
    -                "  version: %s",
    -                "  itemType: entity",
    -                "  item:",
    -                "    type: "+ BasicEntity.class.getName(),
    -                "    brooklyn.enrichers:",
    -                "    - type: "+TestEnricher.class.getName(),
    -                "    brooklyn.policies:",
    -                "    - type: "+TestPolicy.class.getName());
             
    +        String appCatalogFormat;
    +        if (useOsgi) {
    --- End diff --
    
    Add a 
`TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), 
OSGI_BUNDLE_URL);` for this case



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to