Andrew Overholt suggested I ask here for help with this.
One of the really neat things about developing any Java program using Classpath in Fedora is the integration of Classpath source in the rpm, and how it integrates with Eclipse. This is great as it allows you to browse the Classpath code under the api with F3 (or Right Click->Open Declaration). We'd like to do the same for Java-GNOME and Frysk. Is there a Wiki page, guide .. or general advice to accomplish this as it is done via the Classpath rpm? Regards
Phil Muldoon
On Tue, 2006-11-28 at 18:57 -0600, Phil Muldoon wrote:
Is there a Wiki page, guide .. or general advice to accomplish this as it is done via the Classpath rpm?
I was under the impression that Eclipse finds the target JDK's src.zip based on well known conventions of JDK layout (which we follow in java-1.4.2-gcj-compat). As far as I know there's no way to do this for random jar files. You need to manually attach the source jar/zip to the jar file within Eclipse.
Perhaps it makes sense to add a manifest file tag identifying the location of the jar file's source code. Then Eclipse could be taught to look for the source itself. Maybe this is something Andrew and team can tackle as part of their new Eclipse Linux packaging effort at eclipse.org.
AG
On Wed, 2006-29-11 at 08:28 -0800, Anthony Green wrote:
On Tue, 2006-11-28 at 18:57 -0600, Phil Muldoon wrote:
Is there a Wiki page, guide .. or general advice to accomplish this as it is done via the Classpath rpm?
I was under the impression that Eclipse finds the target JDK's src.zip based on well known conventions of JDK layout (which we follow in java-1.4.2-gcj-compat). As far as I know there's no way to do this for random jar files. You need to manually attach the source jar/zip to the jar file within Eclipse.
No, I think it can be done for any jar. Ben will know, though.
Perhaps it makes sense to add a manifest file tag identifying the location of the jar file's source code. Then Eclipse could be taught to look for the source itself. Maybe this is something Andrew and team can tackle as part of their new Eclipse Linux packaging effort at eclipse.org.
Har-har :)
Andrew
Hi,
On Wed, 2006-11-29 at 11:40 -0500, Andrew Overholt wrote:
On Wed, 2006-29-11 at 08:28 -0800, Anthony Green wrote:
On Tue, 2006-11-28 at 18:57 -0600, Phil Muldoon wrote:
Is there a Wiki page, guide .. or general advice to accomplish this as it is done via the Classpath rpm?
I was under the impression that Eclipse finds the target JDK's src.zip based on well known conventions of JDK layout (which we follow in java-1.4.2-gcj-compat). As far as I know there's no way to do this for random jar files. You need to manually attach the source jar/zip to the jar file within Eclipse.
No, I think it can be done for any jar. Ben will know, though.
Not automatically as far as I can tell. Yes, the Java-GNOME jars have a source zips but you have to manually add them. I asked about this when 3.0 came out but didn't hear anything and I briefly looked into to yesterday, but came up with nothing again. I don't have time to investigate it fully, so I think I'll just file a bug see what they say.
Perhaps it makes sense to add a manifest file tag identifying the location of the jar file's source code. Then Eclipse could be taught to look for the source itself. Maybe this is something Andrew and team can tackle as part of their new Eclipse Linux packaging effort at eclipse.org.
Yeah, that a good idea and I've wanted this for a while. I was thinking of checking a known location, for example if you add package-version.jar, it would auto-attach package-version-src.zip. This seems to be a convention that eclipse uses. But using a manifest file tag would be more robust. Perhaps supporting both would be a good idea using the manifest as the preferred source.
The only concern I have heard about providing these zips on a large scale is that the source code is already provided in the debuginfo packages so making the source zips puts the source code in two places. However, there are a couple of issues with using the debuginfo packages like this:
1) AFAIK not all mirrors carry the debuginfo packages and they're not enabled by default which means it's hard to rely on them 3) debuginfo generation of Eclipse and I think other java packages is broken ATM
As far as doing the work, I personally don't have the time to do it, but I'll make sure it gets on a general tasks list on the Eclipse Linux packaging wiki.
HTH, Ben
Le jeudi 30 novembre 2006 à 15:25 -0500, Ben Konrath a écrit :
Yeah, that a good idea and I've wanted this for a while. I was thinking of checking a known location, for example if you add package-version.jar, it would auto-attach package-version-src.zip. This seems to be a convention that eclipse uses. But using a manifest file tag would be more robust.
Manifest is not robust WRT file moves. It's redundant when everyone follows the same conventions, and a PITA to track/change when you don't.
Much better to specify rigid file location & naming conventions, with optional override of the root dir via an env var
On Tue, 2006-12-05 at 22:57 +0100, Nicolas Mailhot wrote:
Le jeudi 30 novembre 2006 à 15:25 -0500, Ben Konrath a écrit :
Yeah, that a good idea and I've wanted this for a while. I was thinking of checking a known location, for example if you add package-version.jar, it would auto-attach package-version-src.zip. This seems to be a convention that eclipse uses. But using a manifest file tag would be more robust.
Manifest is not robust WRT file moves. It's redundant when everyone follows the same conventions, and a PITA to track/change when you don't.
I was thinking of somehow specifying the absolute path to the source zip in the manifest. If the source zip is packaged by the same srpm as jar, then the location should be known and users shouldn't be just randomly moving files around. But I agree that it would be a bit of a pain to modify every java RPM to add a path its manifest specifying the location of the source zip.
Much better to specify rigid file location & naming conventions, with optional override of the root dir via an env var
Seems reasonable. Eclipse tends to use the naming convention I mentioned in my initial response (above) so this is what I've been using. As an example, the libgtk-java packages has these files in /usr/share/java/:
gtk2.8-2.8.7.jar gtk2.8.jar -> gtk2.8-2.8.7.jar gtk2.8-src-2.8.7.zip gtk2.8-src.zip -> gtk2.8-src-2.8.7.zip
I think we should keep this naming convention and have eclipse automatically attach a source zips with the correct name (<jarname-version>-src.{zip,jar}) if they are in the same directory as the external jar. If ECLIPSE_JDT_JAR_SRC_ZIP_DIR is set, Eclipse could try to load a zip/jar of the same name from the directory specified by this env variable. What do you think?
Ben
Anthony Green wrote:
On Tue, 2006-11-28 at 18:57 -0600, Phil Muldoon wrote:
Is there a Wiki page, guide .. or general advice to accomplish this as it is done via the Classpath rpm?
I was under the impression that Eclipse finds the target JDK's src.zip based on well known conventions of JDK layout (which we follow in java-1.4.2-gcj-compat). As far as I know there's no way to do this for random jar files. You need to manually attach the source jar/zip to the jar file within Eclipse.
Hmm might be. Hopefully this can translate to all Jars you import in a project. It sure would be nice when installing a corresponding -devel rpm, all this is done for the user. It's kind of an awesome little thing to Open declaration on an element in Classpath, see the source, and not have to muck around attaching src.zip to jars first.
Regards
Phil
java-devel@lists.fedoraproject.org