diff --git a/src/etc/testcases/taskdefs/optional/depend/src6/module-info.java b/src/etc/testcases/taskdefs/optional/depend/src6/module-info.java index 24e075db1..d7b254fd3 100644 --- a/src/etc/testcases/taskdefs/optional/depend/src6/module-info.java +++ b/src/etc/testcases/taskdefs/optional/depend/src6/module-info.java @@ -1,3 +1,4 @@ module dummy { requires java.base; + exports org.dummy; } \ No newline at end of file diff --git a/src/etc/testcases/taskdefs/optional/depend/src6/Foo.java b/src/etc/testcases/taskdefs/optional/depend/src6/org.dummy/Foo.java similarity index 97% rename from src/etc/testcases/taskdefs/optional/depend/src6/Foo.java rename to src/etc/testcases/taskdefs/optional/depend/src6/org.dummy/Foo.java index a305cb02f..e3a061a9b 100644 --- a/src/etc/testcases/taskdefs/optional/depend/src6/Foo.java +++ b/src/etc/testcases/taskdefs/optional/depend/src6/org.dummy/Foo.java @@ -15,6 +15,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +package org.dummy; + public class Foo { public static void main(final String[] args) { System.out.println("foo"); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java index ab66215e8..55a636e42 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPoolEntry.java @@ -74,6 +74,10 @@ public abstract class ConstantPoolEntry { /** Tag value for CONSTANT_Module_info entry */ public static final int CONSTANT_MODULEINFO = 19; + /** Tag value for CONSTANT_Package_info entry (within a module) */ + public static final int CONSTANT_PACKAGEINFO = 20; + + /** * This entry's tag which identifies the type of this constant pool * entry. @@ -168,6 +172,9 @@ public abstract class ConstantPoolEntry { case CONSTANT_MODULEINFO: cpInfo = new ModuleCPInfo(); break; + case CONSTANT_PACKAGEINFO: + cpInfo = new PackageCPInfo(); + break; default: throw new ClassFormatError("Invalid Constant Pool entry Type " + cpTag); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/PackageCPInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/PackageCPInfo.java new file mode 100644 index 000000000..5d013824e --- /dev/null +++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/PackageCPInfo.java @@ -0,0 +1,34 @@ +package org.apache.tools.ant.taskdefs.optional.depend.constantpool; + +import java.io.DataInputStream; +import java.io.IOException; + +/** + * Represents the package info (within a module) constant pool entry + */ +public class PackageCPInfo extends ConstantCPInfo { + + private int packageNameIndex; + private String packageName; + + public PackageCPInfo() { + super(CONSTANT_PACKAGEINFO, 1); + } + + @Override + public void read(final DataInputStream cpStream) throws IOException { + this.packageNameIndex = cpStream.readUnsignedShort(); + } + + @Override + public void resolve(final ConstantPool constantPool) { + this.packageName = ((Utf8CPInfo) constantPool.getEntry(this.packageNameIndex)).getValue(); + + super.resolve(constantPool); + } + + @Override + public String toString() { + return "Package info Constant Pool Entry for " + this.packageName + "[" + this.packageNameIndex + "]"; + } +}