Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » Problems resolving from a p2 site with Buckminster 3.5
Problems resolving from a p2 site with Buckminster 3.5 [message #502520] Tue, 08 December 2009 16:45 Go to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi!


I'm trying to build two components independently.
The first one is a core feature, which builds fine from the source.
I have used Buckminster to build a p2 site.

The other component is dependent on the first component and is contributing to a menu.
It consist of the feature org.john.bmtest.contrib.feature with the plugin org.john.bmtest.contrib.
The plugin is dependent on the plugin org.john.bmtest from the first component.

Here's a snippet of the rmap used for the second component:

<searchPath name="COMP2">
<provider
readerType="url.catalog"
componentTypes="osgi.bundle,eclipse.feature,buckminster"
source="true">
<uri format="file:{1}/{0}">
<bc:propertyRef key="buckminster.component" />
<bc:propertyRef key="disk.source.dir" />
</uri>
</provider>
</searchPath>

<searchPath name="COMP1">
<provider
readerType="eclipse.import"
componentTypes="osgi.bundle,eclipse.feature"
mutable="false"
source="false">
<uri format=" file:/C:/Temp/bmtest35-core/psd_build/org.john.bmtest.produc t_1.0.0-eclipse.feature/site.p2?importType=binary "/>
</provider>
</searchPath>

<locator searchPathRef="COMP2" pattern="^org\.john\.bmtest\.contrib\..*" />
<locator searchPathRef="COMP1" pattern="^org\.john\..*" />

With this the resolve fails to locate the plugin org.john.bmtest.contrib.
Shouldn't the pattern "^org\.john\.bmtest\.contrib\..*" match this also?

If I instead use the following locators, the resolve works.

<locator searchPathRef="COMP2" pattern="^org\.john\.bmtest\.contrib\..*" />
<locator searchPathRef="COMP2" pattern="^org\.john\.bmtest\.contrib" />
<locator searchPathRef="COMP1" pattern="^org\.john\..*" />

However, now the materialization fails.
Below is part of the debug log, where it's seen that the materialization apparently goes well,
for the source based feature org.john.bmtest.contrib.feature and plugin org.john.bmtest.contrib.
Also the binary plugin org.john.bmtest from the p2 site seem to be OK.
But the I get this error about a path problem, without information of which path it is.
The only suspicious thing I can find is, that in the workspace it materializes to,
the features and plugins folders contain the source for org.john.bmtest.contrib.feature and org.john.bmtest.contrib,
while the plugins folder contains an empty folder with the name org.john.bmtest.
Is this the reason for the exception? Why is it an empty folder?
I would expect it to be the jar file materialized from the p2 site.

I'll appreciate any help.

Thanks.

/John


!ENTRY org.eclipse.buckminster.core 0 293 2009-12-08 17:09:53.684
!MESSAGE Provider url.catalog(file:/Temp/bmtest-source35-contrib/org.john.bmte st.contrib.feature): materializing to C:/Temp/bmtest35-contrib/psd_workspace/features/org.john.bmt est.contrib.feature/
Provider url.catalog(file:/Temp/bmtest-source35-contrib/org.john.bmte st.contrib.feature): materializing to C:/Temp/bmtest35-contrib/psd_workspace/features/org.john.bmt est.contrib.feature/

!ENTRY org.eclipse.buckminster.core 0 293 2009-12-08 17:09:53.700
!MESSAGE Provider eclipse.import(file:/C:/Temp/bmtest35-core/psd_build/org.joh n.bmtest.product_1.0.0-eclipse.feature/site.p2?importType=bi nary): materializing to C:/Temp/bmtest35-contrib/psd_workspace/plugins/org.john.bmte st/
Provider eclipse.import(file:/C:/Temp/bmtest35-core/psd_build/org.joh n.bmtest.product_1.0.0-eclipse.feature/site.p2?importType=bi nary): materializing to C:/Temp/bmtest35-contrib/psd_workspace/plugins/org.john.bmte st/

!ENTRY org.eclipse.buckminster.core 0 293 2009-12-08 17:09:53.731
!MESSAGE Provider url.catalog(file:/Temp/bmtest-source35-contrib/org.john.bmte st.contrib): materializing to C:/Temp/bmtest35-contrib/psd_workspace/plugins/org.john.bmte st.contrib/
Provider url.catalog(file:/Temp/bmtest-source35-contrib/org.john.bmte st.contrib): materializing to C:/Temp/bmtest35-contrib/psd_workspace/plugins/org.john.bmte st.contrib/

!ENTRY org.eclipse.buckminster.core 4 293 2009-12-08 17:09:53.747
!MESSAGE ERROR [0003] : java.io.IOException: The system cannot find the path specified
ERROR [0003] : java.io.IOException: The system cannot find the path specified

!ENTRY org.eclipse.buckminster.runtime 4 0 2009-12-08 17:09:53.762
!MESSAGE java.io.IOException: The system cannot find the path specified
!STACK 0
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.buckminster.core.helpers.FileUtils.createTempFol der(FileUtils.java:492)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .getTempSite(EclipseImportReaderType.java:279)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .localizeContents(EclipseImportReaderType.java:693)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.loc alize(EclipseImportReader.java:239)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.inn erMaterialize(EclipseImportReader.java:86)
at org.eclipse.buckminster.core.reader.AbstractCatalogReader.ma terialize(AbstractCatalogReader.java:270)
at org.eclipse.buckminster.core.materializer.FileSystemMaterial izer.materialize(FileSystemMaterializer.java:268)
at org.eclipse.buckminster.core.materializer.MaterializerJob.ru n(MaterializerJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
ERROR: java.io.IOException: The system cannot find the path specified
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.buckminster.core.helpers.FileUtils.createTempFol der(FileUtils.java:492)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .getTempSite(EclipseImportReaderType.java:279)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .localizeContents(EclipseImportReaderType.java:693)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.loc alize(EclipseImportReader.java:239)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.inn erMaterialize(EclipseImportReader.java:86)
at org.eclipse.buckminster.core.reader.AbstractCatalogReader.ma terialize(AbstractCatalogReader.java:270)
at org.eclipse.buckminster.core.materializer.FileSystemMaterial izer.materialize(FileSystemMaterializer.java:268)
at org.eclipse.buckminster.core.materializer.MaterializerJob.ru n(MaterializerJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.buckminster.core 4 293 2009-12-08 17:09:53.872
!MESSAGE Errors and Warnings
!STACK 1
org.eclipse.core.runtime.CoreException: Errors and Warnings
at org.eclipse.buckminster.runtime.BuckminsterException.wrap(Bu ckminsterException.java:109)
at org.eclipse.buckminster.core.materializer.MaterializationJob .internalRun(MaterializationJob.java:175)
at org.eclipse.buckminster.core.materializer.MaterializationJob .run(MaterializationJob.java:144)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Contains: [0003] : java.io.IOException: The system cannot find the path specified
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.buckminster.core.helpers.FileUtils.createTempFol der(FileUtils.java:492)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .getTempSite(EclipseImportReaderType.java:279)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .localizeContents(EclipseImportReaderType.java:693)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.loc alize(EclipseImportReader.java:239)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.inn erMaterialize(EclipseImportReader.java:86)
at org.eclipse.buckminster.core.reader.AbstractCatalogReader.ma terialize(AbstractCatalogReader.java:270)
at org.eclipse.buckminster.core.materializer.FileSystemMaterial izer.materialize(FileSystemMaterializer.java:268)
at org.eclipse.buckminster.core.materializer.MaterializerJob.ru n(MaterializerJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
!SUBENTRY 1 org.eclipse.buckminster.core 4 0 2009-12-08 17:09:53.919
!MESSAGE Errors and Warnings
!SUBENTRY 2 org.eclipse.buckminster.runtime 4 0 2009-12-08 17:09:53.919
!MESSAGE [0003] : java.io.IOException: The system cannot find the path specified

!STACK 0
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.buckminster.core.helpers.FileUtils.createTempFol der(FileUtils.java:492)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .getTempSite(EclipseImportReaderType.java:279)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .localizeContents(EclipseImportReaderType.java:693)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.loc alize(EclipseImportReader.java:239)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.inn erMaterialize(EclipseImportReader.java:86)
at org.eclipse.buckminster.core.reader.AbstractCatalogReader.ma terialize(AbstractCatalogReader.java:270)
at org.eclipse.buckminster.core.materializer.FileSystemMaterial izer.materialize(FileSystemMaterializer.java:268)
at org.eclipse.buckminster.core.materializer.MaterializerJob.ru n(MaterializerJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
ERROR: Errors and Warnings
org.eclipse.core.runtime.CoreException: Errors and Warnings
at org.eclipse.buckminster.runtime.BuckminsterException.wrap(Bu ckminsterException.java:109)
at org.eclipse.buckminster.core.materializer.MaterializationJob .internalRun(MaterializationJob.java:175)
at org.eclipse.buckminster.core.materializer.MaterializationJob .run(MaterializationJob.java:144)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Contains: [0003] : java.io.IOException: The system cannot find the path specified
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.buckminster.core.helpers.FileUtils.createTempFol der(FileUtils.java:492)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .getTempSite(EclipseImportReaderType.java:279)
at org.eclipse.buckminster.pde.internal.EclipseImportReaderType .localizeContents(EclipseImportReaderType.java:693)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.loc alize(EclipseImportReader.java:239)
at org.eclipse.buckminster.pde.internal.EclipseImportReader.inn erMaterialize(EclipseImportReader.java:86)
at org.eclipse.buckminster.core.reader.AbstractCatalogReader.ma terialize(AbstractCatalogReader.java:270)
at org.eclipse.buckminster.core.materializer.FileSystemMaterial izer.materialize(FileSystemMaterializer.java:268)
at org.eclipse.buckminster.core.materializer.MaterializerJob.ru n(MaterializerJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.buckminster.core 1 293 2009-12-08 17:09:54.028
!MESSAGE TAG-ID 0003 = Query for ${plugin.id}:eclipse.feature, path: org.john.bmtest.contrib.feature:eclipse.feature$1.0.0 -> org.john.bmtest.contrib:osgi.bundle$1.0.0

INFO: TAG-ID 0003 = Query for ${plugin.id}:eclipse.feature, path: org.john.bmtest.contrib.feature:eclipse.feature$1.0.0 -> org.john.bmtest.contrib:osgi.bundle$1.0.0
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502625 is a reply to message #502520] Wed, 09 December 2009 08:37 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
OK, I found out that the first problem was caused by an incorrect regular expression.

The following solves the resolve problem:
<locator searchPathRef="PSD-DISK" pattern="^org\.john\.bmtest\.(contrib|contrib\..*)" />

I keep getting confused by package names that looks like a folder hierarchy. Wink

But I'm still lost with the missing path exception.
Any help is greatly appreciated.

/John
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502636 is a reply to message #502625] Wed, 09 December 2009 09:08 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 2009-12-09 09:37, John wrote:
> OK, I found out that the first problem was caused by an incorrect
> regular expression.
>
> The following solves the resolve problem:
> <locator searchPathRef="PSD-DISK"
> pattern="^org\.john\.bmtest\.(contrib|contrib\..*)" />
>
> I keep getting confused by package names that looks like a folder
> hierarchy. ;)
>
You're not the only one. The use of regexps may be powerful, but it's also a fairly obscure syntax. I'm contemplating a
solution where we allow a simpler syntax that would only expand '*' (any character any number of times) and '?' (any
character, exactly one time) and no other mystic. We could call it 'match' instead of pattern and thus get:

<locator searchPathRef="PSD-DISK" match="org.john.bmtest.contrib.*"/>
<locator searchPathRef="PSD-DISK" match="org.john.bmtest.contrib"/>

or, if you don't want to protect against contribxxx names specifically, just:

<locator searchPathRef="PSD-DISK" match="org.john.bmtest.contrib*"/>

What do you think?

> But I'm still lost with the missing path exception.
> Any help is greatly appreciated.
>
It seems the materializer is unable to create a temporary file. This suggests that you don't have write permission to
the whatever your JVM considers java.io.tmpdir to be, or that this folder simply doesn't exist.

Regards,
Thomas Hallgren
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502645 is a reply to message #502636] Wed, 09 December 2009 09:36 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for the response. See my answers below.

Quote:

You're not the only one. The use of regexps may be powerful, but it's also a fairly obscure syntax. I'm contemplating a
solution where we allow a simpler syntax that would only expand '*' (any character any number of times) and '?' (any
character, exactly one time) and no other mystic. We could call it 'match' instead of pattern and thus get:

<locator searchPathRef="PSD-DISK" match="org.john.bmtest.contrib.*"/>
<locator searchPathRef="PSD-DISK" match="org.john.bmtest.contrib"/>

or, if you don't want to protect against contribxxx names specifically, just:

<locator searchPathRef="PSD-DISK" match="org.john.bmtest.contrib*"/>

What do you think?


I think that sounds like a great improvement.
I would, however, like to protect against contribxxx names
and I would also like to do this in just one line.
Something like the way it works with path matching in ANT.

Quote:
It seems the materializer is unable to create a temporary file. This suggests that you don't have write permission to
the whatever your JVM considers java.io.tmpdir to be, or that this folder simply doesn't exist.


I have been explicitely setting java.io.tmpdir for a long time, so I know I have write permission to that. My call to Buckminster is:

buckminster -data /temp/bmtest35-contrib/psd_workspace -S build-component.script -vmargs -Xmx768M -XX:"MaxPermSize=256M"
-D"build.plugin.id=org.john.bmtest.contrib.feature" -D"build.action=create.zip" -D"build.cquery=build-feature.cquery"
-D"java.io.tmpdir=/temp/bmtest35-contrib/psd_temp" -D"buckminster.output.root=/temp/bmtest35-contrib/psd_build "
-D"ncdbuilder.buildtype=full" -D"build.rmap.file=build-bmtest-contrib.rmap"
-D"build.disk.source.dir=/Temp/bmtest-source35-contrib" -D"build.rcp.target=\Eclipse-RCP-3.5\eclipse"
-D"cbi.include.source=false"

I have tried to do the "import features or plugins" as mentioned in the Bucky book, and it gives me a plugin project in my workspace, that looks like described. But when doing it with Buckminster I just get an empty folder.


/John
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502673 is a reply to message #502645] Wed, 09 December 2009 10:54 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 2009-12-09 10:36, John wrote:
> I have been explicitely setting java.io.tmpdir for a long time, so I
> know I have write permission to that. My call to Buckminster is:
>
> buckminster -data /temp/bmtest35-contrib/psd_workspace -S
> build-component.script -vmargs -Xmx768M -XX:"MaxPermSize=256M"
> -D"build.plugin.id=org.john.bmtest.contrib.feature"
> -D"build.action=create.zip" -D"build.cquery=build-feature.cquery"
> -D"java.io.tmpdir=/temp/bmtest35-contrib/psd_temp"
> -D"buckminster.output.root=/temp/bmtest35-contrib/psd_build "
> -D"ncdbuilder.buildtype=full" -D"build.rmap.file=build-bmtest-contrib.rmap"
> -D"build.disk.source.dir=/Temp/bmtest-source35-contrib"
> -D"build.rcp.target=\Eclipse-RCP-3.5\eclipse"
> -D"cbi.include.source=false"
>
> I have tried to do the "import features or plugins" as mentioned in the
> Bucky book, and it gives me a plugin project in my workspace, that looks
> like described. But when doing it with Buckminster I just get an empty
> folder.
>
Well, fact remains. The call that fails (from your stacktrace):

at org.eclipse.buckminster.core.helpers.FileUtils.createTempFol der(FileUtils.java:492)

does this:

tmpFile = File.createTempFile(prefix, suffix);

It's called with prefix = "bmsite" and suffix = ".tmp". The stack after that is:

java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)

Which leads me to believe that something is amiss with /temp/bmtest35-contrib/psd_temp. I can't see any other reason for
that particular error.

Regards,
Thomas Hallgren
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502682 is a reply to message #502673] Wed, 09 December 2009 12:02 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thank you for insisting. Smile
As mentioned I have used this for a long time now with Buckminster 3.4.
Actually the folder /temp/bmtest35-contrib/psd_temp doesn't exist before I make my call.
This has given me reason to believe that the folder was created for me if needed.
If I create the folder first the error disappears.
I have had no problems building with Buckminster 3.4 or 3.5 before now, so the conclusion must be that the folder is created for me in some cases or that is has never been used for my builds?!

Now my plugin org.john.bmtest is metarialized and the project looks like when imported with Eclipse.
Unfortunately I get the error below, that Buckminster can't build my contrib plugin until org.john.bmtest is build.
But this is a binary loaded from a p2 site?
This is already usable as it is, right?

Thanks.


/John

Here's the last part of the debug log:

Provider eclipse.import(file:/C:/Temp/bmtest35-core/psd_build/org.joh n.bmtest.product_1.0.0-eclipse.feature/site.p2?importType=bi nary): materializing to C:/Temp/bmtest35-contrib/psd_workspace/plugins/org.john.bmte st/
Project org.john.bmtest.contrib.feature now has dynamic dependencies to org.john.bmtest.contrib
Project org.john.bmtest.contrib now has dynamic dependencies to org.john.bmtest
INFO: Import complete.
Doing full workspace refresh
Waiting for jobs to end
perform 'org.john.bmtest.contrib.feature#create.zip'
Actions to perform (in order)
org.john.bmtest.contrib:osgi.bundle$1.0.0#eclipse.build
org.john.bmtest.contrib:osgi.bundle$1.0.0#target.fragments
org.john.bmtest.contrib:osgi.bundle$1.0.0#bundle.jar
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#manife st
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#featur e.jar
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .manifest
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .feature.jar
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.f eatures
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.p lugins
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#create .zip
init actor: eclipse.build[org.john.bmtest.contrib:osgi.bundle$1.0.0#ecli pse.build]
INFO: [start org.john.bmtest.contrib:osgi.bundle$1.0.0#eclipse.build]
target.arch=x86
buckminster.component=org.john.bmtest.contrib
workspace.root=C:/Temp/bmtest35-contrib/psd_workspace
buckminster.temp=/temp/bmtest35-contrib/psd_temp/buckminster /org.john.bmtest.contrib_1.0.0-osgi.bundle/temp
buckminster.home=C:\Temp\bmtest35-contrib\psd_workspace\plug ins\org.john.bmtest.contrib\
buckminster.output=/temp/bmtest35-contrib/psd_build/org.john .bmtest.contrib_1.0.0-osgi.bundle
localhost=DK-0000LWM0168
generator.buildTimestamp.format=2009-12-09T11:53:53.081+0000
buckminster.component.type=osgi.bundle
buckminster.version=1.0.0
target.nl=da_DK
target.ws=win32
eclipse.home=C:\Temp\bm35\buckminster
target.os=win32
target.location=C:\Eclipse-RCP-3.5\eclipse
Doing full workspace refresh
Waiting for jobs to end
The project cannot be built until its prerequisite org.john.bmtest is built. Cleaning and building all projects is recommended
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502687 is a reply to message #502682] Wed, 09 December 2009 12:18 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,
I guess you do an import directly followed by a perform?

Try inserting a build in between. The reason is that a full workspace build is sometimes necessary to overcome
circularity problems. The perform command will only do a strictly hierarchical build.

Regards,
Thomas Hallgren


On 2009-12-09 13:02, John wrote:
> Hi Thomas!
>
>
> Thank you for insisting. :)
> As mentioned I have used this for a long time now with Buckminster 3.4.
> Actually the folder /temp/bmtest35-contrib/psd_temp doesn't exist before
> I make my call.
> This has given me reason to believe that the folder was created for me
> if needed.
> If I create the folder first the error disappears.
> I have had no problems building with Buckminster 3.4 or 3.5 before now,
> so the conclusion must be that the folder is created for me in some
> cases or that is has never been used for my builds?!
>
> Now my plugin org.john.bmtest is metarialized and the project looks like
> when imported with Eclipse.
> Unfortunately I get the error below, that Buckminster can't build my
> contrib plugin until org.john.bmtest is build.
> But this is a binary loaded from a p2 site?
> This is already usable as it is, right?
>
> Thanks.
>
>
> /John
>
> Here's the last part of the debug log:
>
> Provider eclipse.import(file:/C:/Temp/bmtest35-core/psd_build/org.joh
> n.bmtest.product_1.0.0-eclipse.feature/site.p2?importType=bi nary):
> materializing to
> C:/Temp/bmtest35-contrib/psd_workspace/plugins/org.john.bmte st/
> Project org.john.bmtest.contrib.feature now has dynamic dependencies to
> org.john.bmtest.contrib
> Project org.john.bmtest.contrib now has dynamic dependencies to
> org.john.bmtest
> INFO: Import complete.
> Doing full workspace refresh
> Waiting for jobs to end
> perform 'org.john.bmtest.contrib.feature#create.zip'
> Actions to perform (in order)
> org.john.bmtest.contrib:osgi.bundle$1.0.0#eclipse.build
> org.john.bmtest.contrib:osgi.bundle$1.0.0#target.fragments
> org.john.bmtest.contrib:osgi.bundle$1.0.0#bundle.jar
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#manife st
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#featur e.jar
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .manifest
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .feature.jar
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.f eatures
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.p lugins
> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#create .zip
> init actor: eclipse.build[org.john.bmtest.contrib:osgi.bundle$1.0.0#ecli
> pse.build]
> INFO: [start org.john.bmtest.contrib:osgi.bundle$1.0.0#eclipse.build]
> target.arch=x86
> buckminster.component=org.john.bmtest.contrib
> workspace.root=C:/Temp/bmtest35-contrib/psd_workspace
> buckminster.temp=/temp/bmtest35-contrib/psd_temp/buckminster
> /org.john.bmtest.contrib_1.0.0-osgi.bundle/temp
> buckminster.home=C:\Temp\bmtest35-contrib\psd_workspace\plug
> ins\org.john.bmtest.contrib\
> buckminster.output=/temp/bmtest35-contrib/psd_build/org.john
> .bmtest.contrib_1.0.0-osgi.bundle
> localhost=DK-0000LWM0168
> generator.buildTimestamp.format=2009-12-09T11:53:53.081+0000
> buckminster.component.type=osgi.bundle
> buckminster.version=1.0.0
> target.nl=da_DK
> target.ws=win32
> eclipse.home=C:\Temp\bm35\buckminster
> target.os=win32
> target.location=C:\Eclipse-RCP-3.5\eclipse
> Doing full workspace refresh
> Waiting for jobs to end
> The project cannot be built until its prerequisite org.john.bmtest is
> built. Cleaning and building all projects is recommended
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #502691 is a reply to message #502687] Wed, 09 December 2009 12:42 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thank you very much for the help.
It works with a build between the import and the perform.
I don't think the need is related to circularity problems, though.
I don't have any in my simple test case.

But the actions performed on my contrib plugin clearly didn't include the org.john.bmtest, since it's imported from a p2 site.
I guess the need is because it's materialized in the workspace as a binary project and it still needs the build action?

But you've helped me past a big hurdle, so I'll continue the quest.

Thanks.


/John
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #503280 is a reply to message #502691] Fri, 11 December 2009 16:38 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!

John wrote on Wed, 09 December 2009 07:42


It works with a build between the import and the perform.
I don't think the need is related to circularity problems, though.
I don't have any in my simple test case.

But the actions performed on my contrib plugin clearly didn't include the org.john.bmtest, since it's imported from a p2 site.
I guess the need is because it's materialized in the workspace as a binary project and it still needs the build action?




I would really like to understand this, so could you please let me know if I understood it correctly?

From the actions Buckminster produces:

Quote:
Actions to perform (in order)
org.john.bmtest.contrib:osgi.bundle$1.0.0#eclipse.build
org.john.bmtest.contrib:osgi.bundle$1.0.0#target.fragments
org.john.bmtest.contrib:osgi.bundle$1.0.0#bundle.jar
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#manife st
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#featur e.jar
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .manifest
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .feature.jar
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.f eatures
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.p lugins
org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#create .zip


it's clear that it doesn't decide to build org.john.bmtest. Is this because it's a binary dependency downloaded from an update site?
But adding the build command is necessary, since it doesn't work otherwise?

If that's the case, shouldn't build of binary downloads also be included in the actions to perform?

Thanks.


/John
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #503294 is a reply to message #503280] Fri, 11 December 2009 17:02 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 2009-12-11 17:38, John wrote:
> Hi Thomas!
>
> John wrote on Wed, 09 December 2009 07:42
>> It works with a build between the import and the perform.
>> I don't think the need is related to circularity problems, though.
>> I don't have any in my simple test case.
>>
>> But the actions performed on my contrib plugin clearly didn't include
>> the org.john.bmtest, since it's imported from a p2 site.
>> I guess the need is because it's materialized in the workspace as a
>> binary project and it still needs the build action?
>
>
> I would really like to understand this, so could you please let me know
> if I understood it correctly?
>
> From the actions Buckminster produces:
>
> Quote:
>> Actions to perform (in order)
>> org.john.bmtest.contrib:osgi.bundle$1.0.0#eclipse.build
>> org.john.bmtest.contrib:osgi.bundle$1.0.0#target.fragments
>> org.john.bmtest.contrib:osgi.bundle$1.0.0#bundle.jar
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#manife st
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#featur e.jar
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .manifest
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#source .feature.jar
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.f eatures
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#copy.p lugins
>> org.john.bmtest.contrib.feature:eclipse.feature$1.0.0#create .zip
>
>
> it's clear that it doesn't decide to build org.john.bmtest. Is this
> because it's a binary dependency downloaded from an update site?
> But adding the build command is necessary, since it doesn't work otherwise?
>
> If that's the case, shouldn't build of binary downloads also be included
> in the actions to perform?
>
If a build is necessary, yes. But is it, really? I'm not sure that that's the problem. The way I recollect import of
binaries is that they actually show up as just that, binaries, and thus doesn't have to be built.

- thomas
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #503318 is a reply to message #503294] Fri, 11 December 2009 19:56 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for the reply.

Thomas Hallgren wrote on Fri, 11 December 2009 12:02
If a build is necessary, yes. But is it, really? I'm not sure that that's the problem. The way I recollect import of
binaries is that they actually show up as just that, binaries, and thus doesn't have to be built.


Well, if that's the case then why did I get the error message I included earlier?

Quote:
The project cannot be built until its prerequisite org.john.bmtest is built. Cleaning and building all projects is recommended


org.john.bmtest is a binary import and as I described earlier it shows up as a project in the workspace in the same manner as described in the Bucky book.

And why did it help to throw in a build action between the import and the perform?


Brgds. John.
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #517922 is a reply to message #503318] Tue, 02 March 2010 14:35 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!

I still have this problem. If I remove the explicit call of the build action I get an error with a dependency to an imported binary project when I execute the action on my primary feature (e.g. site.p2).

Do you have any idea what I could be doing wrong or should I enter a bug for this?


Thanks.

/John
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #517955 is a reply to message #517922] Tue, 02 March 2010 10:38 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 03/02/2010 03:35 PM, John wrote:
> Hi Thomas!
>
> I still have this problem. If I remove the explicit call of the build
> action I get an error with a dependency to an imported binary project
> when I execute the action on my primary feature (e.g. site.p2).
>
> Do you have any idea what I could be doing wrong or should I enter a bug
> for this?
>
Why do you consider adding a build command a problem? I consider that quite normal. You import things into your
workspace, issue a build to ensure that all eclipse related builders have executed, and then you do a perform.

- thomas
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #518034 is a reply to message #517955] Tue, 02 March 2010 20:12 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Before I started using binary imports of our projects/components, I had all of them as source. By invoking the desired action on the root component, Buckminster would determine a plan, which included building the projects/components and they would be built and everything worked well.

Now that I import some of our projects/components as binaries and follow the same strategy, Buckminster seem to be of the oppinion, that since some of the projects are binary imported projects, they shouldn't be built. But then I get an error because Eclipse doesn't believe they're built (if I understand the error correct).

This indicates to me hat there is something strange going on, so I'm first of all trying to understand this.

Second, by starting with a build action of the workspace, it actually solves the problem when I ask Buckminster to perform the action on my root component. As far as I can tell, Buckminster creates the exact same plan as before, which must mean it doesn't think the binary imported projects needs a build. And since it actually works, the first build action of the workspace must have done something that makes it work.

This indicates to me that the binary imported projects needs a build. So as I see it, Buckminster eiher is incorrect in thinking that the binary imported projects doesn't need a build or there is some problem in the way that the binary imported projects are created in the workspace, since they apparently need to be built.

So I'm left with the impression that there's something odd.


/John
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #518050 is a reply to message #518034] Tue, 02 March 2010 21:00 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 03/02/2010 09:12 PM, John wrote:
> This indicates to me that the binary imported projects needs a build. So
> as I see it, Buckminster eiher is incorrect in thinking that the binary
> imported projects doesn't need a build or there is some problem in the
> way that the binary imported projects are created in the workspace,
> since they apparently need to be built.
>
The reason they need to be built is to satisfy JDT and it's internal Java model. The same thing happens when you import
projects into your IDE although at that point it is triggered by events caused by changes in your workspace. This
auto-build is disabled when running a headless Buckminster build. Hence the need for a manually triggered build at a
controlled point of the whole flow. The binaries are not actually built in the sense that new artifacts are produced.

- thomas
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #518073 is a reply to message #518050] Tue, 02 March 2010 22:29 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for explaining that.

Thomas Hallgren wrote on Tue, 02 March 2010 22:00
The reason they need to be built is to satisfy JDT and it's internal Java model. The same thing happens when you import
projects into your IDE although at that point it is triggered by events caused by changes in your workspace. This
auto-build is disabled when running a headless Buckminster build. Hence the need for a manually triggered build at a
controlled point of the whole flow. The binaries are not actually built in the sense that new artifacts are produced.


Does this mean that Buckminster is unable to tell that this is necessary and hence can't include this in the plan?


/John.
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #518076 is a reply to message #518073] Tue, 02 March 2010 22:50 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2509
Registered: July 2009
Senior Member
On 3/2/10 11:29 PM, John wrote:
> Thomas Hallgren wrote on Tue, 02 March 2010 22:00
>> The reason they need to be built is to satisfy JDT and it's internal
>> Java model. The same thing happens when you import projects into your
>> IDE although at that point it is triggered by events caused by changes
>> in your workspace. This auto-build is disabled when running a headless
>> Buckminster build. Hence the need for a manually triggered build at a
>> controlled point of the whole flow. The binaries are not actually
>> built in the sense that new artifacts are produced.
>
>
> Does this mean that Buckminster is unable to tell that this is necessary
> and hence can't include this in the plan?
>
No, it is by design.

When using the IDE interactively it make sense to always keep things up
to date. When doing the same headlessly, it would be a waste to rebuild
the workspace for every change (there is no one there to appreciate the
result of each incremental build). Hence the need to trigger the build
manually when running headless. As Thomas said, you want the build to
take place when you decide (i.e. "I am now done with importing stuff to
my workspace, go ahead and build").


- henrik
Re: Problems resolving from a p2 site with Buckminster 3.5 [message #518077 is a reply to message #518076] Tue, 02 March 2010 23:03 Go to previous message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Henrik!


Tanks for clarifying that. Now I think I understand what happens.


/John.
Previous Topic:Target Platform and buckminster-headless: update, multiple with same name, rmtarget
Next Topic:Buckminster 3.6 upgraded to latest I-build
Goto Forum:
  


Current Time: Fri Mar 29 09:47:57 GMT 2024

Powered by FUDForum. Page generated in 0.03410 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top