Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[egit-dev] Re: [master] Change I5828502f: (egit/parallelip-jgit) Change jgit build to be completely manifest first

I was going to finish font&colour decoration tonight, but I'll try to
make the tests work in cli instead. Assuming my wife won't find other
things for me to do, that is ;-)

And, btw, jetty does publish p2 repo [1], but they do not advertise it
too much for some reason. We use jetty to test our internal m2e
derivatives quite successfully.

[1] http://download.eclipse.org/jetty/7.0.0.v20091005/update/

--
Regards,
Igor

Shawn O. Pearce wrote:
Nope.  The Plug-in Test can't find any of the test classes:

  Class not found org.eclipse.jgit.lib.AbbreviatedObjectIdTest
  java.lang.ClassNotFoundException: org.eclipse.jgit.lib.AbbreviatedObjectIdTest
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:437)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

There's too much black magic going on here with the build and
test execution.  The #@!*@! class exists.  The JUnit runner knows
its there, it wants to call it, but the E@!** OSGi runtime and all
its fancy class loader bullshit can't find it.


I set out today to write JUnit tests for the smart HTTP support.
Instead of doing that, I've spent the entire E@!**@! day trying
to get Jetty just imported into my CLASSPATH so I can see the damn
classes I need to call.

I realized the dual CLASSPATH configuration between Maven 2.x
and our OSGi MANIFEST.MF was a nightmare, so I tried to do this
change to switch over fully to OSGi format before adding in Jetty.
Only now I can't run any bloody tests.

And Jetty doesn't even publish a P2 repository (but they do publish
a Maven repository), so even if I could run tests, I can't access
their code from within our build process.

So then I rewrote the entire damn build using Apache Felix's
maven-bundle-plugin, which is what Jetty is using to do their
builds.  That seemed to work quite nicely, up until their generated
MANIFEST.MF didn't embed the version number for JSch, because the
upstream Maven repository doesn't have bundle tags in that JAR.


So at this point, I'm too pissed offDelivered-To: ifedorenko@xxxxxxxxxxxx
Received: by 10.229.96.68 with SMTP id g4cs700844qcn;
        Tue, 22 Dec 2009 15:58:10 -0800 (PST)
Received: by 10.90.5.23 with SMTP id 23mr5934735age.49.1261526290254;
        Tue, 22 Dec 2009 15:58:10 -0800 (PST)
Return-Path: <spearce@xxxxxxxxxxx>
Received: from psmtp.com (exprod7mx209.postini.com [64.18.2.49])
        by mx.google.com with SMTP id 1si16022461gxk.34.2009.12.22.15.58.09;
        Tue, 22 Dec 2009 15:58:10 -0800 (PST)
Received-SPF: pass (google.com: domain of spearce@xxxxxxxxxxx designates 64.18.2.49 as permitted sender) client-ip=64.18.2.49;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of spearce@xxxxxxxxxxx designates 64.18.2.49 as permitted sender) smtp.mail=spearce@xxxxxxxxxxx
Received: from source ([209.85.210.187]) by exprod7mx209.postini.com ([64.18.6.14]) with SMTP;
	Tue, 22 Dec 2009 15:58:09 PST
Received: by yxe17 with SMTP id 17so6352869yxe.33
        for <ifedorenko@xxxxxxxxxxxx>; Tue, 22 Dec 2009 15:58:08 -0800 (PST)
Received: by 10.150.3.31 with SMTP id 31mr4800959ybc.313.1261526288715;
        Tue, 22 Dec 2009 15:58:08 -0800 (PST)
Return-Path: <spearce@xxxxxxxxxxx>
Received: from localhost (george.spearce.org [209.20.77.23])
        by mx.google.com with ESMTPS id 22sm5871611iwn.12.2009.12.22.15.58.06
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Tue, 22 Dec 2009 15:58:07 -0800 (PST)
Date: Tue, 22 Dec 2009 15:58:05 -0800
From: "Shawn O. Pearce" <spearce@xxxxxxxxxxx>
To: Igor Fedorenko <ifedorenko@xxxxxxxxxxxx>
Cc: egit-dev <egit-dev@xxxxxxxxxxx>
Subject: Re: [master] Change I5828502f: (egit/parallelip-jgit) Change jgit
	build to be completely manifest first
Message-ID: <20091222235805.GG12663@xxxxxxxxxxx>
References: <gerrit.1261513109371.I5828502ff12bbcecfe50036e681ca2fba1e099ef@xxxxxxxxxxxxxxxx> <20091222202045.GE12663@xxxxxxxxxxx> <4B3135DF.1000209@xxxxxxxxxxxx>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4B3135DF.1000209@xxxxxxxxxxxx>
User-Agent: Mutt/1.5.17+20080114 (2008-01-14)
X-pstn-neptune: 0/0/0.00/0
X-pstn-levels:     (S:99.90000/99.90000 CV:99.9000 FC:95.5390 LC:95.5390 R:95.9108 P:95.9108 M:97.0282 C:98.6951 )
X-pstn-settings: 1 (0.1500:0.1500) cv fc lc gt3 gt2 gt1 ft lt p X-pstn-addresses: from <spearce@xxxxxxxxxxx> [db-null]
Igor Fedorenko <ifedorenko@xxxxxxxxxxxx> wrote:
Are you able to run the tests from IDE as JUnit *Plug-in* Test?

Nope.  The Plug-in Test can't find any of the test classes:

  Class not found org.eclipse.jgit.lib.AbbreviatedObjectIdTest
  java.lang.ClassNotFoundException: org.eclipse.jgit.lib.AbbreviatedObjectIdTest
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:437)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

There's too much black magic going on here with the build and
test execution.  The #@!*@! class exists.  The JUnit runner knows
its there, it wants to call it, but the E@!** OSGi runtime and all
its fancy class loader bullshit can't find it.


I set out today to write JUnit tests for the smart HTTP support.
Instead of doing that, I've spent the entire E@!**@! day trying
to get Jetty just imported into my CLASSPATH so I can see the damn
classes I need to call.

I realized the dual CLASSPATH configuration between Maven 2.x
and our OSGi MANIFEST.MF was a nightmare, so I tried to do this
change to switch over fully to OSGi format before adding in Jetty.
Only now I can't run any bloody tests.

And Jetty doesn't even publish a P2 repository (but they do publish
a Maven repository), so even if I could run tests, I can't access
their code from within our build process.

So then I rewrote the entire damn build using Apache Felix's
maven-bundle-plugin, which is what Jetty is using to do their
builds.  That seemed to work quite nicely, up until their generated
MANIFEST.MF didn't embed the version number for JSch, because the
upstream Maven repository doesn't have bundle tags in that JAR.


So at this point, I'm too pissed off with our current build process
to care anymore.  I've wasted a day I didn't feel like I had in
the first place.

Smart HTTP support in JGit can either be accepted without JUnit
tests, or I'll circle back in a few months and write JUnit tests
after someone else sorts out this build bullshit.  Because it isn't
going to be me.



Back to the top