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 2021/08/11 07:55:50 UTC

[brooklyn-server] branch master updated: rename method for checking if zip has java binaries

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 18d1e82  rename method for checking if zip has java binaries
     new 81395da  This closes #1221
18d1e82 is described below

commit 18d1e82429ca94f3efbe3cb15a59ffac2bb1b81c
Author: Juan Cabrerizo <ju...@cloudsoft.io>
AuthorDate: Wed Aug 11 08:31:17 2021 +0100

    rename method for checking if zip has java binaries
---
 .../org/apache/brooklyn/rest/resources/BundleResource.java     |  4 +---
 .../org/apache/brooklyn/rest/resources/CatalogResource.java    |  9 +--------
 .../src/main/java/org/apache/brooklyn/util/io/FileUtil.java    |  2 +-
 .../test/java/org/apache/brooklyn/util/io/FileUtilTest.java    | 10 +++++-----
 4 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/BundleResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/BundleResource.java
index 824195a..07b0550 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/BundleResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/BundleResource.java
@@ -29,7 +29,6 @@ import javax.ws.rs.core.Response.Status;
 
 import org.apache.brooklyn.api.typereg.ManagedBundle;
 import org.apache.brooklyn.api.typereg.RegisteredType;
-import org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog;
 import org.apache.brooklyn.core.mgmt.entitlement.Entitlements;
 import org.apache.brooklyn.core.mgmt.ha.OsgiBundleInstallationResult;
 import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
@@ -48,7 +47,6 @@ import org.apache.brooklyn.rest.filter.HaHotStateRequired;
 import org.apache.brooklyn.rest.transform.TypeTransformer;
 import org.apache.brooklyn.rest.util.WebResourceUtils;
 import org.apache.brooklyn.util.collections.MutableList;
-import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.exceptions.ReferenceWithError;
 import org.apache.brooklyn.util.io.FileUtil;
 import org.apache.brooklyn.util.osgi.VersionedName;
@@ -211,7 +209,7 @@ public class BundleResource extends AbstractBrooklynRestResource implements Bund
     @Override @Deprecated
     public Response create(byte[] contents, String format, Boolean force) {
         InputStreamSource source = InputStreamSource.of("REST bundle upload", contents);
-        if(!BrooklynBomYamlCatalogBundleResolver.FORMAT.equals(format) && FileUtil.isJava(source)){
+        if(!BrooklynBomYamlCatalogBundleResolver.FORMAT.equals(format) && FileUtil.doesZipContainJavaBinaries(source)){
             if (!Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.ADD_JAVA, null)) {
                 throw WebResourceUtils.forbidden("User '%s' is not authorized to add catalog item containing java classes",
                         Entitlements.getEntitlementContext().user());
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/CatalogResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/CatalogResource.java
index 35fd1c7..f4e3019 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/CatalogResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/CatalogResource.java
@@ -19,17 +19,12 @@
 package org.apache.brooklyn.rest.resources;
 
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
 
 import javax.annotation.Nullable;
 import javax.ws.rs.DefaultValue;
@@ -38,7 +33,6 @@ import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriInfo;
 
-import com.google.common.annotations.VisibleForTesting;
 import org.apache.brooklyn.api.typereg.RegisteredType;
 import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
 import org.apache.brooklyn.core.mgmt.entitlement.Entitlements;
@@ -71,7 +65,6 @@ import org.apache.brooklyn.util.stream.InputStreamSource;
 import org.apache.brooklyn.util.text.StringPredicates;
 import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.yaml.Yamls;
-import org.apache.commons.compress.compressors.z.ZCompressorInputStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -147,7 +140,7 @@ public class CatalogResource extends AbstractBrooklynRestResource implements Cat
     @Override
     public Response create(byte[] archive, String format, boolean detail, boolean itemDetails, boolean forceUpdate) {
         InputStreamSource source = InputStreamSource.of("REST bundle upload", archive);
-        if(!BrooklynBomYamlCatalogBundleResolver.FORMAT.equals(format) && FileUtil.isJava(source)){
+        if(!BrooklynBomYamlCatalogBundleResolver.FORMAT.equals(format) && FileUtil.doesZipContainJavaBinaries(source)){
             if (!Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.ADD_JAVA, null)) {
                 throw WebResourceUtils.forbidden("User '%s' is not authorized to add catalog item containing java classes",
                         Entitlements.getEntitlementContext().user());
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/io/FileUtil.java b/utils/common/src/main/java/org/apache/brooklyn/util/io/FileUtil.java
index 525ad4d..8a59283 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/io/FileUtil.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/io/FileUtil.java
@@ -206,7 +206,7 @@ public class FileUtil {
         }
     }
 
-    public static boolean isJava(InputStreamSource archive) {
+    public static boolean doesZipContainJavaBinaries(InputStreamSource archive) {
         try {
             ZipInputStream zipIS = new ZipInputStream(archive.get());
             for (ZipEntry entry = zipIS.getNextEntry(); entry != null; entry = zipIS.getNextEntry()) {
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/io/FileUtilTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/io/FileUtilTest.java
index db16672..34715db 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/io/FileUtilTest.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/io/FileUtilTest.java
@@ -119,30 +119,30 @@ public class FileUtilTest {
 
     @Test
     public void testIsJavaFileNull(){
-        assertFalse(FileUtil.isJava(null));
+        assertFalse(FileUtil.doesZipContainJavaBinaries(null));
     }
 
     @Test
     public void testIsJavaFileText() throws IOException {
         byte[] bytes = java.nio.file.Files.readAllBytes(Paths.get(this.getClass().getClassLoader().getResource("brooklyn/osgi/brooklyn-osgi-test-a_0.1.0.txt").getPath()));
-        assertFalse(FileUtil.isJava(InputStreamSource.of("Test bom file", bytes)));
+        assertFalse(FileUtil.doesZipContainJavaBinaries(InputStreamSource.of("Test bom file", bytes)));
     }
 
     @Test
     public void testIsJavaNoClassesJar() throws IOException {
         byte[] bytes = java.nio.file.Files.readAllBytes(Paths.get(this.getClass().getClassLoader().getResource("brooklyn/files/testNoJava-0.1.0-SNAPSHOT.jar").getPath()));
-        assertFalse(FileUtil.isJava(InputStreamSource.of("Test Jar without Java classes", bytes)));
+        assertFalse(FileUtil.doesZipContainJavaBinaries(InputStreamSource.of("Test Jar without Java classes", bytes)));
     }
 
     @Test
     public void testIsFakeJavaWithClassesJar() throws IOException {
         byte[] bytes = java.nio.file.Files.readAllBytes(Paths.get(this.getClass().getClassLoader().getResource("brooklyn/files/testWithJava-0.1.0-SNAPSHOT.jar").getPath()));
-        assertTrue(FileUtil.isJava(InputStreamSource.of("Test fail JAR with files renamed as .class", bytes)));
+        assertTrue(FileUtil.doesZipContainJavaBinaries(InputStreamSource.of("Test fail JAR with files renamed as .class", bytes)));
     }
 
     @Test
     public void testIsRealJavaFileText() throws IOException {
         byte[] bytes = java.nio.file.Files.readAllBytes(Paths.get(this.getClass().getClassLoader().getResource("brooklyn/osgi/brooklyn-osgi-test-a_0.1.0.jar").getPath()));
-        assertTrue(FileUtil.isJava(InputStreamSource.of("Test real JAR with Java classes", bytes)));
+        assertTrue(FileUtil.doesZipContainJavaBinaries(InputStreamSource.of("Test real JAR with Java classes", bytes)));
     }
 }