You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/11/16 14:11:28 UTC
[commons-bcel] branch master updated: Add org.apache.bcel.classfile.JavaClass.EXTENSION.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git
The following commit(s) were added to refs/heads/master by this push:
new 5c448861 Add org.apache.bcel.classfile.JavaClass.EXTENSION.
5c448861 is described below
commit 5c4488612af84c976467206386f59ee5e4a44991
Author: Gary David Gregory (Code signing key) <gg...@apache.org>
AuthorDate: Wed Nov 16 09:11:23 2022 -0500
Add org.apache.bcel.classfile.JavaClass.EXTENSION.
---
src/changes/changes.xml | 1 +
src/examples/Helloify.java | 2 +-
src/examples/ListClass.java | 2 +-
src/examples/Mini/MiniC.java | 2 +-
src/examples/Package.java | 4 ++--
src/main/java/org/apache/bcel/classfile/JavaClass.java | 7 +++++++
.../java/org/apache/bcel/util/AbstractClassPathRepository.java | 2 +-
src/main/java/org/apache/bcel/util/ClassLoaderRepository.java | 2 +-
src/main/java/org/apache/bcel/util/ClassPath.java | 8 +++++---
src/main/java/org/apache/bcel/verifier/NativeVerifier.java | 3 ++-
src/main/java/org/apache/bcel/verifier/TransitiveHull.java | 2 +-
src/main/java/org/apache/bcel/verifier/Verifier.java | 4 ++--
src/main/java/org/apache/bcel/verifier/VerifyDialog.java | 2 +-
src/test/java/org/apache/bcel/BCELBenchmark.java | 2 +-
src/test/java/org/apache/bcel/PerformanceTest.java | 2 +-
src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java | 2 +-
src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java | 2 +-
src/test/java/org/apache/bcel/util/BCELifierTestCase.java | 4 ++--
src/test/java/org/apache/bcel/verifier/VerifierTestCase.java | 2 +-
.../java/org/apache/bcel/verifier/VerifyBadClassesTestCase.java | 3 ++-
src/test/java/org/apache/bcel/verifier/tests/TestCreator.java | 4 +++-
21 files changed, 38 insertions(+), 24 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c8e0a127..b02af299 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -65,6 +65,7 @@ The <action> type attribute can be add,update,fix,remove.
<release version="6.6.2" date="20YY-MM-DD" description="Maintenance and bug fix release.">
<!-- ADD -->
<action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.bcel.classfile.ClassFormatException.ClassFormatException(Throwable).</action>
+ <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.bcel.classfile.JavaClass.EXTENSION.</action>
<!-- FIX -->
<action type="fix" dev="ggregory" due-to="nbauma109, Gary Gregory">Typo in SimpleElementValue error message #161.</action>
<action type="fix" dev="ggregory" due-to="Mark Roberts, Gary Gregory">Fix code duplication in org.apache.bcel.verifier.structurals.ExceptionHandlers.ExceptionHandlers(MethodGen).</action>
diff --git a/src/examples/Helloify.java b/src/examples/Helloify.java
index 81e6e120..ffff812a 100644
--- a/src/examples/Helloify.java
+++ b/src/examples/Helloify.java
@@ -103,7 +103,7 @@ public final class Helloify {
public static void main(final String[] argv) throws Exception {
for (final String arg : argv) {
- if (arg.endsWith(".class")) {
+ if (arg.endsWith(JavaClass.EXTENSION)) {
final JavaClass javaClass = new ClassParser(arg).parse();
final ConstantPool constants = javaClass.getConstantPool();
final String fileName = arg.substring(0, arg.length() - 6) + "_hello.class";
diff --git a/src/examples/ListClass.java b/src/examples/ListClass.java
index 8c6d398a..3a7c91d6 100644
--- a/src/examples/ListClass.java
+++ b/src/examples/ListClass.java
@@ -245,7 +245,7 @@ public class ListClass {
}
}
- if (name.endsWith(".class")) {
+ if (name.endsWith(JavaClass.EXTENSION)) {
javaClass = new ClassParser(name).parse(); // May throw IOException
} else {
javaClass = Repository.lookupClass(name);
diff --git a/src/examples/Mini/MiniC.java b/src/examples/Mini/MiniC.java
index 72547feb..f58d3024 100644
--- a/src/examples/Mini/MiniC.java
+++ b/src/examples/Mini/MiniC.java
@@ -148,7 +148,7 @@ public class MiniC {
program.byte_code(class_gen, cp);
final JavaClass clazz = class_gen.getJavaClass();
- clazz.dump(base_name + ".class");
+ clazz.dump(base_name + JavaClass.EXTENSION);
} else {
System.out.println("Pass 5: Generating Java code ...");
try (final PrintWriter out = new PrintWriter(new FileOutputStream(base_name + ".java"))) {
diff --git a/src/examples/Package.java b/src/examples/Package.java
index d7128170..efd24acd 100644
--- a/src/examples/Package.java
+++ b/src/examples/Package.java
@@ -173,7 +173,7 @@ public class Package {
continue;
}
String clName = arg;
- if (clName.endsWith(".class")) {
+ if (clName.endsWith(JavaClass.EXTENSION)) {
clName = clName.substring(0, clName.length() - 6);
}
clName = clName.replace('.', '/');
@@ -216,7 +216,7 @@ public class Package {
int written = 0;
for (final String name : allClasses.keySet()) { // add entries for every class
final JavaClass claz = allClasses.get(name);
- final ZipEntry zipEntry = new ZipEntry(name + ".class");
+ final ZipEntry zipEntry = new ZipEntry(name + JavaClass.EXTENSION);
final byte[] bytes = claz.getBytes();
final int length = bytes.length;
jarFile.putNextEntry(zipEntry);
diff --git a/src/main/java/org/apache/bcel/classfile/JavaClass.java b/src/main/java/org/apache/bcel/classfile/JavaClass.java
index 02b69235..68b9bf59 100644
--- a/src/main/java/org/apache/bcel/classfile/JavaClass.java
+++ b/src/main/java/org/apache/bcel/classfile/JavaClass.java
@@ -47,6 +47,13 @@ import org.apache.commons.lang3.ArrayUtils;
*/
public class JavaClass extends AccessFlags implements Cloneable, Node, Comparable<JavaClass> {
+ /**
+ * The standard class file extension.
+ *
+ * @since 6.6.2
+ */
+ public static final String EXTENSION = ".class";
+
/**
* Empty array.
*
diff --git a/src/main/java/org/apache/bcel/util/AbstractClassPathRepository.java b/src/main/java/org/apache/bcel/util/AbstractClassPathRepository.java
index 240b4a13..65a5366f 100644
--- a/src/main/java/org/apache/bcel/util/AbstractClassPathRepository.java
+++ b/src/main/java/org/apache/bcel/util/AbstractClassPathRepository.java
@@ -75,7 +75,7 @@ abstract class AbstractClassPathRepository implements Repository {
name = name.substring(i + 1);
}
- try (InputStream clsStream = clazz.getResourceAsStream(name + ".class")) {
+ try (InputStream clsStream = clazz.getResourceAsStream(name + JavaClass.EXTENSION)) {
return loadClass(clsStream, className);
} catch (final IOException e) {
return null;
diff --git a/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java b/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java
index 3371def1..c1a06d83 100644
--- a/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java
+++ b/src/main/java/org/apache/bcel/util/ClassLoaderRepository.java
@@ -79,7 +79,7 @@ public class ClassLoaderRepository implements Repository {
if (RC != null) {
return RC;
}
- try (InputStream is = loader.getResourceAsStream(classFile + ".class")) {
+ try (InputStream is = loader.getResourceAsStream(classFile + JavaClass.EXTENSION)) {
if (is == null) {
throw new ClassNotFoundException(className + " not found.");
}
diff --git a/src/main/java/org/apache/bcel/util/ClassPath.java b/src/main/java/org/apache/bcel/util/ClassPath.java
index 0cb45757..a0998105 100644
--- a/src/main/java/org/apache/bcel/util/ClassPath.java
+++ b/src/main/java/org/apache/bcel/util/ClassPath.java
@@ -39,6 +39,8 @@ import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
+import org.apache.bcel.classfile.JavaClass;
+
/**
* Loads class files from the CLASSPATH. Inspired by sun.tools.ClassPath.
*/
@@ -603,7 +605,7 @@ public class ClassPath implements Closeable {
* @throws IOException if an I/O error occurs.
*/
public byte[] getBytes(final String name) throws IOException {
- return getBytes(name, ".class");
+ return getBytes(name, JavaClass.EXTENSION);
}
/**
@@ -635,7 +637,7 @@ public class ClassPath implements Closeable {
* @throws IOException if an I/O error occurs.
*/
public ClassFile getClassFile(final String name) throws IOException {
- return getClassFile(name, ".class");
+ return getClassFile(name, JavaClass.EXTENSION);
}
/**
@@ -678,7 +680,7 @@ public class ClassPath implements Closeable {
* @throws IOException if an I/O error occurs.
*/
public InputStream getInputStream(final String name) throws IOException {
- return getInputStream(packageToFolder(name), ".class");
+ return getInputStream(packageToFolder(name), JavaClass.EXTENSION);
}
/**
diff --git a/src/main/java/org/apache/bcel/verifier/NativeVerifier.java b/src/main/java/org/apache/bcel/verifier/NativeVerifier.java
index a21136d7..18f27fa9 100644
--- a/src/main/java/org/apache/bcel/verifier/NativeVerifier.java
+++ b/src/main/java/org/apache/bcel/verifier/NativeVerifier.java
@@ -16,6 +16,7 @@
*/
package org.apache.bcel.verifier;
+import org.apache.bcel.classfile.JavaClass;
import org.apache.bcel.classfile.Utility;
/**
@@ -33,7 +34,7 @@ public abstract class NativeVerifier {
System.out.println("Verifier front-end: need exactly one argument.");
System.exit(1);
}
- final int dotclasspos = args[0].lastIndexOf(".class");
+ final int dotclasspos = args[0].lastIndexOf(JavaClass.EXTENSION);
if (dotclasspos != -1) {
args[0] = args[0].substring(0, dotclasspos);
}
diff --git a/src/main/java/org/apache/bcel/verifier/TransitiveHull.java b/src/main/java/org/apache/bcel/verifier/TransitiveHull.java
index ac8b120d..b61dcb40 100644
--- a/src/main/java/org/apache/bcel/verifier/TransitiveHull.java
+++ b/src/main/java/org/apache/bcel/verifier/TransitiveHull.java
@@ -35,7 +35,7 @@ public class TransitiveHull implements VerifierFactoryObserver {
System.out.println("Need exactly one argument: The root class to verify.");
System.exit(1);
}
- final int dotclasspos = args[0].lastIndexOf(".class");
+ final int dotclasspos = args[0].lastIndexOf(JavaClass.EXTENSION);
if (dotclasspos != -1) {
args[0] = args[0].substring(0, dotclasspos);
}
diff --git a/src/main/java/org/apache/bcel/verifier/Verifier.java b/src/main/java/org/apache/bcel/verifier/Verifier.java
index f0c175b0..66bb7c4a 100644
--- a/src/main/java/org/apache/bcel/verifier/Verifier.java
+++ b/src/main/java/org/apache/bcel/verifier/Verifier.java
@@ -55,8 +55,8 @@ public class Verifier {
System.out.println("JustIce by Enver Haase, (C) 2001-2002.\n<http://bcel.sourceforge.net>\n<https://commons.apache.org/bcel>\n");
for (int index = 0; index < args.length; index++) {
try {
- if (args[index].endsWith(".class")) {
- final int dotclasspos = args[index].lastIndexOf(".class");
+ if (args[index].endsWith(JavaClass.EXTENSION)) {
+ final int dotclasspos = args[index].lastIndexOf(JavaClass.EXTENSION);
if (dotclasspos != -1) {
args[index] = args[index].substring(0, dotclasspos);
}
diff --git a/src/main/java/org/apache/bcel/verifier/VerifyDialog.java b/src/main/java/org/apache/bcel/verifier/VerifyDialog.java
index 852a2621..270159bd 100644
--- a/src/main/java/org/apache/bcel/verifier/VerifyDialog.java
+++ b/src/main/java/org/apache/bcel/verifier/VerifyDialog.java
@@ -182,7 +182,7 @@ public class VerifyDialog extends JDialog {
* @param fullyQualifiedClassName java.lang.String
*/
public VerifyDialog(String fullyQualifiedClassName) {
- final int dotclasspos = fullyQualifiedClassName.lastIndexOf(".class");
+ final int dotclasspos = fullyQualifiedClassName.lastIndexOf(JavaClass.EXTENSION);
if (dotclasspos != -1) {
fullyQualifiedClassName = fullyQualifiedClassName.substring(0, dotclasspos);
}
diff --git a/src/test/java/org/apache/bcel/BCELBenchmark.java b/src/test/java/org/apache/bcel/BCELBenchmark.java
index 1716a99b..9396ec82 100644
--- a/src/test/java/org/apache/bcel/BCELBenchmark.java
+++ b/src/test/java/org/apache/bcel/BCELBenchmark.java
@@ -61,7 +61,7 @@ public class BCELBenchmark {
return new IteratorIterable<>(new FilterIterator<>(new EnumerationIterator<>(jar.entries()), new Predicate<JarEntry>() {
@Override
public boolean evaluate(JarEntry entry) {
- return entry.getName().endsWith(".class");
+ return entry.getName().endsWith(JavaClass.EXTENSION);
}
}));
}
diff --git a/src/test/java/org/apache/bcel/PerformanceTest.java b/src/test/java/org/apache/bcel/PerformanceTest.java
index a7fb6fff..7191d6d4 100644
--- a/src/test/java/org/apache/bcel/PerformanceTest.java
+++ b/src/test/java/org/apache/bcel/PerformanceTest.java
@@ -79,7 +79,7 @@ public final class PerformanceTest {
while (en.hasMoreElements()) {
final JarEntry e = (JarEntry) en.nextElement();
- if (e.getName().endsWith(".class")) {
+ if (e.getName().endsWith(JavaClass.EXTENSION)) {
byte[] bytes;
try (InputStream in = jar.getInputStream(e)) {
bytes = read(in);
diff --git a/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java b/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
index e92e1c69..b17cef0a 100644
--- a/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
+++ b/src/test/java/org/apache/bcel/classfile/JDKClassDumpTestCase.java
@@ -62,7 +62,7 @@ public class JDKClassDumpTestCase {
while (en.hasMoreElements()) {
final JarEntry e = en.nextElement();
final String name = e.getName();
- if (name.endsWith(".class")) {
+ if (name.endsWith(JavaClass.EXTENSION)) {
// System.out.println("Parsing " + name);
try (InputStream inputStream1 = jar.getInputStream(e); InputStream inputStream2 = jar.getInputStream(e);) {
compare(new ClassParser(inputStream1, name).parse(), inputStream2, name);
diff --git a/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java b/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
index 2a9a3a5f..425a167a 100644
--- a/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
+++ b/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
@@ -155,7 +155,7 @@ public class JdkGenericDumpTestCase {
while (en.hasMoreElements()) {
final JarEntry jarEntry = en.nextElement();
final String name = jarEntry.getName();
- if (name.endsWith(".class")) {
+ if (name.endsWith(JavaClass.EXTENSION)) {
// System.out.println("- " + name);
try (InputStream inputStream = jar.getInputStream(jarEntry)) {
final ClassParser classParser = new ClassParser(inputStream, name);
diff --git a/src/test/java/org/apache/bcel/util/BCELifierTestCase.java b/src/test/java/org/apache/bcel/util/BCELifierTestCase.java
index d34a0000..ffef4ba4 100644
--- a/src/test/java/org/apache/bcel/util/BCELifierTestCase.java
+++ b/src/test/java/org/apache/bcel/util/BCELifierTestCase.java
@@ -66,9 +66,9 @@ public class BCELifierTestCase {
final File workDir = new File("target");
final File infile = new File(javaClassFileName);
- final JavaClass javaClass = BCELifier.getJavaClass(infile.getName().replace(".class", ""));
+ final JavaClass javaClass = BCELifier.getJavaClass(infile.getName().replace(JavaClass.EXTENSION, ""));
assertNotNull(javaClass);
- final File outfile = new File(workDir, infile.getName().replace(".class", "Creator.java"));
+ final File outfile = new File(workDir, infile.getName().replace(JavaClass.EXTENSION, "Creator.java"));
try (FileOutputStream fos = new FileOutputStream(outfile)) {
final BCELifier bcelifier = new BCELifier(javaClass, fos);
bcelifier.start();
diff --git a/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java b/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java
index 8a9912a7..133878db 100644
--- a/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java
+++ b/src/test/java/org/apache/bcel/verifier/VerifierTestCase.java
@@ -74,7 +74,7 @@ public class VerifierTestCase {
while (entries.hasMoreElements()) {
final JarEntry jarEntry = entries.nextElement();
String entryName = jarEntry.getName();
- if (entryName.endsWith(".class")) {
+ if (entryName.endsWith(JavaClass.EXTENSION)) {
entryName = entryName.replaceFirst("\\.class$", "");
entryName = Utility.compactClassName(entryName, false);
testDefaultMethodValidation(entryName, excludes);
diff --git a/src/test/java/org/apache/bcel/verifier/VerifyBadClassesTestCase.java b/src/test/java/org/apache/bcel/verifier/VerifyBadClassesTestCase.java
index e28dde32..688e1737 100644
--- a/src/test/java/org/apache/bcel/verifier/VerifyBadClassesTestCase.java
+++ b/src/test/java/org/apache/bcel/verifier/VerifyBadClassesTestCase.java
@@ -27,6 +27,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.apache.bcel.classfile.JavaClass;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecuteResultHandler;
import org.apache.commons.exec.DefaultExecutor;
@@ -187,7 +188,7 @@ public class VerifyBadClassesTestCase {
final String testDir = baseDir + (directory.isEmpty() ? "" : "/" + directory);
final File origFile = new File(testDir + "/" + className + ".classx");
- final File testFile = new File(testDir + "/" + className + ".class");
+ final File testFile = new File(testDir + "/" + className + JavaClass.EXTENSION);
if (!origFile.renameTo(testFile)) {
fail("Failed to rename orig file");
diff --git a/src/test/java/org/apache/bcel/verifier/tests/TestCreator.java b/src/test/java/org/apache/bcel/verifier/tests/TestCreator.java
index 081bdb6b..3c49f4a3 100644
--- a/src/test/java/org/apache/bcel/verifier/tests/TestCreator.java
+++ b/src/test/java/org/apache/bcel/verifier/tests/TestCreator.java
@@ -22,6 +22,8 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.URISyntaxException;
+import org.apache.bcel.classfile.JavaClass;
+
public abstract class TestCreator {
// Common package base name for generated test classes
@@ -46,7 +48,7 @@ public abstract class TestCreator {
private String getClassName() {
final String name = getClass().getName();
- return name.substring(name.lastIndexOf('.') + 1).replace("Creator", ".class");
+ return name.substring(name.lastIndexOf('.') + 1).replace("Creator", JavaClass.EXTENSION);
}
private File getPackageFolder() throws IOException {