blob: c6e0f7f96a88439be54d2f873b1bc3675a9c6966 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2013 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* G&H Softwareentwicklung GmbH - internationalization implementation (bug 150933)
*******************************************************************************/
package org.eclipse.pde.internal.build.tasks;
import java.util.Locale;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class JNLPGeneratorTask extends Task {
private String feature;
private String jnlp = null;
private String codebase = null;
private String j2se;
private Locale locale = Locale.getDefault();
private boolean generateOfflineAllowed = true;
private String configs = null;
/**
* The URL location of a feature.xml file. This can be either a jar: URL to the feature.xml,
* or a file: url to the feature.
* @param value
*/
public void setFeature(String value) {
feature = value;
}
/**
* The location the output jnlp file. The value may be null (or simply not set). If it is
* null then the output file will be placed beside the feature dir or jar (as appropriate)
* and its name will be derived from the feature id and version. If this is set
* it must be a file path. If it ends in a "/" or "\" then the output file is places in this
* directory with the file name derived as described. Finally, if the value is a file name,
* the output is placed in that file.
* @param value the location to write the output or null if the default
* computed location is to be used.
*/
public void setJNLP(String value) {
jnlp = value;
}
/**
* The codebase of the output. This shoudl be a URL that will be used as the
* root of all relative URLs in the output. Typically this is the root of the application
* deployment website.
* @param value the URL root of for the application content.
*/
public void setCodebase(String value) {
codebase = value;
}
/**
* The j2se spec of the output
* @param value the JNLP j2se spec to use in the output.
*/
public void setJ2SE(String value) {
j2se = value;
}
/**
* The locale in which the jnlp file generated should be translated into.
*The translation values are read from the feature_<locale>.properties file.
* @param nlsString - the locale in which to generate the jnlp files.
* */
public void setLocale(String nlsString) {
String[] strings = nlsString.split("_"); //$NON-NLS-1$
if (nlsString.charAt(0) == '$')
return;
if (strings != null) {
switch (strings.length) {
case 1 :
locale = new Locale(strings[0]);
break;
case 2 :
locale = new Locale(strings[0], strings[1]);
break;
case 3 :
locale = new Locale(strings[0], strings[1], strings[2]);
break;
}
}
}
@Override
public void execute() throws BuildException {
JNLPGenerator generator = new JNLPGenerator(feature, jnlp, codebase, j2se, locale, generateOfflineAllowed, configs);
generator.process();
}
public void setGenerateOfflineAllowed(String generateOfflineAllowed) {
if (generateOfflineAllowed.equalsIgnoreCase("false")) //$NON-NLS-1$
this.generateOfflineAllowed = false;
if (generateOfflineAllowed.equalsIgnoreCase("true")) //$NON-NLS-1$
this.generateOfflineAllowed = false;
}
public void setConfigInfo(String configs) {
this.configs = configs;
}
}