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?

Hi Al,

On 4/7/2014 3:43 AM, Al Stockdill-Mander wrote:
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.

Sure. Below is the manifest for 0.4.1.SNAPSHOT bundle for the following jar:

mqtt-client-0.4.1-20140407.102244-44.jar

Below I intersperse comments and suggestions.

Thanks,

Scott

Manifest.mf from mqtt-client-0.4.1-20140407.102244-44.jar

Manifest-Version: 1.0
Bnd-LastModified: 1396866160489
Build-Jdk: 1.6.0_45
Built-By: genie.technology.paho
Bundle-Description: The Paho project provides scalable open-source imple
 mentations of open and standard messaging protocols aimed at new, exist
 ing, and emerging applications for Machine to Machine (M2M) and Interne
 t of Things (IoT).
Bundle-DocURL: http://www.eclipse.org/paho
Bundle-License: http://www.eclipse.org/org/documents/epl-v10.php
Bundle-ManifestVersion: 2
Bundle-Name: mqtt-client
Bundle-SymbolicName: org.eclipse.paho.mqtt-client
Bundle-Vendor: Eclipse Paho

// Scott:  In looking at other bundles, I think the convention is:
// Bundle-Vendor:  Eclipse.org - Paho
// There's also a convention that the values for Bundle-Name and Bundle-Vendor use values from a properties
// file...e.g.

// Bundle-Name: %bundle.name
// Bundle-Vendor: %bundle.provider
// Bundle-Localization: bundle
// and in separate bundle.properties file (e.g.):

// ############################################################################
// # Copyright (c) 2010 Composent Inc., IBM and others.
// # All rights reserved. This program and the accompanying materials
// # are made available under the terms of the Eclipse Public License v1.0
// # which accompanies this distribution, and is available at
// # http://www.eclipse.org/legal/epl-v10.html
// #
// ############################################################################
// bundle.name=ECF Core API
// bundle.provider=Eclipse.org - ECF

// I believe that having these manifest values in a separate properties file
// allows multilanguage handling in Eclipse...so that the bundle name
// and bundle vendor can be presented in appropriate language in Eclipse About listing...with // language translation done of all properties files done by the Babel project.

Bundle-Version: 0.4.1.SNAPSHOT

// Scott:  You might want to look at the EF version numbering spec...i.e:
// http://wiki.eclipse.org/Version_Numbering. Among other things, projects that want to participate in the // simultaneous release are required to use 4 part version numbering. Now I know that maven has // conventions around the use of 'SNAPSHOT'...so it might be useful for you to get the input of someone like // David Williams, who is the usual releng person for the simultaneous releases. One way to get a hold // of David for his opinion about this is via the cross-projects mailing list:
// https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

Created-By: Apache Maven Bundle Plugin
Export-Package: org.eclipse.paho.client.mqttv3;version="0.4.1.SNAPSHOT";
 uses:="javax.net,org.eclipse.paho.client.mqttv3.logging,org.eclipse.pah
 o.client.mqttv3.util",org.eclipse.paho.client.mqttv3.util;version="0.4.
 1.SNAPSHOT",org.eclipse.paho.client.mqttv3.persist;version="0.4.1.SNAPS
 HOT";uses:="org.eclipse.paho.client.mqttv3",org.eclipse.paho.client.mqt
 tv3.logging;version="0.4.1.SNAPSHOT"

// Scott: I personally would like to not see any part of the qualifier for the Export-Package // version specification...e.g. why not just "0.4.1"?...rather than "0.4.0.SNAPSHOT". This // isn't required/fatal by any means, but as a consumer I find it off-putting to have // anything in the qualifier for package export versions...because then things look different
// between snapshot releases and 'real' releases.

Import-Package: javax.net,javax.net.ssl,org.eclipse.paho.client.mqttv3.l
 ogging;version="[0.4,1)"

// Scott: I know there can be good reasons for it, but why is the logging package both exported
// and imported by this bundle?  Can you do with out it?

Tool: Bnd-2.1.0.20130426-122213

// Scott: I don't see and Bundle Required Execution Environment (BREE)...e.g. here's one for one of our
// bundles:

Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
 J2SE-1.4

// I believe a properly set BREE is required for the simultaneous release requirements...i.e. see here
// http://eclipse.org/indigo/planning/EclipseSimultaneousRelease.php and
//  http://wiki.eclipse.org/Execution_Environments

// For running in Eclipse, I would suggest adding this
// Bundle-ActivationPolicy: lazy

This is an OSGi standard header that Eclipse bundles traditionally use...since Eclipse uses lazy startup.

// One other observation/question:   I see the jar file name is:
// mqtt-client-0.4.1-20140407.102244-44.jar and the bundle symbolic name is: org.eclipse.paho.mqtt-client. // At one time I thought there was some convention around having the jar name match the symbolic name + // the version...e.g.:

// org.eclipse.emf.ecore_2.10.0.v20131209-0519.jar for emf ecore...with version 2.10.0.v20131209-0519.

// I can't recall right at this moment why that convention was put in place...and it may not be necessary any // longer...with more recent versions of OSGi and Eclipse...but it might be worthwhile inquiring about it with
// someone that remembers why it was done that way.

Thanks,

Scott




Back to the top