Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] jnlp generation

Hi Thorsten,

I've had this working on some of my builds. I have my main product
build which generates a p2 repository for the product and all the
product zip files. My p2 repository is deployed somewhere accessible.
Then in a standalone project I have a new eclipse-repository project
containing the same .product file and pom.xml configuration as in the
main build with the additional jnlp plugin configuration. Finally I
have an install.jnlp file which serves as the template for the final
jnlp build. This process will re-create my product p2 repository and
then generate the jnlp pieces and sign all of the bundles. This allows
me to keep my jnlp build (which is an experiment) from our real
builds.

The main new piece is the install.jnlp - which should be in the folder
src/main/jnlp. This folder structure is maven orientated rather than
eclipse orientated.

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.5+" version="${unqualifiedVersion}.${buildQualifier}"
codebase="https://www.example.com./path-to-jnlp-files/";>
	<information>
		<title>${project.name}</title>
		<vendor>${project.organization.name}</vendor>
		<offline-allowed />
	</information>
	<security>
		<all-permissions />
	</security>

	<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
		<argument>-nosplash</argument>
	</application-desc>

	<component-desc />
	<resources>
		<j2se version="1.6+" />
		<property name="eclipse.product" value="my.product" />
		<property name="eclipse.application" value="my.application" />

		<proprty name="osgi.framework.extensions"
value="=org.eclipse.equinox.weaving.hook" />
		<proprty name="osgi.framework" value="org.eclipse.osgi" />

		<property name="osgi.bundles"
			value="org.eclipse.core.runtime@start,org.eclipse.equinox.ds@start" />
		<property name="osgi.bundles.defaultStartLevel" value="4" />

		<property name="org.eclipse.update.install.features" value="true" />

		<property name="equinox.use.ds" value="true" />

		<property name="eclipse.p2.profile" value="DefaultProfile" />
		<property name="osgi.instance.area.default"
value="@user.home/.MyAppName/workspace" />
		<property name="osgi.configuration.area"
value="@user.home/.MyAppName/configuration/" />
		<property name="eclipse.p2.data.area" value="@user.home/.MyAppName/p2" />


	</resources>

</jnlp>

There are a few things to note about the jnlp. It specifies values
that normally go into the eclipse.ini (or equivalent). You do not need
to specify plug-ins and features - the jnlp plugin should take care of
that based upon the information in the .product file. The final three
properties define where all the local data such as the workspace and
metadata should reside - in the above example in a folder called
.MyAppName in the users home area. As per standard JNLP, the codebase
URL should be the final  URL where the JNLP file and contents will be
stored.

Finally in my eclipse-repository pom file I add the following snippet
to hook in the jnlp pieces.

	<plugin>
		<groupId>org.sonatype.tycho</groupId>
		<artifactId>tycho-jnlp-plugin</artifactId>
		<version>1.0.1-SNAPSHOT</version>
		<configuration>
			<jnlpFile>${project.build.directory}/repository/OutputJNLPFileName.jnlp</jnlpFile>
			<target>${project.build.directory}/repository/</target>
			<skip>false</skip>
		</configuration>
		<executions>
			<execution>
				<goals>
					<goal>jnlp-file</goal>
					<goal>sign-jars</goal>
				</goals>
			</execution>
		</executions>
	</plugin>

When you run your build be sure to link up your signing key. Add the
following properties;

jarsigner.alias=my-alias
jarsigner.keystore=/path/to/keystore
jarsigner.storepass=changeit

HTH

Simon

On 17 October 2012 22:59, Thorsten Schlathoelter <tschlat@xxxxxx> wrote:
> Hi,
> I have read a couple of threads about the possibility of jnlp generation with tycho. I also tried to find some example that show how to actually use this plugin - unfortunately with no success. I wonder if this plugin is used at all and if so if somebody could post a real example on how to actually use it possibly with tycho 0.15.0.
>
> Any input would be appreciated.
>
> Regards,
> Thorsten
> _______________________________________________
> tycho-user mailing list
> tycho-user@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/tycho-user


Back to the top