Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [paho-dev] plan for java client?

Scott,

Thanks for your feedback, very useful. If it helps we actually publish nightly dev builds to a nexus repo hosted by eclipse (The recent builds are actually a mix of regular and gerrit triggered builds while I was configuring gerrit, the most recent is back to being just a build from the develop branch). You can download the jars directly here; https://repo.eclipse.org/content/repositories/paho-snapshots/org/eclipse/paho/mqtt-client/0.4.1-SNAPSHOT/ Given your points 2 and 3 I would appreciate it if you could take a look at the output and let me know if it needs any work.

Al

On 04/04/14 21:39, Scott Lewis wrote:
Thanks Al!

Here are a few technical comments.  Hopefully these will be helpful.

My overall comments:  looks good.  I think what you've got right now
will serve our mqtt provider needs just fine.

Comments

1) When I import the java client (develop branch) into Eclipse I noticed
that quite a few of the classes in org.eclipse.paho.client.mqttv3.test
don't compile.   This appears to be because the .classpath entry:

     <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>


is set to 1.4 and a number of the test classes use generics (which
aren't available in 1.4).

My suggestion would be to move all of the test code into a separate
project/bundle (e.g. org.eclipse.paho.client.mqttv3.test).

2) I see you are using maven/pom.xml to build.  Looking in the pom, I
see this:

                             <instructions>
<Build-Level>L${build.level}</Build-Level>
<Bundle-ClassPath>.</Bundle-ClassPath>
<Bundle-SymbolicName>$(maven-symbolicname);singleton:=true</Bundle-SymbolicName>

<Import-Package>javax.net;resolution:=optional,
javax.net.ssl;resolution:=optional</Import-Package>
<Export-Package>!org.eclipse.paho.client.mqttv3.internal.*,
org.eclipse.paho.client.mqttv3.*</Export-Package>
                             </instructions>

As a prospective consumer of this bundle, what I'm really interested in
is the Export-Package that results from this build instruction...i.e.
after the bundle is built.   So I guess it would be best if at some
point you could make available your daily/nightly or integration
builds...so that I can look directly at the manifest contents that
result from the build.

But...since I speak maven :), I expect that the above...applied to this
bundle will result in something like this:

Export-Package:  org.eclipse.paho.client.mqttv3,
org.eclipse.paho.client.mqttv3.logging,
org.eclipse.paho.client.mqttv3.persist, org.eclipse.paho.client.mqttv3.util

If my maven is right, then happily this would serve our/ECF purposes
just fine...i.e. our current MQTT provider code [1] imports only from
the packages listed above.

Another reason to see the build output of this, however, would be to see
what/if any version qualifiers end up in the Export-Package list of
packages.  FWIW, I would suggest putting an explicit version next to
every exported package, e.g.:

Export-Package: org.eclipse.paho.client.mqttv3;version="1.0.0"

I imagine maven can do this for you automatically during build, but I
don't know how to make this happen with maven...off top of my head.

3) It would be nice to be able to see the post-build manifest.mf for
more than just Export-Package...to us Export-Package is the most
important info (which will determine what packages/classes we can access
from the bundle), but it's sometimes useful to see other
information...e.g. whether it's a singleton, what it depends upon, what
the BREE is, etc.

But generally it looks great for us as Paho/mqtt consumers. Thanks for
doing the OSGi support work...and thanksinadvance for the release.

Scott

[1] https://github.com/ECF/Mqtt-Provider


_______________________________________________
paho-dev mailing list
paho-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/paho-dev


Back to the top