Andrzej Bialecki wrote:
Hmmm... would not java.lang.Package various methods do the job?


I'm not sure... I just tried to do Package.getPackage("org.apache.lucene") and got null, even though the manifest is present in the JAR.

I looked into this. The package name in the manifest is "org/apache/lucene". But in order for this to work the package name in the manifest must: (a) end with a slash; and (b) name a package with classes in it, and lucene's classes are all in sub-packages--no classes are in "org.apache.lucene".


I've attached a patch that fixes (b) by adding a class in the top-level package. Comments?

Doug
Index: build.xml
===================================================================
--- build.xml	(revision 156658)
+++ build.xml	(working copy)
@@ -189,7 +189,7 @@
       excludes="**/*.java">
       <manifest>
         <attribute name="Created-By" value="Apache Jakarta"/>
-        <section name="org/apache/lucene">
+        <section name="org/apache/lucene/">
           <attribute name="Specification-Title" value="Lucene Search Engine"/>
           <attribute name="Specification-Version" value="${version}"/>
           <attribute name="Specification-Vendor" value="Lucene"/>
Index: src/java/org/apache/lucene/package.html
===================================================================
--- src/java/org/apache/lucene/package.html	(revision 0)
+++ src/java/org/apache/lucene/package.html	(revision 0)
@@ -0,0 +1 @@
+<html><body>Top-level package.</body></html>
Index: src/java/org/apache/lucene/LucenePackage.java
===================================================================
--- src/java/org/apache/lucene/LucenePackage.java	(revision 0)
+++ src/java/org/apache/lucene/LucenePackage.java	(revision 0)
@@ -0,0 +1,28 @@
+package org.apache.lucene;
+
+/**
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/** Lucene's package information, including version. **/
+public final class LucenePackage {
+
+  private LucenePackage() {}                      // can't construct
+
+  /** Return Lucene's package, including version information. */
+  public static Package get() {
+    return LucenePackage.class.getPackage();
+  }
+}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to