This is an automated email from the ASF dual-hosted git repository.
heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
The following commit(s) were added to refs/heads/master by this push:
new c6516ec006 per previous, also ensure search path is set even when
there is no catalog id
c6516ec006 is described below
commit c6516ec0068b904d73ade308a4618d55b66df16b
Author: Alex Heneveld <[email protected]>
AuthorDate: Wed Mar 29 10:48:35 2023 +0100
per previous, also ensure search path is set even when there is no catalog
id
---
.../java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java | 2 +-
.../org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java | 2 ++
.../apache/brooklyn/core/objs/proxy/InternalLocationFactory.java | 2 ++
.../org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java | 6 +++++-
.../java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java | 5 +++++
5 files changed, 15 insertions(+), 2 deletions(-)
diff --git
a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
index a2d6897cc9..00574e5493 100644
---
a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
+++
b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
@@ -219,7 +219,7 @@ public abstract class AbstractBrooklynObject implements
BrooklynObjectInternal {
@Override
public void addSearchPath(List<String> ids) {
- synchronized (searchPath) {
+ if (ids!=null) synchronized (searchPath) {
searchPath.addAll(ids);
}
}
diff --git
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
index 393c99cfb8..32915efcbe 100644
---
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
+++
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalEntityFactory.java
@@ -302,6 +302,8 @@ public class InternalEntityFactory extends InternalFactory {
if (spec.getCatalogItemId() != null) {
theEntity.setCatalogItemIdAndSearchPath(spec.getCatalogItemId(),
spec.getCatalogItemIdSearchPath());
+ } else {
+ theEntity.addSearchPath(spec.getCatalogItemIdSearchPath());
}
entity.tags().addTags(spec.getTags());
diff --git
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
index 4aab6ed57f..8405cca0b6 100644
---
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
+++
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalLocationFactory.java
@@ -79,6 +79,8 @@ public class InternalLocationFactory extends InternalFactory {
if (spec.getCatalogItemId()!=null) {
location.setCatalogItemIdAndSearchPath(spec.getCatalogItemId(),
spec.getCatalogItemIdSearchPath());
+ } else {
+ location.addSearchPath(spec.getCatalogItemIdSearchPath());
}
loc.tags().addTags(spec.getTags());
diff --git
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
index afd0ea6c5c..5b18b2b726 100644
---
a/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
+++
b/core/src/main/java/org/apache/brooklyn/core/objs/proxy/InternalPolicyFactory.java
@@ -67,8 +67,10 @@ public class InternalPolicyFactory extends InternalFactory {
}
if (spec.getCatalogItemId()!=null) {
policy.setCatalogItemIdAndSearchPath(spec.getCatalogItemId(),
spec.getCatalogItemIdSearchPath());
+ } else {
+ policy.addSearchPath(spec.getCatalogItemIdSearchPath());
}
-
+
pol.tags().addTags(spec.getTags());
if (isNewStyle(clazz)) {
@@ -109,6 +111,8 @@ public class InternalPolicyFactory extends InternalFactory {
if (spec.getCatalogItemId()!=null) {
theEnricher.setCatalogItemIdAndSearchPath(spec.getCatalogItemId(),
spec.getCatalogItemIdSearchPath());
+ } else {
+ theEnricher.addSearchPath(spec.getCatalogItemIdSearchPath());
}
enricher.tags().addTags(spec.getTags());
diff --git
a/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
b/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
index 6863fdf20a..efa0aea290 100644
--- a/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
+++ b/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
@@ -53,12 +53,14 @@ import org.apache.brooklyn.entity.stock.BasicEntity;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.test.support.TestResourceUnavailableException;
import org.apache.brooklyn.util.collections.MutableList;
+import org.apache.brooklyn.util.collections.MutableSet;
import org.apache.brooklyn.util.core.osgi.Osgis;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.maven.MavenArtifact;
import org.apache.brooklyn.util.maven.MavenRetriever;
import org.apache.brooklyn.util.osgi.OsgiTestResources;
+import org.apache.brooklyn.util.osgi.VersionedName;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.osgi.framework.Bundle;
import org.osgi.framework.launch.Framework;
@@ -133,6 +135,9 @@ public class ClassLoaderUtilsTest {
// test load still works when we have the item in the search path only
but not a catalog item id on the entity
((EntityInternal)entity).setCatalogItemIdAndSearchPath(null,
MutableList.of(entity.getCatalogItemId()));
ResourceUtils.create(entity).getResourceAsString("classpath://"+classname.replaceAll("\\.",
"/")+".class");
+
+ Entity e2 =
mgmt.getEntityManager().createEntity(EntitySpec.create(BasicEntity.class).addSearchPath(MutableList.of(bundle.getSymbolicName()+":"+bundle.getVersion())));
+
ResourceUtils.create(e2).getResourceAsString("classpath://"+classname.replaceAll("\\.",
"/")+".class");
}
@Test