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?

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




Back to the top