Introduction of new properties in the build.properties file of feature | When building an eclipse based product from features, it is now possible to copy files or directories to the eclipse directory. This is achieved thanks to the following properties: root=a comma separated list of files and directories To refer to a file prefix the name with "file:", to refer to a directory, simply list the name. It is also possible to set permissions on those root files: root.permissions.XXX=a comma separated list of files and directories where XXX is a unix chmod style permission description. It is also possible to copy files and apply permissions on a configuration basis root.configName= root.configName.permissions.XXX= where configName is a doted description of the platform (os.ws.arch). Here an example for org.eclipse.platform root=eclipse root.macosx.carbon.ppc=macosx.carbon,../../plugins/platform-launcher/bin/macosx root.macosx.carbon.ppc.link=Eclipse.app/Contents/MacOS/eclipse,eclipse root.macosx.carbon.ppc.permissions.755=Eclipse.app/Contents/MacOS/eclipse It is also possible to trigger the generation of source features and plugins generate.feature@nameOfTheFeatureToGenerate=featureName, plugin@XXXX generate a feature called 'nameOfTheFeatureToGenerate' from the plugins contained in the feature called 'featureName' and also include the plugin xxxx Example : generate.feature@org.eclipse.jdt.source=org.eclipse.jdt, plugin@org.eclipse.jdt.doc.isv
Introduction of new properties in the build.properties file of plugin | For every jar file that is being built three variables can be provided. Note that "{jarname}" describes the name of the jar file including its path relative to the project. a variable named "source.{jarname}" describing where the source of the jar can be found. The expected value is a path relative to the project (for example "src/"). a variable named "output.{jarname}" describing where the bin of the jar can be found. The expected value is a path relative to the project (for example "bin/"). a variable named "extra.{jarname}" describing the list of jars required to compile this jar. The expected values are paths relative to the place where the project is. A short way to explain the content of those variables is to see them as variables used for the compilation: the source indicates where to find the source of the jar. the extra gives extra values to be put at the end of the classpath when we are compiling the source. the output indicates where the content of a compiled version of the library exists (this is typically used in the classpath of plugins requiring this jar).
Setting permissions on a per basis plugin | During a build it is now possible to set permissions and create links on a per plugin basis. Those information are listed in a file called permissions.properties provided at the root of the plugin (as a sibling of build.properties). The format of the file is as follow: permissions.executable=list of files permissions.link=list of files permissions.XXX=list of files
Enhancement of the map file | The map file entries have been enhanced to allow plugins and features to be located anywhere in a cvs repository. feature|fragment|plugin@elementID=versionName,CVSRepository,passwordInfo,pathInTheRepository (no starting slash) example: feature@com.foo=v101,:pserver:anon@foo.com:/home/cvs,,a/b/foo-feature
New properties introduced to control the compilation of plugins | javacSource: Give the format of the source code. Legal values are 1.3 and 1.4. javacTarget: Generate class files for specific VM version. javacFailOnError: Indicates whether the build will continue even if there are compilation errors. javacDebugInfo: Indicates whether source should be compiled with debug information. javacVerbose: Asks the compiler for verbose output. bootclasspath: Set the classpath of the jdk you compile against. All those properties are surfaced in the pde ui.
Reusable automated build process | The new pde build process ease the creation of automated build process by providing a set of template scripts and a general script. Those scripts and templates are used to build the 3.0 build of eclipse (see the project org.eclipse.releng.eclipsebuilder). A small example of their usage is also provided in the feature folder of the plugin.
Filling version numbers of features | In the features, version numbers for nested features and plugins can now be specified to 0.0.0 and will be filled in by the appropriate values by the pde build engine.