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 2015/06/15 09:46:02 UTC

[02/11] incubator-brooklyn git commit: Indent BrooklynVersion properly

Indent BrooklynVersion properly


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

Branch: refs/heads/master
Commit: b515f38d3e3e4643108c40d4ca46473dfcc49ab5
Parents: 7a3a1f8
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Tue May 5 17:14:59 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Tue Jun 2 17:52:49 2015 +0100

----------------------------------------------------------------------
 .../src/main/java/brooklyn/BrooklynVersion.java | 398 ++++++++++---------
 .../test/java/brooklyn/BrooklynVersionTest.java |  96 ++---
 2 files changed, 250 insertions(+), 244 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b515f38d/core/src/main/java/brooklyn/BrooklynVersion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/BrooklynVersion.java b/core/src/main/java/brooklyn/BrooklynVersion.java
index ec71df7..9920b17 100644
--- a/core/src/main/java/brooklyn/BrooklynVersion.java
+++ b/core/src/main/java/brooklyn/BrooklynVersion.java
@@ -46,201 +46,207 @@ import brooklyn.util.text.Strings;
  */
 public class BrooklynVersion {
 
-  private static final Logger log = LoggerFactory.getLogger(BrooklynVersion.class);
-  
-  private static final String MVN_VERSION_RESOURCE_FILE = "META-INF/maven/org.apache.brooklyn/brooklyn-core/pom.properties";
-  private static final String MANIFEST_PATH = "META-INF/MANIFEST.MF";
-  private static final String BROOKLYN_CORE_SYMBOLIC_NAME = "org.apache.brooklyn.core";
-  
-  private static final String MVN_VERSION_PROPERTY_NAME = "version";
-  private static final String OSGI_VERSION_PROPERTY_NAME = Attributes.Name.IMPLEMENTATION_VERSION.toString();
-  private static final String OSGI_SHA1_PROPERTY_NAME = "Implementation-SHA-1";
-
-
-  private final static String VERSION_FROM_STATIC = "0.7.0-SNAPSHOT"; // BROOKLYN_VERSION
-  private static final AtomicReference<Boolean> IS_DEV_ENV = new AtomicReference<Boolean>();
-  
-  public static final BrooklynVersion INSTANCE = new BrooklynVersion();
-  
-  private final Properties versionProperties = new Properties();
-  
-  public BrooklynVersion() {
-      // we read the maven pom metadata and osgi metadata and make sure it's sensible
-      // everything is put into a single map for now (good enough, but should be cleaned up)
-      readPropertiesFromMavenResource(BrooklynVersion.class.getClassLoader());
-      readPropertiesFromOsgiResource(BrooklynVersion.class.getClassLoader(), BROOKLYN_CORE_SYMBOLIC_NAME);
-      // TODO there is also build-metadata.properties used in ServerResource /v1/server/version endpoint
-      // see comments on that about folding it into this class instead
-
-      checkVersions();
-  }
-
-  public void checkVersions() {
-      String mvnVersion = getVersionFromMavenProperties();
-      if (mvnVersion!=null && !VERSION_FROM_STATIC.equals(mvnVersion)) {
-          throw new IllegalStateException("Version error: maven "+mvnVersion+" / code "+VERSION_FROM_STATIC);
-      }
-      
-      String osgiVersion = versionProperties.getProperty(OSGI_VERSION_PROPERTY_NAME);
-      // TODO does the OSGi version include other slightly differ gubbins/style ?
-      if (osgiVersion!=null && !VERSION_FROM_STATIC.equals(osgiVersion)) {
-          throw new IllegalStateException("Version error: osgi "+osgiVersion+" / code "+VERSION_FROM_STATIC);
-      }
-  }
-
-  /** Returns version as inferred from classpath/osgi, if possible, or 0.0.0-SNAPSHOT.
-   * See also {@link #getVersionFromMavenProperties()} and {@link #getVersionFromOsgiManifest()}.
-   * @deprecated since 0.7.0, in favour of the more specific methods (and does anyone need that default value?)
-   */
-  @Deprecated
-  public String getVersionFromClasspath() {
-      String v = getVersionFromMavenProperties();
-      if (Strings.isNonBlank(v)) return v;
-      v = getVersionFromOsgiManifest();
-      if (Strings.isNonBlank(v)) return v;
-      return "0.0.0-SNAPSHOT";
-  }
-  
-  @Nullable
-  public String getVersionFromMavenProperties() {
-      return versionProperties.getProperty(MVN_VERSION_PROPERTY_NAME);
-  }
-
-  @Nullable
-  public String getVersionFromOsgiManifest() {
-      return versionProperties.getProperty(OSGI_VERSION_PROPERTY_NAME);
-  }
-  
-  @Nullable
-  /** SHA1 of the last commit to brooklyn at the time this build was made.
-   * For SNAPSHOT builds of course there may have been further non-committed changes. */
-  public String getSha1FromOsgiManifest() {
-      return versionProperties.getProperty(OSGI_SHA1_PROPERTY_NAME);
-  }
-  
-  public String getVersion() {
-    return VERSION_FROM_STATIC;
-  }
-  
-  public boolean isSnapshot() {
-      return (getVersion().indexOf("-SNAPSHOT")>=0);
-  }
-    
-  private void readPropertiesFromMavenResource(ClassLoader resourceLoader) {
-    InputStream versionStream = null;
-    try {
-      versionStream = resourceLoader.getResourceAsStream(MVN_VERSION_RESOURCE_FILE);
-      if (versionStream==null) {
-          if (isDevelopmentEnvironment()) {
-              // allowed for dev env
-              log.trace("No maven resource file "+MVN_VERSION_RESOURCE_FILE+" available");
-          } else {
-              log.warn("No maven resource file "+MVN_VERSION_RESOURCE_FILE+" available");
-          }
-          return;
-      }
-      versionProperties.load(checkNotNull(versionStream));
-    } catch (IOException e) {
-      log.warn("Error reading maven resource file "+MVN_VERSION_RESOURCE_FILE+": "+e, e);
-    } finally {
-        Streams.closeQuietly(versionStream);
+    private static final Logger log = LoggerFactory.getLogger(BrooklynVersion.class);
+
+    private static final String MVN_VERSION_RESOURCE_FILE = "META-INF/maven/org.apache.brooklyn/brooklyn-core/pom.properties";
+    private static final String MANIFEST_PATH = "META-INF/MANIFEST.MF";
+    private static final String BROOKLYN_CORE_SYMBOLIC_NAME = "org.apache.brooklyn.core";
+
+    private static final String MVN_VERSION_PROPERTY_NAME = "version";
+    private static final String OSGI_VERSION_PROPERTY_NAME = Attributes.Name.IMPLEMENTATION_VERSION.toString();
+    private static final String OSGI_SHA1_PROPERTY_NAME = "Implementation-SHA-1";
+
+    private final static String VERSION_FROM_STATIC = "0.7.0-SNAPSHOT"; // BROOKLYN_VERSION
+    private static final AtomicReference<Boolean> IS_DEV_ENV = new AtomicReference<Boolean>();
+
+    public static final BrooklynVersion INSTANCE = new BrooklynVersion();
+
+    private final Properties versionProperties = new Properties();
+
+    public BrooklynVersion() {
+        // we read the maven pom metadata and osgi metadata and make sure it's sensible
+        // everything is put into a single map for now (good enough, but should be cleaned up)
+        readPropertiesFromMavenResource(BrooklynVersion.class.getClassLoader());
+        readPropertiesFromOsgiResource(BrooklynVersion.class.getClassLoader(), BROOKLYN_CORE_SYMBOLIC_NAME);
+        // TODO there is also build-metadata.properties used in ServerResource /v1/server/version endpoint
+        // see comments on that about folding it into this class instead
+
+        checkVersions();
+    }
+
+    public void checkVersions() {
+        String mvnVersion = getVersionFromMavenProperties();
+        if (mvnVersion != null && !VERSION_FROM_STATIC.equals(mvnVersion)) {
+            throw new IllegalStateException("Version error: maven " + mvnVersion + " / code " + VERSION_FROM_STATIC);
+        }
+
+        String osgiVersion = versionProperties.getProperty(OSGI_VERSION_PROPERTY_NAME);
+        // TODO does the OSGi version include other slightly differ gubbins/style ?
+        if (osgiVersion != null && !VERSION_FROM_STATIC.equals(osgiVersion)) {
+            throw new IllegalStateException("Version error: osgi " + osgiVersion + " / code " + VERSION_FROM_STATIC);
+        }
+    }
+
+    /**
+     * Returns version as inferred from classpath/osgi, if possible, or 0.0.0-SNAPSHOT.
+     * See also {@link #getVersionFromMavenProperties()} and {@link #getVersionFromOsgiManifest()}.
+     *
+     * @deprecated since 0.7.0, in favour of the more specific methods (and does anyone need that default value?)
+     */
+    @Deprecated
+    public String getVersionFromClasspath() {
+        String v = getVersionFromMavenProperties();
+        if (Strings.isNonBlank(v)) return v;
+        v = getVersionFromOsgiManifest();
+        if (Strings.isNonBlank(v)) return v;
+        return "0.0.0-SNAPSHOT";
+    }
+
+    @Nullable
+    public String getVersionFromMavenProperties() {
+        return versionProperties.getProperty(MVN_VERSION_PROPERTY_NAME);
+    }
+
+    @Nullable
+    public String getVersionFromOsgiManifest() {
+        return versionProperties.getProperty(OSGI_VERSION_PROPERTY_NAME);
+    }
+
+    @Nullable
+    /** SHA1 of the last commit to brooklyn at the time this build was made.
+     * For SNAPSHOT builds of course there may have been further non-committed changes. */
+    public String getSha1FromOsgiManifest() {
+        return versionProperties.getProperty(OSGI_SHA1_PROPERTY_NAME);
+    }
+
+    public String getVersion() {
+        return VERSION_FROM_STATIC;
+    }
+
+    public boolean isSnapshot() {
+        return (getVersion().indexOf("-SNAPSHOT") >= 0);
+    }
+
+    private void readPropertiesFromMavenResource(ClassLoader resourceLoader) {
+        InputStream versionStream = null;
+        try {
+            versionStream = resourceLoader.getResourceAsStream(MVN_VERSION_RESOURCE_FILE);
+            if (versionStream == null) {
+                if (isDevelopmentEnvironment()) {
+                    // allowed for dev env
+                    log.trace("No maven resource file " + MVN_VERSION_RESOURCE_FILE + " available");
+                } else {
+                    log.warn("No maven resource file " + MVN_VERSION_RESOURCE_FILE + " available");
+                }
+                return;
+            }
+            versionProperties.load(checkNotNull(versionStream));
+        } catch (IOException e) {
+            log.warn("Error reading maven resource file " + MVN_VERSION_RESOURCE_FILE + ": " + e, e);
+        } finally {
+            Streams.closeQuietly(versionStream);
+        }
+    }
+
+    /**
+     * reads properties from brooklyn-core's manifest
+     */
+    private void readPropertiesFromOsgiResource(ClassLoader resourceLoader, String symbolicName) {
+        Enumeration<URL> paths;
+        try {
+            paths = BrooklynVersion.class.getClassLoader().getResources(MANIFEST_PATH);
+        } catch (IOException e) {
+            // shouldn't happen
+            throw Exceptions.propagate(e);
+        }
+        while (paths.hasMoreElements()) {
+            URL u = paths.nextElement();
+            InputStream us = null;
+            try {
+                us = u.openStream();
+                ManifestHelper mh = Osgis.ManifestHelper.forManifest(us);
+                if (BROOKLYN_CORE_SYMBOLIC_NAME.equals(mh.getSymbolicName())) {
+                    Attributes attrs = mh.getManifest().getMainAttributes();
+                    for (Object key : attrs.keySet()) {
+                        // key is an Attribute.Name; toString converts to string
+                        versionProperties.put(key.toString(), attrs.getValue(key.toString()));
+                    }
+                    return;
+                }
+            } catch (Exception e) {
+                Exceptions.propagateIfFatal(e);
+                log.warn("Error reading OSGi manifest from " + u + " when determining version properties: " + e, e);
+            } finally {
+                Streams.closeQuietly(us);
+            }
+        }
+        if (isDevelopmentEnvironment()) {
+            // allowed for dev env
+            log.trace("No OSGi manifest available to determine version properties");
+        } else {
+            log.warn("No OSGi manifest available to determine version properties");
+        }
+    }
+
+    /**
+     * Returns whether this is a Brooklyn dev environment,
+     * specifically core/target/classes/ is on the classpath for the org.apache.brooklyn.core project.
+     * <p/>
+     * In a packaged or library build of Brooklyn (normal usage) this should return false,
+     * and all OSGi components should be available.
+     * <p/>
+     * There is no longer any way to force this,
+     * such as the old BrooklynDevelopmentMode class;
+     * but that could easily be added if required (eg as a system property).
+     */
+    public static boolean isDevelopmentEnvironment() {
+        Boolean isDevEnv = IS_DEV_ENV.get();
+        if (isDevEnv != null) return isDevEnv;
+        synchronized (IS_DEV_ENV) {
+            isDevEnv = computeIsDevelopmentEnvironment();
+            IS_DEV_ENV.set(isDevEnv);
+            return isDevEnv;
+        }
     }
-  }
-
-  /** reads properties from brooklyn-core's manifest */
-  private void readPropertiesFromOsgiResource(ClassLoader resourceLoader, String symbolicName) {
-      Enumeration<URL> paths;
-      try {
-          paths = BrooklynVersion.class.getClassLoader().getResources(MANIFEST_PATH);
-      } catch (IOException e) {
-          // shouldn't happen
-          throw Exceptions.propagate(e);
-      }
-      while (paths.hasMoreElements()) {
-          URL u = paths.nextElement();
-          InputStream us = null;
-          try {
-              us = u.openStream();
-              ManifestHelper mh = Osgis.ManifestHelper.forManifest(us);
-              if (BROOKLYN_CORE_SYMBOLIC_NAME.equals(mh.getSymbolicName())) {
-                  Attributes attrs = mh.getManifest().getMainAttributes();
-                  for (Object key: attrs.keySet()) {
-                      // key is an Attribute.Name; toString converts to string
-                      versionProperties.put(key.toString(), attrs.getValue(key.toString()));
-                  }
-                  return;
-              }
-          } catch (Exception e) {
-              Exceptions.propagateIfFatal(e);
-              log.warn("Error reading OSGi manifest from "+u+" when determining version properties: "+e, e);
-          } finally {
-              Streams.closeQuietly(us);
-          }
-      }
-      if (isDevelopmentEnvironment()) {
-          // allowed for dev env
-          log.trace("No OSGi manifest available to determine version properties");
-      } else {
-          log.warn("No OSGi manifest available to determine version properties");
-      }
-  }
-
-  /** 
-   * Returns whether this is a Brooklyn dev environment,
-   * specifically core/target/classes/ is on the classpath for the org.apache.brooklyn.core project.
-   * <p>
-   * In a packaged or library build of Brooklyn (normal usage) this should return false,
-   * and all OSGi components should be available.
-   * <p>
-   * There is no longer any way to force this,
-   * such as the old BrooklynDevelopmentMode class; 
-   * but that could easily be added if required (eg as a system property).
-   */
-  public static boolean isDevelopmentEnvironment() {
-      Boolean isDevEnv = IS_DEV_ENV.get();
-      if (isDevEnv!=null) return isDevEnv;
-      synchronized (IS_DEV_ENV) {
-          isDevEnv = computeIsDevelopmentEnvironment();
-          IS_DEV_ENV.set(isDevEnv);
-          return isDevEnv;
-      }
-  }
-  
-  private static boolean computeIsDevelopmentEnvironment() {
-      Enumeration<URL> paths;
-      try {
-          paths = BrooklynVersion.class.getClassLoader().getResources("brooklyn/BrooklynVersion.class");
-      } catch (IOException e) {
-          // shouldn't happen
-          throw Exceptions.propagate(e);
-      }
-      while (paths.hasMoreElements()) {
-          URL u = paths.nextElement();
-          // running fram a classes directory (including coverage-classes for cobertura) triggers dev env
-          if (u.getPath().endsWith("classes/brooklyn/BrooklynVersion.class")) {
-              try {
-                  log.debug("Brooklyn dev/src environment detected: BrooklynVersion class is at: "+u);
-                  return true;
-              } catch (Exception e) {
-                  Exceptions.propagateIfFatal(e);
-                  log.warn("Error reading manifest to determine whether this is a development environment: "+e, e);
-              }
-          }
-      }
-      return false;
-  }
-
-  public void logSummary() {
-      log.debug("Brooklyn version "+getVersion()+" (git SHA1 "+getSha1FromOsgiManifest()+")");
-  }
-
-  /** @deprecated since 0.7.0, redundant with {@link #get()} */ @Deprecated
-  public static String getVersionFromStatic() {
-      return VERSION_FROM_STATIC;
-  }
-
-  public static String get() {
-      return INSTANCE.getVersion();
-  }
-  
+
+    private static boolean computeIsDevelopmentEnvironment() {
+        Enumeration<URL> paths;
+        try {
+            paths = BrooklynVersion.class.getClassLoader().getResources("brooklyn/BrooklynVersion.class");
+        } catch (IOException e) {
+            // shouldn't happen
+            throw Exceptions.propagate(e);
+        }
+        while (paths.hasMoreElements()) {
+            URL u = paths.nextElement();
+            // running fram a classes directory (including coverage-classes for cobertura) triggers dev env
+            if (u.getPath().endsWith("classes/brooklyn/BrooklynVersion.class")) {
+                try {
+                    log.debug("Brooklyn dev/src environment detected: BrooklynVersion class is at: " + u);
+                    return true;
+                } catch (Exception e) {
+                    Exceptions.propagateIfFatal(e);
+                    log.warn("Error reading manifest to determine whether this is a development environment: " + e, e);
+                }
+            }
+        }
+        return false;
+    }
+
+    public void logSummary() {
+        log.debug("Brooklyn version " + getVersion() + " (git SHA1 " + getSha1FromOsgiManifest() + ")");
+    }
+
+    /**
+     * @deprecated since 0.7.0, redundant with {@link #get()}
+     */
+    @Deprecated
+    public static String getVersionFromStatic() {
+        return VERSION_FROM_STATIC;
+    }
+
+    public static String get() {
+        return INSTANCE.getVersion();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b515f38d/core/src/test/java/brooklyn/BrooklynVersionTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/BrooklynVersionTest.java b/core/src/test/java/brooklyn/BrooklynVersionTest.java
index 3bc0a19..bfd32ce 100644
--- a/core/src/test/java/brooklyn/BrooklynVersionTest.java
+++ b/core/src/test/java/brooklyn/BrooklynVersionTest.java
@@ -31,52 +31,52 @@ import brooklyn.util.text.Strings;
 
 public class BrooklynVersionTest {
 
-  private static final Logger log = LoggerFactory.getLogger(BrooklynVersionTest.class);
-    
-  @Test
-  public void testGetVersion() {
-      assertEquals(BrooklynVersion.get(), BrooklynVersion.INSTANCE.getVersion());
-  }
-    
-  @Test
-  public void testGetHardcodedClasspathVersion() {
-      @SuppressWarnings("deprecation")
-      String v = BrooklynVersion.INSTANCE.getVersionFromClasspath();
-      Assert.assertTrue(BrooklynVersion.get().equals(v) || "0.0.0-SNAPSHOT".equals(v), v);
-  }
-  
-  @Test
-  public void testGetFromMaven() {
-      String v = BrooklynVersion.INSTANCE.getVersionFromMavenProperties();
-      Assert.assertTrue(v==null || BrooklynVersion.get().equals(v), v);
-  }
-  
-  @Test
-  public void testGetFromOsgi() {
-      String v = BrooklynVersion.INSTANCE.getVersionFromOsgiManifest();
-      Assert.assertTrue(v==null || BrooklynVersion.get().equals(v), v);
-  }
-  
-  @Test
-  public void testGetOsgiSha1() {
-      String sha1 = BrooklynVersion.INSTANCE.getSha1FromOsgiManifest();
-      log.info("sha1: "+sha1);
-      if (Strings.isNonBlank(sha1) || BrooklynVersion.isDevelopmentEnvironment())
-          return;
-      // we might not have a SHA1 if it's a standalone (non-git) source build; just log warn in that case
-      log.warn("This build does not have git SHA1 information.");
-      // (can't assert anything, except that sha1 lookup doesn't NPE)
-  }
-  
-  @Test
-  public void testDevEnv() {
-      URL sp = getClass().getClassLoader().getResource("brooklyn/config/sample.properties");
-      if (sp==null) Assert.fail("Can't find test resources");
-      
-      log.info("Test for dev env: "+"Dev env? "+BrooklynVersion.isDevelopmentEnvironment()+"; path "+sp);
-      boolean testResourcePathInClasses = sp.getPath().endsWith("classes/brooklyn/config/sample.properties");
-      Assert.assertEquals(testResourcePathInClasses, BrooklynVersion.isDevelopmentEnvironment(),
-          "Dev env? "+BrooklynVersion.isDevelopmentEnvironment()+"; but resource path: "+sp);
-  }
-  
+    private static final Logger log = LoggerFactory.getLogger(BrooklynVersionTest.class);
+
+    @Test
+    public void testGetVersion() {
+        assertEquals(BrooklynVersion.get(), BrooklynVersion.INSTANCE.getVersion());
+    }
+
+    @Test
+    public void testGetHardcodedClasspathVersion() {
+        @SuppressWarnings("deprecation")
+        String v = BrooklynVersion.INSTANCE.getVersionFromClasspath();
+        Assert.assertTrue(BrooklynVersion.get().equals(v) || "0.0.0-SNAPSHOT".equals(v), v);
+    }
+
+    @Test
+    public void testGetFromMaven() {
+        String v = BrooklynVersion.INSTANCE.getVersionFromMavenProperties();
+        Assert.assertTrue(v == null || BrooklynVersion.get().equals(v), v);
+    }
+
+    @Test
+    public void testGetFromOsgi() {
+        String v = BrooklynVersion.INSTANCE.getVersionFromOsgiManifest();
+        Assert.assertTrue(v == null || BrooklynVersion.get().equals(v), v);
+    }
+
+    @Test
+    public void testGetOsgiSha1() {
+        String sha1 = BrooklynVersion.INSTANCE.getSha1FromOsgiManifest();
+        log.info("sha1: " + sha1);
+        if (Strings.isNonBlank(sha1) || BrooklynVersion.isDevelopmentEnvironment())
+            return;
+        // we might not have a SHA1 if it's a standalone (non-git) source build; just log warn in that case
+        log.warn("This build does not have git SHA1 information.");
+        // (can't assert anything, except that sha1 lookup doesn't NPE)
+    }
+
+    @Test
+    public void testDevEnv() {
+        URL sp = getClass().getClassLoader().getResource("brooklyn/config/sample.properties");
+        if (sp == null) Assert.fail("Can't find test resources");
+
+        log.info("Test for dev env: " + "Dev env? " + BrooklynVersion.isDevelopmentEnvironment() + "; path " + sp);
+        boolean testResourcePathInClasses = sp.getPath().endsWith("classes/brooklyn/config/sample.properties");
+        Assert.assertEquals(testResourcePathInClasses, BrooklynVersion.isDevelopmentEnvironment(),
+                "Dev env? " + BrooklynVersion.isDevelopmentEnvironment() + "; but resource path: " + sp);
+    }
+
 }