You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2016/12/20 10:16:19 UTC

[1/2] brooklyn-server git commit: BROOKLYN-409: add test

Repository: brooklyn-server
Updated Branches:
  refs/heads/master 5f1588ed2 -> 923abe7b3


BROOKLYN-409: add test

Includes new osgi test bundle with prefix "com.example.brooklyn"


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/ed560a74
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/ed560a74
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/ed560a74

Branch: refs/heads/master
Commit: ed560a740574bb4398d2debba353f90608b46ce9
Parents: b034a27
Author: Aled Sage <al...@gmail.com>
Authored: Wed Dec 14 11:30:24 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Dec 20 10:14:54 2016 +0000

----------------------------------------------------------------------
 .../CatalogOsgiVersionMoreEntityRebindTest.java |  88 +++++++++++++++++++
 .../osgi/com-example-entities/pom.xml           |  87 ++++++++++++++++++
 .../test/osgi/entities/SimpleApplication.java   |  27 ++++++
 .../osgi/entities/SimpleApplicationImpl.java    |  26 ++++++
 .../entities/SimpleEffectorInitializer.java     |  48 ++++++++++
 .../test/osgi/entities/SimpleEntity.java        |  38 ++++++++
 .../test/osgi/entities/SimpleEntityImpl.java    |  25 ++++++
 .../test/osgi/entities/SimpleLocation.java      |  35 ++++++++
 .../test/osgi/entities/SimpleObject.java        |  56 ++++++++++++
 .../test/osgi/entities/SimplePolicy.java        |  40 +++++++++
 .../src/main/resources/catalog.bom              |  27 ++++++
 .../brooklyn/test/osgi/entities/icon.gif        | Bin 0 -> 43 bytes
 .../brooklyn/test/osgi/resources/message.txt    |  16 ++++
 .../main/resources/yaml-ref-back-catalog.bom    |  31 +++++++
 .../main/resources/yaml-ref-osgi-entity.yaml    |  21 +++++
 .../main/resources/yaml-ref-parent-catalog.bom  |  34 +++++++
 .../brooklyn/util/osgi/OsgiTestResources.java   |  19 ++++
 .../brooklyn-test-osgi-com-example-entities.jar | Bin 0 -> 21436 bytes
 18 files changed, 618 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityRebindTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityRebindTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityRebindTest.java
