- add nbi installer project for SDK to be able to build releases on the server
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8767 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
19
build.xml
@ -111,4 +111,23 @@
|
||||
<ant dir="sdk" target="hudson-stable"/>
|
||||
</target>
|
||||
|
||||
<target name="hudson-release" depends="-check-platform, -update-sdk-platform-config">
|
||||
<exec executable="svn" dir="engine">
|
||||
<arg value="cleanup" />
|
||||
</exec>
|
||||
<exec executable="svn" dir="engine">
|
||||
<arg value="revert" />
|
||||
</exec>
|
||||
<exec executable="svn" dir="engine">
|
||||
<arg value="cleanup" />
|
||||
</exec>
|
||||
<exec executable="svn" dir="engine">
|
||||
<arg value="update" />
|
||||
</exec>
|
||||
<ant dir="engine" target="dist"/>
|
||||
<ant dir="engine" target="build-bullet-natives"/>
|
||||
<ant dir="engine" target="update-sdk"/>
|
||||
<ant dir="sdk" target="hudson-release"/>
|
||||
</target>
|
||||
|
||||
</project>
|
@ -22,6 +22,27 @@
|
||||
<ant antfile="build.xml" target="update-help-sets" inheritall="false" inheritrefs="false" dir="jme3-core/"/>
|
||||
</target>
|
||||
|
||||
<target name="build-installers">
|
||||
<property file="nbproject/project.properties"/>
|
||||
<ant antfile="template.xml" dir="nbi/stub">
|
||||
<property name="suite.location" value="${basedir}"/>
|
||||
<property name="suite.nbi.product.uid" value="${app.name}"/>
|
||||
<property name="suite.nbi.product.version" value="${plugins.version}.0.0"/>
|
||||
<property name="nbi.stub.location" value="${basedir}/nbi/stub"/>
|
||||
<property name="nbi.stub.common.location" value="${basedir}/nbi/.common"/>
|
||||
<property name="nbi.ant.tasks.jar" value="${basedir}/nbi/antlib/nbi-ant-tasks.jar"/>
|
||||
<property name="nbi.registries.management.jar" value="${basedir}/nbi/antlib/nbi-registries-management.jar"/>
|
||||
<property name="nbi.engine.jar" value="${basedir}/nbi/antlib/nbi-engine.jar"/>
|
||||
<property name="nbi.license.file" value="${basedir}/jme-license.txt"/>
|
||||
<property name="generate.installer.for.platforms" value="windows linux macosx"/>
|
||||
<property name="generator-jdk-location-forward-slashes" value="${java.home}"/>
|
||||
<property name="generated-installers-location-forward-slashes" value="${basedir}/build/installer"/>
|
||||
<property name="pack200.enabled" value="true"/>
|
||||
<property name="nbi.icon.file" value="${basedir}/jmonkeyplatform.png"/>
|
||||
<property name="nbi.dock.icon.file" value="${basedir}/jmonkeyplatform.icns"/>
|
||||
</ant>
|
||||
</target>
|
||||
|
||||
<target name="-create-netbeans-config">
|
||||
<!--replaces default values in jmonkeyplatform.conf file with run.args.extra from project.properties-->
|
||||
<mkdir dir="build/launcher/etc"/>
|
||||
@ -106,6 +127,9 @@
|
||||
<target name="hudson-stable" depends="suite.clean, -revert-svn-changes, set-impl-version, suite.nbms, unset-spec-version">
|
||||
</target>
|
||||
|
||||
<target name="hudson-release" depends="suite.clean, set-spec-version, build-installers, unset-spec-version">
|
||||
</target>
|
||||
|
||||
<target name="set-spec-version">
|
||||
<property file="nbproject/project.properties"/>
|
||||
<foreach target="-do-spec-version" list="${modules}" delimiter=":" param="module_dir" inheritall="true">
|
||||
|
258
sdk/nbi/.common/common.properties
Normal file
@ -0,0 +1,258 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
#####################################################################################
|
||||
# Initialization. Properties that are used during build script initialization.
|
||||
|
||||
# location of the custom tasks' sources and the destination directory for their
|
||||
# build
|
||||
custom.tasks.src=${common.dir}/../.ant-lib/src
|
||||
custom.tasks.cls=${basedir}/.ant-lib
|
||||
|
||||
#####################################################################################
|
||||
# Check-out. Properties that are used during check-out.
|
||||
|
||||
# whether to check out sources, or copy them from the location specified in
|
||||
# ${sources.dir}; 'true'/'false'
|
||||
checkout.sources=true
|
||||
|
||||
# coordinates of the project's sources within the cvs repository
|
||||
# * ${cvs.root} - obvious
|
||||
# * ${cvs.branch} - the branch from which the sources should be checked out; if
|
||||
# this property is empty, then the sources will be checked out from trunk
|
||||
# * ${cvs.timestamp} - the timestamp for which the sources should be checked out; if
|
||||
# this property is empty, then the latest sources will be checked out
|
||||
# * ${cvs.module} - the module that should be checked out; at this point the
|
||||
# build framework is not compatible with modules which alias several other
|
||||
# modules
|
||||
cvs.root=:pserver:anoncvs@netbeans.org:/cvs
|
||||
cvs.branch=
|
||||
cvs.module=nbi
|
||||
cvs.timestamp=
|
||||
|
||||
# coordinates of the project's sources' localized files within the cvs
|
||||
# repository
|
||||
# * ${translatedfiles.module} - name of the cvs module with the localized files
|
||||
# * ${translatedfiles.path} - path to the localized files for the project
|
||||
# within the cvs module
|
||||
translatedfiles.module=translatedfiles
|
||||
translatedfiles.path=src/${cvs.module}/${cvs.path}
|
||||
|
||||
# sources parameters; a search-and-replace will be run over the sources after
|
||||
# check-out, replacing [token] => [value]; regular expressions are not allowed
|
||||
# * ${sources.params.length} - total number of the parameters
|
||||
# * indices should start with 1
|
||||
# * parameters are not i18n compliant
|
||||
sources.params.length=0
|
||||
#sources.params.1.token=
|
||||
#sources.params.1.value=
|
||||
|
||||
# several simple shorthands for various directories
|
||||
# * ${cvs.module.dir} - path to the root of the cvs module
|
||||
# * ${cvs.dir} - path to the current project's sources root
|
||||
# * ${translatedfiles.dir} - path to the localized files for the project
|
||||
cvs.module.dir=${work.dir}/${cvs.module}
|
||||
cvs.dir=${cvs.module.dir}/${cvs.path}
|
||||
translatedfiles.dir=${work.dir}/${translatedfiles.module}/${translatedfiles.path}
|
||||
|
||||
#####################################################################################
|
||||
# NB Projects. Properties related to cleaning/building netbeans projects.
|
||||
|
||||
# path to the netbeans project that should be built; relative to the
|
||||
# ${cvs.dir}
|
||||
nbproject.path=.
|
||||
|
||||
# names of targets in component's (or engine's) build script that will be
|
||||
# called as part of the build process
|
||||
# * ${nb.target.clean} - will be called when cleaning the netbeans project
|
||||
# * ${nb.target.build} - will be called when building the netbeans project
|
||||
nb.target.clean=clean
|
||||
nb.target.build=jar
|
||||
|
||||
# additional properties which will be passed to the netbeans project build
|
||||
# script
|
||||
# * ${nb.platform.home} - location of the jdk codenamed "JDK 1.5", this jdk
|
||||
# is expected to be used by all netbeans projects
|
||||
# * ${nb.ignore.native} - tells the netbeans project's build script to skip
|
||||
# building native components, if it is able to do so - these will be built
|
||||
# as part of the project's global build script
|
||||
# * ${nb.no.dependencies} - tells the netbeans project's build script to skip
|
||||
# building its dependencies, the dependencies are expected to be built by the
|
||||
# project's global build script
|
||||
# * ${nb.dont.build.custom.tasks} - tells the netbeans project's build script
|
||||
# to skip building custom tasks for it, as they will already be built by the
|
||||
# global script
|
||||
# * ${nb.custom.tasks.cls} - points the netbeans project's build script to the
|
||||
# location of the built custom tasks
|
||||
nb.platform.home=-Dplatforms.JDK_1.5.home=${java.home}/..
|
||||
nb.platform.home.macos=-Dplatforms.JDK_1.5.home=${java.home}
|
||||
nb.ignore.native=-Dignore.native=true
|
||||
nb.no.dependencies=-Dno.dependencies=true
|
||||
nb.dont.build.custom.tasks=-Ddont.build.custom.tasks=true
|
||||
nb.custom.tasks.cls=-Dcustom.tasks.cls=${custom.tasks.cls}
|
||||
|
||||
# default path to the distributives directory of the netbeans project; relative
|
||||
# to ${nbproject.path}
|
||||
nb.dist.path=dist
|
||||
|
||||
# path to the classes directory of the netbeans project; relative to
|
||||
# ${nbproject.path}
|
||||
nb.classes.dir=build/classes
|
||||
|
||||
# path to the manifest file of the netbeans project; relative to the
|
||||
# ${nbproject.path}
|
||||
nbproject.manifest=manifest.mf
|
||||
|
||||
# path to the dist directory that the nbproject should use; since we do not use
|
||||
# the netbeans' packaging mechanism, we have the flexibility to specify any
|
||||
# distributives directory we want
|
||||
nbproject.dist.dir=${cvs.dir}/${nbproject.path}/${nb.dist.path}
|
||||
|
||||
#####################################################################################
|
||||
# Native. Properties related to cleaning/building native components.
|
||||
|
||||
# path to the directory with the sources for the native components; relative
|
||||
# to the root of the project's sources
|
||||
native.path=${cvs.module}/${cvs.path}/native
|
||||
|
||||
# path to the directory with the localized files for the native components;
|
||||
# relative to the root of the project's localized files directory
|
||||
translatedfiles.native.path=${translatedfiles.module}/${translatedfiles.path}/native
|
||||
|
||||
# list of platforms for which the native components should be built
|
||||
# * the list should be space-separated
|
||||
native.platforms=windows linux solaris-x86 solaris-sparc macosx
|
||||
|
||||
# directory on the remote machine where the build script should operate
|
||||
# * this is the default value, the actual value is expected to be passed in
|
||||
# through the environment properties
|
||||
remote.work.dir=~/.nbi-build
|
||||
|
||||
# ssh properties: executable name, set of arguments and the command.
|
||||
# * ${remote.host}, ${remote.port} and ${remote.user} are environment specific
|
||||
# and are expected to be passed in through the environment properties
|
||||
ssh.executable=ssh
|
||||
ssh.arguments=-l ${remote.user} -p ${remote.port} ${remote.host}
|
||||
ssh.command.clean=rm -rf ${remote.work.dir};
|
||||
ssh.command.build=rm -rf ${remote.work.dir}; \
|
||||
mkdir ${remote.work.dir}; \
|
||||
cd ${remote.work.dir}; \
|
||||
if [ "${cvs.branch}" = "" ]; then \
|
||||
if [ "${cvs.timestamp}" = "" ]; then \
|
||||
cvs -d ${cvs.root} co -P ${native.path}; \
|
||||
cvs -d ${cvs.root} co -P ${translatedfiles.native.path}; \
|
||||
else\
|
||||
cvs -D ${cvs.timestamp} -d ${cvs.root} co -P ${native.path}; \
|
||||
cvs -D ${cvs.timestamp} -d ${cvs.root} co -P ${translatedfiles.native.path}; \
|
||||
fi;\
|
||||
else \
|
||||
if [ "${cvs.timestamp}" = "" ]; then \
|
||||
cvs -d ${cvs.root} co -r ${cvs.branch} -P ${native.path}; \
|
||||
cvs -d ${cvs.root} co -r ${cvs.branch} -P ${translatedfiles.native.path}; \
|
||||
else \
|
||||
cvs -D ${cvs.timestamp} -d ${cvs.root} co -r ${cvs.branch} -P ${native.path}; \
|
||||
cvs -D ${cvs.timestamp} -d ${cvs.root} co -r ${cvs.branch} -P ${translatedfiles.native.path}; \
|
||||
fi;\
|
||||
fi; \
|
||||
cp -r ${translatedfiles.native.path} ${native.path}; \
|
||||
cd ${native.path}/${platform}; \
|
||||
make
|
||||
|
||||
# scp properties: executable name, set of arguments, remote directory, local
|
||||
# directory
|
||||
# * ${remote.host}, ${remote.port} and ${remote.user} are platform and
|
||||
# environment specific and are expected to be passed in through the
|
||||
# environment properties
|
||||
# * name of the file to copy is platform specific and is defined elsewhere,
|
||||
# most likely in the base build script for a project type (engine, product,
|
||||
# etc.)
|
||||
# * ${platform} will be defined at runtime, as these commands will be executed
|
||||
# in loop over the list of platforms
|
||||
scp.executable=scp
|
||||
scp.arguments=-P ${remote.port}
|
||||
scp.remote.dir=${remote.user}@${remote.host}:${remote.work.dir}/${native.path}/${platform}/${nb.dist.path}
|
||||
scp.local.dir=${work.dir}/${native.path}/${platform}/${nb.dist.path}
|
||||
|
||||
# names of the native distributive files for various platforms
|
||||
native.dist.file.windows=windows.dll
|
||||
native.dist.file.linux=linux.so
|
||||
native.dist.file.solaris-x86=solaris-x86.so
|
||||
native.dist.file.solaris-sparc=solaris-sparc.so
|
||||
native.dist.file.macosx=macosx.dylib
|
||||
|
||||
#####################################################################################
|
||||
# Release. Properties controlling the 'release' process
|
||||
release.to.server=true
|
||||
|
||||
#####################################################################################
|
||||
# Miscellaneous. Properties that are used elsewhere.
|
||||
|
||||
# these properties control the environment for the jarsigner process
|
||||
# * ${jarsigner.enabled} - whether to sign jars
|
||||
# * ${jarsigner.xmx} - max heap size for the jarsigner process
|
||||
# * ${jarsigner.executable} - path to jarsigner executable (optional)
|
||||
jarsigner.enabled=true
|
||||
jarsigner.xmx=1024m
|
||||
|
||||
# these properties control the environment for the pack200 and unpack200
|
||||
# processes
|
||||
# * ${pack200.enabled} - whether to repackage jars (can be specified in each product)
|
||||
# * ${use.internal.packer} - whether to use the same JVM for packing jars (can be specified in each product)
|
||||
# it is risky because of memory leaks and possible OOMs
|
||||
# * ${use.internal.unpacker} - whether to use the same JVM for unpacking jars (can be specified in each product)
|
||||
# it is risky because of memory leaks and possible OOMs
|
||||
# * ${pack200.xmx} - -Xmx jvm argument value
|
||||
# * ${pack200.perm.size} - -XX:PermSize jvm argument value
|
||||
# * ${pack200.max.perm.size} - -XX:MaxPermSize jvm argument value
|
||||
# * ${pack200.executable} - path to pack200 executable (optional)
|
||||
# * ${unpack200.executable} - path to unpack200 executable (optional)
|
||||
# * ${verification.java.executable} - path to java executable that would be used for verification of packaged jars (optional)
|
||||
pack200.xmx=768m
|
||||
pack200.perm.size=32m
|
||||
pack200.max.perm.size=512m
|
||||
|
||||
# these properties control the environment for the external processes running during the build
|
||||
# * ${process.max.execution.time} - maximum time (in milliseconds) for running the process
|
||||
# if set to zero then processes would run without timeout
|
||||
# default value is 600000=10min (defined in nbi/infra/build/.ant-lib/src/org/netbeans/installer/infra/build/ant/utils/Utils.java)
|
||||
|
||||
# these properties control native executable paths
|
||||
# * ${tar.executable} - path to native tar/gtar/gnutar executable
|
||||
# * ${ls.executable} - path to native ls executable
|
||||
# * ${unzip.executable} - path to native unzip executable
|
834
sdk/nbi/.common/common.xml
Normal file
@ -0,0 +1,834 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is a target library which is intended to be used by other build scripts.
|
||||
|
||||
It contains the standard, fucntionality, common across all scripts which
|
||||
allows to perform some basic initialization, check out sources from a cvs
|
||||
repository and, finally, clean or build a netbeans project and jni libraries.
|
||||
|
||||
None ot the targets defined in this script are intended to be called
|
||||
directly, instead it is expected that targets in build dcripts which import
|
||||
this one will declare dependecies on this script's targets.
|
||||
|
||||
@author Kirill Sorokin
|
||||
-->
|
||||
<project name="common" default="usage" basedir=".">
|
||||
<!-- ============================================================================
|
||||
Aggregates
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Cleans the project.
|
||||
|
||||
This is an aggregation target, which does not contain any functionality,
|
||||
but defines a dependency on the 'clean' target.
|
||||
For more details, please consult the documentation for this target.
|
||||
-->
|
||||
<target name="clean-all" depends="clean"/>
|
||||
|
||||
<!--
|
||||
Cleans and builds the project.
|
||||
|
||||
This is an aggregation target, which does not contain any functionality,
|
||||
but defines dependencies on the 'clean-all', 'checkout' and 'build'
|
||||
targets. For more details, please consult the documentation for these
|
||||
targets.
|
||||
-->
|
||||
<target name="build-all" depends="clean-all,checkout,build"/>
|
||||
|
||||
<!--
|
||||
Cleans, builds and releases the project.
|
||||
|
||||
This is an aggregation target, which does not contain any functionality,
|
||||
but defines dependencies on the 'clean', 'checkout', 'build' and
|
||||
'release' targets. For more details, please consult the documentation
|
||||
for these targets.
|
||||
-->
|
||||
<target name="release-all" depends="build-all,release"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Initialization
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Initializes the projects's build script.
|
||||
|
||||
This is an aggregation target, it does not contain any functionality, but
|
||||
defines dependencies on '-pre-init', '-init' and '-post-init'
|
||||
targets. The '-pre-init' and '-post-init' targets are empty hooks,
|
||||
which allow derivative scripts to inject custom logic which will be
|
||||
executed prior to the initialization process or after it. The '-init'
|
||||
target contains the code which actually initializes the script and should
|
||||
be overriden in the derivative scripts.
|
||||
-->
|
||||
<target name="init" depends="-pre-init,-init,-post-init"/>
|
||||
|
||||
<!--
|
||||
Performs the default initialization.
|
||||
|
||||
This target defines a set of custom ant tasks which are used throughout
|
||||
the script and may be useful for the derivative scripts.
|
||||
|
||||
It also sets some properties which control the flow of the build process,
|
||||
such as whether to check-out sources from trunk or branch, or to copy
|
||||
them from a given location; whether to build the native components or
|
||||
not, whether to build the netbeans project or not.
|
||||
|
||||
Finally this target initializes the local working directory and the
|
||||
distributives directory and sets a special property which will prevent it
|
||||
from repeated execution.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".init" depends=".build-custom-tasks" unless="skip.initialization">
|
||||
<!-- define custom ant tasks -->
|
||||
<taskdef
|
||||
name="for-each"
|
||||
classname="org.netbeans.installer.infra.build.ant.ForEach"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="set"
|
||||
classname="org.netbeans.installer.infra.build.ant.SetProperty"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="if"
|
||||
classname="org.netbeans.installer.infra.build.ant.If"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
|
||||
<!-- decide whether to checkout sources from trunk -->
|
||||
<condition property="do.checkout">
|
||||
<and>
|
||||
<equals arg1="${checkout.sources}" arg2="true"/>
|
||||
</and>
|
||||
</condition>
|
||||
|
||||
<!-- decide whether to copy sources from a given location -->
|
||||
<condition property="do.checkout.copy">
|
||||
<not>
|
||||
<equals arg1="${checkout.sources}" arg2="true"/>
|
||||
</not>
|
||||
</condition>
|
||||
|
||||
<!-- decide whether to build native libraries/launchers or not -->
|
||||
<condition property="do.build.native">
|
||||
<equals arg1="${build.native}" arg2="true"/>
|
||||
</condition>
|
||||
|
||||
<!-- decide whether there is need to build a netbeans project -->
|
||||
<condition property="do.build.nbproject">
|
||||
<equals arg1="${build.nbproject}" arg2="true"/>
|
||||
</condition>
|
||||
|
||||
<!-- deduce the path to the ant executable -->
|
||||
<condition property="ant.executable" value="${ant.home}/bin/ant.bat">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="ant.executable" value="${ant.home}/bin/ant">
|
||||
<not>
|
||||
<os family="windows"/>
|
||||
</not>
|
||||
</condition>
|
||||
|
||||
<!-- initialize the local working directory -->
|
||||
<mkdir dir="${work.dir}"/>
|
||||
|
||||
<!-- initialize the local distributive directory -->
|
||||
<mkdir dir="${dist.dir}"/>
|
||||
|
||||
<!-- set the marker property which will prevent the script running the
|
||||
initialization procedure again, if history is lost, e.g. as a
|
||||
result of an antcall -->
|
||||
<property name="skip.initialization" value="true"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds custom ant tasks.
|
||||
|
||||
This target deletes the directory which is the target for the custom ant
|
||||
tasks compilation, recreates it and runs javac on the custom tasks'
|
||||
sources.
|
||||
|
||||
It also sets a special property which will prevent it from repeated
|
||||
execution.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-custom-tasks" unless="dont.build.custom.tasks">
|
||||
<!-- quick clean-up and initialization -->
|
||||
<delete dir="${custom.tasks.cls}"/>
|
||||
<mkdir dir="${custom.tasks.cls}"/>
|
||||
|
||||
<!-- compile -->
|
||||
<javac
|
||||
srcdir="${custom.tasks.src}"
|
||||
destdir="${custom.tasks.cls}"
|
||||
debug="true"/>
|
||||
|
||||
<property name="dont.build.custom.tasks" value="true"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed prior to the script's initialization.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-pre-init"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It must be overriden in derivative scripts, in order to implement custom
|
||||
functionality required for the build script initialization.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-init" depends=".init"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed after the script's initialization.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-post-init"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Clean-up
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Cleans the current working directory and the distributives directory.
|
||||
|
||||
This is an aggregation target, it does not contain any functionality, but
|
||||
defines dependencies on '-pre-clean', '-clean' and '-post-clean'
|
||||
targets. The '-pre-clean' and '-post-clean' targets are empty hooks,
|
||||
which allow derivative scripts to inject custom logic which will be
|
||||
executed prior to the clean process or after it. The '-clean' target
|
||||
contains the code which actually cleans the project and should be
|
||||
overriden in the derivative scripts.
|
||||
-->
|
||||
<target name="clean" depends="init,-pre-clean,-clean,-post-clean"/>
|
||||
|
||||
<!--
|
||||
Performs the standard clean-up procedures.
|
||||
|
||||
It cleans the native components (iterates over the list of platforms for
|
||||
which the native components should be built and deletes the distributive
|
||||
files of these components), tries to run cleanup on the netbeans project
|
||||
and finally deletes the local working directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".clean">
|
||||
<!-- for each of the defined platforms set the appropriate property
|
||||
and execute the clean-up procedure -->
|
||||
<for-each list="${native.platforms}" property="platform">
|
||||
<antcall target=".clean-native"/>
|
||||
</for-each>
|
||||
|
||||
<!-- attempt to run the clean-up procedure on the netbeans project -->
|
||||
<antcall target=".clean-nbproject"/>
|
||||
|
||||
<!-- delete the local working directory -->
|
||||
<delete dir="${work.dir}" includeemptydirs="true"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Cleans the native components of the project.
|
||||
|
||||
It is meant to be antcall'ed from a loop which would iterate over the
|
||||
list of supported platforms. This target expects the property
|
||||
'platform' to point to the current platform for which clean-up should be
|
||||
performed.
|
||||
|
||||
By default it falls back to '.clean-jni' target, but it is meant to be
|
||||
overriden by derivative build scripts, if there is need to do more than
|
||||
that.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".clean-native" if="do.build.native">
|
||||
<antcall target=".clean-jni"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Cleans up the native jni libraries for the project.
|
||||
|
||||
It removes the distributive file for the jni library for the current
|
||||
platform.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".clean-jni" if="do.build.native">
|
||||
<!-- set required properties -->
|
||||
<set property="current.scp.local.dir"
|
||||
source="scp.local.dir"/>
|
||||
<set property="current.native.dist.file"
|
||||
source="native.dist.file.${platform}"/>
|
||||
|
||||
<!-- delete the distributive -->
|
||||
<delete dir="${scp.local.dir}/${current.native.dist.file}"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Cleans up the netbeans part of the project.
|
||||
|
||||
It runs the 'clean' target on the netbeans project's build script.
|
||||
|
||||
This target is only executed if the the ${build.nbproject} property was
|
||||
set to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".clean-nbproject" if="do.build.nbproject">
|
||||
<!-- check whether the netbeans project's directory exists -->
|
||||
<condition property="nbproject.exists" value="true">
|
||||
<available file="${cvs.dir}/${nbproject.path}"/>
|
||||
</condition>
|
||||
|
||||
<!-- is it exists, run the 'clean' target on the netbeans project's
|
||||
build script -->
|
||||
<if property="nbproject.exists" value="true">
|
||||
<condition property="nb.jdk.home"
|
||||
value="${nb.platform.home}"
|
||||
else="${nb.platform.home.macos}">
|
||||
<not>
|
||||
<equals arg1="Apple Inc." arg2="${java.vendor}"/>
|
||||
</not>
|
||||
</condition>
|
||||
|
||||
<exec executable="${ant.executable}"
|
||||
dir="${cvs.dir}/${nbproject.path}"
|
||||
failonerror="false"
|
||||
failifexecutionfails="false">
|
||||
<env key="JAVA_HOME" value="${java.home}"/>
|
||||
<arg value="${nb.target.clean}"/>
|
||||
|
||||
<arg value="${nb.jdk.home}"/>
|
||||
<arg value="${nb.ignore.native}"/>
|
||||
<arg value="${nb.no.dependencies}"/>
|
||||
<arg value="${nb.dont.build.custom.tasks}"/>
|
||||
<arg value="${nb.custom.tasks.cls}"/>
|
||||
<arg value="${nb.custom.parameter}"/>
|
||||
</exec>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed prior to cleaning the projects's local working directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-pre-clean"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It must be overriden in derivative scripts, in order to implement custom
|
||||
functionality required for the cleaning the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-clean" depends=".clean"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed after cleaning the project's local working directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-post-clean"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Check-out
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Checks out the the project's sources from the CVS repository.
|
||||
|
||||
This is an aggregation target, it does not contain any functionality, but
|
||||
defines dependencies on '-pre-checkout', '-checkout' and '-post-checkout'
|
||||
targets. The '-pre-checkout' and '-post-checkout' target are empty hooks,
|
||||
which allow derivative scripts to inject custom logic which will be
|
||||
executed prior to the check-out process or after it. The '-checkout'
|
||||
target contains the code which actually checks out the sources and should
|
||||
be overriden in the derivative scripts.
|
||||
-->
|
||||
<target name="checkout"
|
||||
depends="init,-pre-checkout,-checkout,-post-checkout"/>
|
||||
|
||||
<!--
|
||||
Checks out sources from a CVS repository with the given coordinates.
|
||||
|
||||
This target uses the values of ${cvs.root}, ${cvs.module}, ${cvs.path},
|
||||
${cvs.branch}, ${cvs.timestamp} properties to check out the required sources.
|
||||
It falls back to the two targets: '.checkout-repository' and '.checkout-copy',
|
||||
which correspond to the choosen check-out method. Only one of these
|
||||
targets will be executed under any conditions.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".checkout"
|
||||
depends=".checkout-repository,.pre-checkout-copy,.checkout-copy,.post-checkout-copy">
|
||||
<copy todir="${cvs.dir}" failonerror="false">
|
||||
<fileset dir="${translatedfiles.dir}"/>
|
||||
</copy>
|
||||
|
||||
<!-- substitute the params in the source tree -->
|
||||
<for-each from="1" to="${sources.params.length}" property="i">
|
||||
<set property="current.token"
|
||||
source="sources.params.${i}.token"/>
|
||||
<set property="current.value"
|
||||
source="sources.params.${i}.value"/>
|
||||
|
||||
<replace dir="${cvs.dir}"
|
||||
token="${current.token}"
|
||||
value="${current.value}"/>
|
||||
</for-each>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Checks out sources from trunk or from a given branch.
|
||||
|
||||
This target executes the <cvs> task, which performs the actual check-out.
|
||||
|
||||
This target is only executed if the the ${checkout.sources} property was
|
||||
set to 'true' and the ${cvs.branch} property is not empty.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".checkout-repository" if="do.checkout">
|
||||
<cvs cvsroot="${cvs.root}"
|
||||
command="checkout"
|
||||
package="${cvs.module}/${cvs.path}"
|
||||
tag="${cvs.branch}"
|
||||
date="${cvs.timestamp}"
|
||||
dest="${work.dir}"
|
||||
failonerror="true"/>
|
||||
<cvs cvsroot="${cvs.root}"
|
||||
command="checkout"
|
||||
package="${translatedfiles.module}/${translatedfiles.path}"
|
||||
tag="${cvs.branch}"
|
||||
date="${cvs.timestamp}"
|
||||
dest="${work.dir}"
|
||||
failonerror="false"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Copies the sources from a given location.
|
||||
|
||||
This target serves as an alternative to the actual check-out targets and
|
||||
is used in case when the calling script already knows the location of the
|
||||
appropriate source files and there is no need to check them out again.
|
||||
|
||||
Several filters are applied to the sources files, e.g. no already built
|
||||
files are copied, the private parts of the netbeans projects are omitted,
|
||||
CVS metadata is also omitted.
|
||||
|
||||
This target is only executed if the the ${checkout.sources} property was
|
||||
set to 'false'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".checkout-copy" if="do.checkout.copy">
|
||||
<!-- create the destination directory for the sources -->
|
||||
<mkdir dir="${work.dir}/${cvs.module}/${cvs.path}"/>
|
||||
|
||||
<!-- copy the sources, applying the selected filters -->
|
||||
<copy todir="${work.dir}/${cvs.module}/${cvs.path}" verbose="true">
|
||||
<fileset dir="${sources.dir}/${cvs.module}/${cvs.path}">
|
||||
<include name="**/*.*"/>
|
||||
<exclude name="**/nbproject/private/*.*"/>
|
||||
<exclude name="build/**/*.*"/>
|
||||
<exclude name="dist/**/*.*"/>
|
||||
<exclude name="**/CVS"/>
|
||||
<exclude name="**/.cvsignore"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
<!-- copy the translatedfiles for the sources, applying the selected filters -->
|
||||
<copy todir="${translatedfiles.dir}" verbose="true" failonerror="false">
|
||||
<fileset dir="${sources.dir}/${translatedfiles.module}/${translatedfiles.path}">
|
||||
<include name="**/*.*"/>
|
||||
<exclude name="**/nbproject/private/*.*"/>
|
||||
<exclude name="build/**/*.*"/>
|
||||
<exclude name="dist/**/*.*"/>
|
||||
<exclude name="**/CVS"/>
|
||||
<exclude name="**/.cvsignore"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Empty hooks.
|
||||
|
||||
They allow derivative scripts to inject custom logic which will be
|
||||
executed prior and after copying out the project's sources.
|
||||
|
||||
These targets are not intended to be called directly.
|
||||
-->
|
||||
<target name=".pre-checkout-copy"/>
|
||||
<target name=".post-checkout-copy"/>
|
||||
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed prior to checking out the project's sources.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-pre-checkout"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It must be overriden in derivative scripts, in order to implement custom
|
||||
functionality required for the correctly checking out the project's
|
||||
sources.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-checkout" depends=".checkout"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed after checking out the project's sources.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-post-checkout"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Build
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Builds the project and (optionally) its native components.
|
||||
|
||||
It is assumed that the sources of the project are already checked out,
|
||||
but a dependency on the 'checkout' target is not defined as it may be
|
||||
desirable to check-out the sources once and then rebuild the engine as
|
||||
appropriate.
|
||||
|
||||
The build process consists of two steps: first, the native components
|
||||
of the project (jni libraries) are built (if it is required), then the
|
||||
projects's netbeans part is compiled and packaged.
|
||||
|
||||
This is an aggregation target, it does not contain any functionality, but
|
||||
defines dependencies on '-pre-build', '-build' and '-post-build'
|
||||
targets. The '-pre-build' and '-post-build' target are empty hooks,
|
||||
which allow derivative scripts to inject custom logic which will be
|
||||
executed prior to the build process or after it. The '-build' target
|
||||
contains the code which actually builds the project and should be
|
||||
overriden in the derivative scripts.
|
||||
-->
|
||||
<target name="build" depends="init,-pre-build,-build,-post-build"/>
|
||||
|
||||
<!--
|
||||
Performs the standard build procedures.
|
||||
|
||||
This target builds the native components for the project (iterates over
|
||||
the list of platforms, calling the '.build-native' target) and executes
|
||||
the 'build' target on the netbeans part of the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build">
|
||||
<!-- for each of the defined platforms set the appropriate property
|
||||
and execute the build procedure -->
|
||||
<for-each list="${native.platforms}" property="platform">
|
||||
<antcall target=".build-native"/>
|
||||
</for-each>
|
||||
|
||||
<!-- run the 'build' target on the netbeans project -->
|
||||
<antcall target=".build-nbproject"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the native components of the project for a given platform.
|
||||
|
||||
By default this target falls back to the '.build-jni' target, which
|
||||
builds the jni libraries for the project.
|
||||
|
||||
This target is called in a loop from the '.build-native' target, and
|
||||
expects the ${platform} property to contain the code mane of the platform
|
||||
for which the native components should be built.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-native" if="do.build.native">
|
||||
<antcall target=".build-jni"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the jni library for the given platform.
|
||||
|
||||
This target is antcall'ed as part of the call to the '.build-native'
|
||||
target, and expects the ${platform} property to contain the code name of
|
||||
the platform for which the library should be built.
|
||||
|
||||
It connects to the registered satellite machine for the current platform
|
||||
using the 'ssh' utility, checks out the library's sources and builds it.
|
||||
The built binary is then copied back to the host machine using 'scp'.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-jni" if="do.build.native">
|
||||
<!-- set required properties -->
|
||||
<set property="remote.host"
|
||||
source="remote.host.${platform}"/>
|
||||
<set property="remote.port"
|
||||
source="remote.port.${platform}"/>
|
||||
<set property="remote.user"
|
||||
source="remote.user.${platform}"/>
|
||||
|
||||
<set property="current.native.dist.file"
|
||||
source="native.dist.file.${platform}"/>
|
||||
|
||||
<!-- now we need to re-evaluate the values of the ssh and scp-related
|
||||
properties as they contain references to the properties that have
|
||||
just been set above -->
|
||||
<set property="current.ssh.arguments"
|
||||
source="ssh.arguments"/>
|
||||
<set property="current.ssh.command.clean"
|
||||
source="ssh.command.clean"/>
|
||||
<set property="current.ssh.command.build"
|
||||
source="ssh.command.build"/>
|
||||
|
||||
<set property="current.scp.arguments"
|
||||
source="scp.arguments"/>
|
||||
<set property="current.scp.remote.dir"
|
||||
source="scp.remote.dir"/>
|
||||
<set property="current.scp.local.dir"
|
||||
source="scp.local.dir"/>
|
||||
|
||||
<!-- run the ssh command - it is expected that it will build
|
||||
everything -->
|
||||
<exec executable="${ssh.executable}" failonerror="true">
|
||||
<arg line="${current.ssh.arguments}"/>
|
||||
<arg value="${current.ssh.command.build}"/>
|
||||
</exec>
|
||||
|
||||
<!-- run the scp command to copy the resulting file back to the
|
||||
host system -->
|
||||
<mkdir dir="${current.scp.local.dir}"/>
|
||||
<exec executable="${scp.executable}" failonerror="true">
|
||||
<arg line="${current.scp.arguments}"/>
|
||||
<arg value="${current.scp.remote.dir}/${current.native.dist.file}"/>
|
||||
<arg value="${current.scp.local.dir}/${current.native.dist.file}"/>
|
||||
</exec>
|
||||
|
||||
<!-- run the ssh command - we need to clean after us -->
|
||||
<exec executable="${ssh.executable}" failonerror="true">
|
||||
<arg line="${current.ssh.arguments}"/>
|
||||
<arg value="${current.ssh.command.clean}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the netbeans part of the project.
|
||||
|
||||
It runs the 'jar' target on the netbeans project's build script.
|
||||
|
||||
This target is only executed if the the ${build.nbproject} property was
|
||||
set to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-nbproject" if="do.build.nbproject">
|
||||
<condition property="nb.jdk.home"
|
||||
value="${nb.platform.home}"
|
||||
else="${nb.platform.home.macos}">
|
||||
<not>
|
||||
<equals arg1="Apple Inc." arg2="${java.vendor}"/>
|
||||
</not>
|
||||
</condition>
|
||||
|
||||
<exec executable="${ant.executable}"
|
||||
dir="${cvs.dir}/${nbproject.path}"
|
||||
failonerror="true"
|
||||
failifexecutionfails="true"
|
||||
errorproperty="error.property">
|
||||
<env key="JAVA_HOME" value="${java.home}"/>
|
||||
<arg value="clean"/>
|
||||
<arg value="compile"/>
|
||||
|
||||
<arg value="${nb.jdk.home}"/>
|
||||
<arg value="${nb.ignore.native}"/>
|
||||
<arg value="${nb.no.dependencies}"/>
|
||||
<arg value="${nb.dont.build.custom.tasks}"/>
|
||||
<arg value="${nb.custom.tasks.cls}"/>
|
||||
<arg value="${nb.custom.parameter}"/>
|
||||
</exec>
|
||||
|
||||
<mkdir dir="${nbproject.dist.dir}"/>
|
||||
|
||||
<jar manifest="${cvs.dir}/${nbproject.path}/${nbproject.manifest}"
|
||||
destfile="${nbproject.dist.dir}/${nbproject.dist.file.name}">
|
||||
<fileset dir="${cvs.dir}/${nbproject.path}/build/classes">
|
||||
<include name="**/*.*"/>
|
||||
</fileset>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed prior to building the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-pre-build"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It must be overriden in derivative scripts, in order to implement custom
|
||||
functionality required for the correctly building the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-build" depends=".build"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed after building the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-post-build"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Release
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Releases the project to the registries server.
|
||||
|
||||
It is assumed that the project has already been built, but a dependency
|
||||
on the 'build' target is not defined, as it may be desirable to build
|
||||
once and then release several times to different registries servers.
|
||||
|
||||
This is an aggregation target, it does not contain any functionality, but
|
||||
defines dependencies on '-pre-release', '-release' and '-post-release'
|
||||
targets. The '-pre-release' and '-post-release' target are empty hooks,
|
||||
which allow derivative scripts to inject custom logic which will be
|
||||
executed prior to the release process or after it. The '-release' target
|
||||
contains the code which actually releases the project and should be
|
||||
overriden in the derivative scripts.
|
||||
-->
|
||||
<target name="release" depends="init,-pre-release,-release,-post-release"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed prior to releasing the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-pre-release"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It must be overriden in derivative scripts, in order to implement custom
|
||||
functionality required for the correctly releasing the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-release"/>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to inject custom logic which will be
|
||||
executed after releasing the project.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-post-release"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Default
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The default target.
|
||||
|
||||
Does nothing except printing the usage information.
|
||||
-->
|
||||
<target name="usage">
|
||||
<echo>
|
||||
This build script is a targets library and must not be used
|
||||
directly.
|
||||
</echo>
|
||||
</target>
|
||||
</project>
|
70
sdk/nbi/.common/engine.properties
Normal file
@ -0,0 +1,70 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
# whether to build native components or not; 'true'/'false'
|
||||
# * the engine has a bunch of native code dependencies, thus it is feasible to
|
||||
# rebuild them every time
|
||||
build.native=true
|
||||
|
||||
# whether to build the netbeans part of the project or not; 'true'/'false'
|
||||
# * essentially the engine IS a netbeans project, thus we should always build
|
||||
# it
|
||||
build.nbproject=true
|
||||
|
||||
# dummy value for the custom parameter; which will be passed to the netbeans
|
||||
# project build script; more sensible value is present in the base product
|
||||
# build script
|
||||
nb.custom.parameter=-Dtrue=true
|
||||
|
||||
# name of the distributive file for the netbeans project
|
||||
# * ${engine.dist.file.name} is expected to be defined in the derivative
|
||||
# instance build script
|
||||
nbproject.dist.file.name=${engine.dist.file.name}
|
||||
|
||||
# path to the engine's distributive file; the file at this path would be
|
||||
# considered the result of the build script and be copied to the distributives
|
||||
# directory
|
||||
nbproject.dist.file=${nbproject.dist.dir}/${nbproject.dist.file.name}
|
||||
|
||||
# names of the distributive files for the native jni libraries for the engine
|
||||
native.dist.file.windows=windows.dll
|
||||
native.dist.file.linux=linux.so
|
||||
native.dist.file.solaris-x86=solaris-x86.so
|
||||
native.dist.file.solaris-sparc=solaris-sparc.so
|
||||
native.dist.file.macosx=macosx.dylib
|
324
sdk/nbi/.common/engine.xml
Normal file
@ -0,0 +1,324 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the base build script for nbi engine.
|
||||
|
||||
It is not intended to be used directly, but to be imported into derivative
|
||||
implementaion scripts, which will provide properties' values that are
|
||||
specific the concrete engine implementation. The derivative scripts may also
|
||||
provide some additional functionality that is required by their respective
|
||||
engine implementations.
|
||||
|
||||
This script exposes five primary targets: 'init', 'clean', 'checkout',
|
||||
'build' and 'release'; as well as two aggregate targets: 'build-all',
|
||||
which tranlates into 'init', 'clean', 'checkout', 'build', and
|
||||
'release-all' - 'init', 'clean', 'checkout', 'build', 'release'. For the
|
||||
detailed description of the functionality of these targets, consult the
|
||||
corresponsing documentation.
|
||||
-->
|
||||
<project name="engine" default="usage" basedir=".">
|
||||
<!-- a default value for the ${common.dir} property, which allows the user
|
||||
to see the usage information is he calls this script directly and not
|
||||
via a derivative (which is the proper way to do this) -->
|
||||
<property name="common.dir" value="${basedir}"/>
|
||||
|
||||
<!-- import the common properties -->
|
||||
<property file="${common.dir}/common.properties"/>
|
||||
|
||||
<!-- import properties specific to the engine's build script -->
|
||||
<property file="${common.dir}/engine.properties"/>
|
||||
|
||||
<!-- import the common target library -->
|
||||
<import file="common.xml" optional="false"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Initialization
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Initializes the engine's build script.
|
||||
|
||||
This target overrides the '-init' target in common.xml, providing the
|
||||
custom functionality that is required for the engine's build script
|
||||
initialization.
|
||||
|
||||
In addition to the standard initialization routine, this target defines
|
||||
several custom ant tasks, which are specific to the engine's build
|
||||
script.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-init" depends=".init">
|
||||
<!-- define custom ant tasks -->
|
||||
<if property="release.to.server" value="true">
|
||||
<taskdef
|
||||
name="release-engine-server"
|
||||
classname="org.netbeans.installer.infra.build.ant.ReleaseEngine"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
</if>
|
||||
|
||||
<if property="release.to.server" value="false">
|
||||
<taskdef
|
||||
name="release-engine-filesystem"
|
||||
classname="org.netbeans.installer.infra.build.ant.registries.UpdateEngine"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Clean-up
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Cleans the current working directory and the distributives directory.
|
||||
|
||||
This target overrides the '-clean' target in common.xml, providing the
|
||||
custom functionality that is required for correctly cleaning the engine.
|
||||
|
||||
In addition to the standard behavior the engine distributive file is
|
||||
removed from the distributives directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-clean" depends=".clean">
|
||||
<!-- remove the engine's distributive file from the distributives
|
||||
directory -->
|
||||
<delete file="${dist.dir}/${engine.dist.file.name}"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Cleans the native components of the engine.
|
||||
|
||||
This target overrides the '.clean-native' target defined in common.xml,
|
||||
as the engine's native components slightly differ from the defaults.
|
||||
Besides cleaning the jni libraries, the engine also needs to clean the
|
||||
native launcher stubs.
|
||||
|
||||
This target is antcall'ed in a loop over the list of platforms from the
|
||||
'.clean' target in common.xml.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".clean-native" if="do.build.native">
|
||||
<antcall target=".clean-jni"/>
|
||||
<antcall target=".clean-launcher"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Cleans the native launcher stub for the given platform.
|
||||
|
||||
This target is antcall'ed as part of the call to the '.clean-native'
|
||||
target, and expects the ${platform} property to contain the code name of
|
||||
the platform for which the launcher should be built.
|
||||
|
||||
It simply removes the current launcher stub.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".clean-launcher" if="do.build.native">
|
||||
<!-- does nothing at the moment -->
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Check-out
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The functionality of the checkout procedure for the engine is indentical
|
||||
to the standard one, thus there is not need to override the '-checkout'
|
||||
target, whosew default implementation is present in common.xml.
|
||||
-->
|
||||
|
||||
<!-- ============================================================================
|
||||
Build
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Builds the engine and (optionally) its native components.
|
||||
|
||||
This target overrides the '-build' target in common.xml, providing the
|
||||
custom functionality that is required for correctly building the engine.
|
||||
|
||||
The build process consists of three steps: first, the native components
|
||||
of the engine (jni libraries and native launcher stubs) are built (if it
|
||||
is required), then the engine's netbeans project is compiled and
|
||||
packaged, last the engine jar file is digitally signed and copied to the
|
||||
distributives directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-build" depends=".build">
|
||||
<!-- copy the built binary to the distributives directory -->
|
||||
<copy file="${nbproject.dist.file}" todir="${dist.dir}"/>
|
||||
|
||||
<!-- digitally sign the built binary -->
|
||||
<if property="jarsigner.enabled" value="true">
|
||||
<signjar jar="${dist.dir}/${engine.dist.file.name}"
|
||||
keystore="${jarsigner.keystore}"
|
||||
storepass="${jarsigner.storepass}"
|
||||
alias="${jarsigner.alias}"
|
||||
maxmemory="${jarsigner.xmx}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the native components of the engine.
|
||||
|
||||
This target overrides the '.build-native' target defined in common.xml,
|
||||
as the engine's native components slightly differ from the defaults.
|
||||
Besides building the jni libraries, the engine also needs to build the
|
||||
native launcher stubs, which will later be used to create redistributable
|
||||
bundles.
|
||||
|
||||
This target is antcall'ed in a loop over the list of platforms from the
|
||||
'.build' target in common.xml.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-native" if="do.build.native">
|
||||
<antcall target=".build-jni"/>
|
||||
<antcall target=".build-launcher"/>
|
||||
<antcall target=".build-cleaner"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the native launcher stub for the given platform.
|
||||
|
||||
This target is antcall'ed as part of the call to the '.build-native'
|
||||
target, and expects the ${platform} property to contain the code name of
|
||||
the platform for which the launcher should be built.
|
||||
|
||||
It connects to the registered satellite machine for the current platform
|
||||
using the 'ssh' utility, checks out the launcher's sources and builds it.
|
||||
The built binary is then copied back to the host machine using 'scp'.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-launcher" if="do.build.native">
|
||||
<!-- does nothing at the moment -->
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the native cleaner for locked files for the given platform.
|
||||
|
||||
This target is antcall'ed as part of the call to the '.build-native'
|
||||
target, and expects the ${platform} property to contain the code name of
|
||||
the platform for which the launcher should be built.
|
||||
|
||||
It connects to the registered satellite machine for the current platform
|
||||
using the 'ssh' utility, checks out the launcher's sources and builds it.
|
||||
The built binary is then copied back to the host machine using 'scp'.
|
||||
|
||||
This target is only executed if the the ${build.native} property was set
|
||||
to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name=".build-cleaner" if="do.build.native">
|
||||
<!-- does nothing at the moment -->
|
||||
</target>
|
||||
|
||||
|
||||
<!-- ============================================================================
|
||||
Release
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Releases the engine to the registries server.
|
||||
|
||||
This target overrides the '-release' target in common.xml, providing the
|
||||
custom functionality that is required for correctly releasing the engine.
|
||||
|
||||
It is assumed that the engine has already been built, but a dependency
|
||||
on the 'build' target is not defined, as it may be desirable to build
|
||||
once and then release several times to different registries servers.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-release">
|
||||
<if property="release.to.server" value="true">
|
||||
<echo message="Release URL is ${release.url}"/>
|
||||
<echo message="Archive is ${dist.dir}/${engine.dist.file.name}"/>
|
||||
|
||||
<release-engine-server
|
||||
url="${release.url}"
|
||||
archive="${dist.dir}/${engine.dist.file.name}"/>
|
||||
</if>
|
||||
<if property="release.to.server" value="false">
|
||||
<echo message="Registry root is ${release.registry.dir}"/>
|
||||
<echo message="Archive is ${dist.dir}/${engine.dist.file.name}"/>
|
||||
|
||||
<release-engine-filesystem
|
||||
root="${release.registry.dir}"
|
||||
archive="${dist.dir}/${engine.dist.file.name}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Default
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The default target.
|
||||
|
||||
Does nothing except printing the usage information.
|
||||
-->
|
||||
<target name="usage">
|
||||
<echo>
|
||||
This is the base build script for nbi engine and is not intended to
|
||||
be called directly. In order to create a derivative implementation
|
||||
script, see
|
||||
${basedir}/.templates/engine-template.xml
|
||||
</echo>
|
||||
</target>
|
||||
</project>
|
69
sdk/nbi/.common/group.properties
Normal file
@ -0,0 +1,69 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
# groups do not normally have any native components, thus there is no need to
|
||||
# attempt to build anything native
|
||||
build.native=false
|
||||
|
||||
# groups do not normally have any netbeans projects, thus there is no need to
|
||||
# attempt to build any nbproject
|
||||
build.nbproject=false
|
||||
|
||||
# various directories and file paths that will be used for packaging the
|
||||
# group
|
||||
package.dir=${work.dir}/package
|
||||
|
||||
package.descriptor.path=registry.xml
|
||||
|
||||
group.path=groups/${group.uid}
|
||||
group.icon.path=${group.path}/icon.png
|
||||
|
||||
group.dist.file.name=${group.uid}.jar
|
||||
|
||||
# path to the group's icon; the contents of this file will be copied to the
|
||||
# file identified by ${group.icon.file}
|
||||
group.icon=${cvs.dir}/data/icon.png
|
||||
|
||||
# path to the group's localizing bundle; the bundle is expected to contain
|
||||
# two properties: 'group.display.name' and 'group.description', which will be
|
||||
# used in creating the registry entry for this group
|
||||
group.bundle=${cvs.dir}/data/Bundle
|
||||
|
||||
# uri of the group's icon, which will appear in the registry
|
||||
group.icon.uri=resource:${group.icon.path}
|
283
sdk/nbi/.common/group.xml
Normal file
@ -0,0 +1,283 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the base build script for an nbi group package.
|
||||
|
||||
It is not intended to be used directly, but to be imported into derivative
|
||||
implementation scripts, which will provide properties' values that are
|
||||
specific the concrete group implementation. The derivative scripts may also
|
||||
provide some additional functionality that is required by their respective
|
||||
group implementations.
|
||||
|
||||
This script exposes five primary targets: 'init', 'clean', 'checkout',
|
||||
'build' and 'release'; as well as two aggregate targets: 'build-all',
|
||||
which tranlates into 'init', 'clean', 'checkout', 'build', and
|
||||
'release-all' - 'init', 'clean', 'checkout', 'build', 'release'. For the
|
||||
detailed description of the functionality of these targets, consult the
|
||||
corresponding documentation.
|
||||
-->
|
||||
<project name="group" default="usage" basedir=".">
|
||||
<!-- a default value for the ${common.dir} property, which allows the user
|
||||
to see the usage information is he calls this script directly and not
|
||||
via a derivative (which is the proper way to do this) -->
|
||||
<property name="common.dir" value="${basedir}"/>
|
||||
|
||||
<!-- import the common properties -->
|
||||
<property file="${common.dir}/common.properties"/>
|
||||
|
||||
<!-- import properties specific to the group package's build script -->
|
||||
<property file="${common.dir}/group.properties"/>
|
||||
|
||||
<!-- import the common target library -->
|
||||
<import file="common.xml" optional="false"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Initialization
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Initializes the group package's build script.
|
||||
|
||||
This target overrides the '-init' target in common.xml, providing the
|
||||
custom functionality that is required for the group package's build
|
||||
script initialization.
|
||||
|
||||
In addition to the standard initialization routine, this target defines
|
||||
several custom ant tasks, which are specific to the group package's build
|
||||
script.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-init" depends=".init">
|
||||
<!-- define custom ant tasks -->
|
||||
<taskdef
|
||||
name="sizeof"
|
||||
classname="org.netbeans.installer.infra.build.ant.SizeOf"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="md5"
|
||||
classname="org.netbeans.installer.infra.build.ant.Md5"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="load-locales"
|
||||
classname="org.netbeans.installer.infra.build.ant.LoadLocales"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="group-descriptor"
|
||||
classname="org.netbeans.installer.infra.build.ant.GroupDescriptor"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
|
||||
<if property="release.to.server" value="true">
|
||||
<taskdef
|
||||
name="release-package-server"
|
||||
classname="org.netbeans.installer.infra.build.ant.ReleasePackage"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
</if>
|
||||
|
||||
<if property="release.to.server" value="false">
|
||||
<taskdef
|
||||
name="release-package-filesystem"
|
||||
classname="org.netbeans.installer.infra.build.ant.registries.AddPackage"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Clean-up
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Cleans the current working directory and the distributives directory.
|
||||
|
||||
This target overrides the '-clean' target in common.xml, providing the
|
||||
custom functionality that is required for correctly cleaning the group
|
||||
package.
|
||||
|
||||
In addition to the standard behavior the group package distributive file
|
||||
is removed from the distributives directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-clean" depends=".clean">
|
||||
<!-- remove the group's distributive file from the distributives
|
||||
directory -->
|
||||
<delete file="${dist.dir}/${group.dist.file.name}"/>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Check-out
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The functionality of the checkout procedure for the group package is
|
||||
indentical to the standard one, thus there is not need to override the
|
||||
'-checkout' target, whosew default implementation is present in
|
||||
common.xml.
|
||||
-->
|
||||
|
||||
<!-- ============================================================================
|
||||
Build
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Builds the group package.
|
||||
|
||||
This target overrides the '-build' target in common.xml, providing the
|
||||
custom functionality that is required for correctly building the group
|
||||
package.
|
||||
|
||||
The build process for the grup package consists of four steps.
|
||||
1) The group's icon is copied from its location to the group's package
|
||||
directory structure and some metadata is calculated
|
||||
|
||||
2) The group's localizing bundle is loaded and the group package
|
||||
descriptor is generated
|
||||
|
||||
3) The manifest for the group package is generated
|
||||
|
||||
4) The package directory structure is jarred, digitally signed and moved
|
||||
to the distributives directory
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-build" depends=".build">
|
||||
<!-- copy the group's icon to the soon-to-be package directory
|
||||
structure and calculate some metadata for it -->
|
||||
<copy file="${group.icon}"
|
||||
tofile="${package.dir}/${group.icon.path}"/>
|
||||
<sizeof file="${package.dir}/${group.icon.path}"
|
||||
property="group.icon.size"/>
|
||||
<md5 file="${package.dir}/${group.icon.path}"
|
||||
property="group.icon.md5"/>
|
||||
<set
|
||||
property="group.icon.correct.uri"
|
||||
value="${group.icon.uri}"/>
|
||||
|
||||
<!-- load the group's localizing bundle and store the locales list to
|
||||
${group.locales.list} -->
|
||||
<load-locales basename="${group.bundle}" list="group.locales.list"/>
|
||||
|
||||
<!-- generate the group package descriptor -->
|
||||
<group-descriptor file="${package.dir}/${package.descriptor.path}"/>
|
||||
|
||||
<!-- create the package jar file and sign it -->
|
||||
<jar basedir="${package.dir}"
|
||||
destfile="${work.dir}/${group.dist.file.name}"
|
||||
compress="true">
|
||||
<manifest>
|
||||
<attribute
|
||||
name="Product-Descriptor"
|
||||
value="${package.descriptor.path}"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
|
||||
<!-- copy the distributive to the distributives directory -->
|
||||
<move file="${work.dir}/${group.dist.file.name}"
|
||||
todir="${dist.dir}"/>
|
||||
<if property="jarsigner.enabled" value="true">
|
||||
<signjar jar="${dist.dir}/${group.dist.file.name}"
|
||||
keystore="${jarsigner.keystore}"
|
||||
storepass="${jarsigner.storepass}"
|
||||
alias="${jarsigner.alias}"
|
||||
maxmemory="${jarsigner.xmx}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Release
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Releases the group package to the registries server.
|
||||
|
||||
This target overrides the '-release' target in common.xml, providing the
|
||||
custom functionality that is required for correctly releasing the group
|
||||
package.
|
||||
|
||||
It is assumed that the group package has already been built, but a
|
||||
dependency on the 'build' target is not defined, as it may be desirable
|
||||
to build once and then release several times to different registries
|
||||
servers.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-release">
|
||||
<if property="release.to.server" value="true">
|
||||
<echo message="Release URL is ${release.url}"/>
|
||||
<echo message="Archive is ${dist.dir}/${group.dist.file.name}"/>
|
||||
|
||||
<release-package-server
|
||||
url="${release.url}"
|
||||
registry="${release.registry}"
|
||||
uid="${release.parent.uid}"
|
||||
version="${release.parent.version}"
|
||||
archive="${dist.dir}/${group.dist.file.name}"/>
|
||||
</if>
|
||||
<if property="release.to.server" value="false">
|
||||
<echo message="Registry root is ${release.registry.dir}"/>
|
||||
<echo message="Archive is ${dist.dir}/${group.dist.file.name}"/>
|
||||
|
||||
<release-package-filesystem
|
||||
root="${release.registry.dir}"
|
||||
uid="${release.parent.uid}"
|
||||
version="${release.parent.version}"
|
||||
archive="${dist.dir}/${group.dist.file.name}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Default
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The default target.
|
||||
|
||||
Does nothing except printing the usage information.
|
||||
-->
|
||||
<target name="usage">
|
||||
<echo>
|
||||
This is the base build script for nbi group package and is not
|
||||
intended to be called directly. In order to create a derivative
|
||||
implementation script, see
|
||||
${basedir}/.templates/group-template.xml
|
||||
</echo>
|
||||
</target>
|
||||
</project>
|
111
sdk/nbi/.common/product.properties
Normal file
@ -0,0 +1,111 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
# whether to build native components or not; 'true'/'false'
|
||||
# * normally a product does not have any native components, thus
|
||||
# ${build.native} should be 'false' in most of the cases
|
||||
build.native=false
|
||||
|
||||
# whether to build the netbeans part of the project or not; 'true'/'false'
|
||||
build.nbproject=true
|
||||
|
||||
nbproject.dist.file.name=${product.uid},logic.jar
|
||||
|
||||
# whether to build engine or not; 'true'/'false'
|
||||
build.engine=true
|
||||
|
||||
# whether to repackage the installation data or not; 'true'/'false'/'default'
|
||||
# * if set to 'false' the data will be taken as it is (i.e. will be considered
|
||||
# as already packaged)
|
||||
# * if set to 'true' the data will be downloaded and packaged
|
||||
# * if set to 'default' packaged data will be taken if it's available,
|
||||
# otherwise raw data will be downloaded and packaged
|
||||
package.data=default
|
||||
|
||||
# whether the packaged data should be released (copied) to the local packaged
|
||||
# data repository; 'true'/'false'
|
||||
release.packaged.data=true
|
||||
|
||||
# various properties controlling the engine's build process
|
||||
engine.dir=${common.dir}/../engine
|
||||
engine.work.dir=${work.dir}/.engine
|
||||
engine.dist.dir=${dist.dir}/.engine
|
||||
engine.dist.file.name=engine.jar
|
||||
|
||||
# path to the distributive file of the engine; it will be used as the classpath
|
||||
# for building the product's netbeans project
|
||||
# * if the ${build.engine} has been set to 'false', make sure that
|
||||
# ${engine.dist.file} points to a precompiled engine
|
||||
engine.dist.file=${engine.dist.dir}/${engine.dist.file.name}
|
||||
|
||||
downloads.cache.dir=${packaged.data.dir}/.raw
|
||||
|
||||
# various paths and file names that will be used for packaging the
|
||||
# product
|
||||
package.dir=${work.dir}/package
|
||||
|
||||
package.descriptor.path=registry.xml
|
||||
|
||||
product.path=products/${product.uid}/${product.version}/${product.platforms}
|
||||
product.logic.path=${product.path}/logic
|
||||
product.data.path=${product.path}/data
|
||||
product.icon.path=${product.path}/icon.png
|
||||
|
||||
product.icon.uri=resource:${product.icon.path}
|
||||
|
||||
product.dist.file.name=${product.uid},${product.version},${product.platforms}.jar
|
||||
|
||||
# name of the product's configuration logic jar with index ${i}
|
||||
product.logic.file.name=logic,${i}.jar
|
||||
product.data.file.name=data,${i}.jar
|
||||
|
||||
# list of the locally cached pre-packaged data files
|
||||
# * the length of the list equals to ${product.data.length}
|
||||
# * ${packaged.data.dir} is the path to the local packaged data repository and
|
||||
# is environment specific; it is expected to be passed in via the environment
|
||||
# properties
|
||||
product.packaged.data.file=${packaged.data.dir}/${product.uid},${product.version},${product.platforms},${i}.jar
|
||||
product.packaged.data.properties.file=${packaged.data.dir}/${product.uid},${product.version},${product.platforms},${i}.jar.properties
|
||||
|
||||
# product icon and the localizing bundle, which is expected to contain
|
||||
# display names and descriptions for all locales, supported by the product
|
||||
# * these are file paths as opposed to uris for configuration logic and
|
||||
# installation data
|
||||
product.icon=${cvs.dir}/data/icon.png
|
||||
product.bundle=${cvs.dir}/data/Bundle
|
746
sdk/nbi/.common/product.xml
Normal file
@ -0,0 +1,746 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the base build script for an nbi product package.
|
||||
|
||||
It is not intended to be used directly, but to be imported into derivative
|
||||
implementation scripts, which will provide properties' values that are
|
||||
specific the concrete product implementation. The derivative scripts may also
|
||||
provide some additional functionality that is required by their respective
|
||||
product implementations.
|
||||
|
||||
This script exposes five primary targets: 'init', 'clean', 'checkout',
|
||||
'build' and 'release'; as well as two aggregate targets: 'build-all',
|
||||
which tranlates into 'init', 'clean', 'checkout', 'build', and
|
||||
'release-all' - 'init', 'clean', 'checkout', 'build', 'release'. For the
|
||||
detailed description of the functionality of these targets, consult the
|
||||
corresponding documentation.
|
||||
-->
|
||||
<project name="product" default="usage" basedir=".">
|
||||
<!-- a default value for the ${common.dir} property, which allows the user
|
||||
to see the usage information is he calls this script directly and not
|
||||
via a derivative (which is the proper way to do this) -->
|
||||
<property name="common.dir" value="${basedir}"/>
|
||||
|
||||
<!-- import the common properties -->
|
||||
<property file="${common.dir}/common.properties"/>
|
||||
|
||||
<!-- import properties specific to the product package's build script -->
|
||||
<property file="${common.dir}/product.properties"/>
|
||||
|
||||
<!-- import the common target library -->
|
||||
<import file="common.xml" optional="false"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Initialization
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Initializes the product package's build script.
|
||||
|
||||
This target overrides the '-init' target in common.xml, providing the
|
||||
custom functionality that is required for the product package's build
|
||||
script initialization.
|
||||
|
||||
In addition to the standard initialization routine, this target defines
|
||||
several custom ant tasks, which are specific to the product package's build
|
||||
script.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-init" depends=".init">
|
||||
<!-- define custom ant tasks -->
|
||||
<taskdef
|
||||
name="sizeof"
|
||||
classname="org.netbeans.installer.infra.build.ant.SizeOf"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="md5"
|
||||
classname="org.netbeans.installer.infra.build.ant.Md5"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="sum"
|
||||
classname="org.netbeans.installer.infra.build.ant.Sum"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="package"
|
||||
classname="org.netbeans.installer.infra.build.ant.Package"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="load-locales"
|
||||
classname="org.netbeans.installer.infra.build.ant.LoadLocales"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="product-descriptor"
|
||||
classname="org.netbeans.installer.infra.build.ant.ProductDescriptor"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="absolutize"
|
||||
classname="org.netbeans.installer.infra.build.ant.Absolutize"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="uri-to-path"
|
||||
classname="org.netbeans.installer.infra.build.ant.UriToPath"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="n-unzip"
|
||||
classname="org.netbeans.installer.infra.build.ant.NativeUnzip"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
<taskdef
|
||||
name="n-untar"
|
||||
classname="org.netbeans.installer.infra.build.ant.NativeUntar"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
|
||||
<if property="release.to.server" value="true">
|
||||
<taskdef
|
||||
name="release-package-server"
|
||||
classname="org.netbeans.installer.infra.build.ant.ReleasePackage"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
</if>
|
||||
|
||||
<if property="release.to.server" value="false">
|
||||
<taskdef
|
||||
name="release-package-filesystem"
|
||||
classname="org.netbeans.installer.infra.build.ant.registries.AddPackage"
|
||||
classpath="${custom.tasks.cls}"/>
|
||||
</if>
|
||||
|
||||
<!-- check whether the engine should be built -->
|
||||
<condition property="do.build.engine">
|
||||
<equals arg1="${build.engine}" arg2="true"/>
|
||||
</condition>
|
||||
|
||||
<!-- make the engine-related paths absolute -->
|
||||
<absolutize property="engine.work.dir"/>
|
||||
<absolutize property="engine.dist.dir"/>
|
||||
|
||||
<absolutize property="engine.dist.file"/>
|
||||
|
||||
<!-- define the javac.classpath for the netbeans project -->
|
||||
<property
|
||||
name="nb.custom.parameter"
|
||||
value="-Djavac.classpath=${engine.dist.file}"/>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Clean-up
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Cleans the current working directory and the distributives directory.
|
||||
|
||||
This target overrides the '-clean' target in common.xml, providing the
|
||||
custom functionality that is required for correctly cleaning the product
|
||||
package.
|
||||
|
||||
In addition to the standard behavior the product package distributive file
|
||||
is removed from the distributives directory.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-clean" depends="-clean-engine,.clean">
|
||||
<!-- remove the product's distributive file from the distributives
|
||||
directory -->
|
||||
<delete file="${dist.dir}/${product.dist.file.name}"/>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Cleans the engine.
|
||||
|
||||
It runs the 'clean' target on the engine's build script.
|
||||
|
||||
This target is only executed if the the ${build.engine} property was
|
||||
set to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-clean-engine" depends="init" if="do.build.engine">
|
||||
<exec executable="${ant.executable}"
|
||||
dir="${engine.dir}"
|
||||
failonerror="false">
|
||||
<env key="JAVA_HOME" value="${java.home}"/>
|
||||
<arg value="clean"/>
|
||||
|
||||
<arg value="-Dwork.dir=${engine.work.dir}"/>
|
||||
<arg value="-Ddist.dir=${engine.dist.dir}"/>
|
||||
|
||||
<arg value="-Dbuild.native=false"/>
|
||||
|
||||
<arg value="-Ddont.build.custom.tasks=true"/>
|
||||
<arg value="-Dcustom.tasks.cls=${custom.tasks.cls}"/>
|
||||
|
||||
<arg value="-Dengine.dist.file.name=${engine.dist.file.name}"/>
|
||||
|
||||
<arg value="-Denvironment.properties=${environment.properties}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Check-out
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The functionality of the checkout procedure for the product package is
|
||||
indentical to the standard one, thus there is not need to override the
|
||||
'-checkout' target, whosew default implementation is present in
|
||||
common.xml.
|
||||
-->
|
||||
|
||||
<!-- ============================================================================
|
||||
Build
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Builds the product package.
|
||||
|
||||
This target overrides the '-build' target in common.xml, providing the
|
||||
custom functionality that is required for correctly building the product
|
||||
package.
|
||||
|
||||
The build process for the grup package consists of five steps.
|
||||
1) The search-and-replace is run over the product's sources, based on the
|
||||
[token] => [value] pairs defined in ${product.params.N.token} and
|
||||
${product.params.N.value}
|
||||
|
||||
2) The product's icon is copied from its location to the product's package
|
||||
directory structure and some metadata is calculated
|
||||
|
||||
3) The product's localizing bundle is loaded and the product package
|
||||
descriptor is generated
|
||||
|
||||
4) The manifest for the product package is generated
|
||||
|
||||
5) The package directory structure is jarred, digitally signed and moved
|
||||
to the distributives directory
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-build" depends="-build-engine,.build">
|
||||
<!-- init the required disk space -->
|
||||
<set property="product.disk.space"
|
||||
value="${product.disk.space.modificator}"/>
|
||||
|
||||
<!-- init several shorthands -->
|
||||
<set
|
||||
property="product.logic.dir"
|
||||
value="${package.dir}/${product.logic.path}"/>
|
||||
<set
|
||||
property="product.data.dir"
|
||||
value="${package.dir}/${product.data.path}"/>
|
||||
|
||||
<!-- some necessary mkdirs -->
|
||||
<mkdir dir="${packaged.data.dir}"/>
|
||||
<mkdir dir="${downloads.cache.dir}"/>
|
||||
<mkdir dir="${product.logic.dir}"/>
|
||||
<mkdir dir="${product.data.dir}"/>
|
||||
|
||||
<!-- fetch the configuration logic jars; the first jar is handled
|
||||
separately, if the the ${build.nbproject} has been set to true -
|
||||
we don't need to fetch it, as we ca just copy -->
|
||||
<if property="build.nbproject" value="true">
|
||||
<set
|
||||
property="i"
|
||||
value="1"/>
|
||||
<set
|
||||
property="current.file"
|
||||
value="${product.logic.dir}/${product.logic.file.name}"/>
|
||||
|
||||
<copy
|
||||
file="${nbproject.dist.dir}/${nbproject.dist.file.name}"
|
||||
tofile="${current.file}"/>
|
||||
|
||||
<!-- sign the current jar file -->
|
||||
<if property="jarsigner.enabled" value="true">
|
||||
<signjar jar="${current.file}"
|
||||
keystore="${jarsigner.keystore}"
|
||||
storepass="${jarsigner.storepass}"
|
||||
alias="${jarsigner.alias}"
|
||||
maxmemory="${jarsigner.xmx}"/>
|
||||
</if>
|
||||
|
||||
<!-- calculate the metadata for the file -->
|
||||
<sizeof file="${current.file}" property="product.logic.${i}.size"/>
|
||||
<md5 file="${current.file}" property="product.logic.${i}.md5"/>
|
||||
<set property="product.logic.${i}.correct.uri"
|
||||
value="resource:${product.logic.path}/${product.logic.file.name}"/>
|
||||
|
||||
<property
|
||||
name="start.index"
|
||||
value="2"/>
|
||||
</if>
|
||||
<property name="start.index" value="1"/>
|
||||
|
||||
<for-each from="${start.index}"
|
||||
to="${product.logic.length}"
|
||||
property="i">
|
||||
<!-- set the properties relevant to the current file -->
|
||||
|
||||
<set
|
||||
property="current.file"
|
||||
value="${product.logic.dir}/${product.logic.file.name}"/>
|
||||
|
||||
<condition property="product.logic.${i}.is.local" value="true" else="false">
|
||||
<isset property="product.logic.${i}.path"/>
|
||||
</condition>
|
||||
|
||||
<if property="product.logic.${i}.is.local" value="false">
|
||||
<set
|
||||
property="current.uri"
|
||||
source="product.logic.${i}.uri"/>
|
||||
<get
|
||||
src="${current.uri}"
|
||||
dest="${current.file}"
|
||||
usetimestamp="true"/>
|
||||
</if>
|
||||
|
||||
<if property="product.logic.${i}.is.local" value="true">
|
||||
<set
|
||||
property="current.path"
|
||||
source="product.logic.${i}.path"/>
|
||||
<copy
|
||||
file="${current.path}"
|
||||
tofile="${current.file}"
|
||||
preservelastmodified="true"/>
|
||||
</if>
|
||||
|
||||
<!-- sign the current jar file -->
|
||||
<if property="jarsigner.enabled" value="true">
|
||||
<signjar
|
||||
jar="${current.file}"
|
||||
keystore="${jarsigner.keystore}"
|
||||
storepass="${jarsigner.storepass}"
|
||||
alias="${jarsigner.alias}"
|
||||
maxmemory="${jarsigner.xmx}"/>
|
||||
</if>
|
||||
|
||||
<!-- calculate the metadata for the file -->
|
||||
<sizeof
|
||||
file="${current.file}"
|
||||
property="product.logic.${i}.size"/>
|
||||
<md5
|
||||
file="${current.file}"
|
||||
property="product.logic.${i}.md5"/>
|
||||
<set
|
||||
property="product.logic.${i}.correct.uri"
|
||||
value="resource:${product.logic.path}/${product.logic.file.name}"/>
|
||||
</for-each>
|
||||
|
||||
<!-- fetch and repackage installation data zips -->
|
||||
<set property="current.product.data.length"
|
||||
value="${product.data.length}"/>
|
||||
|
||||
<for-each from="1" to="${current.product.data.length}" property="i">
|
||||
<!-- define the path to the current working file and the temporary
|
||||
directory which should be used for repackaging -->
|
||||
<set
|
||||
property="current.zip"
|
||||
value="${product.data.${i}.zip}"/>
|
||||
|
||||
<condition property="product.tar.${i}.is.set" value="true" else="false">
|
||||
<isset property="product.data.${i}.tar"/>
|
||||
</condition>
|
||||
|
||||
<if property="product.tar.${i}.is.set" value="true">
|
||||
<set
|
||||
property="current.tar"
|
||||
value="${product.data.${i}.tar}"/>
|
||||
</if>
|
||||
<if property="product.tar.${i}.is.set" value="false">
|
||||
<set
|
||||
property="current.tar"
|
||||
value="false"/>
|
||||
</if>
|
||||
|
||||
<set
|
||||
property="current.file"
|
||||
value="${product.data.dir}/${product.data.file.name}"/>
|
||||
<set
|
||||
property="current.temp.dir"
|
||||
value="${work.dir}/temp"/>
|
||||
|
||||
<set
|
||||
property="current.packaged.data.file"
|
||||
value="${product.packaged.data.file}"/>
|
||||
<set
|
||||
property="current.packaged.data.properties.file"
|
||||
value="${product.packaged.data.properties.file}"/>
|
||||
|
||||
<condition property="do.package.data.${i}" value="true">
|
||||
<or>
|
||||
<equals arg1="${package.data}" arg2="true"/>
|
||||
<and>
|
||||
<equals
|
||||
arg1="${package.data}"
|
||||
arg2="default"/>
|
||||
<not>
|
||||
<and>
|
||||
<available
|
||||
file="${current.packaged.data.file}"/>
|
||||
<available
|
||||
file="${current.packaged.data.properties.file}"/>
|
||||
</and>
|
||||
</not>
|
||||
</and>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="do.package.data.${i}" value="false">
|
||||
<or>
|
||||
<equals arg1="${package.data}" arg2="false"/>
|
||||
<and>
|
||||
<equals
|
||||
arg1="${package.data}"
|
||||
arg2="default"/>
|
||||
<available
|
||||
file="${current.packaged.data.file}"/>
|
||||
<available
|
||||
file="${current.packaged.data.properties.file}"/>
|
||||
</and>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<!-- if the data needs to be packaged -->
|
||||
<if property="do.package.data.${i}" value="true">
|
||||
|
||||
<condition property="product.data.${i}.is.local" value="true" else="false">
|
||||
<isset property="product.data.${i}.path"/>
|
||||
</condition>
|
||||
|
||||
<if property="product.data.${i}.is.local" value="false">
|
||||
<set
|
||||
property="current.uri"
|
||||
source="product.data.${i}.uri"/>
|
||||
<uri-to-path
|
||||
property="current.downloaded.path"
|
||||
uri="${current.uri}"/>
|
||||
<set
|
||||
property="current.download"
|
||||
value="${downloads.cache.dir}/${current.downloaded.path}"/>
|
||||
|
||||
<dirname
|
||||
property="current.download.${i}.dir"
|
||||
file="${current.download}"/>
|
||||
<set
|
||||
property="current.download.dir"
|
||||
source="current.download.${i}.dir"/>
|
||||
<mkdir
|
||||
dir="${current.download.dir}"/>
|
||||
|
||||
<get
|
||||
src="${current.uri}"
|
||||
dest="${current.download}"
|
||||
usetimestamp="true"/>
|
||||
</if>
|
||||
|
||||
<if property="product.data.${i}.is.local" value="true">
|
||||
<set property="current.download"
|
||||
source="product.data.${i}.path"/>
|
||||
</if>
|
||||
|
||||
<!-- extract the zip file to a temporary directory, if it's a
|
||||
zip file, or simply move it there if it is the data we
|
||||
need -->
|
||||
<mkdir
|
||||
dir="${current.temp.dir}"/>
|
||||
<if property="current.zip" value="true">
|
||||
<n-unzip
|
||||
src="${current.download}"
|
||||
dest="${current.temp.dir}"/>
|
||||
</if>
|
||||
|
||||
<if property="current.tar" value="true">
|
||||
<n-untar
|
||||
src="${current.download}"
|
||||
dest="${current.temp.dir}"/>
|
||||
</if>
|
||||
|
||||
<condition property="do.copy.data.${i}" value="true">
|
||||
<and>
|
||||
<not>
|
||||
<equals arg1="${current.zip}" arg2="true"/>
|
||||
</not>
|
||||
<not>
|
||||
<equals arg1="${current.tar}" arg2="true"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
|
||||
<if property="do.copy.data.${i}" value="true">
|
||||
<copy file="${current.download}"
|
||||
todir="${current.temp.dir}"/>
|
||||
</if>
|
||||
|
||||
<!-- call the pre-package hook, to allow derivative scripts to
|
||||
perform any required operations on the data if they
|
||||
like -->
|
||||
<antcall target="-pre-package">
|
||||
<param name="i" value="${i}"/>
|
||||
<param name="data.directory" value="${current.temp.dir}"/>
|
||||
</antcall>
|
||||
|
||||
<!-- measure its size and add it to the required disk space -->
|
||||
<sizeof
|
||||
file="${current.temp.dir}"
|
||||
property="current.disk.space"/>
|
||||
<sum
|
||||
arg1="${product.disk.space}"
|
||||
arg2="${current.disk.space}"
|
||||
property="product.disk.space"/>
|
||||
|
||||
<!-- repackage (pack200, jar) and build files list -->
|
||||
<package
|
||||
directory="${current.temp.dir}"
|
||||
file="${current.file}"/>
|
||||
|
||||
<!-- if we need to release the packaged data - copy the file
|
||||
and the original size to the specified directory -->
|
||||
<if property="release.packaged.data" value="true">
|
||||
<mkdir
|
||||
dir="${packaged.data.dir}"/>
|
||||
|
||||
<copy file="${current.file}"
|
||||
tofile="${current.packaged.data.file}"/>
|
||||
<echo
|
||||
message="product.data.${i}.size=${current.disk.space}"
|
||||
file="${current.packaged.data.properties.file}"/>
|
||||
</if>
|
||||
|
||||
<!-- remove the temporary directory -->
|
||||
<delete dir="${current.temp.dir}"/>
|
||||
</if>
|
||||
|
||||
<!-- if the data does not need to be packaged -->
|
||||
<if property="do.package.data.${i}" value="false">
|
||||
<copy
|
||||
file="${current.packaged.data.file}"
|
||||
tofile="${current.file}"/>
|
||||
|
||||
<!-- fetch the real size data -->
|
||||
<property
|
||||
file="${current.packaged.data.properties.file}"/>
|
||||
|
||||
<set
|
||||
property="current.disk.space"
|
||||
source="product.data.${i}.size"/>
|
||||
<sum
|
||||
arg1="${product.disk.space}"
|
||||
arg2="${current.disk.space}"
|
||||
property="product.disk.space"/>
|
||||
</if>
|
||||
|
||||
<!-- sign the resulting jar file -->
|
||||
<if property="jarsigner.enabled" value="true">
|
||||
<signjar
|
||||
jar="${current.file}"
|
||||
keystore="${jarsigner.keystore}"
|
||||
storepass="${jarsigner.storepass}"
|
||||
alias="${jarsigner.alias}"
|
||||
maxmemory="${jarsigner.xmx}"/>
|
||||
</if>
|
||||
|
||||
<!-- calculate the metadata for the file -->
|
||||
<sizeof
|
||||
file="${current.file}"
|
||||
property="product.data.${i}.size"/>
|
||||
<md5
|
||||
file="${current.file}"
|
||||
property="product.data.${i}.md5"/>
|
||||
<set
|
||||
property="product.data.${i}.correct.uri"
|
||||
value="resource:${product.data.path}/${product.data.file.name}"/>
|
||||
</for-each>
|
||||
|
||||
<!-- fetch the icon -->
|
||||
<set
|
||||
property="product.icon.file"
|
||||
value="${package.dir}/${product.icon.path}"/>
|
||||
|
||||
<copy
|
||||
file="${product.icon}"
|
||||
tofile="${product.icon.file}"/>
|
||||
<sizeof
|
||||
file="${product.icon.file}"
|
||||
property="product.icon.size"/>
|
||||
<md5
|
||||
file="${product.icon.file}"
|
||||
property="product.icon.md5"/>
|
||||
<set
|
||||
property="product.icon.correct.uri"
|
||||
value="${product.icon.uri}"/>
|
||||
|
||||
<!-- load product's localizing bundle and generate descriptor -->
|
||||
<load-locales
|
||||
basename="${product.bundle}"
|
||||
list="product.locales.list"/>
|
||||
<product-descriptor
|
||||
file="${package.dir}/${package.descriptor.path}"/>
|
||||
|
||||
<!-- create the distributive jar file and sign it -->
|
||||
<set
|
||||
property="product.dist.file"
|
||||
value="${dist.dir}/${product.dist.file.name}"/>
|
||||
|
||||
<jar basedir="${package.dir}"
|
||||
destfile="${product.dist.file}"
|
||||
compress="true">
|
||||
<manifest>
|
||||
<attribute
|
||||
name="Product-Descriptor"
|
||||
value="${package.descriptor.path}"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
<if property="jarsigner.enabled" value="true">
|
||||
<signjar
|
||||
jar="${product.dist.file}"
|
||||
keystore="${jarsigner.keystore}"
|
||||
storepass="${jarsigner.storepass}"
|
||||
alias="${jarsigner.alias}"
|
||||
maxmemory="${jarsigner.xmx}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Builds the engine.
|
||||
|
||||
It runs the 'build-all' target on the engine's build script.
|
||||
|
||||
This target is only executed if the the ${build.engine} property was
|
||||
set to 'true'.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-build-engine" depends="init" if="do.build.engine">
|
||||
<exec executable="${ant.executable}"
|
||||
dir="${engine.dir}"
|
||||
failonerror="true"
|
||||
failifexecutionfails="true">
|
||||
<arg value="checkout,build"/>
|
||||
|
||||
<arg value="-Dwork.dir=${engine.work.dir}"/>
|
||||
<arg value="-Ddist.dir=${engine.dist.dir}"/>
|
||||
|
||||
<arg value="-Dbuild.native=false"/>
|
||||
|
||||
<arg value="-Ddont.build.custom.tasks=true"/>
|
||||
<arg value="-Dcustom.tasks.cls=${custom.tasks.cls}"/>
|
||||
|
||||
<arg value="-Dengine.dist.file.name=${engine.dist.file.name}"/>
|
||||
|
||||
<arg value="-Denvironment.properties=${environment.properties}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
An empty hook.
|
||||
|
||||
It allows derivative scripts to perform arbitrary manipulations on the
|
||||
data prior to it getting packaged. E.g. the netbeans ide build script
|
||||
might want to remove the 'netbeans' directory and move its contents up one
|
||||
level.
|
||||
|
||||
A special property - 'data.directory' will be set pointing to the
|
||||
unzipped data.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-pre-package"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Release
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
Releases the product package to the registries server.
|
||||
|
||||
This target overrides the '-release' target in common.xml, providing the
|
||||
custom functionality that is required for correctly releasing the product
|
||||
package.
|
||||
|
||||
It is assumed that the product package has already been built, but a
|
||||
dependency on the 'build' target is not defined, as it may be desirable
|
||||
to build once and then release several times to different registries
|
||||
servers.
|
||||
|
||||
This target is not intended to be called directly.
|
||||
-->
|
||||
<target name="-release">
|
||||
<if property="release.to.server" value="true">
|
||||
<echo message="Release URL is ${release.url}"/>
|
||||
<echo message="Archive is ${product.dist.file}"/>
|
||||
|
||||
<release-package-server
|
||||
url="${release.url}"
|
||||
registry="${release.registry}"
|
||||
uid="${release.parent.uid}"
|
||||
version="${release.parent.version}"
|
||||
platforms="${product.platforms}"
|
||||
archive="${product.dist.file}"/>
|
||||
</if>
|
||||
<if property="release.to.server" value="false">
|
||||
<echo message="Registry root is ${release.registry.dir}"/>
|
||||
<echo message="Archive is ${product.dist.file}"/>
|
||||
|
||||
<release-package-filesystem
|
||||
root="${release.registry.dir}"
|
||||
uid="${release.parent.uid}"
|
||||
version="${release.parent.version}"
|
||||
platforms="${product.platforms}"
|
||||
archive="${product.dist.file}"/>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
Default
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The default target.
|
||||
|
||||
Does nothing except printing the usage information.
|
||||
-->
|
||||
<target name="usage">
|
||||
<echo>
|
||||
This is the base build script for nbi product package and is not
|
||||
intended to be called directly. In order to create a derivative
|
||||
implementation script, see
|
||||
${basedir}/.templates/product-template.xml
|
||||
</echo>
|
||||
</target>
|
||||
</project>
|
BIN
sdk/nbi/antlib/nbi-ant-tasks.jar
Normal file
BIN
sdk/nbi/antlib/nbi-engine.jar
Normal file
BIN
sdk/nbi/antlib/nbi-registries-management.jar
Normal file
49
sdk/nbi/stub/build.properties
Normal file
@ -0,0 +1,49 @@
|
||||
#
|
||||
# The contents of this file are subject to the terms of the Common Development and
|
||||
# Distribution License (the License). You may not use this file except in compliance
|
||||
# with the License.
|
||||
#
|
||||
# You can obtain a copy of the License at http://www.netbeans.org/cddl.html or
|
||||
# http://www.netbeans.org/cddl.txt.
|
||||
#
|
||||
# When distributing Covered Code, include this CDDL Header Notice in each file and
|
||||
# include the License file at http://www.netbeans.org/cddl.txt. If applicable, add
|
||||
# the following below the CDDL Header, with the fields enclosed by brackets []
|
||||
# replaced by your own identifying information:
|
||||
#
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
|
||||
output.dir=${basedir}/build
|
||||
jarsigner.enabled=false
|
||||
pack200.enabled={pack200.enabled}
|
||||
core.module.name=nbi
|
||||
ext.module.name=ext
|
||||
|
||||
nbi.all.dir=${basedir}/nbi_all
|
||||
nbi.core.dir=${nbi.all.dir}/${core.module.name}
|
||||
nbi.ext.dir=${nbi.all.dir}/${ext.module.name}
|
||||
|
||||
temp.file=${nbi.all.dir}/temp.ant.tmp
|
||||
environment.properties=${nbi.all.dir}/environment.properties
|
||||
|
||||
context.path.token=/nbi/dev
|
||||
context.path.replacement=${context.path}
|
||||
|
||||
context.dir.token=ROOT = new File\\(".*?"\\);
|
||||
context.dir.replacement=ROOT = new File\\("${context.dir}"\);
|
||||
|
||||
custom.tasks.cls={nbi.ant.tasks.jar}${path.separator}{nbi.registries.management.jar}${path.separator}{nbi.engine.jar}
|
||||
nbi.engine.jar={nbi.engine.jar}
|
||||
|
||||
jdk.home={generator-jdk-location-forward-slashes}
|
||||
bundles.release.dir={generated-installers-location-forward-slashes}
|
||||
bundle.files.prefix={generated-installers-prefix}
|
||||
|
||||
target.platforms={product-platforms}
|
||||
main.product.uid={product-uid}
|
||||
main.product.version={product-version}
|
203
sdk/nbi/stub/build.xml
Normal file
@ -0,0 +1,203 @@
|
||||
<project name="build installers" default="build" basedir=".">
|
||||
<property file="${basedir}/build.properties"/>
|
||||
<property file="${basedir}/custom.properties"/>
|
||||
|
||||
<target name="build" depends="init,-build,-generate-bundles,post-build"/>
|
||||
|
||||
<target name="init" depends="-clean,-checkout,-init,-init-properties,-post-init-clean"/>
|
||||
|
||||
<target name="-clean-cvs" unless="no.checkout">
|
||||
<delete dir="${nbi.all.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="-clean" depends="-clean-cvs" unless="no.clean">
|
||||
<delete dir="${output.dir}"/>
|
||||
<delete dir="${nbi.ext.dir}/products/helloworld/build"/>
|
||||
<delete dir="${nbi.ext.dir}/products/helloworld/dist"/>
|
||||
<delete dir="${nbi.ext.dir}/engine/build"/>
|
||||
<delete dir="${nbi.ext.dir}/engine/dist"/>
|
||||
|
||||
<!--<delete dir="${basedir}/cache"/>-->
|
||||
</target>
|
||||
|
||||
<target name="post-build">
|
||||
<delete dir="${output.dir}/registry-temp"/>
|
||||
</target>
|
||||
|
||||
<target name="-checkout">
|
||||
|
||||
<copy todir="${nbi.all.dir}/.common">
|
||||
<fileset dir="${basedir}/.common"/>
|
||||
</copy>
|
||||
|
||||
<copy todir="${nbi.ext.dir}">
|
||||
<fileset dir="${basedir}/ext">
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="-init">
|
||||
<taskdef
|
||||
name="if"
|
||||
classpath="${custom.tasks.cls}"
|
||||
classname="org.netbeans.installer.infra.build.ant.If"/>
|
||||
<taskdef
|
||||
name="for-each"
|
||||
classpath="${custom.tasks.cls}"
|
||||
classname="org.netbeans.installer.infra.build.ant.ForEach"/>
|
||||
<taskdef
|
||||
name="set"
|
||||
classpath="${custom.tasks.cls}"
|
||||
classname="org.netbeans.installer.infra.build.ant.SetProperty"/>
|
||||
|
||||
<taskdef
|
||||
name="create-bundle"
|
||||
classpath="${custom.tasks.cls}"
|
||||
classname="org.netbeans.installer.infra.build.ant.registries.CreateBundle"/>
|
||||
|
||||
<delete file="${temp.file}"/>
|
||||
</target>
|
||||
|
||||
<target name="-init-properties">
|
||||
<echo file="${nbi.all.dir}/environment.tmp" encoding="utf-8">
|
||||
checkout.sources=false
|
||||
sources.dir=${nbi.all.dir}
|
||||
cvs.module=ext
|
||||
|
||||
release.to.server=false
|
||||
release.registry.dir=${output.dir}/registry-temp
|
||||
|
||||
dont.build.custom.tasks=true
|
||||
custom.tasks.cls=${custom.tasks.cls}
|
||||
|
||||
build.engine=false
|
||||
|
||||
engine.dist.file.name=nbi-engine.jar
|
||||
engine.dist.file=${nbi.core.dir}/infra/build/engine/dist/nbi-engine.jar
|
||||
|
||||
packaged.data.dir=${basedir}/cache/packaged
|
||||
downloads.cache.dir=${basedir}/cache/raw
|
||||
|
||||
jarsigner.enabled=${jarsigner.enabled}
|
||||
</echo>
|
||||
<replace file="${nbi.all.dir}/environment.tmp" token="\" value="/" encoding="utf-8"/>
|
||||
<native2ascii src="${nbi.all.dir}" dest="${nbi.all.dir}" encoding="utf-8" includes="environment.tmp" ext=".properties"/>
|
||||
</target>
|
||||
|
||||
<target name="-post-init-clean">
|
||||
<delete dir="${basedir}/cache/raw"/>
|
||||
</target>
|
||||
|
||||
<target name="-build">
|
||||
<delete dir="${output.dir}"/>
|
||||
|
||||
<mkdir dir="${output.dir}"/>
|
||||
<mkdir dir="${bundles.release.dir}"/>
|
||||
<mkdir dir="${output.dir}/components"/>
|
||||
|
||||
<property name="engine.dist.file.name" value="nbi-engine.jar"/>
|
||||
|
||||
<echo message="BUILDING HELLOWORLD EXT ENGINE =================================="/>
|
||||
<ant dir="${nbi.ext.dir}/infra/build/engine" target="release-all">
|
||||
<property
|
||||
name="basedir"
|
||||
value="${nbi.ext.dir}/infra/build/engine"/>
|
||||
<property
|
||||
name="environment.properties"
|
||||
value="${environment.properties}"/>
|
||||
|
||||
<property
|
||||
name="core.engine.dist.file"
|
||||
value="${nbi.engine.jar}"/>
|
||||
</ant>
|
||||
|
||||
|
||||
<echo message="BUILDING HELLOWORLD PRODUCT =================================="/>
|
||||
<ant dir="${nbi.ext.dir}/infra/build/products/helloworld" target="release-all">
|
||||
<property
|
||||
name="basedir"
|
||||
value="${nbi.ext.dir}/infra/build/products/helloworld"/>
|
||||
<property
|
||||
name="environment.properties"
|
||||
value="${environment.properties}"/>
|
||||
<property
|
||||
name="dist.dir"
|
||||
value="${output.dir}/components"/>
|
||||
|
||||
<property
|
||||
name="release.parent.uid"
|
||||
value=""/>
|
||||
<property
|
||||
name="release.parent.version"
|
||||
value=""/>
|
||||
<property
|
||||
name="release.parent.platforms"
|
||||
value=""/>
|
||||
|
||||
<property
|
||||
name="engine.dist.file"
|
||||
value="${output.dir}/registry-temp/engine.jar"/>
|
||||
|
||||
|
||||
</ant>
|
||||
</target>
|
||||
|
||||
<target name="-generate-bundles">
|
||||
<for-each property="platform" list="${target.platforms}" separator=" ">
|
||||
|
||||
<condition property="bundle.extention.${platform}" value="exe">
|
||||
<contains string="${platform}" substring="windows"/>
|
||||
</condition>
|
||||
<condition property="bundle.extention.${platform}" value="sh">
|
||||
<or>
|
||||
<contains string="${platform}" substring="linux"/>
|
||||
<contains string="${platform}" substring="solaris"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="bundle.extention.${platform}" value="zip">
|
||||
<contains string="${platform}" substring="macosx"/>
|
||||
</condition>
|
||||
|
||||
<set property="bundle.extention" source="bundle.extention.${platform}"/>
|
||||
|
||||
<create-bundle root="${output.dir}/registry-temp"
|
||||
platform="${platform}"
|
||||
target="${bundles.release.dir}/${bundle.files.prefix}-${platform}.${bundle.extention}">
|
||||
<!--normen-->
|
||||
<component uid="${main.product.uid}" version="${main.product.version}"/><!--0.8.0.0.0-->
|
||||
</create-bundle>
|
||||
<if property="bundle.extention" value="zip">
|
||||
<antcall target="zip-to-tgz">
|
||||
<param name="input.file" value="${bundles.release.dir}/${bundle.files.prefix}-${platform}.zip"/>
|
||||
<param name="output.file" value="${bundles.release.dir}/${bundle.files.prefix}-${platform}.tgz"/>
|
||||
</antcall>
|
||||
<delete file="${bundles.release.dir}/${bundle.files.prefix}-${platform}.zip"/>
|
||||
</if>
|
||||
</for-each>
|
||||
<echo>Installer(s) for [${target.platforms}] are available at ${bundles.release.dir}</echo>
|
||||
</target>
|
||||
|
||||
<target name="zip-to-tgz">
|
||||
<set property="tar.tmpdir"
|
||||
value="${bundles.release.dir}/tempdir"/>
|
||||
|
||||
<mkdir dir="${tar.tmpdir}"/>
|
||||
|
||||
<unzip
|
||||
src="${input.file}"
|
||||
dest="${tar.tmpdir}"/>
|
||||
|
||||
<tar tarfile="${output.file}"
|
||||
compression="gzip">
|
||||
<tarfileset dir="${tar.tmpdir}" mode="644">
|
||||
<include name="**/*.*"/>
|
||||
<exclude name="**/executable"/>
|
||||
</tarfileset>
|
||||
<tarfileset dir="${tar.tmpdir}" mode="755">
|
||||
<include name="**/executable"/>
|
||||
</tarfileset>
|
||||
</tar>
|
||||
<delete dir="${tar.tmpdir}"/>
|
||||
</target>
|
||||
|
||||
</project>
|
74
sdk/nbi/stub/ext/components/products/helloworld/build.xml
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- You may freely edit this file. See commented blocks below for -->
|
||||
<!-- some examples of how to customize the build. -->
|
||||
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
||||
<!-- By default, only the Clean and Build commands use this build script. -->
|
||||
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
||||
<!-- the Compile on Save feature is turned off for the project. -->
|
||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
||||
<!-- in the project's Project Properties dialog box.-->
|
||||
<project name="helloworld" default="default" basedir=".">
|
||||
<description>Builds, tests, and runs the project helloworld.</description>
|
||||
<import file="nbproject/build-impl.xml"/>
|
||||
<!--
|
||||
|
||||
There exist several targets which are by default empty and which can be
|
||||
used for execution of your tasks. These targets are usually executed
|
||||
before and after some main targets. They are:
|
||||
|
||||
-pre-init: called before initialization of project properties
|
||||
-post-init: called after initialization of project properties
|
||||
-pre-compile: called before javac compilation
|
||||
-post-compile: called after javac compilation
|
||||
-pre-compile-single: called before javac compilation of single file
|
||||
-post-compile-single: called after javac compilation of single file
|
||||
-pre-compile-test: called before javac compilation of JUnit tests
|
||||
-post-compile-test: called after javac compilation of JUnit tests
|
||||
-pre-compile-test-single: called before javac compilation of single JUnit test
|
||||
-post-compile-test-single: called after javac compilation of single JUunit test
|
||||
-pre-jar: called before JAR building
|
||||
-post-jar: called after JAR building
|
||||
-post-clean: called after cleaning build products
|
||||
|
||||
(Targets beginning with '-' are not intended to be called on their own.)
|
||||
|
||||
Example of inserting an obfuscator after compilation could look like this:
|
||||
|
||||
<target name="-post-compile">
|
||||
<obfuscate>
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
</obfuscate>
|
||||
</target>
|
||||
|
||||
For list of available properties check the imported
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
|
||||
Another way to customize the build is by overriding existing main targets.
|
||||
The targets of interest are:
|
||||
|
||||
-init-macrodef-javac: defines macro for javac compilation
|
||||
-init-macrodef-junit: defines macro for junit execution
|
||||
-init-macrodef-debug: defines macro for class debugging
|
||||
-init-macrodef-java: defines macro for class execution
|
||||
-do-jar-with-manifest: JAR building (if you are using a manifest)
|
||||
-do-jar-without-manifest: JAR building (if you are not using a manifest)
|
||||
run: execution of project
|
||||
-javadoc-build: Javadoc generation
|
||||
test-report: JUnit report generation
|
||||
|
||||
An example of overriding the target for project execution could look like this:
|
||||
|
||||
<target name="run" depends="helloworld-impl.jar">
|
||||
<exec dir="bin" executable="launcher.exe">
|
||||
<arg file="${dist.jar}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
Notice that the overridden target depends on the jar target and not only on
|
||||
the compile target as the regular run target does. Again, for a list of available
|
||||
properties which you can use, check the target you are overriding in the
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
-->
|
||||
</project>
|
@ -0,0 +1,41 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
product.display.name={product-name}
|
||||
product.description={product-description}
|
BIN
sdk/nbi/stub/ext/components/products/helloworld/data/icon.png
Normal file
After Width: | Height: | Size: 821 B |
BIN
sdk/nbi/stub/ext/components/products/helloworld/data/icon48.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1 @@
|
||||
Configuration-Logic-Class: org.mycompany.ConfigurationLogic
|
@ -0,0 +1,631 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
*** GENERATED FROM project.xml - DO NOT EDIT ***
|
||||
*** EDIT ../build.xml INSTEAD ***
|
||||
|
||||
For the purpose of easier reading the script
|
||||
is divided into following sections:
|
||||
|
||||
- initialization
|
||||
- compilation
|
||||
- jar
|
||||
- execution
|
||||
- debugging
|
||||
- javadoc
|
||||
- junit compilation
|
||||
- junit execution
|
||||
- junit debugging
|
||||
- applet
|
||||
- cleanup
|
||||
|
||||
-->
|
||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject2="http://www.netbeans.org/ns/j2se-project/2" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="helloworld-impl">
|
||||
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
|
||||
<!--
|
||||
======================
|
||||
INITIALIZATION SECTION
|
||||
======================
|
||||
-->
|
||||
<target name="-pre-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init" name="-init-private">
|
||||
<property file="nbproject/private/config.properties"/>
|
||||
<property file="nbproject/private/configs/${config}.properties"/>
|
||||
<property file="nbproject/private/private.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private" name="-init-user">
|
||||
<property file="${user.properties.file}"/>
|
||||
<!-- The two properties below are usually overridden -->
|
||||
<!-- by the active platform. Just a fallback. -->
|
||||
<property name="default.javac.source" value="1.4"/>
|
||||
<property name="default.javac.target" value="1.4"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
|
||||
<property file="nbproject/configs/${config}.properties"/>
|
||||
<property file="nbproject/project.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
|
||||
<available file="${manifest.file}" property="manifest.available"/>
|
||||
<condition property="manifest.available+main.class">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<isset property="main.class"/>
|
||||
<not>
|
||||
<equals arg1="${main.class}" arg2="" trim="true"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="libs.CopyLibs.classpath"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or>
|
||||
<available file="${test.src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="have.sources">
|
||||
<or>
|
||||
<available file="${src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="netbeans.home+have.tests">
|
||||
<and>
|
||||
<isset property="netbeans.home"/>
|
||||
<isset property="have.tests"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="no.javadoc.preview">
|
||||
<and>
|
||||
<isset property="javadoc.preview"/>
|
||||
<isfalse value="${javadoc.preview}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="run.jvmargs" value=""/>
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="work.dir" value="${basedir}"/>
|
||||
<condition property="no.deps">
|
||||
<and>
|
||||
<istrue value="${no.dependencies}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javac.debug" value="true"/>
|
||||
<property name="javadoc.preview" value="true"/>
|
||||
<property name="application.args" value=""/>
|
||||
<property name="source.encoding" value="${file.encoding}"/>
|
||||
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
|
||||
<and>
|
||||
<isset property="javadoc.encoding"/>
|
||||
<not>
|
||||
<equals arg1="${javadoc.encoding}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javadoc.encoding.used" value="${source.encoding}"/>
|
||||
<property name="includes" value="**"/>
|
||||
<property name="excludes" value=""/>
|
||||
<property name="do.depend" value="false"/>
|
||||
<condition property="do.depend.true">
|
||||
<istrue value="${do.depend}"/>
|
||||
</condition>
|
||||
<condition else="" property="javac.compilerargs.jaxws" value="-Djava.endorsed.dirs='${jaxws.endorsed.dir}'">
|
||||
<and>
|
||||
<isset property="jaxws.endorsed.dir"/>
|
||||
<available file="nbproject/jaxws-build.xml"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-post-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
|
||||
<fail unless="src.dir">Must set src.dir</fail>
|
||||
<fail unless="test.src.dir">Must set test.src.dir</fail>
|
||||
<fail unless="build.dir">Must set build.dir</fail>
|
||||
<fail unless="dist.dir">Must set dist.dir</fail>
|
||||
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
|
||||
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
|
||||
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
|
||||
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
|
||||
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
|
||||
<fail unless="dist.jar">Must set dist.jar</fail>
|
||||
</target>
|
||||
<target name="-init-macrodef-property">
|
||||
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute name="name"/>
|
||||
<attribute name="value"/>
|
||||
<sequential>
|
||||
<property name="@{name}" value="${@{value}}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-javac">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="" name="sourcepath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${javac.compilerargs} ${javac.compilerargs.jaxws}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<sequential>
|
||||
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</depend>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<sequential>
|
||||
<fail unless="javac.includes">Must set javac.includes</fail>
|
||||
<pathconvert pathsep="," property="javac.includes.binary">
|
||||
<path>
|
||||
<filelist dir="@{destdir}" files="${javac.includes}"/>
|
||||
</path>
|
||||
<globmapper from="*.java" to="*.class"/>
|
||||
</pathconvert>
|
||||
<delete>
|
||||
<files includes="${javac.includes.binary}"/>
|
||||
</delete>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-junit">
|
||||
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="**" name="testincludes"/>
|
||||
<sequential>
|
||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
|
||||
<batchtest todir="${build.test.results.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
|
||||
<filename name="@{testincludes}"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
<classpath>
|
||||
<path path="${run.test.classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<formatter type="brief" usefile="false"/>
|
||||
<formatter type="xml"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
</junit>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-nbjpda">
|
||||
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="name"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<attribute default="" name="stopclassname"/>
|
||||
<sequential>
|
||||
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="dt_socket">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</nbjpdastart>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${build.classes.dir}" name="dir"/>
|
||||
<sequential>
|
||||
<nbjpdareload>
|
||||
<fileset dir="@{dir}" includes="${fix.includes}*.class"/>
|
||||
</nbjpdareload>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-debug-args">
|
||||
<property name="version-output" value="java version "${ant.java.version}"/>
|
||||
<condition property="have-jdk-older-than-1.4">
|
||||
<or>
|
||||
<contains string="${version-output}" substring="java version "1.0"/>
|
||||
<contains string="${version-output}" substring="java version "1.1"/>
|
||||
<contains string="${version-output}" substring="java version "1.2"/>
|
||||
<contains string="${version-output}" substring="java version "1.3"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
|
||||
<istrue value="${have-jdk-older-than-1.4}"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-debug">
|
||||
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${debug-args-line}"/>
|
||||
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-java">
|
||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="${run.classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-presetdef-jar">
|
||||
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<jar compress="${jar.compress}" jarfile="${dist.jar}">
|
||||
<j2seproject1:fileset dir="${build.classes.dir}"/>
|
||||
</jar>
|
||||
</presetdef>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
|
||||
<!--
|
||||
===================
|
||||
COMPILATION SECTION
|
||||
===================
|
||||
-->
|
||||
<target depends="init" name="deps-jar" unless="no.deps">
|
||||
<ant antfile="${project.Core_NBI_Engine}/build.xml" inheritall="false" target="jar"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar" name="-pre-pre-compile">
|
||||
<mkdir dir="${build.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-depend">
|
||||
<j2seproject3:depend/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
|
||||
<target name="-pre-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile/>
|
||||
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
|
||||
<!--
|
||||
====================
|
||||
JAR BUILDING SECTION
|
||||
====================
|
||||
-->
|
||||
<target depends="init" name="-pre-pre-jar">
|
||||
<dirname file="${dist.jar}" property="dist.jar.dir"/>
|
||||
<mkdir dir="${dist.jar.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available">
|
||||
<j2seproject1:jar/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
|
||||
<j2seproject1:jar manifest="${manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}">
|
||||
<j2seproject1:manifest>
|
||||
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
|
||||
</j2seproject1:manifest>
|
||||
</j2seproject1:jar>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<pathconvert property="run.classpath.with.dist.jar">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
|
||||
</pathconvert>
|
||||
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target name="-post-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
|
||||
<!--
|
||||
=================
|
||||
EXECUTION SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init,compile" description="Run a main class." name="run">
|
||||
<j2seproject1:java>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<target name="-do-not-recompile">
|
||||
<property name="javac.includes.binary" value=""/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-single" name="run-single">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}"/>
|
||||
</target>
|
||||
<!--
|
||||
=================
|
||||
DEBUGGING SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
|
||||
<j2seproject1:nbjpdastart name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile" name="-debug-start-debuggee">
|
||||
<j2seproject3:debug>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
|
||||
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
|
||||
<target depends="init" name="-pre-debug-fix">
|
||||
<fail unless="fix.includes">Must set fix.includes</fail>
|
||||
<property name="javac.includes" value="${fix.includes}.java"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
|
||||
<j2seproject1:nbjpdareload/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
|
||||
<!--
|
||||
===============
|
||||
JAVADOC SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
</classpath>
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
|
||||
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
|
||||
<!--
|
||||
=========================
|
||||
JUNIT COMPILATION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
|
||||
<mkdir dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-test-depend">
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
|
||||
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
|
||||
<target name="-pre-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
|
||||
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT EXECUTION SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init" if="have.tests" name="-pre-test-run">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
|
||||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init" if="have.tests" name="test-report"/>
|
||||
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
|
||||
<target depends="init" if="have.tests" name="-pre-test-run-single">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
|
||||
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
||||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT DEBUGGING SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
|
||||
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
||||
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
|
||||
<delete file="${test.report.file}"/>
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
|
||||
<customize>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<arg value="${test.class}"/>
|
||||
<arg value="showoutput=true"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
|
||||
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
|
||||
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
|
||||
<!--
|
||||
=========================
|
||||
APPLET EXECUTION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" name="run-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject1:java classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<!--
|
||||
=========================
|
||||
APPLET DEBUGGING SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject3:debug classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
|
||||
<!--
|
||||
===============
|
||||
CLEANUP SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" name="deps-clean" unless="no.deps">
|
||||
<ant antfile="${project.Core_NBI_Engine}/build.xml" inheritall="false" target="clean"/>
|
||||
</target>
|
||||
<target depends="init" name="-do-clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${dist.dir}"/>
|
||||
</target>
|
||||
<target name="-post-clean">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
|
||||
</project>
|
@ -0,0 +1,8 @@
|
||||
build.xml.data.CRC32=b5c7f54a
|
||||
build.xml.script.CRC32=16bbb630
|
||||
build.xml.stylesheet.CRC32=be360661
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=b5c7f54a
|
||||
nbproject/build-impl.xml.script.CRC32=815f74ea
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=f1d9da08
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
|
||||
</project-private>
|
@ -0,0 +1,62 @@
|
||||
application.title=helloworld
|
||||
application.vendor=dlm198383
|
||||
build.classes.dir=${build.dir}/classes
|
||||
build.classes.excludes=**/*.java,**/*.form
|
||||
# This directory is removed when the project is cleaned:
|
||||
build.dir=build
|
||||
build.generated.dir=${build.dir}/generated
|
||||
# Only compile against the classpath explicitly listed here:
|
||||
build.sysclasspath=ignore
|
||||
build.test.classes.dir=${build.dir}/test/classes
|
||||
build.test.results.dir=${build.dir}/test/results
|
||||
debug.classpath=\
|
||||
${run.classpath}
|
||||
debug.test.classpath=\
|
||||
${run.test.classpath}
|
||||
# This directory is removed when the project is cleaned:
|
||||
dist.dir=dist
|
||||
dist.jar=${dist.dir}/helloworld.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
excludes=
|
||||
includes=**
|
||||
jar.compress=false
|
||||
javac.classpath=\
|
||||
${reference.Core_NBI_Engine.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
javac.source=1.5
|
||||
javac.target=1.5
|
||||
javac.test.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}:\
|
||||
${libs.junit.classpath}:\
|
||||
${libs.junit_4.classpath}
|
||||
javadoc.additionalparam=
|
||||
javadoc.author=false
|
||||
javadoc.encoding=${source.encoding}
|
||||
javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=false
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
platform.active=default_platform
|
||||
project.Core_NBI_Engine=../../../../nbi/engine
|
||||
reference.Core_NBI_Engine.jar=${project.Core_NBI_Engine}/dist/nbi-engine.jar
|
||||
run.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}
|
||||
# Space-separated list of JVM arguments used when running the project
|
||||
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
|
||||
# or test-sys-prop.name=value to set system properties for unit tests):
|
||||
run.jvmargs=
|
||||
run.test.classpath=\
|
||||
${javac.test.classpath}:\
|
||||
${build.test.classes.dir}
|
||||
source.encoding=UTF-8
|
||||
src.dir=src
|
||||
test.src.dir=test
|
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.java.j2seproject</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<name>helloworld</name>
|
||||
<minimum-ant-version>1.6.5</minimum-ant-version>
|
||||
<source-roots>
|
||||
<root id="src.dir"/>
|
||||
</source-roots>
|
||||
<test-roots>
|
||||
<root id="test.src.dir"/>
|
||||
</test-roots>
|
||||
</data>
|
||||
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
|
||||
<reference>
|
||||
<foreign-project>Core_NBI_Engine</foreign-project>
|
||||
<artifact-type>jar</artifact-type>
|
||||
<script>build.xml</script>
|
||||
<target>jar</target>
|
||||
<clean-target>clean</clean-target>
|
||||
<id>jar</id>
|
||||
</reference>
|
||||
</references>
|
||||
</configuration>
|
||||
</project>
|
@ -0,0 +1,22 @@
|
||||
CL.app.name={product-simple-name}
|
||||
CL.desktop.shortcut.name={product-name}
|
||||
CL.desktop.shortcut.description=
|
||||
CL.desktop.shortcut.path=
|
||||
CL.unix.icon.name={product-icon-name}
|
||||
CL.unix.icon.resource=org/mycompany/{product-icon-name}
|
||||
|
||||
|
||||
CL.start.menu.shortcut.name={product-name}
|
||||
CL.start.menu.shortcut.name.macosx={product-name}
|
||||
CL.start.menu.shortcut.description=
|
||||
CL.start.menu.shortcut.path=
|
||||
|
||||
CL.install.desktop=Creating shortcut on desktop
|
||||
CL.install.start.menu=Creating shortcut in start menu
|
||||
CL.uninstall.start.menu=Removing Start Menu entries
|
||||
CL.uninstall.desktop=Removing desktop shortcut
|
||||
CL.uninstall.remove.userdir=Removing {product-name} userdir
|
||||
|
||||
CL.uninstall.error.start.menu=Cannot remove desktop shortcut
|
||||
CL.uninstall.error.desktop=Cannot remove Start Menu entries
|
||||
|
@ -0,0 +1,451 @@
|
||||
package org.mycompany;
|
||||
|
||||
import java.util.List;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.mycompany.wizard.panels.HelloWorldPanel;
|
||||
import org.mycompany.installer.utils.applications.NetBeansRCPUtils;
|
||||
import org.netbeans.installer.product.components.ProductConfigurationLogic;
|
||||
import org.netbeans.installer.product.components.Product;
|
||||
import org.netbeans.installer.utils.FileUtils;
|
||||
import org.netbeans.installer.utils.helper.RemovalMode;
|
||||
import org.netbeans.installer.utils.exceptions.InitializationException;
|
||||
import org.netbeans.installer.utils.exceptions.InstallationException;
|
||||
import org.netbeans.installer.utils.exceptions.UninstallationException;
|
||||
import org.netbeans.installer.utils.progress.Progress;
|
||||
import org.netbeans.installer.utils.system.shortcut.FileShortcut;
|
||||
import org.netbeans.installer.utils.system.shortcut.LocationType;
|
||||
import org.netbeans.installer.utils.system.shortcut.Shortcut;
|
||||
import org.netbeans.installer.utils.SystemUtils;
|
||||
import org.netbeans.installer.utils.LogManager;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.StreamUtils;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.exceptions.NativeException;
|
||||
import org.netbeans.installer.wizard.Wizard;
|
||||
import org.netbeans.installer.wizard.components.WizardComponent;
|
||||
|
||||
public class ConfigurationLogic extends ProductConfigurationLogic {
|
||||
|
||||
private List<WizardComponent> wizardComponents;
|
||||
|
||||
// constructor //////////////////////////////////////////////////////////////////
|
||||
public ConfigurationLogic() throws InitializationException {
|
||||
wizardComponents = Wizard.loadWizardComponents(
|
||||
WIZARD_COMPONENTS_URI,
|
||||
getClass().getClassLoader());
|
||||
}
|
||||
|
||||
public List<WizardComponent> getWizardComponents() {
|
||||
return wizardComponents;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean allowModifyMode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void install(Progress progress) throws InstallationException {
|
||||
final Product product = getProduct();
|
||||
final File installLocation = product.getInstallationLocation();
|
||||
//final FilesList filesList = product.getInstalledFiles();
|
||||
String appName=ResourceUtils.getString(ConfigurationLogic.class, "CL.app.name");
|
||||
|
||||
if (SystemUtils.isMacOS()) {
|
||||
//normen: use parent folder of install dir for icon
|
||||
File f = new File(installLocation.getParentFile(), ICON_MACOSX);
|
||||
if(!f.exists()) {
|
||||
try {
|
||||
FileUtils.writeFile(f,
|
||||
ResourceUtils.getResource(ICON_MACOSX_RESOURCE,
|
||||
getClass().getClassLoader()));
|
||||
getProduct().getInstalledFiles().add(f);
|
||||
} catch (IOException e) {
|
||||
LogManager.log(
|
||||
"... cannot handle icns icon " + f, e); // NOI18N
|
||||
}
|
||||
}
|
||||
|
||||
//normen: rename executable
|
||||
File shortcut=new File(installLocation.getParentFile().getParent()+"/MacOS/executable");
|
||||
if(shortcut.exists()){
|
||||
shortcut.renameTo(new File(installLocation.getParentFile().getParent()+"/MacOS/"+appName));
|
||||
}
|
||||
|
||||
//normen: replace icon + app in Info.plist
|
||||
try {
|
||||
File plist=new File(installLocation.getParentFile().getParentFile(),"Info.plist");
|
||||
FileUtils.modifyFile(plist, "icon.icns", appName+".icns");
|
||||
FileUtils.modifyFile(plist, "executable", appName);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (Boolean.parseBoolean(getProperty(HelloWorldPanel.CREATE_DESKTOP_SHORTCUT_PROPERTY))) {
|
||||
LogManager.logIndent(
|
||||
"creating the desktop shortcut for the application"); // NOI18N
|
||||
if (!SystemUtils.isMacOS()) {
|
||||
try {
|
||||
progress.setDetail(getString("CL.install.desktop")); // NOI18N
|
||||
|
||||
if (SystemUtils.isCurrentUserAdmin()) {
|
||||
LogManager.log(
|
||||
"... current user is an administrator " + // NOI18N
|
||||
"-- creating the shortcut for all users"); // NOI18N
|
||||
|
||||
SystemUtils.createShortcut(
|
||||
getDesktopShortcut(installLocation),
|
||||
LocationType.ALL_USERS_DESKTOP);
|
||||
|
||||
product.setProperty(
|
||||
DESKTOP_SHORTCUT_LOCATION_PROPERTY,
|
||||
ALL_USERS_PROPERTY_VALUE);
|
||||
} else {
|
||||
LogManager.log(
|
||||
"... current user is an ordinary user " + // NOI18N
|
||||
"-- creating the shortcut for the current " + // NOI18N
|
||||
"user only"); // NOI18N
|
||||
|
||||
SystemUtils.createShortcut(
|
||||
getDesktopShortcut(installLocation),
|
||||
LocationType.CURRENT_USER_DESKTOP);
|
||||
|
||||
getProduct().setProperty(
|
||||
DESKTOP_SHORTCUT_LOCATION_PROPERTY,
|
||||
CURRENT_USER_PROPERTY_VALUE);
|
||||
}
|
||||
} catch (NativeException e) {
|
||||
LogManager.unindent();
|
||||
|
||||
LogManager.log(
|
||||
getString("CL.install.error.desktop"), // NOI18N
|
||||
e);
|
||||
}
|
||||
} else {
|
||||
LogManager.log(
|
||||
"... skipping this step as we're on Mac OS"); // NOI18N
|
||||
}
|
||||
}
|
||||
LogManager.logUnindent(
|
||||
"... done"); // NOI18N
|
||||
|
||||
/////////////////////////////////////////////
|
||||
// create start menu shortcut
|
||||
if (Boolean.parseBoolean(getProperty(HelloWorldPanel.CREATE_START_MENU_SHORTCUT_PROPERTY))) {
|
||||
LogManager.logIndent(
|
||||
"creating the start menu shortcut for the application"); // NOI18N
|
||||
try {
|
||||
progress.setDetail(getString("CL.install.start.menu")); // NOI18N
|
||||
|
||||
if (SystemUtils.isCurrentUserAdmin()) {
|
||||
LogManager.log(
|
||||
"... current user is an administrator " + // NOI18N
|
||||
"-- creating the shortcut for all users"); // NOI18N
|
||||
|
||||
SystemUtils.createShortcut(
|
||||
getStartMenuShortcut(installLocation),
|
||||
LocationType.ALL_USERS_START_MENU);
|
||||
|
||||
getProduct().setProperty(
|
||||
START_MENU_SHORTCUT_LOCATION_PROPERTY,
|
||||
ALL_USERS_PROPERTY_VALUE);
|
||||
} else {
|
||||
LogManager.log(
|
||||
"... current user is an ordinary user " + // NOI18N
|
||||
"-- creating the shortcut for the current " + // NOI18N
|
||||
"user only"); // NOI18N
|
||||
|
||||
SystemUtils.createShortcut(
|
||||
getStartMenuShortcut(installLocation),
|
||||
LocationType.CURRENT_USER_START_MENU);
|
||||
|
||||
getProduct().setProperty(
|
||||
START_MENU_SHORTCUT_LOCATION_PROPERTY,
|
||||
CURRENT_USER_PROPERTY_VALUE);
|
||||
}
|
||||
} catch (NativeException e) {
|
||||
LogManager.log(
|
||||
getString("CL.install.error.start.menu"), // NOI18N
|
||||
e);
|
||||
}
|
||||
LogManager.logUnindent(
|
||||
"... done"); // NOI18N
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uninstall(Progress progress) throws UninstallationException {
|
||||
final Product product = getProduct();
|
||||
final File installLocation = product.getInstallationLocation();
|
||||
|
||||
//NetBeansUtils.warnNetbeansRunning(installLocation);
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
if (Boolean.parseBoolean(getProperty(HelloWorldPanel.CREATE_START_MENU_SHORTCUT_PROPERTY))) {
|
||||
try {
|
||||
progress.setDetail(getString("CL.uninstall.start.menu")); // NOI18N
|
||||
|
||||
final String shortcutLocation =
|
||||
getProduct().getProperty(START_MENU_SHORTCUT_LOCATION_PROPERTY);
|
||||
|
||||
if ((shortcutLocation == null)
|
||||
|| shortcutLocation.equals(CURRENT_USER_PROPERTY_VALUE)) {
|
||||
SystemUtils.removeShortcut(
|
||||
getStartMenuShortcut(installLocation),
|
||||
LocationType.CURRENT_USER_START_MENU,
|
||||
true);
|
||||
} else {
|
||||
SystemUtils.removeShortcut(
|
||||
getStartMenuShortcut(installLocation),
|
||||
LocationType.ALL_USERS_START_MENU,
|
||||
true);
|
||||
}
|
||||
} catch (NativeException e) {
|
||||
LogManager.log(
|
||||
getString("CL.uninstall.error.start.menu"), // NOI18N
|
||||
e);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
if (Boolean.parseBoolean(getProperty(HelloWorldPanel.CREATE_DESKTOP_SHORTCUT_PROPERTY))) {
|
||||
if (!SystemUtils.isMacOS()) {
|
||||
try {
|
||||
progress.setDetail(getString("CL.uninstall.desktop")); // NOI18N
|
||||
|
||||
final String shortcutLocation = getProduct().getProperty(
|
||||
DESKTOP_SHORTCUT_LOCATION_PROPERTY);
|
||||
|
||||
if ((shortcutLocation == null)
|
||||
|| shortcutLocation.equals(CURRENT_USER_PROPERTY_VALUE)) {
|
||||
SystemUtils.removeShortcut(
|
||||
getDesktopShortcut(installLocation),
|
||||
LocationType.CURRENT_USER_DESKTOP,
|
||||
false);
|
||||
} else {
|
||||
SystemUtils.removeShortcut(
|
||||
getDesktopShortcut(installLocation),
|
||||
LocationType.ALL_USERS_DESKTOP,
|
||||
false);
|
||||
}
|
||||
} catch (NativeException e) {
|
||||
LogManager.log(
|
||||
getString("CL.uninstall.error.desktop"), // NOI18N
|
||||
e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (Boolean.getBoolean("remove.app.userdir")) {
|
||||
try {
|
||||
progress.setDetail(getString("CL.uninstall.remove.userdir")); // NOI18N
|
||||
LogManager.logIndent("Removing application`s userdir... ");
|
||||
File userDir = NetBeansRCPUtils.getApplicationUserDirFile(installLocation);
|
||||
LogManager.log("... application userdir location : " + userDir);
|
||||
if (FileUtils.exists(userDir) && FileUtils.canWrite(userDir)) {
|
||||
FileUtils.deleteFile(userDir, true);
|
||||
FileUtils.deleteEmptyParents(userDir);
|
||||
}
|
||||
LogManager.log("... application userdir totally removed");
|
||||
} catch (IOException e) {
|
||||
LogManager.log("Can`t remove application userdir", e);
|
||||
} finally {
|
||||
LogManager.unindent();
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//remove cluster/update files
|
||||
/*
|
||||
try {
|
||||
progress.setDetail(getString("CL.uninstall.update.files")); // NOI18N
|
||||
for(String cluster : CLUSTERS) {
|
||||
File updateDir = new File(installLocation, cluster + File.separator + "update");
|
||||
if ( updateDir.exists()) {
|
||||
FileUtils.deleteFile(updateDir, true);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
LogManager.log(
|
||||
getString("CL.uninstall.error.update.files"), // NOI18N
|
||||
e);
|
||||
}
|
||||
*/
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
progress.setPercentage(Progress.COMPLETE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getExecutable() {
|
||||
if (SystemUtils.isWindows()) {
|
||||
return EXECUTABLE_WINDOWS;
|
||||
} else {
|
||||
return EXECUTABLE_UNIX;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIcon() {
|
||||
if (SystemUtils.isWindows()) {
|
||||
return ICON_WINDOWS;
|
||||
} else if (SystemUtils.isMacOS()) {
|
||||
return ICON_MACOSX;
|
||||
} else {
|
||||
return ICON_UNIX;
|
||||
}
|
||||
}
|
||||
|
||||
public RemovalMode getRemovalMode() {
|
||||
return RemovalMode.LIST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean registerInSystem() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean requireLegalArtifactSaving() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean requireDotAppForMacOs() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean wrapForMacOs() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Shortcut getDesktopShortcut(final File directory) {
|
||||
return getShortcut(
|
||||
getStrings("CL.desktop.shortcut.name"), // NOI18N
|
||||
getStrings("CL.desktop.shortcut.description"), // NOI18N
|
||||
getString("CL.desktop.shortcut.path"), // NOI18N
|
||||
directory);
|
||||
}
|
||||
|
||||
private Shortcut getStartMenuShortcut(final File directory) {
|
||||
if (SystemUtils.isMacOS()) {
|
||||
return getShortcut(
|
||||
getStrings("CL.start.menu.shortcut.name.macosx"), // NOI18N
|
||||
getStrings("CL.start.menu.shortcut.description"), // NOI18N
|
||||
getString("CL.start.menu.shortcut.path"), // NOI18N
|
||||
directory);
|
||||
} else {
|
||||
return getShortcut(
|
||||
getStrings("CL.start.menu.shortcut.name"), // NOI18N
|
||||
getStrings("CL.start.menu.shortcut.description"), // NOI18N
|
||||
getString("CL.start.menu.shortcut.path"), // NOI18N
|
||||
directory);
|
||||
}
|
||||
}
|
||||
|
||||
private Shortcut getShortcut(
|
||||
final Map<Locale, String> names,
|
||||
final Map<Locale, String> descriptions,
|
||||
final String relativePath,
|
||||
final File location) {
|
||||
final File icon;
|
||||
final File executable;
|
||||
|
||||
if (SystemUtils.isWindows()) {
|
||||
icon = new File(location, ICON_WINDOWS);
|
||||
} else if (SystemUtils.isMacOS()) {
|
||||
icon = new File(location, ICON_MACOSX);
|
||||
} else {
|
||||
icon = new File(location, ICON_UNIX);
|
||||
LogManager.log("... icon file: " + icon);
|
||||
if(!FileUtils.exists(icon)) {
|
||||
LogManager.log("... icon file does not exist: " + icon);
|
||||
InputStream is = null;
|
||||
is = ResourceUtils.getResource(ICON_UNIX_RESOURCE, this.getClass().getClassLoader());
|
||||
if(is!=null) {
|
||||
FileOutputStream fos =null;
|
||||
try {
|
||||
fos = new FileOutputStream(icon);
|
||||
StreamUtils.transferData(is, fos);
|
||||
is.close();
|
||||
fos.close();
|
||||
getProduct().getInstalledFiles().add(icon);
|
||||
} catch (IOException e) {
|
||||
LogManager.log(e);
|
||||
} finally {
|
||||
if(fos!=null) {
|
||||
try {
|
||||
fos.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (SystemUtils.isWindows()) {
|
||||
executable = new File(location, EXECUTABLE_WINDOWS);
|
||||
} else {
|
||||
executable = new File(location, EXECUTABLE_UNIX);
|
||||
}
|
||||
final String name = names.get(new Locale(StringUtils.EMPTY_STRING));
|
||||
final FileShortcut shortcut = new FileShortcut(name, executable);
|
||||
shortcut.setNames(names);
|
||||
shortcut.setDescriptions(descriptions);
|
||||
shortcut.setCategories(SHORTCUT_CATEGORIES);
|
||||
shortcut.setFileName(SHORTCUT_FILENAME);
|
||||
shortcut.setIcon(icon);
|
||||
shortcut.setRelativePath(relativePath);
|
||||
shortcut.setWorkingDirectory(location);
|
||||
shortcut.setModifyPath(true);
|
||||
|
||||
return shortcut;
|
||||
}
|
||||
public static final String SHORTCUT_FILENAME =
|
||||
ResourceUtils.getString(ConfigurationLogic.class, "CL.app.name") + ".desktop"; // NOI18N
|
||||
public static final String[] SHORTCUT_CATEGORIES = new String[]{
|
||||
"Application"
|
||||
};
|
||||
public static final String BIN_SUBDIR =
|
||||
"bin/";
|
||||
public static final String EXECUTABLE_WINDOWS =
|
||||
BIN_SUBDIR
|
||||
+ ResourceUtils.getString(ConfigurationLogic.class, "CL.app.name") + ".exe"; // NOI18N
|
||||
public static final String EXECUTABLE_UNIX =
|
||||
BIN_SUBDIR
|
||||
+ ResourceUtils.getString(ConfigurationLogic.class, "CL.app.name"); // NOI18N
|
||||
public static final String ICON_WINDOWS =
|
||||
EXECUTABLE_WINDOWS;
|
||||
public static final String ICON_UNIX =
|
||||
ResourceUtils.getString(ConfigurationLogic.class,
|
||||
"CL.unix.icon.name"); // NOI18N
|
||||
public static final String ICON_UNIX_RESOURCE =
|
||||
ResourceUtils.getString(ConfigurationLogic.class,
|
||||
"CL.unix.icon.resource"); // NOI18N
|
||||
public static final String ICON_MACOSX =
|
||||
ResourceUtils.getString(ConfigurationLogic.class, "CL.app.name") + ".icns"; // NOI18N
|
||||
public static final String ICON_MACOSX_RESOURCE =
|
||||
"org/mycompany/" + ResourceUtils.getString(ConfigurationLogic.class, "CL.app.name") + ".icns"; // NOI18N
|
||||
public static final String WIZARD_COMPONENTS_URI =
|
||||
"resource:" + // NOI18N
|
||||
"org/mycompany/wizard.xml"; // NOI18N
|
||||
private static final String DESKTOP_SHORTCUT_LOCATION_PROPERTY =
|
||||
"desktop.shortcut.location"; // NOI18N
|
||||
private static final String START_MENU_SHORTCUT_LOCATION_PROPERTY =
|
||||
"start.menu.shortcut.location"; // NOI18N
|
||||
private static final String ALL_USERS_PROPERTY_VALUE =
|
||||
"all.users"; // NOI18N
|
||||
private static final String CURRENT_USER_PROPERTY_VALUE =
|
||||
"current.user"; // NOI18N
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<wizard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wizard-components.xsd">
|
||||
<component class="org.mycompany.wizard.panels.HelloWorldPanel"/>
|
||||
</wizard>
|
@ -0,0 +1,51 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# HelloWorldPanel.java
|
||||
P.title={product-name} Installation
|
||||
P.description=Choose destination folder.
|
||||
P.destination.label.text=&Install {product-name} to:
|
||||
P.destination.button.text=B&rowse.....
|
||||
|
||||
P.create.desktop.shortcut=Create Desktop icon
|
||||
P.create.start.menu.shortcut.windows=Create Start menu entry
|
||||
P.create.start.menu.shortcut.unix=Create shortcut in Applications menu
|
||||
P.create.start.menu.shortcut.macosx=Create icon in Dock
|
||||
|
@ -0,0 +1,184 @@
|
||||
package org.mycompany.wizard.panels;
|
||||
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.Insets;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.SystemUtils;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiCheckBox;
|
||||
import org.netbeans.installer.wizard.components.panels.DestinationPanel;
|
||||
import org.netbeans.installer.wizard.containers.SwingContainer;
|
||||
import org.netbeans.installer.wizard.ui.SwingUi;
|
||||
import org.netbeans.installer.wizard.ui.WizardUi;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class HelloWorldPanel extends DestinationPanel {
|
||||
|
||||
public HelloWorldPanel() {
|
||||
setProperty(TITLE_PROPERTY,
|
||||
DEFAULT_TITLE);
|
||||
setProperty(DESCRIPTION_PROPERTY,
|
||||
DEFAULT_DESCRIPTION);
|
||||
|
||||
setProperty(DESTINATION_LABEL_TEXT_PROPERTY,
|
||||
DEFAULT_DESTINATION_LABEL_TEXT);
|
||||
setProperty(DESTINATION_BUTTON_TEXT_PROPERTY,
|
||||
DEFAULT_DESTINATION_BUTTON_TEXT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WizardUi getWizardUi() {
|
||||
if (wizardUi == null) {
|
||||
wizardUi = new HelloWorldPanelUi(this);
|
||||
}
|
||||
|
||||
return wizardUi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
if(getWizard().getProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY) == null) {
|
||||
getWizard().setProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY, "" + true);
|
||||
}
|
||||
if(getWizard().getProperty(CREATE_START_MENU_SHORTCUT_PROPERTY) == null) {
|
||||
getWizard().setProperty(CREATE_START_MENU_SHORTCUT_PROPERTY, "" + true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class HelloWorldPanelUi extends DestinationPanelUi {
|
||||
|
||||
protected HelloWorldPanel panel;
|
||||
|
||||
public HelloWorldPanelUi(HelloWorldPanel panel) {
|
||||
super(panel);
|
||||
|
||||
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
public SwingUi getSwingUi(SwingContainer container) {
|
||||
if (swingUi == null) {
|
||||
swingUi = new HelloWorldPanelSwingUi(panel, container);
|
||||
}
|
||||
|
||||
return super.getSwingUi(container);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HelloWorldPanelSwingUi extends DestinationPanelSwingUi {
|
||||
|
||||
protected HelloWorldPanel panel;
|
||||
private NbiCheckBox desktopShortcutComboBox;
|
||||
private NbiCheckBox startMenuShortcutComboBox;
|
||||
|
||||
public HelloWorldPanelSwingUi(
|
||||
final HelloWorldPanel panel,
|
||||
final SwingContainer container) {
|
||||
super(panel, container);
|
||||
|
||||
this.panel = panel;
|
||||
|
||||
initComponents();
|
||||
}
|
||||
|
||||
// protected ////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
protected void initialize() {
|
||||
desktopShortcutComboBox.setText(CREATE_DESKTOP_SHORTCUT_NAME);
|
||||
desktopShortcutComboBox.setSelected(false);
|
||||
if(Boolean.parseBoolean(panel.getWizard().getProperty(CREATE_DESKTOP_SHORTCUT_PROPERTY))) {
|
||||
desktopShortcutComboBox.doClick();
|
||||
}
|
||||
|
||||
startMenuShortcutComboBox.setText(
|
||||
SystemUtils.isWindows() ? CREATE_START_MENU_SHORTCUT_NAME_WINDOWS :
|
||||
(SystemUtils.isMacOS() ? CREATE_START_MENU_SHORTCUT_NAME_MAC :
|
||||
CREATE_START_MENU_SHORTCUT_NAME_UNIX));
|
||||
startMenuShortcutComboBox.setSelected(false);
|
||||
if(Boolean.parseBoolean(panel.getWizard().getProperty(CREATE_START_MENU_SHORTCUT_PROPERTY))) {
|
||||
startMenuShortcutComboBox.doClick();
|
||||
}
|
||||
|
||||
super.initialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void saveInput() {
|
||||
super.saveInput();
|
||||
panel.getWizard().setProperty(
|
||||
CREATE_DESKTOP_SHORTCUT_PROPERTY,
|
||||
StringUtils.EMPTY_STRING + desktopShortcutComboBox.isSelected());
|
||||
|
||||
panel.getWizard().setProperty(
|
||||
CREATE_START_MENU_SHORTCUT_PROPERTY,
|
||||
StringUtils.EMPTY_STRING + startMenuShortcutComboBox.isSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String validateInput() {
|
||||
String errorMessage = super.validateInput();
|
||||
return errorMessage;
|
||||
}
|
||||
|
||||
// private //////////////////////////////////////////////////////////////////
|
||||
private void initComponents() {
|
||||
// selectedLocationField ////////////////////////////////////////////////
|
||||
desktopShortcutComboBox = new NbiCheckBox();
|
||||
startMenuShortcutComboBox = new NbiCheckBox();
|
||||
|
||||
// this /////////////////////////////////////////////////////////////////
|
||||
add(desktopShortcutComboBox, new GridBagConstraints(
|
||||
0, 2, // x, y
|
||||
2, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(15, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(startMenuShortcutComboBox, new GridBagConstraints(
|
||||
0, 3, // x, y
|
||||
2, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(7, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
public static final String DEFAULT_TITLE =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.title"); // NOI18N
|
||||
public static final String DEFAULT_DESCRIPTION =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.description"); // NOI18N
|
||||
public static final String DEFAULT_DESTINATION_LABEL_TEXT =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.destination.label.text"); // NOI18N
|
||||
public static final String DEFAULT_DESTINATION_BUTTON_TEXT =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.destination.button.text"); // NOI18N
|
||||
public static final String CREATE_DESKTOP_SHORTCUT_NAME =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.create.desktop.shortcut"); // NOI18N
|
||||
public static final String CREATE_START_MENU_SHORTCUT_NAME_WINDOWS =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.create.start.menu.shortcut.windows"); // NOI18N
|
||||
public static final String CREATE_START_MENU_SHORTCUT_NAME_UNIX =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.create.start.menu.shortcut.unix"); // NOI18N
|
||||
public static final String CREATE_START_MENU_SHORTCUT_NAME_MAC =
|
||||
ResourceUtils.getString(HelloWorldPanel.class,
|
||||
"P.create.start.menu.shortcut.macosx"); // NOI18N
|
||||
public static final String CREATE_DESKTOP_SHORTCUT_PROPERTY =
|
||||
"create.desktop.shortcut";
|
||||
public static final String CREATE_START_MENU_SHORTCUT_PROPERTY =
|
||||
"create.start.menu.shortcut";
|
||||
}
|
41
sdk/nbi/stub/ext/engine/build.properties
Normal file
@ -0,0 +1,41 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
jar.contents.list=data/engine.list
|
||||
jar.contents.includes=native/** org/** com/apple/** data/clioptions.list data/engine*.properties
|
73
sdk/nbi/stub/ext/engine/build.xml
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<project name="Hello_World_Installer" default="default" basedir=".">
|
||||
<import file="nbproject/build-impl.xml"/>
|
||||
|
||||
<property file="build.properties"/>
|
||||
|
||||
<target name="-post-compile" depends="-unjar-core-engine,create-jar-contents-list"/>
|
||||
<target name="-unjar-core-engine">
|
||||
<!-- Add the contents of the core engine to the engine we're building -->
|
||||
<unjar
|
||||
src="${reference.NBI_Engine.jar}"
|
||||
dest="${build.classes.dir}"
|
||||
overwrite="false"/>
|
||||
</target>
|
||||
|
||||
<target name="create-jar-contents-list">
|
||||
<pathconvert property="build.classes.dir.normalized" dirsep="/">
|
||||
<path location="${build.classes.dir}"/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep="${line.separator}" property="engine.files" dirsep="/">
|
||||
<fileset dir="${build.classes.dir}" includes="${jar.contents.includes}"/>
|
||||
<mapper>
|
||||
<chainedmapper>
|
||||
<globmapper handledirsep="true" from="${build.classes.dir.normalized}/*" to="*"/>
|
||||
</chainedmapper>
|
||||
</mapper>
|
||||
</pathconvert>
|
||||
<echo file="${build.classes.dir}/${jar.contents.list}">${engine.files}</echo>
|
||||
</target>
|
||||
|
||||
<target name="-post-jar">
|
||||
<delete dir="${dist.dir}/lib"/>
|
||||
</target>
|
||||
</project>
|
2
sdk/nbi/stub/ext/engine/manifest.mf
Normal file
@ -0,0 +1,2 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: org.netbeans.installer.Installer
|
646
sdk/nbi/stub/ext/engine/nbproject/build-impl.xml
Normal file
@ -0,0 +1,646 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
*** GENERATED FROM project.xml - DO NOT EDIT ***
|
||||
*** EDIT ../build.xml INSTEAD ***
|
||||
|
||||
For the purpose of easier reading the script
|
||||
is divided into following sections:
|
||||
|
||||
- initialization
|
||||
- compilation
|
||||
- jar
|
||||
- execution
|
||||
- debugging
|
||||
- javadoc
|
||||
- junit compilation
|
||||
- junit execution
|
||||
- junit debugging
|
||||
- applet
|
||||
- cleanup
|
||||
|
||||
-->
|
||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="HelloWorld_Engine-impl">
|
||||
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
|
||||
<!--
|
||||
======================
|
||||
INITIALIZATION SECTION
|
||||
======================
|
||||
-->
|
||||
<target name="-pre-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init" name="-init-private">
|
||||
<property file="nbproject/private/config.properties"/>
|
||||
<property file="nbproject/private/configs/${config}.properties"/>
|
||||
<property file="nbproject/private/private.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private" name="-init-user">
|
||||
<property file="${user.properties.file}"/>
|
||||
<!-- The two properties below are usually overridden -->
|
||||
<!-- by the active platform. Just a fallback. -->
|
||||
<property name="default.javac.source" value="1.4"/>
|
||||
<property name="default.javac.target" value="1.4"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
|
||||
<property file="nbproject/configs/${config}.properties"/>
|
||||
<property file="nbproject/project.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
|
||||
<available file="${manifest.file}" property="manifest.available"/>
|
||||
<condition property="manifest.available+main.class">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<isset property="main.class"/>
|
||||
<not>
|
||||
<equals arg1="${main.class}" arg2="" trim="true"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="libs.CopyLibs.classpath"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or>
|
||||
<available file="${test.src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="have.sources">
|
||||
<or>
|
||||
<available file="${src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="netbeans.home+have.tests">
|
||||
<and>
|
||||
<isset property="netbeans.home"/>
|
||||
<isset property="have.tests"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="no.javadoc.preview">
|
||||
<and>
|
||||
<isset property="javadoc.preview"/>
|
||||
<isfalse value="${javadoc.preview}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="run.jvmargs" value=""/>
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="work.dir" value="${basedir}"/>
|
||||
<condition property="no.deps">
|
||||
<and>
|
||||
<istrue value="${no.dependencies}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javac.debug" value="true"/>
|
||||
<property name="javadoc.preview" value="true"/>
|
||||
<property name="application.args" value=""/>
|
||||
<property name="source.encoding" value="${file.encoding}"/>
|
||||
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
|
||||
<and>
|
||||
<isset property="javadoc.encoding"/>
|
||||
<not>
|
||||
<equals arg1="${javadoc.encoding}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javadoc.encoding.used" value="${source.encoding}"/>
|
||||
<property name="includes" value="**"/>
|
||||
<property name="excludes" value=""/>
|
||||
<property name="do.depend" value="false"/>
|
||||
<condition property="do.depend.true">
|
||||
<istrue value="${do.depend}"/>
|
||||
</condition>
|
||||
<condition else="" property="javac.compilerargs.jaxws" value="-Djava.endorsed.dirs='${jaxws.endorsed.dir}'">
|
||||
<and>
|
||||
<isset property="jaxws.endorsed.dir"/>
|
||||
<available file="nbproject/jaxws-build.xml"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-post-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
|
||||
<fail unless="src.dir">Must set src.dir</fail>
|
||||
<fail unless="test.src.dir">Must set test.src.dir</fail>
|
||||
<fail unless="build.dir">Must set build.dir</fail>
|
||||
<fail unless="dist.dir">Must set dist.dir</fail>
|
||||
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
|
||||
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
|
||||
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
|
||||
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
|
||||
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
|
||||
<fail unless="dist.jar">Must set dist.jar</fail>
|
||||
</target>
|
||||
<target name="-init-macrodef-property">
|
||||
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute name="name"/>
|
||||
<attribute name="value"/>
|
||||
<sequential>
|
||||
<property name="@{name}" value="${@{value}}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-javac">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="/does/not/exist" name="sourcepath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${javac.compilerargs} ${javac.compilerargs.jaxws}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<sequential>
|
||||
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</depend>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<sequential>
|
||||
<fail unless="javac.includes">Must set javac.includes</fail>
|
||||
<pathconvert pathsep="," property="javac.includes.binary">
|
||||
<path>
|
||||
<filelist dir="@{destdir}" files="${javac.includes}"/>
|
||||
</path>
|
||||
<globmapper from="*.java" to="*.class"/>
|
||||
</pathconvert>
|
||||
<delete>
|
||||
<files includes="${javac.includes.binary}"/>
|
||||
</delete>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-junit">
|
||||
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="**" name="testincludes"/>
|
||||
<sequential>
|
||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
|
||||
<batchtest todir="${build.test.results.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
|
||||
<filename name="@{testincludes}"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
<classpath>
|
||||
<path path="${run.test.classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<formatter type="brief" usefile="false"/>
|
||||
<formatter type="xml"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
</junit>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
|
||||
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="name"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<attribute default="" name="stopclassname"/>
|
||||
<sequential>
|
||||
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</nbjpdastart>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${build.classes.dir}" name="dir"/>
|
||||
<sequential>
|
||||
<nbjpdareload>
|
||||
<fileset dir="@{dir}" includes="${fix.classes}">
|
||||
<include name="${fix.includes}*.class"/>
|
||||
</fileset>
|
||||
</nbjpdareload>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-debug-args">
|
||||
<property name="version-output" value="java version "${ant.java.version}"/>
|
||||
<condition property="have-jdk-older-than-1.4">
|
||||
<or>
|
||||
<contains string="${version-output}" substring="java version "1.0"/>
|
||||
<contains string="${version-output}" substring="java version "1.1"/>
|
||||
<contains string="${version-output}" substring="java version "1.2"/>
|
||||
<contains string="${version-output}" substring="java version "1.3"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
|
||||
<istrue value="${have-jdk-older-than-1.4}"/>
|
||||
</condition>
|
||||
<condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
|
||||
<isset property="debug.transport"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-debug">
|
||||
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${debug-args-line}"/>
|
||||
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-java">
|
||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="${run.classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-presetdef-jar">
|
||||
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<jar compress="${jar.compress}" jarfile="${dist.jar}">
|
||||
<j2seproject1:fileset dir="${build.classes.dir}"/>
|
||||
</jar>
|
||||
</presetdef>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
|
||||
<!--
|
||||
===================
|
||||
COMPILATION SECTION
|
||||
===================
|
||||
-->
|
||||
<target depends="init" name="deps-jar" unless="no.deps">
|
||||
<ant antfile="${project.NBI_Engine}/build.xml" inheritall="false" target="jar"/>
|
||||
</target>
|
||||
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
|
||||
<target depends="init" name="-check-automatic-build">
|
||||
<available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
|
||||
<antcall target="clean"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar" name="-pre-pre-compile">
|
||||
<mkdir dir="${build.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-depend">
|
||||
<j2seproject3:depend/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
|
||||
<target name="-pre-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile/>
|
||||
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
|
||||
<!--
|
||||
====================
|
||||
JAR BUILDING SECTION
|
||||
====================
|
||||
-->
|
||||
<target depends="init" name="-pre-pre-jar">
|
||||
<dirname file="${dist.jar}" property="dist.jar.dir"/>
|
||||
<mkdir dir="${dist.jar.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available">
|
||||
<j2seproject1:jar/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
|
||||
<j2seproject1:jar manifest="${manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}">
|
||||
<j2seproject1:manifest>
|
||||
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
|
||||
</j2seproject1:manifest>
|
||||
</j2seproject1:jar>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<pathconvert property="run.classpath.with.dist.jar">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
|
||||
</pathconvert>
|
||||
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target name="-post-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
|
||||
<!--
|
||||
=================
|
||||
EXECUTION SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init,compile" description="Run a main class." name="run">
|
||||
<j2seproject1:java>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<target name="-do-not-recompile">
|
||||
<property name="javac.includes.binary" value=""/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-single" name="run-single">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}"/>
|
||||
</target>
|
||||
<!--
|
||||
=================
|
||||
DEBUGGING SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
|
||||
<j2seproject1:nbjpdastart name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile" name="-debug-start-debuggee">
|
||||
<j2seproject3:debug>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
|
||||
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
|
||||
<target depends="init" name="-pre-debug-fix">
|
||||
<fail unless="fix.includes">Must set fix.includes</fail>
|
||||
<property name="javac.includes" value="${fix.includes}.java"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
|
||||
<j2seproject1:nbjpdareload/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
|
||||
<!--
|
||||
===============
|
||||
JAVADOC SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
</classpath>
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
|
||||
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
|
||||
<!--
|
||||
=========================
|
||||
JUNIT COMPILATION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
|
||||
<mkdir dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-test-depend">
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
|
||||
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
|
||||
<target name="-pre-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
|
||||
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT EXECUTION SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init" if="have.tests" name="-pre-test-run">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
|
||||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init" if="have.tests" name="test-report"/>
|
||||
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
|
||||
<target depends="init" if="have.tests" name="-pre-test-run-single">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
|
||||
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
||||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||
<fail if="tests.failed">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT DEBUGGING SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
|
||||
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
||||
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
|
||||
<delete file="${test.report.file}"/>
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
|
||||
<customize>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<arg value="${test.class}"/>
|
||||
<arg value="showoutput=true"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
|
||||
</target>
|
||||
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
|
||||
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
|
||||
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
|
||||
<!--
|
||||
=========================
|
||||
APPLET EXECUTION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" name="run-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject1:java classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<!--
|
||||
=========================
|
||||
APPLET DEBUGGING SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject3:debug classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
|
||||
<!--
|
||||
===============
|
||||
CLEANUP SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" name="deps-clean" unless="no.deps">
|
||||
<ant antfile="${project.NBI_Engine}/build.xml" inheritall="false" target="clean"/>
|
||||
</target>
|
||||
<target depends="init" name="-do-clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${dist.dir}"/>
|
||||
</target>
|
||||
<target name="-post-clean">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
|
||||
</project>
|
8
sdk/nbi/stub/ext/engine/nbproject/genfiles.properties
Normal file
@ -0,0 +1,8 @@
|
||||
build.xml.data.CRC32=8f661a73
|
||||
build.xml.script.CRC32=f2f0e306
|
||||
build.xml.stylesheet.CRC32=a12b3d02
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=32036222
|
||||
nbproject/build-impl.xml.script.CRC32=ff4c3c7b
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=65b8de21
|
4
sdk/nbi/stub/ext/engine/nbproject/private/private.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
|
||||
</project-private>
|
102
sdk/nbi/stub/ext/engine/nbproject/project.properties
Normal file
@ -0,0 +1,102 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
application.title=NetBeans Installer Engine
|
||||
application.vendor=ks152834
|
||||
build.classes.dir=${build.dir}/classes
|
||||
build.classes.excludes=**/*.java,**/*.form
|
||||
# This directory is removed when the project is cleaned:
|
||||
build.dir=build
|
||||
build.generated.dir=${build.dir}/generated
|
||||
# Only compile against the classpath explicitly listed here:
|
||||
build.sysclasspath=ignore
|
||||
build.test.classes.dir=${build.dir}/test/classes
|
||||
build.test.results.dir=${build.dir}/test/results
|
||||
debug.classpath=\
|
||||
${run.classpath}
|
||||
debug.test.classpath=\
|
||||
${run.test.classpath}
|
||||
# This directory is removed when the project is cleaned:
|
||||
dist.dir=dist
|
||||
dist.jar=${dist.dir}/nbi-engine.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
excludes=
|
||||
file.reference.reglib-src=../../reglib/src
|
||||
includes=**
|
||||
jar.compress=false
|
||||
javac.classpath=\
|
||||
${reference.NBI_Engine.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
javac.source=1.5
|
||||
javac.target=1.5
|
||||
javac.test.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}:\
|
||||
${libs.junit.classpath}
|
||||
javadoc.additionalparam=
|
||||
javadoc.author=false
|
||||
javadoc.encoding=
|
||||
javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=false
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
main.class=org.netbeans.installer.Installer
|
||||
manifest.file=manifest.mf
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
platform.active=default_platform
|
||||
project.NBI_Engine=../../nbi/engine
|
||||
reference.NBI_Engine.jar=${project.NBI_Engine}/dist/nbi-engine.jar
|
||||
run.classpath=\
|
||||
${build.classes.dir}
|
||||
# Space-separated list of JVM arguments used when running the project
|
||||
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
|
||||
# or test-sys-prop.name=value to set system properties for unit tests):
|
||||
run.jvmargs=-Dnbi.product.bundled.registry.uri=file:/D:/temp/nbi-build/dist/registry-temp/registry.xml
|
||||
run.test.classpath=\
|
||||
${javac.test.classpath}:\
|
||||
${build.test.classes.dir}
|
||||
source.encoding=UTF-8
|
||||
src.dir=src
|
||||
test.src.dir=test
|
64
sdk/nbi/stub/ext/engine/nbproject/project.xml
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.java.j2seproject</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<name>HelloWorld Engine</name>
|
||||
<minimum-ant-version>1.6.5</minimum-ant-version>
|
||||
<source-roots>
|
||||
<root id="src.dir"/>
|
||||
</source-roots>
|
||||
<test-roots>
|
||||
<root id="test.src.dir"/>
|
||||
</test-roots>
|
||||
</data>
|
||||
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
|
||||
<reference>
|
||||
<foreign-project>NBI_Engine</foreign-project>
|
||||
<artifact-type>jar</artifact-type>
|
||||
<script>build.xml</script>
|
||||
<target>jar</target>
|
||||
<clean-target>clean</clean-target>
|
||||
<id>jar</id>
|
||||
</reference>
|
||||
</references>
|
||||
</configuration>
|
||||
</project>
|
89
sdk/nbi/stub/ext/engine/src/data/engine.properties
Normal file
@ -0,0 +1,89 @@
|
||||
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
nbi.wizard.components.instance.uri=resource:org/mycompany/installer/wizard/wizard-components.xml
|
||||
nbi.wizard.ui.swing.frame.icon=resource:org/mycompany/installer/wizard/wizard-icon.png
|
||||
nbi.wizard.ui.swing.frame.title.prefix= {product-name} Installer
|
||||
nbi.wizard.ui.swing.frame.title.pattern={0}
|
||||
nbi.macosx.application.directory.name={product-name} Installer
|
||||
nbi.product.remove.corrupted.products.silently=true
|
||||
|
||||
nbi.wizard.ui.swing.frame.head.right.image=resource:org/mycompany/installer/wizard/wizard-description-background-right.png
|
||||
nbi.wizard.ui.swing.frame.head.left.image=resource:org/mycompany/installer/wizard/wizard-description-background-left.png
|
||||
|
||||
nbi.wizard.ui.swing.welcome.left.top.image=resource:org/mycompany/installer/wizard/components/panels/resources/welcome-left-top.png
|
||||
nbi.wizard.ui.swing.welcome.left.bottom.image=resource:org/mycompany/installer/wizard/components/panels/resources/welcome-left-bottom.png
|
||||
|
||||
nbi.local.directory.path=$S{user.home}/.{product-uid}-installer
|
||||
|
||||
nbi.wizard.ui.swing.frame.width.default=600
|
||||
nbi.wizard.ui.swing.frame.height.default=500
|
||||
nbi.wizard.ui.swing.frame.width.win.classic=588
|
||||
nbi.wizard.ui.swing.frame.height.win.classic=442
|
||||
nbi.wizard.ui.swing.frame.width.win.xp=600
|
||||
nbi.wizard.ui.swing.frame.height.win.xp=450
|
||||
nbi.wizard.ui.swing.frame.width.motif=624
|
||||
nbi.wizard.ui.swing.frame.height.motif=470
|
||||
nbi.wizard.ui.swing.frame.width.metal=624
|
||||
nbi.wizard.ui.swing.frame.height.metal=470
|
||||
nbi.wizard.ui.swing.frame.width.aqua=640
|
||||
nbi.wizard.ui.swing.frame.height.aqua=480
|
||||
nbi.wizard.ui.swing.frame.width.gtk=704
|
||||
nbi.wizard.ui.swing.frame.height.gtk=528
|
||||
nbi.wizard.ui.swing.frame.width.nimbus=624
|
||||
nbi.wizard.ui.swing.frame.height.nimbus=512
|
||||
|
||||
|
||||
nbi.wizard.ui.swing.frame.minimum.width.default=600
|
||||
nbi.wizard.ui.swing.frame.minimum.height.default=500
|
||||
nbi.wizard.ui.swing.frame.minimum.width.win.classic=588
|
||||
nbi.wizard.ui.swing.frame.minimum.height.win.classic=442
|
||||
nbi.wizard.ui.swing.frame.minimum.width.win.xp=600
|
||||
nbi.wizard.ui.swing.frame.minimum.height.win.xp=450
|
||||
nbi.wizard.ui.swing.frame.minimum.width.motif=624
|
||||
nbi.wizard.ui.swing.frame.minimum.height.motif=470
|
||||
nbi.wizard.ui.swing.frame.minimum.width.metal=624
|
||||
nbi.wizard.ui.swing.frame.minimum.height.metal=470
|
||||
nbi.wizard.ui.swing.frame.minimum.width.aqua=640
|
||||
nbi.wizard.ui.swing.frame.minimum.height.aqua=480
|
||||
nbi.wizard.ui.swing.frame.minimum.width.gtk=704
|
||||
nbi.wizard.ui.swing.frame.minimum.height.gtk=528
|
||||
nbi.wizard.ui.swing.frame.minimum.width.nimbus=624
|
||||
nbi.wizard.ui.swing.frame.minimum.height.nimbus=512
|
@ -0,0 +1,71 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
nlu.jvm.notfoundmessage=Java SE Development Kit (JDK) was not found on this computer\nJDK 6 is required for installing {product-name}. Make sure that the JDK is properly installed and run installer again.\nYou can specify valid JDK location using {0} installer argument.\n\nTo download the JDK, visit http://java.sun.com/javase/downloads
|
||||
nlu.jvm.usererror=Java Runtime Environment (JRE) was not found at the specified location {0}
|
||||
nlu.jvm.uncompatible=Unsupported JVM version at {0}.\nTry to specify another JVM location using parameter {1}
|
||||
nlu.freespace=There is not enough free disk space to extract installation data\n{0} MB of free disk space is required in a temporary folder.\nClean up the disk space and run installer again. You can specify a temporary folder with sufficient disk space using {1} installer argument
|
||||
nlu.integrity=\nInstaller file {0} seems to be corrupted
|
||||
nlu.missing.external.resource=Can`t run {product-name} Installer.\nAn external file with necessary data is required but missing:\n{0}
|
||||
nlu.cannot.create.tmpdir=Cannot create temporary directory {0}
|
||||
nlu.cannot.extract.bundled.jvm=Cannot extract bundled JVM
|
||||
nlu.cannot.unpack.jvm.file=Cannot unpack file {0}
|
||||
nlu.error.verify.bundled.jvm=Cannot verify bundled JVM, try to search JVM on the system
|
||||
|
||||
nlu.running=Running the installer wizard...
|
||||
nlu.starting=Configuring the installer...
|
||||
nlu.extracting=Extracting installation data...
|
||||
nlu.prepare.jvm=Preparing bundled JVM ...
|
||||
nlu.jvm.search=Searching for JVM on the system...
|
||||
|
||||
nlu.msg.usage=\nUsage:
|
||||
nlu.arg.javahome=\t{0}\t<dir>\tUsing java from <dir> for running application
|
||||
nlu.arg.verbose=\t{0}\t\tUse verbose output
|
||||
nlu.arg.output=\t{0}\t<out>\tRedirect all output to file <out>
|
||||
nlu.arg.disable.space.check=\t{0}\t\tDisable free space check
|
||||
nlu.arg.extract=\t{0}\t[dir]\tExtract all bundled data to <dir>.\n\t\t\t\tIf <dir> is not specified then extract to the current directory
|
||||
nlu.arg.tempdir=\t{0}\t<dir>\tUse <dir> for extracting temporary data
|
||||
nlu.arg.cpa=\t{0} <cp>\tAppend classpath with <cp>
|
||||
nlu.arg.cpp=\t{0} <cp>\tPrepend classpath with <cp>
|
||||
nlu.arg.locale=\t{0}\t<locale>\tOverride default locale with specified <locale>
|
||||
nlu.arg.silent=\t{0}\t\tRun installer silently
|
||||
nlu.arg.help=\t{0}\t\tShow this help
|
||||
|
||||
|
||||
nlu.java.application.name.macosx={product-name} Installer
|
@ -0,0 +1,74 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
nlw.jvm.notfoundmessage=Java SE Development Kit (JDK) was not found on this computer\nJDK 6 is required for installing {product-name}. Make sure that the JDK is properly installed and run installer again. You can specify valid JDK location using {0} installer argument.\n\nTo download the JDK, visit http://java.sun.com/javase/downloads
|
||||
nlw.jvm.usererror=Java Runtime Environment (JRE) was not found\nThere is no JRE at the specified location {0}
|
||||
nlw.jvm.unsupportedversion=Unsupported Java VM version\nThe Java VM at {0} has the unsupported version
|
||||
nlw.freespace=There is not enough free disk space to extract installation data\n{0} MB of free disk space is required in a temporary folder. Clean up the disk space and run installer again. You can specify a temporary folder with sufficient disk space using {1} installer argument
|
||||
nlw.tmpdir=Can't create temporary directory\nThe temporary directory for extracting data {0} was not created
|
||||
nlw.integrity=Installer file is corrupted\nInstaller file {0} seems to be corrupted
|
||||
nlw.output.error=Data extraction error\nCan't create file {0}!\nThe following error occured :\n{1}
|
||||
nlw.java.process.error=An error occured while running java process\n{0}
|
||||
nlw.missing.external.resource=Can`t run {product-name} Installer.\nAn external file with necessary data is required but missing:\n{0}
|
||||
nlw.bundled.jvm.extract.error=Cannot prepare bundled JVM to run the installer.\nMost probably the bundled JVM is not compatible with the current platform.
|
||||
nlw.bundled.jvm.verify.error=An error occured while verifying bundled JVM.\nMost probably the bundled JVM is not compatible with the current platform.
|
||||
|
||||
nlw.arg.output={0} <output-file>\n\tRedirect output to file <output-file>
|
||||
nlw.arg.javahome={0} <javahomedir>\n\tRun jar file using JVM from <javahomedir>
|
||||
nlw.arg.verbose={0}\n\tUse verbose output
|
||||
nlw.arg.tempdir={0} <temp-dir>\n\tUse <temp-dir> for extracting data
|
||||
nlw.arg.extract={0} [directory]\n\tExtract all bundled data to the specific directory.\n\tIf directory is not specified then extract to the current directory
|
||||
nlw.arg.classpatha={0} <classpath>\n\tAppend classpath with <classpath>
|
||||
nlw.arg.classpathp={0} <classpath>\n\tPrepend classpath with <classpath>
|
||||
nlw.arg.disable.space.check={0}\n\tDisable free space check
|
||||
nlw.arg.locale={0} <locale>\n\tOverride system default locale with <locale>
|
||||
nlw.arg.silent={0} \n\tRun installer silently
|
||||
nlw.arg.help={0}\n\tShow help message
|
||||
|
||||
|
||||
nlw.msg.create.tmpdir=Creating temporary directory ...
|
||||
nlw.msg.extract=Extracting data ...
|
||||
nlw.msg.jvmsearch=Finding JVM on your system ...
|
||||
nlw.msg.setoptions=Setting command options ...
|
||||
nlw.msg.running=Running JVM ...
|
||||
nlw.msg.title=Please wait while the launcher prepares data to run the installer ...
|
||||
nlw.msg.messagebox.title={product-name} Installer
|
||||
nlw.msg.progress.title=Configuring the installer ...
|
||||
nlw.msg.button.error=Exit Installer
|
||||
nlw.msg.main.title={product-name} Installer
|
@ -0,0 +1,43 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
############################################################################
|
||||
# NetBeansRCPUtils.java
|
||||
|
||||
NU.error.cannot.get.userdir=Can`t get application userdir from {0}
|
@ -0,0 +1,191 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU General
|
||||
* Public License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
* License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
* compliance with the License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
* License for the specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header Notice in
|
||||
* each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
* designates this particular file as subject to the "Classpath" exception as
|
||||
* provided by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the License Header,
|
||||
* with the fields enclosed by brackets [] replaced by your own identifying
|
||||
* information: "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
* is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL or only the
|
||||
* GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
* this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
* you do not indicate a single choice of license, a recipient has the option to
|
||||
* distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above. However, if
|
||||
* you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
|
||||
* the option applies only if the new code is made subject to such option by the
|
||||
* copyright holder.
|
||||
*/
|
||||
|
||||
package org.mycompany.installer.utils.applications;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.netbeans.installer.utils.FileUtils;
|
||||
import org.netbeans.installer.utils.LogManager;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.SystemUtils;
|
||||
import org.netbeans.installer.utils.exceptions.NativeException;
|
||||
import org.netbeans.installer.utils.system.WindowsNativeUtils;
|
||||
import org.netbeans.installer.utils.system.WindowsNativeUtils;
|
||||
import org.netbeans.installer.utils.system.windows.WindowsRegistry;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class NetBeansRCPUtils {
|
||||
|
||||
|
||||
/**
|
||||
* Get resolved application user directory
|
||||
* @param appLocation Application home directory
|
||||
* @throws IOException if can`t get application default userdir
|
||||
*/
|
||||
public static File getApplicationUserDirFile(File appLocation) throws IOException {
|
||||
String dir = getApplicationUserDir(appLocation);
|
||||
String userHome = System.getProperty("user.home");
|
||||
if(SystemUtils.isWindows()) {
|
||||
WindowsNativeUtils wnu = (WindowsNativeUtils) SystemUtils.getNativeUtils();
|
||||
WindowsRegistry reg = wnu.getWindowsRegistry();
|
||||
String key = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
|
||||
try {
|
||||
if(reg.keyExists(reg.HKCU, key) &&
|
||||
reg.valueExists(reg.HKCU, key, "AppData")) {
|
||||
userHome = reg.getStringValue(reg.HKCU, key, "AppData", false);
|
||||
|
||||
}
|
||||
} catch (NativeException e) {
|
||||
LogManager.log(e);
|
||||
}
|
||||
}
|
||||
dir = dir.replace(USER_HOME_TOKEN, userHome);
|
||||
dir = dir.replace(APPNAME_TOKEN, getApplicationName(appLocation));
|
||||
return new File(dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get application user directory as it is written in application`s configuration file
|
||||
* @param appLocation Application home directory
|
||||
* @throws IOException if can`t get default userdir
|
||||
*/
|
||||
public static String getApplicationUserDir(File appLocation) throws IOException {
|
||||
File []confFiles = new File(appLocation, "etc").listFiles(new FilenameFilter() {
|
||||
|
||||
public boolean accept(File dir, String name) {
|
||||
return name.endsWith(".conf");
|
||||
}
|
||||
});
|
||||
File conf = null;
|
||||
if(confFiles.length == 1) {
|
||||
conf = confFiles[0];
|
||||
} else if(confFiles.length >2) {
|
||||
for(File f : confFiles) {
|
||||
String prefix = f.getName().substring(0, f.getName().indexOf(".conf"));
|
||||
if((SystemUtils.isUnix() && new File(appLocation, "bin/" + prefix).exists()) ||
|
||||
(SystemUtils.isWindows() && new File(appLocation, "bin/" + prefix + ".exe").exists())) {
|
||||
conf = f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(conf == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String contents = FileUtils.readFile(conf);
|
||||
Matcher matcher = Pattern.compile(
|
||||
NEW_LINE_PATTERN + SPACES_PATTERN +
|
||||
(SystemUtils.isMacOS() ? DEFAULT_USERDIR_MAC : DEFAULT_USERDIR) +
|
||||
"\"(.*?)\"").matcher(contents);
|
||||
if(matcher.find() && matcher.groupCount() == 1) {
|
||||
return matcher.group(1);
|
||||
} else {
|
||||
throw new IOException(StringUtils.format(
|
||||
ERROR_CANNOT_GET_USERDIR_STRING,conf));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get application name - i.e. <name> in bin/<name>.exe and etc/<name>.conf
|
||||
* @param appLocation Application home directory
|
||||
*/
|
||||
public static String getApplicationName(File appLocation) {
|
||||
File []confFiles = new File(appLocation, "etc").listFiles(new FilenameFilter() {
|
||||
|
||||
public boolean accept(File dir, String name) {
|
||||
return name.endsWith(".conf");
|
||||
}
|
||||
});
|
||||
|
||||
if(confFiles.length == 1) {
|
||||
String name = confFiles[0].getName();
|
||||
return name.substring(0, name.indexOf(".conf"));
|
||||
} else if(confFiles.length >2) {
|
||||
for(File f : confFiles) {
|
||||
String name = f.getName();
|
||||
String prefix = name.substring(0, name.indexOf(".conf"));
|
||||
if((SystemUtils.isUnix() && new File(appLocation, "bin/" + prefix).exists()) ||
|
||||
(SystemUtils.isWindows() && new File(appLocation, "bin/" + prefix + ".exe").exists())) {
|
||||
return prefix;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Instance
|
||||
private NetBeansRCPUtils() {
|
||||
// does nothing
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
|
||||
public static final String NEW_LINE_PATTERN =
|
||||
"[\r\n|\n|\r]"; // NOI18N
|
||||
public static final String SPACES_PATTERN =
|
||||
"\\ *"; // NOI18N
|
||||
|
||||
public static final String DEFAULT_USERDIR =
|
||||
"default_userdir="; // NOI18N
|
||||
public static final String DEFAULT_USERDIR_MAC =
|
||||
"default_mac_userdir="; // NOI18N
|
||||
|
||||
public static final String USER_HOME_TOKEN =
|
||||
"${HOME}"; // NOI18N
|
||||
public static final String APPNAME_TOKEN =
|
||||
"${APPNAME}"; // NOI18N
|
||||
|
||||
public static final String ERROR_CANNOT_GET_USERDIR_STRING =
|
||||
ResourceUtils.getString(NetBeansRCPUtils.class,
|
||||
"NU.error.cannot.get.userdir");//NOI18N
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
IA.title=Installer Initialization
|
||||
IA.progress.title=Initialization in progress...
|
||||
IA.description=Please wait while initialization is completed.
|
@ -0,0 +1,112 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU General
|
||||
* Public License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
* License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
* compliance with the License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
* License for the specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header Notice in
|
||||
* each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
* designates this particular file as subject to the "Classpath" exception as
|
||||
* provided by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the License Header,
|
||||
* with the fields enclosed by brackets [] replaced by your own identifying
|
||||
* information: "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
* is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL or only the
|
||||
* GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
* this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
* you do not indicate a single choice of license, a recipient has the option to
|
||||
* distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above. However, if
|
||||
* you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
|
||||
* the option applies only if the new code is made subject to such option by the
|
||||
* copyright holder.
|
||||
*/
|
||||
|
||||
package org.mycompany.installer.wizard.components.actions;
|
||||
|
||||
import org.netbeans.installer.product.Registry;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.helper.ErrorLevel;
|
||||
import org.netbeans.installer.utils.ErrorManager;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.progress.Progress;
|
||||
import org.netbeans.installer.wizard.components.WizardAction;
|
||||
import org.netbeans.installer.wizard.components.actions.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class InitializeAction extends WizardAction {
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Instance
|
||||
public InitializeAction() {
|
||||
setProperty(TITLE_PROPERTY,
|
||||
DEFAULT_TITLE);
|
||||
setProperty(DESCRIPTION_PROPERTY,
|
||||
DEFAULT_DESCRIPTION);
|
||||
|
||||
downloadLogic = new DownloadConfigurationLogicAction();
|
||||
initReg = new InitializeRegistryAction();
|
||||
}
|
||||
private DownloadConfigurationLogicAction downloadLogic;
|
||||
private InitializeRegistryAction initReg;
|
||||
|
||||
public void execute() {
|
||||
final Progress progress = new Progress();
|
||||
|
||||
//getWizardUi().setProgress(progress);
|
||||
|
||||
|
||||
progress.setTitle(getProperty(PROGRESS_TITLE_PROPERTY));
|
||||
|
||||
//progress.synchronizeDetails(false);
|
||||
|
||||
if (initReg.canExecuteForward()) {
|
||||
initReg.setWizard(getWizard());
|
||||
initReg.execute();
|
||||
}
|
||||
|
||||
if (downloadLogic.canExecuteForward()) {
|
||||
downloadLogic.setWizard(getWizard());
|
||||
downloadLogic.execute();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public WizardActionUi getWizardUi() {
|
||||
return null; // this action does not have a ui
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
public static final String DEFAULT_TITLE = ResourceUtils.getString(
|
||||
InitializeAction.class,
|
||||
"IA.title"); // NOI18N
|
||||
public static final String PROGRESS_TITLE_PROPERTY = ResourceUtils.getString(
|
||||
InitializeAction.class,
|
||||
"IA.progress.title"); // NOI18N
|
||||
public static final String DEFAULT_DESCRIPTION = ResourceUtils.getString(
|
||||
InitializeAction.class,
|
||||
"IA.description"); // NOI18N
|
||||
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
WP.title={product-name} Introduction
|
||||
WP.description={product-name}
|
||||
WP.welcome.text=<html>\
|
||||
<h1>Welcome to the {product-name} Installer Wizard</h1><br>\
|
||||
This program will install the {product-name} on your computer.<br><br>\
|
||||
Click Next to continue.
|
||||
WP.already.installed.text=<html>\
|
||||
<h1>Welcome to the {product-name} Installer Wizard</h1><br>\
|
||||
{0} is already installed at {1}.<br>It is not possible to install it again.<br><br>\
|
||||
Click Exit to close this wizard.
|
||||
WP.already.installed.next.button.text=&Exit
|
||||
WP.incompatible.platform.text=<html>\
|
||||
<h1>Welcome to the {product-name} Installer Wizard</h1><br>\
|
||||
The {0} installer was not designed to run on this operating system so it is not possible to install it. \
|
||||
Please run the installer for the appropriate platform.<br><br>\
|
||||
Click Exit to close this wizard.
|
||||
|
||||
PoISP.title=Setup Complete
|
||||
PoISP.description=Click Finish to finish {product-name} setup.
|
||||
|
||||
PoISP.message.text.success=\
|
||||
<html><b><font size="+1">Installation Complete</font></b><br><br><br>\
|
||||
{0} has been installed on your computer.</html>
|
||||
#NOI18N
|
||||
PoISP.message.content.type.success=text/html
|
||||
|
||||
PoISP.message.text.warnings=\
|
||||
<html><b><font size="+1">Installation Complete</font></b><br><br><br>\
|
||||
<span color="red">{0} has been installed on your computer but some not critical warnings were encountered.\
|
||||
<br><br>For more details consult the installation log file:<br>{1}</span></html>
|
||||
|
||||
PoISP.message.text.finish=<html>Click Finish to close this wizard.</html>
|
||||
PoISP.message.text.finish.content.type=text/html
|
||||
|
||||
#NOI18N
|
||||
PoISP.message.content.type.warnings=text/html
|
||||
|
||||
PoISP.message.text.errors=<html><b><font size="+1">Installation Failed</font></b><br><br><br>\
|
||||
<span color="red">{0} has not been installed on your computer.</span><br><br>\
|
||||
Try to run installer again or consult the installation log file for more details:<br>{1}</span></html>
|
||||
#NOI18N
|
||||
PoISP.message.content.type.errors=text/html
|
||||
|
||||
PoISP.message.text.success.uninstall=<html>\
|
||||
<b><font size="+1">Uninstallation Complete</font></b><br><br><br>\
|
||||
{0} has been uninstalled.</html>
|
||||
#NOI18N
|
||||
PoISP.message.content.type.success.uninstall=text/html
|
||||
|
||||
PoISP.message.text.warnings.uninstall=\
|
||||
<html><b><font size="+1">Uninstallation Complete</font></b><br><br><br>\
|
||||
<span color="red">{0} has been uninstalled with warnings.<br><br>\
|
||||
For more details consult the installation log file:<br>{1}</span></html>
|
||||
#NOI18N
|
||||
PoISP.message.content.type.warnings.uninstall=text/html
|
||||
|
||||
PoISP.message.text.errors.uninstall=<html><b><font size="+1">Uninstallation Failed</font></b><br><br>\
|
||||
<span color="red">Uninstallation of {0} was not completed.<br><br>\
|
||||
Try to run uninstaller again or consult the uninstallation log file for more details:<br>{1}</span>\
|
||||
</html>
|
||||
#NOI18N
|
||||
PoISP.message.content.type.errors.uninstall=text/html
|
||||
|
||||
PoISP.message.run.application.now=Launch {0} after the installer closes.
|
||||
|
||||
PoISP.next.button.text=&Finish
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
# PreInstallSummaryPanel.java
|
||||
PrISP.title=Summary
|
||||
PrISP.description=Click Install to start the installation.
|
||||
PrISP.description.uninstall=Click Uninstall to start the uninstallation.
|
||||
|
||||
PrISP.installation.folder={0} Installation Folder:
|
||||
PrISP.uninstall.list.label.text=<html><br>Click Uninstall to remove {0} from the system.
|
||||
PrISP.installation.size=Total Installation Size:
|
||||
PrISP.download.size=Total Download Size:
|
||||
|
||||
PrISP.next.button.text=&Install
|
||||
PrISP.next.button.text.uninstall=&Uninstall
|
||||
|
||||
PrISP.error.not.enough.space=Insufficient disk space for proper installation. Additional {1} is required in {0}.
|
||||
PrISP.error.cannot.check.space=Cannot check the free disk space
|
||||
PrISP.error.logic.access=Could not access product's configuration logic
|
||||
PrISP.error.fsroots=Cannot get the list of file system roots
|
||||
PrISP.error.non.existent.root={0} is set up to be installed to {1} which does not belong to any of the file system roots.
|
||||
PrISP.error.cannot.write=The wizard does not have write access to {1}, the installation directory of {0}. Please correct the permissions before proceeding.
|
||||
|
||||
PrISP.remove.app.userdir.text=\
|
||||
<html>\
|
||||
If you wish to remove the application settings directory that stores user configuration data for {0}, check the following option.<br>
|
||||
PrISP.remove.app.userdir.checkbox=Remove directory {0}
|
@ -0,0 +1,457 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU General
|
||||
* Public License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
* License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
* compliance with the License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
* License for the specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header Notice in
|
||||
* each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
* designates this particular file as subject to the "Classpath" exception as
|
||||
* provided by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the License Header,
|
||||
* with the fields enclosed by brackets [] replaced by your own identifying
|
||||
* information: "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
* is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL or only the
|
||||
* GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
* this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
* you do not indicate a single choice of license, a recipient has the option to
|
||||
* distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above. However, if
|
||||
* you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
|
||||
* the option applies only if the new code is made subject to such option by the
|
||||
* copyright holder.
|
||||
*/
|
||||
package org.mycompany.installer.wizard.components.panels;
|
||||
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.Insets;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import org.netbeans.installer.product.Registry;
|
||||
import org.netbeans.installer.product.components.Product;
|
||||
import org.netbeans.installer.product.components.ProductConfigurationLogic;
|
||||
import org.netbeans.installer.utils.LogManager;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.exceptions.InitializationException;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiCheckBox;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiTextPane;
|
||||
import org.netbeans.installer.wizard.components.WizardPanel;
|
||||
import org.netbeans.installer.wizard.containers.SwingContainer;
|
||||
import org.netbeans.installer.wizard.containers.SwingFrameContainer;
|
||||
import org.netbeans.installer.wizard.ui.SwingUi;
|
||||
import org.netbeans.installer.wizard.ui.WizardUi;
|
||||
import static org.netbeans.installer.utils.helper.DetailedStatus.INSTALLED_SUCCESSFULLY;
|
||||
import static org.netbeans.installer.utils.helper.DetailedStatus.INSTALLED_WITH_WARNINGS;
|
||||
import static org.netbeans.installer.utils.helper.DetailedStatus.FAILED_TO_INSTALL;
|
||||
import static org.netbeans.installer.utils.helper.DetailedStatus.UNINSTALLED_SUCCESSFULLY;
|
||||
import static org.netbeans.installer.utils.helper.DetailedStatus.UNINSTALLED_WITH_WARNINGS;
|
||||
import static org.netbeans.installer.utils.helper.DetailedStatus.FAILED_TO_UNINSTALL;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class PostInstallSummaryPanel extends WizardPanel {
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Instance
|
||||
|
||||
public PostInstallSummaryPanel() {
|
||||
setProperty(TITLE_PROPERTY,
|
||||
DEFAULT_TITLE);
|
||||
setProperty(DESCRIPTION_PROPERTY,
|
||||
DEFAULT_DESCRIPTION);
|
||||
|
||||
setProperty(MESSAGE_TEXT_SUCCESS_PROPERTY,
|
||||
DEFAULT_MESSAGE_TEXT_SUCCESS);
|
||||
setProperty(MESSAGE_CONTENT_TYPE_SUCCESS_PROPERTY,
|
||||
DEFAULT_MESSAGE_CONTENT_TYPE_SUCCESS);
|
||||
setProperty(MESSAGE_TEXT_WARNINGS_PROPERTY,
|
||||
DEFAULT_MESSAGE_TEXT_WARNINGS);
|
||||
setProperty(MESSAGE_CONTENT_TYPE_WARNINGS_PROPERTY,
|
||||
DEFAULT_MESSAGE_CONTENT_TYPE_WARNINGS);
|
||||
setProperty(MESSAGE_TEXT_ERRORS_PROPERTY,
|
||||
DEFAULT_MESSAGE_TEXT_ERRORS);
|
||||
setProperty(MESSAGE_CONTENT_TYPE_ERRORS_PROPERTY,
|
||||
DEFAULT_MESSAGE_CONTENT_TYPE_ERRORS);
|
||||
|
||||
setProperty(MESSAGE_TEXT_SUCCESS_UNINSTALL_PROPERTY,
|
||||
DEFAULT_MESSAGE_TEXT_SUCCESS_UNINSTALL);
|
||||
setProperty(MESSAGE_CONTENT_TYPE_SUCCESS_UNINSTALL_PROPERTY,
|
||||
DEFAULT_MESSAGE_CONTENT_TYPE_SUCCESS_UNINSTALL);
|
||||
setProperty(MESSAGE_TEXT_WARNINGS_UNINSTALL_PROPERTY,
|
||||
DEFAULT_MESSAGE_TEXT_WARNINGS_UNINSTALL);
|
||||
setProperty(MESSAGE_CONTENT_TYPE_WARNINGS_UNINSTALL_PROPERTY,
|
||||
DEFAULT_MESSAGE_CONTENT_TYPE_WARNINGS_UNINSTALL);
|
||||
setProperty(MESSAGE_TEXT_ERRORS_UNINSTALL_PROPERTY,
|
||||
DEFAULT_MESSAGE_TEXT_ERRORS_UNINSTALL);
|
||||
setProperty(MESSAGE_CONTENT_TYPE_ERRORS_UNINSTALL_PROPERTY,
|
||||
DEFAULT_MESSAGE_CONTENT_TYPE_ERRORS_UNINSTALL);
|
||||
|
||||
|
||||
setProperty(NEXT_BUTTON_TEXT_PROPERTY,
|
||||
DEFAULT_NEXT_BUTTON_TEXT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPointOfNoReturn() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WizardUi getWizardUi() {
|
||||
if (wizardUi == null) {
|
||||
wizardUi = new PostInstallSummaryPanelUi(this);
|
||||
}
|
||||
|
||||
return wizardUi;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Inner Classes
|
||||
public static class PostInstallSummaryPanelUi extends WizardPanelUi {
|
||||
|
||||
protected PostInstallSummaryPanel component;
|
||||
|
||||
public PostInstallSummaryPanelUi(PostInstallSummaryPanel component) {
|
||||
super(component);
|
||||
|
||||
this.component = component;
|
||||
}
|
||||
|
||||
public SwingUi getSwingUi(SwingContainer container) {
|
||||
if (swingUi == null) {
|
||||
swingUi = new PostInstallSummaryPanelSwingUi(component, container);
|
||||
}
|
||||
|
||||
return super.getSwingUi(container);
|
||||
}
|
||||
}
|
||||
|
||||
public static class PostInstallSummaryPanelSwingUi extends WizardPanelSwingUi {
|
||||
|
||||
protected PostInstallSummaryPanel component;
|
||||
private NbiTextPane messagePaneInstall;
|
||||
private NbiTextPane messagePaneUninstall;
|
||||
|
||||
|
||||
private NbiTextPane messagePaneFinish;
|
||||
private NbiCheckBox runAppNow;
|
||||
private Product app;
|
||||
|
||||
public PostInstallSummaryPanelSwingUi(
|
||||
final PostInstallSummaryPanel component,
|
||||
final SwingContainer container) {
|
||||
super(component, container);
|
||||
|
||||
this.component = component;
|
||||
|
||||
initComponents();
|
||||
}
|
||||
|
||||
protected void initializeContainer() {
|
||||
super.initializeContainer();
|
||||
|
||||
// set up the back button
|
||||
container.getBackButton().setVisible(false);
|
||||
container.getBackButton().setEnabled(false);
|
||||
|
||||
// set up the next (or finish) button
|
||||
container.getNextButton().setVisible(true);
|
||||
container.getNextButton().setEnabled(true);
|
||||
|
||||
container.getNextButton().setText(
|
||||
component.getProperty(NEXT_BUTTON_TEXT_PROPERTY));
|
||||
|
||||
// set up the cancel button
|
||||
container.getCancelButton().setVisible(false);
|
||||
container.getCancelButton().setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void evaluateNextButtonClick() {
|
||||
container.getNextButton().setEnabled(false);
|
||||
final Product product = app;
|
||||
if (app != null) {
|
||||
ProductConfigurationLogic l = null;
|
||||
try {
|
||||
l = app.getLogic();
|
||||
} catch (InitializationException e) {
|
||||
}
|
||||
final File executable = l != null ? new File(app.getInstallationLocation(), l.getExecutable()) : null;
|
||||
|
||||
if (executable != null && runAppNow.isSelected()) {
|
||||
LogManager.log("... running: " + executable.getAbsolutePath());
|
||||
ProcessBuilder pb = new ProcessBuilder(new String[]{executable.getAbsolutePath()});
|
||||
try {
|
||||
pb.start();
|
||||
} catch (IOException e) {
|
||||
LogManager.log(e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
super.evaluateNextButtonClick();
|
||||
}
|
||||
|
||||
protected void initialize() {
|
||||
final Registry registry = Registry.getInstance();
|
||||
final List<Product> successfulInstall = registry.getProducts(INSTALLED_SUCCESSFULLY);
|
||||
final List<Product> warningInstall = registry.getProducts(INSTALLED_WITH_WARNINGS);
|
||||
final List<Product> errorInstall = registry.getProducts(FAILED_TO_INSTALL);
|
||||
|
||||
final List<Product> successfulUninstall = registry.getProducts(UNINSTALLED_SUCCESSFULLY);
|
||||
final List<Product> warningUninstall = registry.getProducts(UNINSTALLED_WITH_WARNINGS);
|
||||
final List<Product> errorUninstall = registry.getProducts(FAILED_TO_UNINSTALL);
|
||||
|
||||
if (errorInstall.size() > 0) {
|
||||
messagePaneInstall.setContentType(component.getProperty(MESSAGE_CONTENT_TYPE_ERRORS_PROPERTY));
|
||||
messagePaneInstall.setText(StringUtils.format(
|
||||
component.getProperty(MESSAGE_TEXT_ERRORS_PROPERTY),
|
||||
errorInstall.get(0).getDisplayName(),
|
||||
LogManager.getLogFile()));
|
||||
} else if (warningInstall.size() > 0) {
|
||||
messagePaneInstall.setContentType(component.getProperty(MESSAGE_CONTENT_TYPE_WARNINGS_PROPERTY));
|
||||
messagePaneInstall.setText(StringUtils.format(
|
||||
component.getProperty(MESSAGE_TEXT_WARNINGS_PROPERTY),
|
||||
warningInstall.get(0).getDisplayName(),
|
||||
LogManager.getLogFile()));
|
||||
} else if (successfulInstall.size() > 0) {
|
||||
messagePaneInstall.setContentType(component.getProperty(MESSAGE_CONTENT_TYPE_SUCCESS_PROPERTY));
|
||||
messagePaneInstall.setText(StringUtils.format(
|
||||
component.getProperty(MESSAGE_TEXT_SUCCESS_PROPERTY),
|
||||
successfulInstall.get(0).getDisplayName(),
|
||||
LogManager.getLogFile()));
|
||||
} else {
|
||||
messagePaneInstall.setVisible(false);
|
||||
}
|
||||
|
||||
messagePaneFinish.setVisible(true);
|
||||
messagePaneFinish.setContentType(DEFAULT_MESSAGE_FINISH_PROCESS_CONTENT_TYPE);
|
||||
messagePaneFinish.setText(DEFAULT_MESSAGE_FINISH_PROCESS);
|
||||
|
||||
if (errorUninstall.size() > 0) {
|
||||
messagePaneUninstall.setContentType(component.getProperty(MESSAGE_CONTENT_TYPE_ERRORS_UNINSTALL_PROPERTY));
|
||||
messagePaneUninstall.setText(StringUtils.format(
|
||||
component.getProperty(MESSAGE_TEXT_ERRORS_UNINSTALL_PROPERTY),
|
||||
errorUninstall.get(0).getDisplayName(),
|
||||
LogManager.getLogFile()));
|
||||
} else if (warningUninstall.size() > 0) {
|
||||
messagePaneUninstall.setContentType(component.getProperty(MESSAGE_CONTENT_TYPE_WARNINGS_UNINSTALL_PROPERTY));
|
||||
messagePaneUninstall.setText(StringUtils.format(
|
||||
component.getProperty(MESSAGE_TEXT_WARNINGS_UNINSTALL_PROPERTY),
|
||||
warningUninstall.get(0).getDisplayName(),
|
||||
LogManager.getLogFile()));
|
||||
} else if (successfulUninstall.size() > 0) {
|
||||
messagePaneUninstall.setContentType(component.getProperty(MESSAGE_CONTENT_TYPE_SUCCESS_UNINSTALL_PROPERTY));
|
||||
messagePaneUninstall.setText(StringUtils.format(
|
||||
component.getProperty(MESSAGE_TEXT_SUCCESS_UNINSTALL_PROPERTY),
|
||||
successfulUninstall.get(0).getDisplayName(),
|
||||
LogManager.getLogFile()));
|
||||
} else {
|
||||
messagePaneUninstall.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
final List<Product> products = new LinkedList<Product>();
|
||||
products.addAll(successfulInstall);
|
||||
products.addAll(warningInstall);
|
||||
runAppNow.setSelected(false);
|
||||
if (!products.isEmpty()) {
|
||||
runAppNow.setText(StringUtils.format(DEFAULT_MESSAGE_LAUNCH_APPLICATION_NOW,
|
||||
products.get(0).getDisplayName()));
|
||||
runAppNow.doClick();
|
||||
app = products.get(0);
|
||||
} else {
|
||||
runAppNow.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void initComponents() {
|
||||
// messagePaneInstall ///////////////////////////////////////////////////
|
||||
messagePaneInstall = new NbiTextPane();
|
||||
|
||||
// messagePaneUninstall /////////////////////////////////////////////////
|
||||
messagePaneUninstall = new NbiTextPane();
|
||||
|
||||
// messagePaneRunApplication ///////////////////////////////////////////////////
|
||||
|
||||
|
||||
messagePaneFinish = new NbiTextPane();
|
||||
|
||||
runAppNow = new NbiCheckBox();
|
||||
|
||||
|
||||
// this /////////////////////////////////////////////////////////////////
|
||||
add(messagePaneInstall, new GridBagConstraints(
|
||||
0, 0, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(31, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(messagePaneUninstall, new GridBagConstraints(
|
||||
0, 1, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.BOTH, // fill
|
||||
new Insets(31, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
add(messagePaneFinish, new GridBagConstraints(
|
||||
0, 3, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 1.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(11, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
/*
|
||||
add(new NbiPanel(), new GridBagConstraints(
|
||||
0, 4, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 1.0, // weight-x, weight-y
|
||||
GridBagConstraints.CENTER, // anchor
|
||||
GridBagConstraints.BOTH, // fill
|
||||
new Insets(0, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
*/
|
||||
add(runAppNow, new GridBagConstraints(
|
||||
0, 4, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 1.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(11, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
|
||||
|
||||
if (container instanceof SwingFrameContainer) {
|
||||
final SwingFrameContainer sfc = (SwingFrameContainer) container;
|
||||
sfc.addWindowListener(new WindowAdapter() {
|
||||
|
||||
@Override
|
||||
public void windowClosing(WindowEvent event) {
|
||||
SwingUi currentUi = component.getWizardUi().getSwingUi(container);
|
||||
if (currentUi != null) {
|
||||
if (!container.getCancelButton().isEnabled() && // cancel button is disabled
|
||||
!container.getCancelButton().isVisible() && // no cancel button at this panel
|
||||
!container.getBackButton().isVisible() && // no back button at this panel
|
||||
container.getNextButton().isVisible() && // next button is visible
|
||||
container.getNextButton().isEnabled()) { // and enabled
|
||||
currentUi.evaluateNextButtonClick();
|
||||
sfc.removeWindowListener(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
public static final String MESSAGE_TEXT_SUCCESS_PROPERTY =
|
||||
"message.text.success"; // NOI18N
|
||||
public static final String MESSAGE_CONTENT_TYPE_SUCCESS_PROPERTY =
|
||||
"message.content.type.success"; // NOI18N
|
||||
public static final String MESSAGE_TEXT_WARNINGS_PROPERTY =
|
||||
"message.text.warnings"; // NOI18N
|
||||
public static final String MESSAGE_CONTENT_TYPE_WARNINGS_PROPERTY =
|
||||
"message.content.type.warnings"; // NOI18N
|
||||
public static final String MESSAGE_TEXT_ERRORS_PROPERTY =
|
||||
"message.text.errors"; // NOI18N
|
||||
public static final String MESSAGE_CONTENT_TYPE_ERRORS_PROPERTY =
|
||||
"message.content.type.errors"; // NOI18N
|
||||
public static final String MESSAGE_TEXT_SUCCESS_UNINSTALL_PROPERTY =
|
||||
"message.text.success.uninstall"; // NOI18N
|
||||
public static final String MESSAGE_CONTENT_TYPE_SUCCESS_UNINSTALL_PROPERTY =
|
||||
"message.content.type.success.uninstall"; // NOI18N
|
||||
public static final String MESSAGE_TEXT_WARNINGS_UNINSTALL_PROPERTY =
|
||||
"message.text.warnings.uninstall"; // NOI18N
|
||||
public static final String MESSAGE_CONTENT_TYPE_WARNINGS_UNINSTALL_PROPERTY =
|
||||
"message.content.type.warnings.uninstall"; // NOI18N
|
||||
public static final String MESSAGE_TEXT_ERRORS_UNINSTALL_PROPERTY =
|
||||
"message.text.errors.uninstall"; // NOI18N
|
||||
public static final String MESSAGE_CONTENT_TYPE_ERRORS_UNINSTALL_PROPERTY =
|
||||
"message.content.type.errors.uninstall"; // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_TEXT_SUCCESS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.success"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_CONTENT_TYPE_SUCCESS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.content.type.success"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_TEXT_WARNINGS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.warnings"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_CONTENT_TYPE_WARNINGS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.content.type.warnings"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_TEXT_ERRORS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.errors"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_CONTENT_TYPE_ERRORS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.content.type.errors"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_TEXT_SUCCESS_UNINSTALL =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.success.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_CONTENT_TYPE_SUCCESS_UNINSTALL =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.content.type.success.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_TEXT_WARNINGS_UNINSTALL =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.warnings.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_CONTENT_TYPE_WARNINGS_UNINSTALL =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.content.type.warnings.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_TEXT_ERRORS_UNINSTALL =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.errors.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_CONTENT_TYPE_ERRORS_UNINSTALL =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.content.type.errors.uninstall"); // NOI18N
|
||||
|
||||
public static final String DEFAULT_TITLE = ResourceUtils.getString(
|
||||
PostInstallSummaryPanel.class,
|
||||
"PoISP.title"); // NOI18N
|
||||
public static final String DEFAULT_DESCRIPTION =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.description"); // NOI18N
|
||||
public static final String DEFAULT_NEXT_BUTTON_TEXT =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.next.button.text"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_FINISH_PROCESS =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.finish"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_FINISH_PROCESS_CONTENT_TYPE =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.text.finish.content.type"); // NOI18N
|
||||
public static final String DEFAULT_MESSAGE_LAUNCH_APPLICATION_NOW =
|
||||
ResourceUtils.getString(PostInstallSummaryPanel.class,
|
||||
"PoISP.message.run.application.now");//NOI18N
|
||||
}
|
@ -0,0 +1,620 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU General
|
||||
* Public License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
* License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
* compliance with the License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
* License for the specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header Notice in
|
||||
* each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
* designates this particular file as subject to the "Classpath" exception as
|
||||
* provided by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the License Header,
|
||||
* with the fields enclosed by brackets [] replaced by your own identifying
|
||||
* information: "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
* is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL or only the
|
||||
* GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
* this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
* you do not indicate a single choice of license, a recipient has the option to
|
||||
* distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above. However, if
|
||||
* you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
|
||||
* the option applies only if the new code is made subject to such option by the
|
||||
* copyright holder.
|
||||
*/
|
||||
package org.mycompany.installer.wizard.components.panels;
|
||||
|
||||
import java.awt.ComponentOrientation;
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.Insets;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import org.netbeans.installer.Installer;
|
||||
import org.netbeans.installer.product.Registry;
|
||||
import org.netbeans.installer.product.RegistryNode;
|
||||
import org.netbeans.installer.product.RegistryType;
|
||||
import org.netbeans.installer.product.components.Product;
|
||||
import org.netbeans.installer.utils.ErrorManager;
|
||||
import org.netbeans.installer.utils.FileUtils;
|
||||
import org.netbeans.installer.utils.LogManager;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.SystemUtils;
|
||||
import org.mycompany.installer.utils.applications.NetBeansRCPUtils;
|
||||
import org.netbeans.installer.utils.exceptions.NativeException;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiCheckBox;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiLabel;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiPanel;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiTextPane;
|
||||
import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel;
|
||||
import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel.ErrorMessagePanelSwingUi;
|
||||
import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel.ErrorMessagePanelUi;
|
||||
import org.netbeans.installer.wizard.containers.SwingContainer;
|
||||
import org.netbeans.installer.wizard.ui.SwingUi;
|
||||
import org.netbeans.installer.wizard.ui.WizardUi;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class PreInstallSummaryPanel extends ErrorMessagePanel {
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Instance
|
||||
|
||||
public PreInstallSummaryPanel() {
|
||||
setProperty(TITLE_PROPERTY,
|
||||
DEFAULT_TITLE);
|
||||
setProperty(DESCRIPTION_PROPERTY,
|
||||
DEFAULT_DESCRIPTION);
|
||||
|
||||
setProperty(INSTALLATION_FOLDER_PROPERTY,
|
||||
DEFAULT_INSTALLATION_FOLDER);
|
||||
|
||||
setProperty(UNINSTALL_LABEL_TEXT_PROPERTY,
|
||||
DEFAULT_UNINSTALL_LABEL_TEXT);
|
||||
|
||||
setProperty(INSTALLATION_SIZE_PROPERTY,
|
||||
DEFAULT_INSTALLATION_SIZE);
|
||||
setProperty(DOWNLOAD_SIZE_PROPERTY,
|
||||
DEFAULT_DOWNLOAD_SIZE);
|
||||
|
||||
setProperty(NEXT_BUTTON_TEXT_PROPERTY,
|
||||
DEFAULT_NEXT_BUTTON_TEXT);
|
||||
|
||||
setProperty(ERROR_NOT_ENOUGH_SPACE_PROPERTY,
|
||||
DEFAULT_ERROR_NOT_ENOUGH_SPACE);
|
||||
setProperty(ERROR_CANNOT_CHECK_SPACE_PROPERTY,
|
||||
DEFAULT_ERROR_CANNOT_CHECK_SPACE);
|
||||
setProperty(ERROR_LOGIC_ACCESS_PROPERTY,
|
||||
DEFAULT_ERROR_LOGIC_ACCESS);
|
||||
setProperty(ERROR_FSROOTS_PROPERTY,
|
||||
DEFAULT_ERROR_FSROOTS);
|
||||
setProperty(ERROR_NON_EXISTENT_ROOT_PROPERTY,
|
||||
DEFAULT_ERROR_NON_EXISTENT_ROOT);
|
||||
setProperty(ERROR_CANNOT_WRITE_PROPERTY,
|
||||
DEFAULT_ERROR_CANNOT_WRITE);
|
||||
setProperty(REMOVE_APP_USERDIR_TEXT_PROPERTY,
|
||||
DEFAULT_REMOVE_APP_USERDIR_TEXT);
|
||||
setProperty(REMOVE_APP_USERDIR_CHECKBOX_PROPERTY,
|
||||
DEFAULT_REMOVE_APP_USERDIR_CHECKBOX);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public WizardUi getWizardUi() {
|
||||
if (wizardUi == null) {
|
||||
wizardUi = new PreInstallSummaryPanelUi(this);
|
||||
}
|
||||
|
||||
return wizardUi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
final List<Product> toInstall =
|
||||
Registry.getInstance().getProductsToInstall();
|
||||
|
||||
if (toInstall.size() > 0) {
|
||||
setProperty(NEXT_BUTTON_TEXT_PROPERTY, DEFAULT_NEXT_BUTTON_TEXT);
|
||||
setProperty(DESCRIPTION_PROPERTY, DEFAULT_DESCRIPTION);
|
||||
} else {
|
||||
setProperty(NEXT_BUTTON_TEXT_PROPERTY, DEFAULT_NEXT_BUTTON_TEXT_UNINSTALL);
|
||||
setProperty(DESCRIPTION_PROPERTY, DEFAULT_DESCRIPTION_UNINSTALL);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Inner Classes
|
||||
public static class PreInstallSummaryPanelUi extends ErrorMessagePanelUi {
|
||||
|
||||
protected PreInstallSummaryPanel component;
|
||||
|
||||
public PreInstallSummaryPanelUi(PreInstallSummaryPanel component) {
|
||||
super(component);
|
||||
|
||||
this.component = component;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SwingUi getSwingUi(SwingContainer container) {
|
||||
if (swingUi == null) {
|
||||
swingUi = new PreInstallSummaryPanelSwingUi(component, container);
|
||||
}
|
||||
|
||||
return super.getSwingUi(container);
|
||||
}
|
||||
}
|
||||
|
||||
public static class PreInstallSummaryPanelSwingUi extends ErrorMessagePanelSwingUi {
|
||||
|
||||
protected PreInstallSummaryPanel component;
|
||||
private NbiTextPane locationsPane;
|
||||
private NbiLabel uninstallListLabel;
|
||||
private NbiTextPane uninstallListPane;
|
||||
private NbiLabel installationSizeLabel;
|
||||
private NbiLabel installationSizeValue;
|
||||
private NbiLabel downloadSizeLabel;
|
||||
private NbiLabel downloadSizeValue;
|
||||
private NbiCheckBox removeUserdirCheckbox;
|
||||
private NbiTextPane removeUserdirPane;
|
||||
private NbiPanel spacer;
|
||||
private int gridy = 0;
|
||||
|
||||
public PreInstallSummaryPanelSwingUi(
|
||||
final PreInstallSummaryPanel component,
|
||||
final SwingContainer container) {
|
||||
super(component, container);
|
||||
|
||||
this.component = component;
|
||||
initComponents();
|
||||
}
|
||||
|
||||
// protected ////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
protected void initializeContainer() {
|
||||
super.initializeContainer();
|
||||
|
||||
container.getNextButton().setText(
|
||||
panel.getProperty(NEXT_BUTTON_TEXT_PROPERTY));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initialize() {
|
||||
final Registry registry = Registry.getInstance();
|
||||
|
||||
final StringBuilder text = new StringBuilder();
|
||||
long installationSize = 0;
|
||||
long downloadSize = 0;
|
||||
|
||||
for (Product product : registry.getProductsToInstall()) {
|
||||
installationSize += product.getRequiredDiskSpace();
|
||||
downloadSize += product.getDownloadSize();
|
||||
|
||||
|
||||
}
|
||||
|
||||
// add top-level components like nb-base, glassfish, tomcat, jdk
|
||||
for (Product product : registry.getProductsToInstall()) {
|
||||
text.append(StringUtils.LF);
|
||||
text.append(StringUtils.format(panel.getProperty(INSTALLATION_FOLDER_PROPERTY),
|
||||
product.getDisplayName()));
|
||||
text.append(StringUtils.LF);
|
||||
text.append(" " + product.getInstallationLocation());
|
||||
text.append(StringUtils.LF);
|
||||
}
|
||||
locationsPane.setText(text);
|
||||
|
||||
List<Product> toUninstall = registry.getProductsToUninstall();
|
||||
String uninstallLabelText = toUninstall.size() > 0 ? StringUtils.format(
|
||||
panel.getProperty(UNINSTALL_LABEL_TEXT_PROPERTY),
|
||||
toUninstall.get(0).getDisplayName()) : "";
|
||||
|
||||
uninstallListLabel.setText(uninstallLabelText);
|
||||
|
||||
|
||||
installationSizeLabel.setText(
|
||||
panel.getProperty(INSTALLATION_SIZE_PROPERTY));
|
||||
installationSizeValue.setText(StringUtils.formatSize(
|
||||
installationSize));
|
||||
|
||||
downloadSizeLabel.setText(
|
||||
panel.getProperty(DOWNLOAD_SIZE_PROPERTY));
|
||||
downloadSizeValue.setText(StringUtils.formatSize(
|
||||
downloadSize));
|
||||
|
||||
if (registry.getProductsToInstall().size() == 0) {
|
||||
locationsPane.setVisible(false);
|
||||
installationSizeLabel.setVisible(false);
|
||||
installationSizeValue.setVisible(false);
|
||||
} else {
|
||||
locationsPane.setVisible(true);
|
||||
installationSizeLabel.setVisible(true);
|
||||
installationSizeValue.setVisible(true);
|
||||
}
|
||||
|
||||
if (registry.getProductsToUninstall().size() == 0) {
|
||||
uninstallListLabel.setVisible(false);
|
||||
uninstallListPane.setVisible(false);
|
||||
} else {
|
||||
uninstallListLabel.setVisible(true);
|
||||
uninstallListPane.setVisible(true);
|
||||
}
|
||||
|
||||
downloadSizeLabel.setVisible(false);
|
||||
downloadSizeValue.setVisible(false);
|
||||
for (RegistryNode remoteNode : registry.getNodes(RegistryType.REMOTE)) {
|
||||
if (remoteNode.isVisible()) {
|
||||
downloadSizeLabel.setVisible(true);
|
||||
downloadSizeValue.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (Boolean.getBoolean(REMOVE_APP_USERDIR_PROPERTY)) {
|
||||
removeUserdirCheckbox.doClick();
|
||||
}
|
||||
|
||||
removeUserdirCheckbox.setVisible(false);
|
||||
removeUserdirPane.setVisible(false);
|
||||
|
||||
for (Product product : Registry.getInstance().getProductsToUninstall()) {
|
||||
|
||||
try {
|
||||
File installLocation = product.getInstallationLocation();
|
||||
LogManager.log("... product installation directory: " + installLocation);
|
||||
File userDir = NetBeansRCPUtils.getApplicationUserDirFile(installLocation);
|
||||
LogManager.log("... product userdir: " + userDir);
|
||||
if (FileUtils.exists(userDir) && FileUtils.canWrite(userDir)) {
|
||||
removeUserdirCheckbox.setText(
|
||||
StringUtils.format(
|
||||
panel.getProperty(REMOVE_APP_USERDIR_CHECKBOX_PROPERTY),
|
||||
userDir.getAbsolutePath()));
|
||||
removeUserdirCheckbox.setBorder(new EmptyBorder(0, 0, 0, 0));
|
||||
removeUserdirCheckbox.setVisible(true);
|
||||
|
||||
removeUserdirPane.setVisible(true);
|
||||
removeUserdirPane.setContentType("text/html");
|
||||
|
||||
removeUserdirPane.setText(
|
||||
StringUtils.format(
|
||||
panel.getProperty(REMOVE_APP_USERDIR_TEXT_PROPERTY),
|
||||
product.getDisplayName()));
|
||||
|
||||
}
|
||||
break;
|
||||
} catch (IOException e) {
|
||||
LogManager.log(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//if(productCheckboxList!=null) {
|
||||
// for(Pair <Product, NbiCheckBox> pair : productCheckboxList) {
|
||||
// pair.getSecond().doClick();
|
||||
// }
|
||||
//}
|
||||
super.initialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String validateInput() {
|
||||
try {
|
||||
if (!Boolean.getBoolean(SystemUtils.NO_SPACE_CHECK_PROPERTY)) {
|
||||
final List<File> roots =
|
||||
SystemUtils.getFileSystemRoots();
|
||||
final List<Product> toInstall =
|
||||
Registry.getInstance().getProductsToInstall();
|
||||
final Map<File, Long> spaceMap =
|
||||
new HashMap<File, Long>();
|
||||
|
||||
LogManager.log("Available roots : " + StringUtils.asString(roots));
|
||||
|
||||
File downloadDataDirRoot = FileUtils.getRoot(
|
||||
Installer.getInstance().getLocalDirectory(), roots);
|
||||
long downloadSize = 0;
|
||||
for (Product product : toInstall) {
|
||||
downloadSize += product.getDownloadSize();
|
||||
}
|
||||
// the critical check point - we download all the data
|
||||
spaceMap.put(downloadDataDirRoot, new Long(downloadSize));
|
||||
long lastDataSize = 0;
|
||||
for (Product product : toInstall) {
|
||||
final File installLocation = product.getInstallationLocation();
|
||||
final File root = FileUtils.getRoot(installLocation, roots);
|
||||
final long productSize = product.getRequiredDiskSpace();
|
||||
|
||||
LogManager.log(" [" + root + "] <- " + installLocation);
|
||||
|
||||
if (root != null) {
|
||||
Long ddSize = spaceMap.get(downloadDataDirRoot);
|
||||
// remove space that was freed after the remove of previos product data
|
||||
spaceMap.put(downloadDataDirRoot,
|
||||
Long.valueOf(ddSize - lastDataSize));
|
||||
|
||||
// add space required for next product installation
|
||||
Long size = spaceMap.get(root);
|
||||
size = Long.valueOf(
|
||||
(size != null ? size.longValue() : 0L)
|
||||
+ productSize);
|
||||
spaceMap.put(root, size);
|
||||
lastDataSize = product.getDownloadSize();
|
||||
} else {
|
||||
return StringUtils.format(
|
||||
panel.getProperty(ERROR_NON_EXISTENT_ROOT_PROPERTY),
|
||||
product, installLocation);
|
||||
}
|
||||
}
|
||||
|
||||
for (File root : spaceMap.keySet()) {
|
||||
try {
|
||||
final long availableSpace =
|
||||
SystemUtils.getFreeSpace(root);
|
||||
final long requiredSpace =
|
||||
spaceMap.get(root) + REQUIRED_SPACE_ADDITION;
|
||||
|
||||
if (availableSpace < requiredSpace) {
|
||||
return StringUtils.format(
|
||||
panel.getProperty(ERROR_NOT_ENOUGH_SPACE_PROPERTY),
|
||||
root,
|
||||
StringUtils.formatSize(requiredSpace - availableSpace));
|
||||
}
|
||||
} catch (NativeException e) {
|
||||
ErrorManager.notifyError(
|
||||
panel.getProperty(ERROR_CANNOT_CHECK_SPACE_PROPERTY),
|
||||
e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final List<Product> toUninstall =
|
||||
Registry.getInstance().getProductsToUninstall();
|
||||
for (Product product : toUninstall) {
|
||||
if (!FileUtils.canWrite(product.getInstallationLocation())) {
|
||||
return StringUtils.format(
|
||||
panel.getProperty(ERROR_CANNOT_WRITE_PROPERTY),
|
||||
product,
|
||||
product.getInstallationLocation());
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
ErrorManager.notifyError(
|
||||
panel.getProperty(ERROR_FSROOTS_PROPERTY), e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// private //////////////////////////////////////////////////////////////////
|
||||
private void initComponents() {
|
||||
gridy = 0;
|
||||
|
||||
// locationsPane ////////////////////////////////////////////////////////
|
||||
locationsPane = new NbiTextPane();
|
||||
|
||||
// uninstallListPane ////////////////////////////////////////////////////
|
||||
uninstallListPane = new NbiTextPane();
|
||||
|
||||
// uninstallListLabel ///////////////////////////////////////////////////
|
||||
uninstallListLabel = new NbiLabel();
|
||||
uninstallListLabel.setLabelFor(uninstallListPane);
|
||||
|
||||
// installationSizeValue ////////////////////////////////////////////////
|
||||
installationSizeValue = new NbiLabel();
|
||||
//installationSizeValue.setFocusable(true);
|
||||
|
||||
// installationSizeLabel ////////////////////////////////////////////////
|
||||
installationSizeLabel = new NbiLabel();
|
||||
installationSizeLabel.setLabelFor(installationSizeValue);
|
||||
|
||||
// downloadSizeValue ////////////////////////////////////////////////////
|
||||
downloadSizeValue = new NbiLabel();
|
||||
//downloadSizeValue.setFocusable(true);
|
||||
|
||||
// downloadSizeLabel ////////////////////////////////////////////////////
|
||||
downloadSizeLabel = new NbiLabel();
|
||||
downloadSizeLabel.setLabelFor(downloadSizeValue);
|
||||
|
||||
// spacer ///////////////////////////////////////////////////////////////
|
||||
spacer = new NbiPanel();
|
||||
|
||||
// this /////////////////////////////////////////////////////////////////
|
||||
add(locationsPane, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(11, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(uninstallListLabel, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(11, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(uninstallListPane, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(0, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
int gridy0 = gridy;
|
||||
gridy++;
|
||||
|
||||
removeUserdirPane = new NbiTextPane();
|
||||
add(removeUserdirPane, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(11, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
removeUserdirCheckbox = new NbiCheckBox();
|
||||
add(removeUserdirCheckbox, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.PAGE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(4, 20, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
removeUserdirCheckbox.addActionListener(new ActionListener() {
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.setProperty(REMOVE_APP_USERDIR_PROPERTY,
|
||||
"" + removeUserdirCheckbox.isSelected());
|
||||
}
|
||||
});
|
||||
|
||||
add(installationSizeLabel, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(22, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(installationSizeValue, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(4, 22, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(downloadSizeLabel, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(4, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(downloadSizeValue, new GridBagConstraints(
|
||||
0, gridy++, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(4, 22, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(spacer, new GridBagConstraints(
|
||||
0, gridy + 10, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 1.0, // weight-x, weight-y
|
||||
GridBagConstraints.CENTER, // anchor
|
||||
GridBagConstraints.BOTH, // fill
|
||||
new Insets(0, 11, 0, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
public static final String INSTALLATION_FOLDER_PROPERTY =
|
||||
"installation.folder"; // NOI18N
|
||||
public static final String UNINSTALL_LABEL_TEXT_PROPERTY =
|
||||
"uninstall.list.label.text"; // NOI18N
|
||||
public static final String INSTALLATION_SIZE_PROPERTY =
|
||||
"installation.size"; // NOI18N
|
||||
public static final String DOWNLOAD_SIZE_PROPERTY =
|
||||
"download.size"; // NOI18N
|
||||
public static final String ERROR_NOT_ENOUGH_SPACE_PROPERTY =
|
||||
"error.not.enough.space"; // NOI18N
|
||||
public static final String ERROR_CANNOT_CHECK_SPACE_PROPERTY =
|
||||
"error.cannot.check.space"; // NOI18N
|
||||
public static final String ERROR_LOGIC_ACCESS_PROPERTY =
|
||||
"error.logic.access"; // NOI18N
|
||||
public static final String ERROR_FSROOTS_PROPERTY =
|
||||
"error.fsroots"; // NOI18N
|
||||
public static final String ERROR_NON_EXISTENT_ROOT_PROPERTY =
|
||||
"error.non.existent.root"; // NOI18N
|
||||
public static final String ERROR_CANNOT_WRITE_PROPERTY =
|
||||
"error.cannot.write"; // NOI18N
|
||||
public static final String REMOVE_APP_USERDIR_PROPERTY =
|
||||
"remove.app.userdir";
|
||||
public static final String REMOVE_APP_USERDIR_TEXT_PROPERTY =
|
||||
"remove.app.userdir.text";
|
||||
public static final String REMOVE_APP_USERDIR_CHECKBOX_PROPERTY =
|
||||
"remove.app.userdir.checkbox";
|
||||
public static final String DEFAULT_TITLE =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.title"); // NOI18N
|
||||
public static final String DEFAULT_DESCRIPTION =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.description"); // NOI18N
|
||||
public static final String DEFAULT_DESCRIPTION_UNINSTALL =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.description.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_INSTALLATION_FOLDER =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.installation.folder"); // NOI18N
|
||||
public static final String DEFAULT_UNINSTALL_LABEL_TEXT =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.uninstall.list.label.text"); // NOI18N
|
||||
public static final String DEFAULT_INSTALLATION_SIZE =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.installation.size"); // NOI18N
|
||||
public static final String DEFAULT_DOWNLOAD_SIZE =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.download.size"); // NOI18N
|
||||
public static final String DEFAULT_NEXT_BUTTON_TEXT =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.next.button.text"); // NOI18N
|
||||
public static final String DEFAULT_NEXT_BUTTON_TEXT_UNINSTALL =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.next.button.text.uninstall"); // NOI18N
|
||||
public static final String DEFAULT_ERROR_NOT_ENOUGH_SPACE =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.error.not.enough.space"); // NOI18N
|
||||
public static final String DEFAULT_ERROR_CANNOT_CHECK_SPACE =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.error.cannot.check.space");// NOI18N
|
||||
public static final String DEFAULT_ERROR_LOGIC_ACCESS =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.error.logic.access");// NOI18N
|
||||
public static final String DEFAULT_ERROR_FSROOTS =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.error.fsroots"); // NOI18N
|
||||
public static final String DEFAULT_ERROR_NON_EXISTENT_ROOT =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.error.non.existent.root"); // NOI18N
|
||||
public static final String DEFAULT_ERROR_CANNOT_WRITE =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.error.cannot.write"); // NOI18N
|
||||
public static final String DEFAULT_REMOVE_APP_USERDIR_TEXT =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.remove.app.userdir.text"); // NOI18N
|
||||
|
||||
public static final String DEFAULT_REMOVE_APP_USERDIR_CHECKBOX =
|
||||
ResourceUtils.getString(PreInstallSummaryPanel.class,
|
||||
"PrISP.remove.app.userdir.checkbox"); // NOI18N
|
||||
public static final long REQUIRED_SPACE_ADDITION =
|
||||
10L * 1024L * 1024L; // 10MB
|
||||
}
|
@ -0,0 +1,333 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU General
|
||||
* Public License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
* License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
* compliance with the License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
* License for the specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header Notice in
|
||||
* each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
* designates this particular file as subject to the "Classpath" exception as
|
||||
* provided by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the License Header,
|
||||
* with the fields enclosed by brackets [] replaced by your own identifying
|
||||
* information: "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
* is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL or only the
|
||||
* GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
* this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
* you do not indicate a single choice of license, a recipient has the option to
|
||||
* distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above. However, if
|
||||
* you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
|
||||
* the option applies only if the new code is made subject to such option by the
|
||||
* copyright holder.
|
||||
*/
|
||||
package org.mycompany.installer.wizard.components.panels;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.Insets;
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import org.netbeans.installer.product.Registry;
|
||||
import org.netbeans.installer.product.components.Product;
|
||||
import org.netbeans.installer.utils.ErrorManager;
|
||||
import org.netbeans.installer.utils.LogManager;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.StringUtils;
|
||||
import org.netbeans.installer.utils.SystemUtils;
|
||||
import org.netbeans.installer.utils.exceptions.InitializationException;
|
||||
import org.netbeans.installer.utils.helper.Platform;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiPanel;
|
||||
import org.netbeans.installer.utils.helper.swing.NbiTextPane;
|
||||
import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel;
|
||||
import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel.ErrorMessagePanelSwingUi;
|
||||
import org.netbeans.installer.wizard.components.panels.ErrorMessagePanel.ErrorMessagePanelUi;
|
||||
import org.netbeans.installer.wizard.containers.SwingContainer;
|
||||
import org.netbeans.installer.wizard.ui.SwingUi;
|
||||
import org.netbeans.installer.wizard.ui.WizardUi;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class WelcomePanel extends ErrorMessagePanel {
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
private Registry bundledRegistry;
|
||||
private Registry defaultRegistry;
|
||||
|
||||
public WelcomePanel() {
|
||||
setProperty(TITLE_PROPERTY,
|
||||
DEFAULT_TITLE);
|
||||
setProperty(DESCRIPTION_PROPERTY,
|
||||
DEFAULT_DESCRIPTION);
|
||||
|
||||
setProperty(WELCOME_TEXT_PROPERTY,
|
||||
DEFAULT_WELCOME_TEXT);
|
||||
|
||||
setProperty(WELCOME_ALREADY_INSTALLED_TEXT_PROPERTY,
|
||||
DEFAULT_WELCOME_ALREADY_INSTALLED_TEXT);
|
||||
setProperty(WELCOME_ALREADY_INSTALLED_NEXT_BUTTON_TEXT_PROPERTY,
|
||||
DEFAULT_WELCOME_ALREADY_INSTALLED_NEXT_BUTTON_TEXT);
|
||||
|
||||
try {
|
||||
defaultRegistry = Registry.getInstance();
|
||||
bundledRegistry = new Registry();
|
||||
|
||||
final String bundledRegistryUri = System.getProperty(
|
||||
Registry.BUNDLED_PRODUCT_REGISTRY_URI_PROPERTY);
|
||||
if (bundledRegistryUri != null) {
|
||||
bundledRegistry.loadProductRegistry(bundledRegistryUri);
|
||||
} else {
|
||||
bundledRegistry.loadProductRegistry(
|
||||
Registry.DEFAULT_BUNDLED_PRODUCT_REGISTRY_URI);
|
||||
}
|
||||
} catch (InitializationException e) {
|
||||
ErrorManager.notifyError("Cannot load bundled registry", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Registry getBundledRegistry() {
|
||||
return bundledRegistry;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WizardUi getWizardUi() {
|
||||
if (wizardUi == null) {
|
||||
wizardUi = new WelcomePanelUi(this);
|
||||
}
|
||||
|
||||
return wizardUi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExecuteForward() {
|
||||
return canExecute();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExecuteBackward() {
|
||||
return canExecute();
|
||||
}
|
||||
|
||||
// private //////////////////////////////////////////////////////////////////////
|
||||
private boolean canExecute() {
|
||||
return bundledRegistry.getNodes().size() > 1;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Inner Classes
|
||||
public static class WelcomePanelUi extends ErrorMessagePanelUi {
|
||||
|
||||
protected WelcomePanel component;
|
||||
|
||||
public WelcomePanelUi(WelcomePanel component) {
|
||||
super(component);
|
||||
|
||||
this.component = component;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SwingUi getSwingUi(SwingContainer container) {
|
||||
if (swingUi == null) {
|
||||
swingUi = new WelcomePanelSwingUi(component, container);
|
||||
}
|
||||
|
||||
return super.getSwingUi(container);
|
||||
}
|
||||
}
|
||||
|
||||
public static class WelcomePanelSwingUi extends ErrorMessagePanelSwingUi {
|
||||
|
||||
protected WelcomePanel panel;
|
||||
private NbiTextPane textPane;
|
||||
|
||||
private NbiPanel leftImagePanel;
|
||||
ValidatingThread validatingThread;
|
||||
|
||||
public WelcomePanelSwingUi(
|
||||
final WelcomePanel component,
|
||||
final SwingContainer container) {
|
||||
super(component, container);
|
||||
|
||||
this.panel = component;
|
||||
|
||||
initComponents();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return null; // the welcome page does not have a title
|
||||
}
|
||||
|
||||
// protected ////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
protected void initializeContainer() {
|
||||
super.initializeContainer();
|
||||
|
||||
container.getBackButton().setVisible(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initialize() {
|
||||
|
||||
textPane.setContentType("text/html");
|
||||
textPane.setText(StringUtils.format(panel.getProperty(WELCOME_TEXT_PROPERTY)));
|
||||
List<Product> toInstall = Registry.getInstance().getProductsToInstall();
|
||||
if(toInstall.isEmpty()) {
|
||||
List <Product> list = panel.getBundledRegistry().getProducts();
|
||||
if(list.size() == 1) {
|
||||
if(SystemUtils.getCurrentPlatform().isCompatibleWith(list.get(0).getPlatforms())) {
|
||||
File installationLocation = list.get(0).getInstallationLocation();
|
||||
textPane.setText(
|
||||
StringUtils.format(
|
||||
panel.getProperty(WELCOME_ALREADY_INSTALLED_TEXT_PROPERTY),
|
||||
list.get(0).getDisplayName(),
|
||||
installationLocation.getAbsolutePath()));
|
||||
} else {
|
||||
textPane.setText(
|
||||
StringUtils.format(
|
||||
WELCOME_INCOMPATIBLE_PLATFORM_TEXT,
|
||||
list.get(0).getDisplayName()));
|
||||
}
|
||||
container.getCancelButton().setVisible(false);
|
||||
container.getNextButton().setText(panel.getProperty(
|
||||
WELCOME_ALREADY_INSTALLED_NEXT_BUTTON_TEXT_PROPERTY));
|
||||
}
|
||||
}
|
||||
|
||||
super.initialize();
|
||||
}
|
||||
|
||||
// private //////////////////////////////////////////////////////////////////
|
||||
private void initComponents() {
|
||||
// textPane /////////////////////////////////////////////////////////////
|
||||
textPane = new NbiTextPane();
|
||||
|
||||
leftImagePanel = new NbiPanel();
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
final String topLeftImage = SystemUtils.resolveString(
|
||||
System.getProperty(
|
||||
WELCOME_PAGE_LEFT_TOP_IMAGE_PROPERTY));
|
||||
final String bottomLeftImage = SystemUtils.resolveString(
|
||||
System.getProperty(
|
||||
WELCOME_PAGE_LEFT_BOTTOM_IMAGE_PROPERTY));
|
||||
|
||||
int bottomAnchor = NbiPanel.ANCHOR_BOTTOM_LEFT;
|
||||
|
||||
if (topLeftImage != null) {
|
||||
leftImagePanel.setBackgroundImage(topLeftImage, ANCHOR_TOP_LEFT);
|
||||
width = leftImagePanel.getBackgroundImage(NbiPanel.ANCHOR_TOP_LEFT).getIconWidth();
|
||||
height += leftImagePanel.getBackgroundImage(NbiPanel.ANCHOR_TOP_LEFT).getIconHeight();
|
||||
}
|
||||
if (bottomLeftImage != null) {
|
||||
leftImagePanel.setBackgroundImage(bottomLeftImage, bottomAnchor);
|
||||
width = leftImagePanel.getBackgroundImage(bottomAnchor).getIconWidth();
|
||||
height += leftImagePanel.getBackgroundImage(bottomAnchor).getIconHeight();
|
||||
}
|
||||
|
||||
leftImagePanel.setPreferredSize(new Dimension(width, height));
|
||||
leftImagePanel.setMaximumSize(new Dimension(width, height));
|
||||
leftImagePanel.setMinimumSize(new Dimension(width, 0));
|
||||
leftImagePanel.setSize(new Dimension(width, height));
|
||||
|
||||
leftImagePanel.setOpaque(false);
|
||||
// this /////////////////////////////////////////////////////////////////
|
||||
int dy = 0;
|
||||
add(leftImagePanel, new GridBagConstraints(
|
||||
0, 0, // x, y
|
||||
1, 100, // width, height
|
||||
0.0, 1.0, // weight-x, weight-y
|
||||
GridBagConstraints.WEST, // anchor
|
||||
GridBagConstraints.VERTICAL, // fill
|
||||
new Insets(0, 0, 0, 0), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
add(textPane, new GridBagConstraints(
|
||||
1, dy++, // x, y
|
||||
4, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.LINE_START, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(10, 11, 11, 11), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
NbiTextPane separatorPane = new NbiTextPane();
|
||||
|
||||
separatorPane = new NbiTextPane();
|
||||
add(separatorPane, new GridBagConstraints(
|
||||
3, dy, // x, y
|
||||
1, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.CENTER, // anchor
|
||||
GridBagConstraints.BOTH, // fill
|
||||
new Insets(0, 0, 0, 0), // padding
|
||||
0, 0)); // padx, pady - ???
|
||||
|
||||
|
||||
// move error label after the left welcome image
|
||||
Component errorLabel = getComponent(0);
|
||||
getLayout().removeLayoutComponent(errorLabel);
|
||||
add(errorLabel, new GridBagConstraints(
|
||||
1, 99, // x, y
|
||||
99, 1, // width, height
|
||||
1.0, 0.0, // weight-x, weight-y
|
||||
GridBagConstraints.CENTER, // anchor
|
||||
GridBagConstraints.HORIZONTAL, // fill
|
||||
new Insets(4, 11, 4, 0), // padding
|
||||
0, 0)); // ??? (padx, pady)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
public static final String DEFAULT_TITLE =
|
||||
ResourceUtils.getString(WelcomePanel.class,
|
||||
"WP.title");
|
||||
public static final String DEFAULT_DESCRIPTION =
|
||||
ResourceUtils.getString(WelcomePanel.class,
|
||||
"WP.description"); // NOI18N
|
||||
public static final String WELCOME_TEXT_PROPERTY =
|
||||
"welcome.text"; // NOI18N
|
||||
public static final String WELCOME_ALREADY_INSTALLED_TEXT_PROPERTY =
|
||||
"welcome.already.installed.text"; // NOI18N
|
||||
public static final String WELCOME_ALREADY_INSTALLED_NEXT_BUTTON_TEXT_PROPERTY =
|
||||
"welcome.already.installed.next.button.text";//NOI18N
|
||||
public static final String WELCOME_INCOMPATIBLE_PLATFORM_TEXT =
|
||||
ResourceUtils.getString(WelcomePanel.class,
|
||||
"WP.incompatible.platform.text");//NOI18N
|
||||
|
||||
public static final String DEFAULT_WELCOME_ALREADY_INSTALLED_NEXT_BUTTON_TEXT =
|
||||
ResourceUtils.getString(WelcomePanel.class,
|
||||
"WP.already.installed.next.button.text");//NOI18N
|
||||
|
||||
public static final String DEFAULT_WELCOME_TEXT =
|
||||
ResourceUtils.getString(WelcomePanel.class,
|
||||
"WP.welcome.text"); // NOI18N
|
||||
|
||||
public static final String DEFAULT_WELCOME_ALREADY_INSTALLED_TEXT =
|
||||
ResourceUtils.getString(WelcomePanel.class,
|
||||
"WP.already.installed.text"); // NOI18N
|
||||
|
||||
public static final String WELCOME_PAGE_LEFT_TOP_IMAGE_PROPERTY =
|
||||
"nbi.wizard.ui.swing.welcome.left.top.image";//NOI18N
|
||||
public static final String WELCOME_PAGE_LEFT_BOTTOM_IMAGE_PROPERTY =
|
||||
"nbi.wizard.ui.swing.welcome.left.bottom.image";//NOI18N
|
||||
}
|
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 5.0 KiB |
@ -0,0 +1,43 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
#####################################################################################
|
||||
# MainSequence.java
|
||||
MS.IA.title=Installation
|
||||
MS.IA.description=Please wait while the installer installs {product-name}.
|
@ -0,0 +1,154 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU General
|
||||
* Public License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
* License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
* compliance with the License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
* License for the specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header Notice in
|
||||
* each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
* designates this particular file as subject to the "Classpath" exception as
|
||||
* provided by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the License Header,
|
||||
* with the fields enclosed by brackets [] replaced by your own identifying
|
||||
* information: "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
* is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL or only the
|
||||
* GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
* this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
* you do not indicate a single choice of license, a recipient has the option to
|
||||
* distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above. However, if
|
||||
* you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
|
||||
* the option applies only if the new code is made subject to such option by the
|
||||
* copyright holder.
|
||||
*/
|
||||
package org.mycompany.installer.wizard.components.sequences;
|
||||
|
||||
import org.netbeans.installer.wizard.components.sequences.ProductWizardSequence;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.mycompany.installer.wizard.components.panels.PostInstallSummaryPanel;
|
||||
import org.mycompany.installer.wizard.components.panels.PreInstallSummaryPanel;
|
||||
import org.netbeans.installer.product.components.Product;
|
||||
import org.netbeans.installer.product.Registry;
|
||||
import org.netbeans.installer.utils.ResourceUtils;
|
||||
import org.netbeans.installer.utils.helper.ExecutionMode;
|
||||
import org.netbeans.installer.wizard.components.WizardSequence;
|
||||
import org.netbeans.installer.wizard.components.actions.DownloadConfigurationLogicAction;
|
||||
import org.netbeans.installer.wizard.components.actions.DownloadInstallationDataAction;
|
||||
import org.netbeans.installer.wizard.components.actions.InstallAction;
|
||||
import org.netbeans.installer.wizard.components.actions.UninstallAction;
|
||||
import org.netbeans.installer.wizard.components.panels.LicensesPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Dmitry Lipin
|
||||
*/
|
||||
public class MainSequence extends WizardSequence {
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Instance
|
||||
|
||||
private DownloadConfigurationLogicAction downloadConfigurationLogicAction;
|
||||
private LicensesPanel licensesPanel;
|
||||
private PreInstallSummaryPanel preInstallSummaryPanel;
|
||||
private UninstallAction uninstallAction;
|
||||
private DownloadInstallationDataAction downloadInstallationDataAction;
|
||||
private InstallAction installAction;
|
||||
private PostInstallSummaryPanel postInstallSummaryPanel;
|
||||
private Map<Product, ProductWizardSequence> productSequences;
|
||||
|
||||
public MainSequence() {
|
||||
downloadConfigurationLogicAction = new DownloadConfigurationLogicAction();
|
||||
licensesPanel = new LicensesPanel();
|
||||
preInstallSummaryPanel = new PreInstallSummaryPanel();
|
||||
uninstallAction = new UninstallAction();
|
||||
downloadInstallationDataAction = new DownloadInstallationDataAction();
|
||||
installAction = new InstallAction();
|
||||
postInstallSummaryPanel = new PostInstallSummaryPanel();
|
||||
productSequences = new HashMap<Product, ProductWizardSequence>();
|
||||
|
||||
installAction.setProperty(InstallAction.TITLE_PROPERTY,
|
||||
DEFAULT_IA_TITLE);
|
||||
installAction.setProperty(InstallAction.DESCRIPTION_PROPERTY,
|
||||
DEFAULT_IA_DESCRIPTION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeForward() {
|
||||
final Registry registry = Registry.getInstance();
|
||||
final List<Product> toInstall = registry.getProductsToInstall();
|
||||
final List<Product> toUninstall = registry.getProductsToUninstall();
|
||||
|
||||
// remove all current children (if there are any), as the components
|
||||
// selection has probably changed and we need to rebuild from scratch
|
||||
getChildren().clear();
|
||||
|
||||
// the set of wizard components differs greatly depending on the execution
|
||||
// mode - if we're installing, we ask for input, run a wizard sequence for
|
||||
// each selected component and then download and install; if we're creating
|
||||
// a bundle, we only need to download and package things
|
||||
|
||||
if (toInstall.size() > 0) {
|
||||
addChild(downloadConfigurationLogicAction);
|
||||
addChild(licensesPanel);
|
||||
|
||||
for (Product product : toInstall) {
|
||||
if (!productSequences.containsKey(product)) {
|
||||
productSequences.put(
|
||||
product,
|
||||
new ProductWizardSequence(product));
|
||||
}
|
||||
|
||||
addChild(productSequences.get(product));
|
||||
}
|
||||
}
|
||||
|
||||
addChild(preInstallSummaryPanel);
|
||||
|
||||
if (toUninstall.size() > 0) {
|
||||
addChild(uninstallAction);
|
||||
}
|
||||
|
||||
if (toInstall.size() > 0) {
|
||||
addChild(downloadInstallationDataAction);
|
||||
addChild(installAction);
|
||||
}
|
||||
|
||||
addChild(postInstallSummaryPanel);
|
||||
|
||||
super.executeForward();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExecuteForward() {
|
||||
return ExecutionMode.NORMAL == ExecutionMode.getCurrentExecutionMode() &&
|
||||
(Registry.getInstance().getProductsToInstall().size() > 0 ||
|
||||
Registry.getInstance().getProductsToUninstall().size() > 0);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Constants
|
||||
public static final String DEFAULT_IA_TITLE =
|
||||
ResourceUtils.getString(
|
||||
MainSequence.class,
|
||||
"MS.IA.title"); // NOI18N
|
||||
public static final String DEFAULT_IA_DESCRIPTION =
|
||||
ResourceUtils.getString(
|
||||
MainSequence.class,
|
||||
"MS.IA.description"); // NOI18N
|
||||
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<wizard xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wizard-components.xsd">
|
||||
<component
|
||||
class="org.mycompany.installer.wizard.components.actions.InitializeAction"/>
|
||||
<component
|
||||
class="org.mycompany.installer.wizard.components.panels.WelcomePanel"/>
|
||||
<component
|
||||
class="org.mycompany.installer.wizard.components.sequences.MainSequence"/>
|
||||
<component
|
||||
class="org.netbeans.installer.wizard.components.sequences.CreateBundleSequence"/>
|
||||
<component
|
||||
class="org.netbeans.installer.wizard.components.actions.FinalizeRegistryAction"/>
|
||||
</wizard>
|
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 821 B |
77
sdk/nbi/stub/ext/infra/build/engine/build.properties
Normal file
@ -0,0 +1,77 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
# path to the directory where the base build scripts library and properties
|
||||
# reside
|
||||
common.dir=../../../../.common
|
||||
|
||||
# path to the local working directory; this directory which will be the target
|
||||
# for checking out the sources and will be used for the build process
|
||||
# * this path can be either absolute or relative in any unix environment,
|
||||
# however, only relative paths are supported on windows, as the cygwin scp
|
||||
# command does not properly handle colon in local paths
|
||||
work.dir=./build
|
||||
|
||||
# path to the local distributive directory; this directory will contain the
|
||||
# distributive file, when (if) the build script finishes successfully
|
||||
dist.dir=./dist
|
||||
|
||||
# path to the engine sources within the cvs module; it should be a relative
|
||||
# path from the module's root, e.g. for 'nbi/engine', where 'nbi is the module
|
||||
# name, the path should be 'engine'
|
||||
cvs.path=engine
|
||||
|
||||
# name of the engine's distributive file
|
||||
engine.dist.file.name=nbi-engine.jar
|
||||
|
||||
# we do not need to build anything native for the netbeans-specific engine, as it
|
||||
# does not contain any native components
|
||||
build.native=false
|
||||
|
||||
# custom parameter for the netbeans project build script - in case of the netbeans
|
||||
# nbi engine - the location of the core engine jar file
|
||||
nb.custom.parameter=-Dreference.NBI_Engine.jar=${core.engine.dist.file}
|
||||
|
||||
# sources parameters; a search-and-replace will be run over the sources after
|
||||
# check-out, replacing [token] => [value]; regular expressions are not allowed
|
||||
# * ${sources.params.length} - total number of the parameters
|
||||
# * indices should start with 1
|
||||
# * parameters are not i18n compliant
|
||||
|
||||
sources.params.length=0
|
77
sdk/nbi/stub/ext/infra/build/engine/build.xml
Normal file
@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the build script for the NetBeans IDE nbi engine instance.
|
||||
|
||||
It inherits most of the functionality from the base script for building nbi
|
||||
engine instances, while providing this instance-specific values for several
|
||||
core properties. For more details on the values of these properties see
|
||||
the build.properties file.
|
||||
-->
|
||||
<project name="netbeans-engine" default="usage" basedir=".">
|
||||
<!-- import the properties that are specific to this environment -->
|
||||
<property file="${environment.properties}"/>
|
||||
|
||||
<!-- import the properties that are specific to this engine instance -->
|
||||
<property file="build.properties"/>
|
||||
|
||||
<!-- import the base script for building the engine -->
|
||||
<import file="${common.dir}/engine.xml" optional="false"/>
|
||||
|
||||
<!-- ============================================================================
|
||||
Default
|
||||
============================================================================= -->
|
||||
|
||||
<!--
|
||||
The default target.
|
||||
|
||||
Does nothing except printing the usage information.
|
||||
-->
|
||||
<target name="usage">
|
||||
<echo>
|
||||
In order to 'clean', 'checkout' and 'build' the engine use the
|
||||
'build-all' target. To 'clean', 'checkout', 'build' and
|
||||
'release' - use 'release-all'.
|
||||
|
||||
For more details, please see the source of this build script.
|
||||
</echo>
|
||||
</target>
|
||||
</project>
|
@ -0,0 +1,159 @@
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
#
|
||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
# Other names may be trademarks of their respective owners.
|
||||
#
|
||||
# The contents of this file are subject to the terms of either the GNU General Public
|
||||
# License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
# License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
# compliance with the License. You can obtain a copy of the License at
|
||||
# http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
# License for the specific language governing permissions and limitations under the
|
||||
# License. When distributing the software, include this License Header Notice in
|
||||
# each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
# designates this particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
# If applicable, add the following below the License Header, with the fields enclosed
|
||||
# by brackets [] replaced by your own identifying information:
|
||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
# is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# If you wish your version of this file to be governed by only the CDDL or only the
|
||||
# GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
# this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
# you do not indicate a single choice of license, a recipient has the option to
|
||||
# distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
# to extend the choice of license to its licensees as provided above. However, if you
|
||||
# add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
# option applies only if the new code is made subject to such option by the copyright
|
||||
# holder.
|
||||
#
|
||||
|
||||
# path to the directory where the base build scripts library and properties
|
||||
# reside
|
||||
common.dir=../../../../../.common
|
||||
|
||||
# path to the local working directory; this directory which will be the target
|
||||
# for checking out the sources and will be used for the build process
|
||||
# * this path can be either absolute or relative in any unix environment,
|
||||
# however, only relative paths are supported on windows, as the cygwin scp
|
||||
# command does not properly handle colon in local paths
|
||||
work.dir=./build
|
||||
|
||||
# path to the local distributive directory; this directory will contain the
|
||||
# distributive file, when (if) the build script finishes successfully
|
||||
dist.dir=./dist
|
||||
|
||||
# path to the products's sources within the cvs module; it should be a relative
|
||||
# path from the module's root, e.g. for 'nbi/engine', where 'nbi is the module
|
||||
# name, the path should be 'engine'
|
||||
cvs.path=components/products/helloworld
|
||||
|
||||
# core product properties:
|
||||
# * ${product.uid} - product "family" (e.g. nb-ide)
|
||||
# * ${product.version} - actual products' version; together with the uid it
|
||||
# forms the unique identifier for the product)
|
||||
# * ${product.platforms} - the list of platforms that are supported by this
|
||||
# product (note that this property is not related to native libraries)
|
||||
product.uid={product-uid}
|
||||
product.version={product-version}
|
||||
product.platforms=generic
|
||||
|
||||
# miscellaneous product properties:
|
||||
# * ${product.status} - default status that the product will have in the
|
||||
# registry. it is meant to be always "not-installed", unless you want
|
||||
# something really exotic
|
||||
# * ${product.offset} - order of the product's node among its parent's
|
||||
# children, the bigger the offset value, the further the product's node will
|
||||
# be
|
||||
# * ${product.expand} - whether to automatically expand the product's node in
|
||||
# the components tree or not; 'true'/'false'
|
||||
# * ${product.visible} - whether the product's node is visible or not (note
|
||||
# that this value will be modified at nbi runtime, 'true' may become 'false'
|
||||
# if the product is filtered out); 'true'/'false'
|
||||
# * ${product.features} - list of features that this porduct belongs to; the
|
||||
# list should be space-separated
|
||||
product.status=not-installed
|
||||
product.offset=20000
|
||||
product.expand=false
|
||||
product.visible=true
|
||||
product.features=
|
||||
|
||||
# list of configuration logic jar files; normally the first one would be the
|
||||
# distributive file of the product's netbeans project
|
||||
# * ${product.logic.length} - total number of the files
|
||||
# * indices should start with 1
|
||||
product.logic.length=1
|
||||
product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name}
|
||||
|
||||
# list of product installation data files
|
||||
# * ${product.data.length} - total number of the files
|
||||
# * ${product.data.N.uri} - uri at which the installation data file is located
|
||||
# * ${product.data.N.zip} - whether the data file is a zip archive which needs to
|
||||
# be extracted or it is a file that should be used directly; 'true'/'false'
|
||||
# * indices should start with 1
|
||||
product.data.length=1
|
||||
product.data.1.zip=true
|
||||
product.data.1.path={product-data-path}
|
||||
product.data.sub.dir={product-data-sub-dir}
|
||||
|
||||
# modificator for the required disk space parameter; the core value will be the
|
||||
# sum of unzipped unstallation data files
|
||||
# * the measurement unit is one byte
|
||||
product.disk.space.modificator=0
|
||||
|
||||
# product's requirements (i.e. other products that should be installed
|
||||
# in order for this product to succesfully install and function)
|
||||
# * ${product.requirements.length} - total number of the requirements
|
||||
# * indices should start with 1
|
||||
product.requirements.length=0
|
||||
#product.requirements.1.uid=
|
||||
#product.requirements.1.version-lower=
|
||||
#product.requirements.1.version-upper=
|
||||
|
||||
# product's conflicts (i.e. other products that prevent this product from
|
||||
# functioning correctly, and thus cannot be installed together with it)
|
||||
# * ${product.conflicts.length} - total number of the conflicts
|
||||
# * indices should start with 1
|
||||
product.conflicts.length=0
|
||||
#product.conflicts.1.uid=
|
||||
#product.conflicts.1.version-lower=
|
||||
#product.conflicts.1.version-upper=
|
||||
|
||||
# other products that should be installed prior to this product; these
|
||||
# dependencies do not imply that the dependent product will be installed at
|
||||
# all, but if both the current and the dependent product are selected for
|
||||
# installation, the latter will be installed first
|
||||
# * ${product.install-afters.length} - total number of the install-afters
|
||||
# * indices should start with 1
|
||||
product.install-afters.length=0
|
||||
#product.install-afters.1.uid=
|
||||
|
||||
# additional product's properties; these will appear in the product's
|
||||
# descriptor and in the registry in the form of
|
||||
# <property name="[name]">value</property> tags.
|
||||
# * ${product.properties.length} - total number of the properties
|
||||
# * indices should start with 1
|
||||
# * properties are not i18n compliant
|
||||
product.properties.length=3
|
||||
product.properties.1.name=installation.location
|
||||
product.properties.1.value=$N{install}/{product-install-directory-name}
|
||||
product.properties.2.name=installation.location.windows
|
||||
product.properties.2.value=$N{install}/{product-install-directory-name-windows}
|
||||
product.properties.3.name=installation.location.macosx
|
||||
product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.app
|
||||
|
||||
# sources parameters; a search-and-replace will be run over the sources after
|
||||
# check-out, replacing [token] => [value]; regular expressions are not allowed
|
||||
# * ${sources.params.length} - total number of the parameters
|
||||
# * indices should start with 1
|
||||
# * parameters are not i18n compliant
|
||||
sources.params.length=0
|
98
sdk/nbi/stub/ext/infra/build/products/helloworld/build.xml
Normal file
@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU General Public
|
||||
License Version 2 only ("GPL") or the Common Development and Distribution
|
||||
License("CDDL") (collectively, the "License"). You may not use this file except in
|
||||
compliance with the License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
|
||||
License for the specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header Notice in
|
||||
each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle
|
||||
designates this particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that accompanied this code.
|
||||
If applicable, add the following below the License Header, with the fields enclosed
|
||||
by brackets [] replaced by your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
Contributor(s):
|
||||
|
||||
The Original Software is NetBeans. The Initial Developer of the Original Software
|
||||
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
||||
Rights Reserved.
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL or only the
|
||||
GPL Version 2, indicate your decision by adding "[Contributor] elects to include
|
||||
this software in this distribution under the [CDDL or GPL Version 2] license." If
|
||||
you do not indicate a single choice of license, a recipient has the option to
|
||||
distribute your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above. However, if you
|
||||
add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the
|
||||
option applies only if the new code is made subject to such option by the copyright
|
||||
holder.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the build script for the helloworld product package.
|
||||
|
||||
It inherits most of the functionality from the base script for building nbi
|
||||
product packages, while providing this instance-specific values for several
|
||||
core properties. For more details on the values of these properties see
|
||||
the build.properties file.
|
||||
-->
|
||||
<project name="helloworld-product" default="usage" basedir=".">
|
||||
<!-- import the properties that are specific to this environment -->
|
||||
<property file="${environment.properties}"/>
|
||||
|
||||
<!-- import the properties that are specific to this product package -->
|
||||
<property file="build.properties"/>
|
||||
|
||||
<!-- import the base script for building product packages -->
|
||||
<import file="${common.dir}/product.xml" optional="false"/>
|
||||
|
||||
<target name="-pre-package">
|
||||
<mkdir dir="${data.directory}/__tmpdir__"/>
|
||||
|
||||
<move todir="${data.directory}/__tmpdir__">
|
||||
<fileset dir="${data.directory}/${product.data.sub.dir}">
|
||||
<include name="**"/>
|
||||
</fileset>
|
||||
</move>
|
||||
|
||||
<delete dir="${data.directory}/${product.data.sub.dir}" includeemptydirs="true"/>
|
||||
|
||||
<move todir="${data.directory}">
|
||||
<fileset dir="${data.directory}/__tmpdir__">
|
||||
<include name="**"/>
|
||||
</fileset>
|
||||
</move>
|
||||
<delete dir="${data.directory}/__tmpdir__" includeemptydirs="true"/>
|
||||
<!--
|
||||
<exec executable="sh" failonerror="false" dir="${data.directory}">
|
||||
<arg value="-c"/>
|
||||
<arg value="chmod a+x bin/*.sh"/>
|
||||
</exec>
|
||||
-->
|
||||
</target>
|
||||
|
||||
<!--
|
||||
The default target.
|
||||
|
||||
Does nothing except printing the usage information.
|
||||
-->
|
||||
<target name="usage">
|
||||
<echo>
|
||||
In order to 'clean', 'checkout' and 'build' the group use the
|
||||
'build-all' target. To 'clean', 'checkout', 'build' and
|
||||
'release' - use 'release-all'.
|
||||
|
||||
For more details, please see the source of this build script.
|
||||
</echo>
|
||||
</target>
|
||||
</project>
|
198
sdk/nbi/stub/template.xml
Normal file
@ -0,0 +1,198 @@
|
||||
<project name="build installers" default="build" basedir=".">
|
||||
<!--<property file="${basedir}/template.properties"/>-->
|
||||
|
||||
<target name="build" depends="init,prepare-sources,prepare-zip,-build,post-build,run-build"/>
|
||||
|
||||
<target name="-init-props">
|
||||
<available file="${suite.location}/nbproject/project.properties" property="do.load.ant.props"/>
|
||||
<available file="${suite.location}/pom.xml" property="do.load.maven.props"/>
|
||||
</target>
|
||||
|
||||
<target name="-init-ant-props" if="do.load.ant.props" depends="-init-props">
|
||||
<property file="${suite.location}/nbproject/project.properties" prefix="suite.props."/>
|
||||
</target>
|
||||
<target name="-init-maven-props" if="do.load.maven.props" depends="-init-props">
|
||||
<xmlproperty file="${suite.location}/pom.xml" prefix="pom.props"/>
|
||||
<property name="suite.props.app.name" value="${pom.props.project.properties.brandingToken}"/>
|
||||
<property name="suite.props.app.title" value="${pom.props.project.artifactId}"/>
|
||||
</target>
|
||||
|
||||
<target name="init" depends="-clean,-init-ant-props,-init-maven-props">
|
||||
<property name="installer.build.dir" value="${suite.location}/build/installer"/>
|
||||
<property name="suite.dist.directory" value="${suite.location}/dist"/>
|
||||
<property name="suite.dist.zip" value="${suite.dist.directory}/${suite.props.app.name}.zip"/>
|
||||
<property name="installers.file.prefix" value="${suite.props.app.name}"/>
|
||||
<delete dir="${installer.build.dir}" includeemptydirs="yes" failonerror="false"/>
|
||||
|
||||
<mkdir dir="${installer.build.dir}"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-clean">
|
||||
</target>
|
||||
|
||||
<target name="post-build">
|
||||
</target>
|
||||
|
||||
<target name="-build">
|
||||
</target>
|
||||
|
||||
<target name="run-build">
|
||||
<ant dir="${installer.build.dir}" inheritAll="false"/>
|
||||
</target>
|
||||
|
||||
<target name="-init-zip">
|
||||
<condition property="do.build.zip">
|
||||
<available file="${suite.dist.zip}"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-build-zip" depends="-init-zip" unless="do.build.zip">
|
||||
<antcall target="-build-zip-ant"/>
|
||||
<antcall target="-build-zip-maven"/>
|
||||
</target>
|
||||
|
||||
<target name="-build-zip-ant" depends="-init-zip" if="do.load.ant.props">
|
||||
<subant buildpath="${suite.location}" inheritAll="false" target="build-zip"/>
|
||||
</target>
|
||||
|
||||
<target name="-build-zip-maven" depends="-init-zip" if="do.load.maven.props">
|
||||
<condition property="mvn.executable" value="mvn.bat" else="mvn">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<exec executable="${mvn.executable}" dir="${suite.location}">
|
||||
<arg value="install"/>
|
||||
<env key="JAVA_HOME" value="${java.home}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="prepare-zip" depends="-init-zip,-build-zip"/>
|
||||
|
||||
<target name="prepare-sources">
|
||||
<copy todir="${installer.build.dir}">
|
||||
<fileset dir="${nbi.stub.location}"/>
|
||||
</copy>
|
||||
<copy todir="${installer.build.dir}/.common">
|
||||
<fileset dir="${nbi.stub.common.location}"/>
|
||||
</copy>
|
||||
|
||||
<property name="product-uid" value="${suite.nbi.product.uid}"/>
|
||||
<!--normen-->
|
||||
<property name="product-version" value="${suite.nbi.product.uid}"/>
|
||||
|
||||
<condition property="icon.path" value="${nbi.icon.file}" else="${installer.build.dir}/ext/components/products/helloworld/data/icon48.png">
|
||||
<and>
|
||||
<isset property="nbi.icon.file"/>
|
||||
<available file="${nbi.icon.file}"/>
|
||||
</and>
|
||||
</condition>
|
||||
|
||||
<basename property="icon.file.name" file="${icon.path}"/>
|
||||
<condition property="icon.extension" value=".gif">
|
||||
<or>
|
||||
<matches string="${icon.file.name}" pattern="^.*\.gif$"/>
|
||||
<matches string="${icon.file.name}" pattern="^.*\.gif$"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="icon.extension" value=".png">
|
||||
<or>
|
||||
<matches string="${icon.file.name}" pattern="^.*\.png$"/>
|
||||
<matches string="${icon.file.name}" pattern="^.*\.PNG$"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<property name="icon.name" value="${suite.props.app.name}${icon.extension}"/>
|
||||
|
||||
<copy file="${icon.path}" tofile="${installer.build.dir}/ext/components/products/helloworld/src/org/mycompany/${icon.name}"/>
|
||||
|
||||
|
||||
|
||||
<replace file="${installer.build.dir}/build.properties" encoding="utf-8">
|
||||
<replacefilter token="{nbi.ant.tasks.jar}" value="${nbi.ant.tasks.jar}"/>
|
||||
<replacefilter token="{nbi.registries.management.jar}" value="${nbi.registries.management.jar}"/>
|
||||
<replacefilter token="{nbi.engine.jar}" value="${nbi.engine.jar}"/>
|
||||
<replacefilter token="{product-platforms}" value="${generate.installer.for.platforms}"/>
|
||||
<replacefilter token="{generator-jdk-location-forward-slashes}" value="${generator-jdk-location-forward-slashes}"/>
|
||||
<replacefilter token="{generated-installers-location-forward-slashes}" value="${suite.dist.directory}"/>
|
||||
<replacefilter token="{pack200.enabled}" value="${pack200.enabled}"/>
|
||||
<replacefilter token="{generated-installers-prefix}" value="${installers.file.prefix}"/>
|
||||
<replacefilter token="{product-uid}" value="${product-uid}"/>
|
||||
<!--normen-->
|
||||
<replacefilter token="{product-version}" value="${product-version}"/>
|
||||
</replace>
|
||||
|
||||
<replace dir="${installer.build.dir}/ext" encoding="utf-8">
|
||||
<replacefilter token="{product-name}" value="${suite.props.app.title}"/>
|
||||
<replacefilter token="{product-simple-name}" value="${suite.props.app.name}"/>
|
||||
<replacefilter token="{product-description}" value=""/>
|
||||
<replacefilter token="{product-uid}" value="${product-uid}"/>
|
||||
<replacefilter token="{product-icon-name}" value="${icon.name}"/>
|
||||
</replace>
|
||||
|
||||
<replace dir="${installer.build.dir}/ext/infra/build/products" encoding="utf-8">
|
||||
<replacefilter token="{product.platforms}" value="${generate.installer.for.platforms}"/>
|
||||
<replacefilter token="{product-data-path}" value="${suite.dist.zip}"/>
|
||||
<replacefilter token="{product-data-sub-dir}" value="${suite.props.app.name}"/>
|
||||
<replacefilter token="{product-uid}" value="${product-uid}"/>
|
||||
<!--normen-->
|
||||
<replacefilter token="{product-version}" value="${product-version}"/>
|
||||
<replacefilter token="{product-install-directory-name}" value="${suite.props.app.name}"/>
|
||||
<replacefilter token="{product-install-directory-name-windows}" value="${suite.props.app.name}"/>
|
||||
<replacefilter token="{product-install-directory-name-macosx}" value="${suite.props.app.name}"/>
|
||||
</replace>
|
||||
<property name="dir.dir" value="${installer.build.dir}/tmpdirfornac"/>
|
||||
<mkdir dir="${dir.dir}"/>
|
||||
|
||||
<native2ascii encoding="utf-8" src="${installer.build.dir}" dest="${dir.dir}" includes="build.properties ext/**/*.properties"/>
|
||||
|
||||
<copy todir="${installer.build.dir}" overwrite="true" includeEmptyDirs="true">
|
||||
<fileset dir="${dir.dir}"/>
|
||||
</copy>
|
||||
<condition property="license.defined">
|
||||
<and>
|
||||
<isset property="nbi.license.file"/>
|
||||
<available file="${nbi.license.file}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<antcall target="-prepare-license"/>
|
||||
|
||||
<condition property="icon.defined">
|
||||
<and>
|
||||
<isset property="nbi.icon.file"/>
|
||||
<available file="${nbi.icon.file}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<antcall target="-prepare-icon"/>
|
||||
|
||||
<condition property="dock.icon.defined">
|
||||
<and>
|
||||
<isset property="nbi.dock.icon.file"/>
|
||||
<available file="${nbi.dock.icon.file}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<antcall target="-prepare-dock-icon"/>
|
||||
|
||||
<delete dir="${dir.dir}" includeEmptyDirs="true"/>
|
||||
</target>
|
||||
|
||||
<target name="-prepare-license" if="license.defined">
|
||||
<copy file="${nbi.license.file}" tofile="${installer.build.dir}/ext/components/products/helloworld/src/org/mycompany/license.txt" overwrite="true"/>
|
||||
</target>
|
||||
<target name="-prepare-icon" if="icon.defined">
|
||||
<copy file="${nbi.icon.file}" tofile="${installer.build.dir}/ext/engine/src/org/mycompany/installer/wizard/wizard-icon.png" overwrite="true"/>
|
||||
</target>
|
||||
|
||||
<target name="-prepare-dock-icon" if="dock.icon.defined">
|
||||
<mkdir dir="${installer.build.dir}/ext/engine/src/org/netbeans/installer/utils/system/launchers/impl"/>
|
||||
<copy file="${nbi.dock.icon.file}" tofile="${installer.build.dir}/ext/engine/src/org/netbeans/installer/utils/system/launchers/impl/dockicon.icns"/>
|
||||
<copy file="${nbi.dock.icon.file}" tofile="${installer.build.dir}/ext/components/products/helloworld/src/org/mycompany/${suite.props.app.name}.icns"/>
|
||||
</target>
|
||||
|
||||
<target name="replace">
|
||||
<property file="${token.file}"/>
|
||||
<replaceregexp file="${file.to.replace}" flags="mg">
|
||||
<regexp pattern="${regexp.token}"/>
|
||||
<substitution expression="${regexp.replacement}"/>
|
||||
</replaceregexp>
|
||||
</target>
|
||||
</project>
|
16
sdk/nbi/stub/tmpl.properties
Normal file
@ -0,0 +1,16 @@
|
||||
suite.location=C:/Documents and Settings/Lipin/My Documents/NetBeansProjects/MyApp
|
||||
|
||||
nbi.cluster.location=D:/space/NB-IDE/proto/nbbuild/netbeans/extra
|
||||
|
||||
nbi.stub.location=${nbi.cluster.location}/nbi/stub
|
||||
nbi.stub.common.location=${nbi.cluster.location}/nbi/.common
|
||||
nbi.ant.tasks.jar=${nbi.cluster.location}/modules/ext/nbi-ant-tasks.jar
|
||||
nbi.registries.management.jar=${nbi.cluster.location}/modules/ext/nbi-registries-management.jar
|
||||
nbi.engine.jar=${nbi.cluster.location}/modules/ext/nbi-engine.jar
|
||||
|
||||
generate.installer.for.platforms=windows linux macosx
|
||||
|
||||
generator-jdk-location-forward-slashes=C:/Program Files/Java/jdk1.5.0_16
|
||||
pack200.enabled=false
|
||||
|
||||
suite.nbi.product.uid=myapp
|