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 11:45  |
Eclipse User |
|
|
|
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 #502645 is a reply to message #502636] |
Wed, 09 December 2009 04:36   |
Eclipse User |
|
|
|
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 #503294 is a reply to message #503280] |
Fri, 11 December 2009 12:02   |
Eclipse User |
|
|
|
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 #518034 is a reply to message #517955] |
Tue, 02 March 2010 15:12   |
Eclipse User |
|
|
|
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
|
|
| | | | |
Goto Forum:
Current Time: Fri May 16 23:59:29 EDT 2025
Powered by FUDForum. Page generated in 0.06293 seconds
|