new file mode 100644
index 0000000..5c131f5
--- /dev/null
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityRebindTest.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.brooklyn.camp.brooklyn.catalog;
+
+import static org.testng.Assert.assertEquals;
+
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.policy.Policy;
+import org.apache.brooklyn.camp.brooklyn.AbstractYamlRebindTest;
+import org.apache.brooklyn.core.entity.StartableApplication;
+import org.apache.brooklyn.core.mgmt.osgi.OsgiVersionMoreEntityTest;
+import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.entity.stock.BasicApplication;
+import org.apache.brooklyn.test.support.TestResourceUnavailableException;
+import org.apache.brooklyn.util.osgi.OsgiTestResources;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.Iterables;
+
+/** Many of the same tests as per {@link OsgiVersionMoreEntityTest} but using YAML for catalog and entities, so catalog item ID is set automatically */
+public class CatalogOsgiVersionMoreEntityRebindTest extends AbstractYamlRebindTest {
+    
+    @SuppressWarnings("unused")
+    private static final Logger log = LoggerFactory.getLogger(CatalogOsgiVersionMoreEntityRebindTest.class);
+
+    @Override
+    protected boolean useOsgi() {
+        return true;
+    }
+
+    // See https://issues.apache.org/jira/browse/BROOKLYN-409
+    @Test
+    public void testPolicyInBundleReferencedByStockCatalogItem() throws Exception {
+        TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_PATH);
+        
+        String policyType = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_POLICY;
+        
+        addCatalogItems(
+                "brooklyn.catalog:",
+                "  id: wrapped-entity",
+                "  version: 1.0",
+                "  item:",
+                "    services:",
+                "    - type: " + TestEntity.class.getName());
+    
+        addCatalogItems(
+                "brooklyn.catalog:",
+                "  id: with-policy-from-library",
+                "  version: 1.0",
+                "  brooklyn.libraries:",
+                "  - classpath:" + OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_PATH,
+                "  item:",
+                "    services:",
+                "    - type: " + BasicApplication.class.getName(),
+                "      brooklyn.children:",
+                "      - type: wrapped-entity:1.0",
+                "        brooklyn.policies:",
+                "        - type: " + policyType);
+        
+        Entity app = createAndStartApplication("services: [ { type: 'with-policy-from-library:1.0' } ]");
+        Entity entity = Iterables.getOnlyElement(app.getChildren());
+        Policy policy = Iterables.getOnlyElement(entity.policies());
+        assertEquals(policy.getPolicyType().getName(), policyType);
+        
+        StartableApplication newApp = rebind();
+        Entity newEntity = Iterables.getOnlyElement(newApp.getChildren());
+        Policy newPolicy = Iterables.getOnlyElement(newEntity.policies());
+        assertEquals(newPolicy.getPolicyType().getName(), policyType);
+    }
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/pom.xml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/pom.xml b/utils/common/dependencies/osgi/com-example-entities/pom.xml
new file mode 100644
index 0000000..310f198
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/pom.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+
+    <!--
+    Deliberately not using "org.apache.brooklyn", because those are white-listed for 
+    class-loading purposes. This is *only* used for testing, and is not released to
+    maven-central etc, so it's ok to use a groupId that we don't actually own!
+    -->
+    <groupId>com.example.brooklyn.test.resources.osgi</groupId>
+    <artifactId>brooklyn-test-osgi-com-example-entities</artifactId>
+    <version>0.1.0</version>
+
+    <name>OSGi bundled test entities</name>
+
+    <description>
+        Simple entities for testing the OSGi functionality
+    </description>
+
+    <parent>
+        <groupId>org.apache.brooklyn</groupId>
+        <artifactId>brooklyn-parent</artifactId>
+        <version>0.11.0-SNAPSHOT</version><!-- BROOKLYN_VERSION -->
+        <relativePath>../../../../../../../parent/pom.xml</relativePath>
+    </parent>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.brooklyn</groupId>
+            <artifactId>brooklyn-core</artifactId>
+            <version>${brooklyn.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.brooklyn</groupId>
+            <artifactId>brooklyn-api</artifactId>
+            <version>${brooklyn.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.brooklyn</groupId>
+            <artifactId>brooklyn-utils-common</artifactId>
+            <version>${brooklyn.version}</version>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <outputDirectory>../../../src/test/resources/brooklyn/osgi</outputDirectory>
+                    <finalName>brooklyn-test-osgi-com-example-entities</finalName>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Bundle-Version>${project.version}</Bundle-Version>
+                        <Brooklyn-Feature-BuildId>${buildNumber}</Brooklyn-Feature-BuildId>
+                        <Brooklyn-Feature-BuildBranch>${scmBranch}</Brooklyn-Feature-BuildBranch>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplication.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplication.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplication.java
new file mode 100644
index 0000000..bdaa254
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplication.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+import org.apache.brooklyn.api.entity.ImplementedBy;
+import org.apache.brooklyn.core.entity.StartableApplication;
+
+@ImplementedBy(SimpleApplicationImpl.class)
+public interface SimpleApplication extends StartableApplication {
+
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplicationImpl.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplicationImpl.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplicationImpl.java
new file mode 100644
index 0000000..793158b
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleApplicationImpl.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+import org.apache.brooklyn.core.entity.AbstractApplication;
+import org.apache.brooklyn.core.entity.StartableApplication;
+
+public class SimpleApplicationImpl extends AbstractApplication implements StartableApplication, SimpleApplication {
+
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEffectorInitializer.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEffectorInitializer.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEffectorInitializer.java
new file mode 100644
index 0000000..edbdf18
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEffectorInitializer.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2016 The Apache Software Foundation.
+ *
+ * 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 com.example.brooklyn.test.osgi.entities;
+
+import org.apache.brooklyn.core.effector.AddEffector;
+import org.apache.brooklyn.core.effector.EffectorBody;
+import org.apache.brooklyn.core.effector.Effectors;
+import org.apache.brooklyn.util.core.config.ConfigBag;
+
+public class SimpleEffectorInitializer extends AddEffector {
+
+    public SimpleEffectorInitializer() {
+        super(newEffectorBuilder().build());
+    }
+
+    public static Effectors.EffectorBuilder<Void> newEffectorBuilder() {
+        ConfigBag bag = ConfigBag.newInstance();
+        bag.put(EFFECTOR_NAME, SimpleEffectorInitializer.class.getSimpleName());
+
+        return AddEffector.newEffectorBuilder(Void.class, bag)
+                .description("A bare-bones effector")
+                .impl(new Body());
+    }
+
+
+    public static class Body extends EffectorBody<Void> {
+
+        @Override
+        public Void call(ConfigBag parameters) {
+            return null;
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntity.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntity.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntity.java
new file mode 100644
index 0000000..558720c
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntity.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+
+import org.apache.brooklyn.api.catalog.Catalog;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.ImplementedBy;
+import org.apache.brooklyn.api.sensor.AttributeSensor;
+import org.apache.brooklyn.config.ConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.core.sensor.Sensors;
+
+
+@Catalog(name="A Simple Entity", description="Simple entity for test purposes")
+@ImplementedBy(SimpleEntityImpl.class)
+public interface SimpleEntity extends Entity {
+    
+    ConfigKey<Object> SIMPLE_CONFIG = ConfigKeys.newConfigKey(Object.class, "simple.config");
+
+    AttributeSensor<Object> SIMPLE_SENSOR = Sensors.newSensor(Object.class, "simple.sensor");
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntityImpl.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntityImpl.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntityImpl.java
new file mode 100644
index 0000000..98442bf
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleEntityImpl.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+import org.apache.brooklyn.core.entity.AbstractEntity;
+
+public class SimpleEntityImpl extends AbstractEntity implements SimpleEntity {
+
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleLocation.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleLocation.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleLocation.java
new file mode 100644
index 0000000..aad1dd6
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleLocation.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+import org.apache.brooklyn.config.ConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.core.location.AbstractLocation;
+import org.apache.brooklyn.util.core.flags.SetFromFlag;
+
+public class SimpleLocation extends AbstractLocation {
+    @SetFromFlag("config1")
+    public static final ConfigKey<String> CONFIG1 = ConfigKeys.newStringConfigKey("config1");
+
+    @SetFromFlag("config2")
+    public static final ConfigKey<String> CONFIG2 = ConfigKeys.newStringConfigKey("config2");
+
+    @SetFromFlag("config3")
+    public static final ConfigKey<String> CONFIG3 = ConfigKeys.newStringConfigKey("config3");
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleObject.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleObject.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleObject.java
new file mode 100644
index 0000000..a899ccd
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimpleObject.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+public class SimpleObject {
+    
+    private String val;
+    
+    public SimpleObject() {
+    }
+
+    public SimpleObject(String val) {
+        this.val = val;
+    }
+
+    public String getVal() {
+        return val;
+    }
+    
+    public void setVal(String val) {
+        this.val = val;
+    }
+    
+    @Override
+    public boolean equals(Object obj) {
+        if (!(obj instanceof SimpleObject)) return false;
+        String oVal = ((SimpleObject)obj).val;
+        return (val == null) ? oVal == null : val.equals(oVal);
+    }
+    
+    @Override
+    public int hashCode() {
+        return (val == null) ? 0 : val.hashCode();
+    }
+    
+    @Override
+    public String toString() {
+        return "SimpleObject["+val+"]";
+    }
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimplePolicy.java
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimplePolicy.java b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimplePolicy.java
new file mode 100644
index 0000000..8db160d
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/java/com/example/brooklyn/test/osgi/entities/SimplePolicy.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 com.example.brooklyn.test.osgi.entities;
+
+import org.apache.brooklyn.config.ConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.core.policy.AbstractPolicy;
+import org.apache.brooklyn.util.core.flags.SetFromFlag;
+
+public class SimplePolicy extends AbstractPolicy {
+    @SetFromFlag("config1")
+    public static final ConfigKey<String> CONFIG1 = ConfigKeys.newStringConfigKey("config1");
+
+    @SetFromFlag("config2")
+    public static final ConfigKey<String> CONFIG2 = ConfigKeys.newStringConfigKey("config2");
+
+    @SetFromFlag("config3")
+    public static final ConfigKey<String> CONFIG3 = ConfigKeys.newStringConfigKey("config3");
+    
+    @Override
+    protected <T> void doReconfigureConfig(ConfigKey<T> key, T val) {
+        // no-op; allow any config to be set
+    }
+}

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/resources/catalog.bom
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/resources/catalog.bom b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/catalog.bom
new file mode 100644
index 0000000..a767eff
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/catalog.bom
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+brooklyn.catalog:
+    version: "0.11.0-SNAPSHOT" # BROOKLYN_VERSION
+    itemType: entity
+    description: For testing loading catalog.bom with catalog scan
+    displayName: I Haz Catalog
+    items:
+    - id: com.example.simpleTest
+      item:
+        type: com.example.brooklyn.test.osgi.entities.SimpleEntity

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/entities/icon.gif
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/entities/icon.gif b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/entities/icon.gif
new file mode 100644
index 0000000..e565824
Binary files /dev/null and b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/entities/icon.gif differ

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/resources/message.txt
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/resources/message.txt b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/resources/message.txt
new file mode 100644
index 0000000..c99a620
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/com/example/brooklyn/test/osgi/resources/message.txt
@@ -0,0 +1,16 @@
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you 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.

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-back-catalog.bom
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-back-catalog.bom b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-back-catalog.bom
new file mode 100644
index 0000000..6d117c9
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-back-catalog.bom
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+brooklyn.catalog:
+  version: 0.1.2
+  itemType: entity
+  displayName: I Haz Catalog
+  libraries:
+    # References a bundle which doesn't contain SimpleEntity on purpose
+    # Expects that the caller will already include a reference to the bundle
+    # and checks that this doesn't override parent's libraries, but adds to them
+  - classpath:/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar
+  items:
+  - id: back-reference
+    item:
+      type: com.example.yaml.nested.catalog.simple

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-osgi-entity.yaml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-osgi-entity.yaml b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-osgi-entity.yaml
new file mode 100644
index 0000000..c9b1c55
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-osgi-entity.yaml
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+name: Basic entity
+services:
+- name: service
+  type: org.apache.brooklyn.entity.stock.BasicEntity

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-parent-catalog.bom
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-parent-catalog.bom b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-parent-catalog.bom
new file mode 100644
index 0000000..da0543b
--- /dev/null
+++ b/utils/common/dependencies/osgi/com-example-entities/src/main/resources/yaml-ref-parent-catalog.bom
@@ -0,0 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+brooklyn.catalog:
+  version: 0.1.2
+  itemType: entity
+  displayName: I Haz Catalog
+  libraries:
+    # References a bundle which doesn't contain SimpleEntity on purpose
+    # Expects that the caller will already include a reference to the bundle
+    # and checks that this doesn't override parent's libraries, but adds to them
+  - classpath:/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar
+  items:
+  - id: com.example.yaml.nested.catalog.simple
+    item:
+      type: com.example.brooklyn.test.osgi.entities.SimpleEntity
+  - id: yaml.nested.catalog.more
+    item:
+      type: org.apache.brooklyn.test.osgi.entities.more.MoreEntity

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/src/test/java/org/apache/brooklyn/util/osgi/OsgiTestResources.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/osgi/OsgiTestResources.java b/utils/common/src/test/java/org/apache/brooklyn/util/osgi/OsgiTestResources.java
index 574316d..83a44ef 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/osgi/OsgiTestResources.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/osgi/OsgiTestResources.java
@@ -53,6 +53,25 @@ public class OsgiTestResources {
     public static final String BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_ENTITY_SENSOR_NAME = "simple.sensor";
 
     /**
+     * brooklyn-test-com-example-osgi-entities (v 0.1.0) -
+     * defines an entity and an application, to confirm it can be read and used by brooklyn.
+     * Uses a different symbolic name than the "org.apache.brooklyn" prefix, to test that it's
+     * not just "white-listing" of such bundles that allows tests to pass.
+     */
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_SYMBOLIC_NAME_FINAL_PART = "brooklyn-test-osgi-com-example-entities";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_SYMBOLIC_NAME_FULL =
+        "com.example.brooklyn.test.resources.osgi."+BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_SYMBOLIC_NAME_FINAL_PART;
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_PATH = "/brooklyn/osgi/brooklyn-test-osgi-com-example-entities.jar";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_APPLICATION = "com.example.brooklyn.test.osgi.entities.SimpleApplication";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ENTITY = "com.example.brooklyn.test.osgi.entities.SimpleEntity";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_POLICY = "com.example.brooklyn.test.osgi.entities.SimplePolicy";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_LOCATION = "com.example.brooklyn.test.osgi.entities.SimpleLocation";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_EFFECTOR = "com.example.brooklyn.test.osgi.entities.SimpleEffectorInitializer";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_OBJECT = "com.example.brooklyn.test.osgi.entities.SimpleObject";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ENTITY_CONFIG_NAME = "simple.config";
+    public static final String BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ENTITY_SENSOR_NAME = "simple.sensor";
+
+    /**
      * brooklyn-test-osgi-more-entities_0.1.0 -
      * another bundle with a minimal sayHi effector, used to test versioning and dependencies
      * (this one has no dependencies, but see also {@value #BROOKLYN_TEST_MORE_ENTITIES_V2_PATH})

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed560a74/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-com-example-entities.jar
----------------------------------------------------------------------
diff --git a/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-com-example-entities.jar b/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-com-example-entities.jar
new file mode 100644
index 0000000..d92ab9f
Binary files /dev/null and b/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-com-example-entities.jar differ


[2/2] brooklyn-server git commit: This closes #489

Posted by al...@apache.org.
This closes #489


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/923abe7b
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/923abe7b
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/923abe7b

Branch: refs/heads/master
Commit: 923abe7b3a5cf70a76cb33ab809b0e579f463342
Parents: 5f1588e ed560a7
Author: Aled Sage <al...@gmail.com>
Authored: Tue Dec 20 10:16:00 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Dec 20 10:16:00 2016 +0000

----------------------------------------------------------------------
 .../CatalogOsgiVersionMoreEntityRebindTest.java |  88 +++++++++++++++++++
 .../osgi/com-example-entities/pom.xml           |  87 ++++++++++++++++++
 .../test/osgi/entities/SimpleApplication.java   |  27 ++++++
 .../osgi/entities/SimpleApplicationImpl.java    |  26 ++++++
 .../entities/SimpleEffectorInitializer.java     |  48 ++++++++++
 .../test/osgi/entities/SimpleEntity.java        |  38 ++++++++
 .../test/osgi/entities/SimpleEntityImpl.java    |  25 ++++++
 .../test/osgi/entities/SimpleLocation.java      |  35 ++++++++
 .../test/osgi/entities/SimpleObject.java        |  56 ++++++++++++
 .../test/osgi/entities/SimplePolicy.java        |  40 +++++++++
 .../src/main/resources/catalog.bom              |  27 ++++++
 .../brooklyn/test/osgi/entities/icon.gif        | Bin 0 -> 43 bytes
 .../brooklyn/test/osgi/resources/message.txt    |  16 ++++
 .../main/resources/yaml-ref-back-catalog.bom    |  31 +++++++
 .../main/resources/yaml-ref-osgi-entity.yaml    |  21 +++++
 .../main/resources/yaml-ref-parent-catalog.bom  |  34 +++++++
 .../brooklyn/util/osgi/OsgiTestResources.java   |  19 ++++
 .../brooklyn-test-osgi-com-example-entities.jar | Bin 0 -> 21436 bytes
 18 files changed, 618 insertions(+)
----------------------------------------------------------------------