[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[tycho-user] Remove p2 Folder in Materialized Products
|
Hej,
I'm using Tycho 0.16.0. and eclipse-repository to build a lot of
products, which works very well so far.
In the materialized product folders I'm a little bothered about this
additional eclipsec.exe, which I managed to remove via a
productfilename.p2.inf and the entry
instructions.configure=org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/eclipsec.exe);
Now I got an additional folder named "p2" below the $installFolder,
which I do not need either, because we do not use the update feature
within the products. This folder is with its 50Mb quite big, because the
cache below org.eclipse.equinox.p2.core contains a self made JRE
feature, which contains a complete JRE within its rootfiles (we are
using this approach as an replacement for PDEs "Bundle JRE"-Feature). So
I just thought of deleting this folder with the same mechanism that
works for eclipsec.exe, I extended productfilename.p2.inf like so:
instructions.configure=\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/eclipsec.exe);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/p2/);\
Unfortunately, this throws an IOException (see output from "mvn clean
verify" [0], and the .log [1]).
Obviously, p2 first backups each file that it's going to remove, and
while this backup the IOException occurs (some sort of concurrency
problem maybe). Having a look at the source of p2's RemoveAction, I
guess this behavior is not configurable.
So what would you suggest to do? Is there another approach to suppress
the generation of a p2 folder in materialized products? Any help would
be greatly appreciated! Regards,
Mirko Swillus
[0] Output from "mvn clean verify":
...
An error occurred while configuring the installed items
session context was:(profile=DefaultProfile,
phase=org.eclipse.equinox.internal.p2.engine.phases.Configure,
operand=null --> [R]com.foo.casy.product
2.0.2.SNAPSHOT-201211151629,
action=org.eclipse.equinox.internal.p2.touchpoint.natives.actions.RemoveAction).
Backup of file
C:\Users\mirkos\workspaces\com.foo.build\com.foo.build\com.foo.products\target\products\com.foo.casy.product\win32\win32\x86\someproduct\p2
failed.
Caused by: java.io.IOException: Der Prozess kann nicht auf die Datei
zugreifen, da ein anderer Prozess einen Teil der Datei gesperrt hat
Application failed, log file location:
C:\Users\mirkos\workspaces\com.foo.build\com.foo.build\workspace\.metadata\.log
...
[1] the workspace .log (please excuse German OS locale):
!SESSION 2012-11-15 17:30:21.294
-----------------------------------------------
eclipse.buildId=unknown
java.version=1.7.0_05
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments: -eclipse.keyring
C:\Users\mirkos\AppData\Local\Temp\tycho6133239347861452277secure_storage
Command-line arguments: -eclipse.keyring
C:\Users\mirkos\AppData\Local\Temp\tycho6133239347861452277secure_storage
!ENTRY org.eclipse.equinox.p2.touchpoint.natives 4 0 2012-11-15 17:30:21.295
!MESSAGE Backup store modified externally! 11 items out of 10 items
restored. Remaining items can not be found.
!ENTRY org.eclipse.equinox.p2.engine 4 4 2012-11-15 17:30:21.296
!MESSAGE An error occurred while committing the engine session for
profile: DefaultProfile.
!SUBENTRY 1 org.eclipse.equinox.p2.touchpoint.natives 4 0 2012-11-15
17:30:21.296
!MESSAGE Restore of backup failed - see log for details. Backup
directory name: DefaultProfile_27609d034ee0_c0a80a83e929.
!STACK 0
java.io.IOException: Errors while restoring - see earlier logged errors
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.close(BackupStore.java:489)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.restore(BackupStore.java:452)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.LazyBackupStore.restore(LazyBackupStore.java:53)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.NativeTouchpoint.rollback(NativeTouchpoint.java:108)
at
org.eclipse.equinox.internal.p2.engine.EngineSession.rollback(EngineSession.java:194)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:84)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
at
org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:41)
at
org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:23)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.executePlan(DirectorApplication.java:767)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.planAndExecute(DirectorApplication.java:760)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.performProvisioningActions(DirectorApplication.java:747)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.run(DirectorApplication.java:1040)
at
org.eclipse.tycho.p2.tools.director.DirectorApplicationWrapper$DirectorApplicationWrapperCommand.execute(DirectorApplicationWrapper.java:43)
at
org.eclipse.tycho.plugins.p2.director.DirectorMojo.execute(DirectorMojo.java:116)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
!ENTRY org.eclipse.equinox.p2.engine 4 4 2012-11-15 17:30:21.307
!MESSAGE An error occurred while configuring the installed items
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2012-11-15 17:30:21.308
!MESSAGE session context was:(profile=DefaultProfile,
phase=org.eclipse.equinox.internal.p2.engine.phases.Configure,
operand=null --> [R]com.foo.casy.product 2.0.2.SNAPSHOT-201211151629,
action=org.eclipse.equinox.internal.p2.touchpoint.natives.actions.RemoveAction).
!SUBENTRY 1 org.eclipse.equinox.p2.touchpoint.natives 4 0 2012-11-15
17:30:21.308
!MESSAGE Backup of file
C:\Users\mirkos\workspaces\com.foo.build\com.foo.build\com.foo.products\target\products\com.foo.casy.product\win32\win32\x86\someproduct\p2
failed.
!STACK 0
java.io.IOException: Der Prozess kann nicht auf die Datei zugreifen, da
ein anderer Prozess einen Teil der Datei gesperrt hat
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:220)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.Util.copyStream(Util.java:219)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.moveToBackup(BackupStore.java:269)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.backup(BackupStore.java:243)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.backupAll(BackupStore.java:301)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.backupAll(BackupStore.java:299)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.backupAll(BackupStore.java:299)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.backupAll(BackupStore.java:299)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.BackupStore.backupAll(BackupStore.java:299)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.LazyBackupStore.backupAll(LazyBackupStore.java:79)
at
org.eclipse.equinox.internal.p2.touchpoint.natives.actions.RemoveAction.execute(RemoveAction.java:37)
at
org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:35)
at org.eclipse.equinox.internal.p2.engine.Phase.mainPerform(Phase.java:174)
at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:92)
at
org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:47)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:75)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
at
org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:41)
at
org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:23)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.executePlan(DirectorApplication.java:767)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.planAndExecute(DirectorApplication.java:760)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.performProvisioningActions(DirectorApplication.java:747)
at
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.run(DirectorApplication.java:1040)
at
org.eclipse.tycho.p2.tools.director.DirectorApplicationWrapper$DirectorApplicationWrapperCommand.execute(DirectorApplicationWrapper.java:43)
at
org.eclipse.tycho.plugins.p2.director.DirectorMojo.execute(DirectorMojo.java:116)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)