You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/07/04 11:51:00 UTC
[18/45] git commit: BROOKLYN-13: Merge CatalogDto and CatalogDtoUtils
BROOKLYN-13: Merge CatalogDto and CatalogDtoUtils
There aren't enough methods on the latter to justify the separate class
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/3a2f680b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/3a2f680b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/3a2f680b
Branch: refs/heads/master
Commit: 3a2f680bddd97fb5786bca08975fbbbbe425d78f
Parents: 30093bb
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Tue Jul 1 16:06:12 2014 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Tue Jul 1 16:06:12 2014 +0100
----------------------------------------------------------------------
.../catalog/internal/BasicBrooklynCatalog.java | 8 ++-
.../catalog/internal/CatalogClasspathDo.java | 1 -
.../brooklyn/catalog/internal/CatalogDo.java | 6 +-
.../brooklyn/catalog/internal/CatalogDto.java | 68 +++++++++++++++++---
.../catalog/internal/CatalogDtoUtils.java | 52 ---------------
.../catalog/internal/CatalogItemDo.java | 2 +-
.../internal/AbstractManagementContext.java | 8 +--
7 files changed, 71 insertions(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index d6b5ff0..4db16bd 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -33,7 +33,11 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
private final CatalogDo catalog;
private volatile CatalogDo manualAdditionsCatalog;
private volatile LoadedClassLoader manualAdditionsClasses;
-
+
+ public BasicBrooklynCatalog(ManagementContext mgmt, String catalogUrl) {
+ this(mgmt, CatalogDto.newDtoFromUrl(catalogUrl));
+ }
+
public BasicBrooklynCatalog(final ManagementContext mgmt, final CatalogDto dto) {
this.mgmt = Preconditions.checkNotNull(mgmt, "managementContext");
this.catalog = new CatalogDo(mgmt, dto);
@@ -90,7 +94,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
@Override
public <T> Class<? extends T> loadClass(CatalogItem<T> item) {
if (log.isDebugEnabled())
- log.debug("Loading class for catalog item "+item);
+ log.debug("Loading class for catalog item " + item);
Preconditions.checkNotNull(item);
CatalogItemDo<?> loadedItem = getCatalogItemDo(item.getId());
if (loadedItem==null) throw new NoSuchElementException("Unable to load '"+item.getId()+"' to instantiate it");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
index 66a2bba..ffe6e9c 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
@@ -66,7 +66,6 @@ public class CatalogClasspathDo {
TYPES
}
-
private static final Logger log = LoggerFactory.getLogger(CatalogClasspathDo.class);
private final CatalogDo catalog;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
index 9573eb1..c478e59 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
@@ -66,19 +66,17 @@ public class CatalogDo {
if (isLoaded()) return;
if (this.parent!=null && !this.parent.equals(parent))
log.warn("Catalog "+this+" being initialised with different parent "+parent+" when already parented by "+this.parent, new Throwable("source of reparented "+this));
- this.parent = parent;
if (this.mgmt!=null && !this.mgmt.equals(mgmt))
log.warn("Catalog "+this+" being initialised with different mgmt "+mgmt+" when already managed by "+this.mgmt, new Throwable("source of reparented "+this));
+ this.parent = parent;
this.mgmt = mgmt;
try {
- if (dto.url!=null)
- CatalogDtoUtils.populateFromUrl(dto, dto.url);
+ dto.populateFromUrl();
classpath = new CatalogClasspathDo(this);
classpath.load();
} catch (Exception e) {
Exceptions.propagateIfFatal(e);
log.error("Unable to load catalog "+this+" (ignoring): "+e);
-// log.debug("Trace for failure to load "+this+": "+e, e);
log.info("Trace for failure to load "+this+": "+e, e);
}
isLoaded = true;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
index 7e7f33a..f222215 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
@@ -1,9 +1,21 @@
package brooklyn.catalog.internal;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Objects;
+
+import brooklyn.util.ResourceUtils;
+import brooklyn.util.exceptions.Exceptions;
+
public class CatalogDto {
-
+
+ private static final Logger LOG = LoggerFactory.getLogger(CatalogDto.class);
+
String id;
String url;
String name;
@@ -15,6 +27,26 @@ public class CatalogDto {
// in this class which does copy-on-write
List<CatalogDto> catalogs = null;
+ public static CatalogDto newDefaultLocalScanningDto(CatalogClasspathDo.CatalogScanningModes scanMode) {
+ CatalogDo result = new CatalogDo(
+ CatalogDto.newNamedInstance("Local Scanned Catalog", "All annotated Brooklyn entities detected in the default classpath") );
+ result.setClasspathScanForEntities(scanMode);
+ return result.dto;
+ }
+
+ public static CatalogDto newDtoFromUrl(String url) {
+ if (LOG.isDebugEnabled()) LOG.debug("Retrieving catalog from: {}", url);
+ try {
+ InputStream source = ResourceUtils.create().getResourceFromUrl(url);
+ CatalogDto result = (CatalogDto) new CatalogXmlSerializer().deserialize(new InputStreamReader(source));
+ if (LOG.isDebugEnabled()) LOG.debug("Retrieved catalog from: {}", url);
+ return result;
+ } catch (Throwable t) {
+ LOG.debug("Unable to retrieve catalog from: " + url + " (" + t + ")");
+ throw Exceptions.propagate(t);
+ }
+ }
+
public static CatalogDto newNamedInstance(String name, String description) {
CatalogDto result = new CatalogDto();
result.name = name;
@@ -28,15 +60,6 @@ public class CatalogDto {
return result;
}
- @Override
- public String toString() {
- return getClass().getSimpleName()+"["+
- (url!=null ? url+"; " : "")+
- (name!=null ? name+":" : "")+
- (id!=null ? id : "")+
- "]";
- }
-
/**
* @throws NullPointerException If source is null (and !skipNulls)
*/
@@ -54,4 +77,29 @@ public class CatalogDto {
if (!skipNulls || source.entries != null) entries = source.entries;
}
+ /**
+ * Populates this Dto by loading the catalog at its {@link #url}. Takes no action if url is null.
+ * Throws if there are any problems in retrieving or copying from url.
+ */
+ void populateFromUrl() {
+ if (url != null) {
+ CatalogDto remoteDto = newDtoFromUrl(url);
+ try {
+ copyFrom(remoteDto, true);
+ } catch (Exception e) {
+ Exceptions.propagate(e);
+ }
+ }
+ }
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this)
+ .omitNullValues()
+ .add("name", name)
+ .add("id", id)
+ .add("url", url)
+ .toString();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/catalog/internal/CatalogDtoUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogDtoUtils.java b/core/src/main/java/brooklyn/catalog/internal/CatalogDtoUtils.java
deleted file mode 100644
index 86a499b..0000000
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogDtoUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package brooklyn.catalog.internal;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.catalog.internal.CatalogClasspathDo.CatalogScanningModes;
-import brooklyn.util.ResourceUtils;
-import brooklyn.util.exceptions.Exceptions;
-
-public class CatalogDtoUtils {
-
- private static final Logger log = LoggerFactory.getLogger(CatalogDtoUtils.class);
-
- public static CatalogDto newDefaultLocalScanningDto(CatalogScanningModes scanMode) {
- CatalogDo result = new CatalogDo(
- CatalogDto.newNamedInstance("Local Scanned Catalog", "All annotated Brooklyn entities detected in the default classpath") );
- result.setClasspathScanForEntities(scanMode);
- return result.dto;
- }
-
- /** throws if there are any problems in retrieving or copying */
- public static void populateFromUrl(CatalogDto dto, String url) {
- CatalogDto remoteDto = newDtoFromUrl(url);
- try {
- copyDto(remoteDto, dto, true);
- } catch (Exception e) {
- Exceptions.propagate(e);
- }
- }
-
- /** does a shallow copy.
- * "skipNulls" means not to copy any fields from the source which are null */
- static void copyDto(CatalogDto source, CatalogDto target, boolean skipNulls) throws IllegalArgumentException, IllegalAccessException {
- target.copyFrom(source, skipNulls);
- }
-
- public static CatalogDto newDtoFromUrl(String url) {
- if (log.isDebugEnabled()) log.debug("Retrieving catalog from: {}", url);
- try {
- InputStream source = ResourceUtils.create().getResourceFromUrl(url);
- CatalogDto result = (CatalogDto) new CatalogXmlSerializer().deserialize(new InputStreamReader(source));
- if (log.isDebugEnabled()) log.debug("Retrieved catalog from: {}", url);
- return result;
- } catch (Throwable t) {
- log.debug("Unable to retrieve catalog from: "+url+" ("+t+")");
- throw Exceptions.propagate(t);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
index d857c45..edce2e7 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -24,7 +24,7 @@ public class CatalogItemDo<T> implements CatalogItem<T> {
}
@Override
- public brooklyn.catalog.CatalogItem.CatalogItemType getCatalogItemType() {
+ public CatalogItemType getCatalogItemType() {
return itemDto.getCatalogItemType();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a2f680b/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java b/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
index cd86bb8..bb9db2e 100644
--- a/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
+++ b/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
@@ -19,7 +19,7 @@ import org.slf4j.LoggerFactory;
import brooklyn.catalog.BrooklynCatalog;
import brooklyn.catalog.internal.BasicBrooklynCatalog;
import brooklyn.catalog.internal.CatalogClasspathDo.CatalogScanningModes;
-import brooklyn.catalog.internal.CatalogDtoUtils;
+import brooklyn.catalog.internal.CatalogDto;
import brooklyn.config.BrooklynProperties;
import brooklyn.config.StringConfigMap;
import brooklyn.entity.Effector;
@@ -267,7 +267,7 @@ public abstract class AbstractManagementContext implements ManagementContextInte
* Returns the actual task (if it is local) or a proxy task (if it is remote);
* if management for the entity has not yet started this may start it.
*
- * @deprecated since 0.6.0 use effectors (or support {@link #runAtEntity(Entity, Task)} if something else is needed);
+ * @deprecated since 0.6.0 use effectors (or support {@code runAtEntity(Entity, Task)} if something else is needed);
* (Callable with Map flags is too open-ended, bothersome to support, and not used much)
*/
@Deprecated
@@ -311,7 +311,7 @@ public abstract class AbstractManagementContext implements ManagementContextInte
try {
if (!Strings.isEmpty(catalogUrl)) {
- catalog = new BasicBrooklynCatalog(this, CatalogDtoUtils.newDtoFromUrl(catalogUrl));
+ catalog = new BasicBrooklynCatalog(this, catalogUrl);
if (log.isDebugEnabled())
log.debug("Loaded catalog from "+catalogUrl+": "+catalog);
}
@@ -330,7 +330,7 @@ public abstract class AbstractManagementContext implements ManagementContextInte
}
if (catalog==null) {
// retry, either an error, or was blank
- catalog = new BasicBrooklynCatalog(this, CatalogDtoUtils.newDefaultLocalScanningDto(CatalogScanningModes.ANNOTATIONS));
+ catalog = new BasicBrooklynCatalog(this, CatalogDto.newDefaultLocalScanningDto(CatalogScanningModes.ANNOTATIONS));
if (log.isDebugEnabled())
log.debug("Loaded default (local classpath) catalog: "+catalog);
}