Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Building a p2 site for patched features/plugins
Building a p2 site for patched features/plugins [message #898901] Sat, 28 July 2012 22:40 Go to next message
Nicolas Rouquette is currently offline Nicolas Rouquette
Messages: 132
Registered: July 2009
Senior Member
I'm having problems building a p2 update site with patched features/plugins.

I need to build a p2 update site for Indigo with EMF 2.7 patched per:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=372608

I have cloned the 2.7 branch of EMF:
http://git.eclipse.org/gitroot/emf/org.eclipse.emf.git/

Question 1:

Is there an easy way to have buckminster materialize EMF 2.7 (from GIT) and apply the changes corresponding to a particular bugzilla fix (e.g., 372608 in this case) ?

For now, I applied the patch manually.

Now I have a modified branch of EMF 2.7.

I followed the instructions from the BuckyBook for building a p2 site; i.e., I created an org.eclipse.emf.p2 feature where I included the org.eclipse.emf.ecore feature.

When I build this, buckminster creates new versions of:
org.eclipse.emf.ecore
org.eclipse.emf.ecore.change
org.eclipse.emf.ecore.xmi

but it fetches from my eclipse installation the *source* plugins:
org.eclipse.emf.ecore.source
org.eclipse.emf.ecore.change.source
org.eclipse.emf.ecore.xmi.source

So in the end, the org.eclipse.emf.ecore.source will not correspond to the org.eclipse.emf.ecore as built, i.e., 2.7 + 372608

Question 2:

How should I build a p2 site such that buckminster will generate the source plugins/features from the workspace instead of materializing them from the eclipse installation?

- Nicolas.
Re: Building a p2 site for patched features/plugins [message #898947 is a reply to message #898901] Sun, 29 July 2012 03:29 Go to previous messageGo to next message
Ed Willink is currently offline Ed Willink
Messages: 4007
Registered: July 2009
Senior Member
Hi Nicolas

To build a modified branch, you build the modified branch, and every
single plugin from your GIT is then from the branch.

You might find the configuration for
https://hudson.eclipse.org/hudson/job/buckminster-mmt-qvto-branch-tests/
helpful since it allows a particular branch to be specified.

Regards

Ed Willink


On 29/07/2012 03:40, Nicolas Rouquette wrote:
> I'm having problems building a p2 update site with patched
> features/plugins.
>
> I need to build a p2 update site for Indigo with EMF 2.7 patched per:
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=372608
>
> I have cloned the 2.7 branch of EMF:
> http://git.eclipse.org/gitroot/emf/org.eclipse.emf.git/
>
> Question 1:
>
> Is there an easy way to have buckminster materialize EMF 2.7 (from
> GIT) and apply the changes corresponding to a particular bugzilla fix
> (e.g., 372608 in this case) ?
>
> For now, I applied the patch manually.
>
> Now I have a modified branch of EMF 2.7.
>
> I followed the instructions from the BuckyBook for building a p2 site;
> i.e., I created an org.eclipse.emf.p2 feature where I included the
> org.eclipse.emf.ecore feature.
>
> When I build this, buckminster creates new versions of:
> org.eclipse.emf.ecore
> org.eclipse.emf.ecore.change
> org.eclipse.emf.ecore.xmi
>
> but it fetches from my eclipse installation the *source* plugins:
> org.eclipse.emf.ecore.source
> org.eclipse.emf.ecore.change.source
> org.eclipse.emf.ecore.xmi.source
>
> So in the end, the org.eclipse.emf.ecore.source will not correspond to
> the org.eclipse.emf.ecore as built, i.e., 2.7 + 372608
>
> Question 2:
>
> How should I build a p2 site such that buckminster will generate the
> source plugins/features from the workspace instead of materializing
> them from the eclipse installation?
>
> - Nicolas.
Re: Building a p2 site for patched features/plugins [message #898949 is a reply to message #898947] Sun, 29 July 2012 04:27 Go to previous messageGo to next message
Nicolas Rouquette is currently offline Nicolas Rouquette
Messages: 132
Registered: July 2009
Senior Member
Thanks Ed but for those of us who do not have logins to Eclipse' Hudson, we can't tell how this is done.

The problem is really basic.

Suppose I've built the org.demo.demofeature and org.demo.demoplugin according to the instructions in ch. 13 of the BuckyBook.
We get a p2 site that looks like this:

features/org.demo.demofeature_v1
features/org.demo.demofeature.source_v1
plugins/org.demo.demoplugin_v1
plugins/org.demo.demoplugin.source_v1

Suppose we install the above in our eclipse environment and subsequently make changes to the source code.
Now, we want to build again but we don't get:


features/org.demo.demofeature_v2
features/org.demo.demofeature.source_v2
plugins/org.demo.demoplugin_v2
plugins/org.demo.demoplugin.source_v2

Instead, I get:

features/org.demo.demofeature_v2
features/org.demo.demofeature.source_v1
plugins/org.demo.demoplugin_v2
plugins/org.demo.demoplugin.source_v1

That is, buckminster has resolved *.source to the target platform instead of generating them from the source feature/plugin.

Since there is no *.cspec/*.mspec/*.rmap in this example, it is not clear at all how we can force buckminster to ignore the target platform for resolving *.source.

- Nicolas.
Re: Building a p2 site for patched features/plugins [message #898957 is a reply to message #898949] Sun, 29 July 2012 06:39 Go to previous messageGo to next message
Ed Willink is currently offline Ed Willink
Messages: 4007
Registered: July 2009
Senior Member
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi Nicolas<br>
<br>
It all happens via the BRANCH_NAME parameter.  Below are some
screen shots of what you could see in Configure<br>
<br>
<img src="http://www.eclipse.org/forums/index.php?t=getfile&amp;id=10933" alt=""><br>
<br>
<br>
<img src="http://www.eclipse.org/forums/index.php?t=getfile&amp;id=10934" alt=""><br>
<br>
<img src="http://www.eclipse.org/forums/index.php?t=getfile&amp;id=10935" alt=""><br>
<br>
<br>
<img src="http://www.eclipse.org/forums/index.php?t=getfile&amp;id=10936" alt=""><br>
<br>
On 29/07/2012 09:27, Nicolas Rouquette wrote:<br>
</div>
<blockquote cite="mid:jv2s5u$d56$1@xxxxxxxxe.org" type="cite">Thanks
Ed but for those of us who do not have logins to Eclipse' Hudson,
we can't tell how this is done.
<br>
<br>
The problem is really basic.
<br>
<br>
Suppose I've built the org.demo.demofeature and
org.demo.demoplugin according to the instructions in ch. 13 of the
BuckyBook.
<br>
We get a p2 site that looks like this:
<br>
<br>
features/org.demo.demofeature_v1
<br>
features/org.demo.demofeature.source_v1
<br>
plugins/org.demo.demoplugin_v1
<br>
plugins/org.demo.demoplugin.source_v1
<br>
<br>
Suppose we install the above in our eclipse environment and 
subsequently make changes to the source code.
<br>
Now, we want to build again but we don't get:
<br>
<br>
<br>
features/org.demo.demofeature_v2
<br>
features/org.demo.demofeature.source_v2
<br>
plugins/org.demo.demoplugin_v2
<br>
plugins/org.demo.demoplugin.source_v2
<br>
<br>
Instead, I get:
<br>
<br>
features/org.demo.demofeature_v2
<br>
features/org.demo.demofeature.source_v1
<br>
plugins/org.demo.demoplugin_v2
<br>
plugins/org.demo.demoplugin.source_v1
<br>
<br>
That is, buckminster has resolved *.source to the target platform
instead of generating them from the source feature/plugin.
<br>
<br>
Since there is no *.cspec/*.mspec/*.rmap in this example, it is
not clear at all how we can force buckminster to ignore the target
platform for resolving *.source.
<br>
<br>
- Nicolas.
<br>
</blockquote>
<br>
</body>
</html>
  • Attachment: dffdfifj.png
    (Size: 29.84KB, Downloaded 71 times)
  • Attachment: cjfjgadi.png
    (Size: 26.47KB, Downloaded 71 times)
  • Attachment: gbeaifde.png
    (Size: 21.84KB, Downloaded 76 times)
  • Attachment: hicddaea.png
    (Size: 56.26KB, Downloaded 82 times)
Re: Building a p2 site for patched features/plugins [message #899141 is a reply to message #898957] Mon, 30 July 2012 12:18 Go to previous messageGo to next message
Nicolas Rouquette is currently offline Nicolas Rouquette
Messages: 132
Registered: July 2009
Senior Member
The problem is really about the relative priority of generating source plugins vs. resolving source plugins (e.g., from the target platform or other p2 sites).

Here is an example demonstrating the problem:

1) Follow the instructions in the BuckyBook: Chapter 13 Building a P2 site.

For the buckminster.properties, instead of:

Quote:

# Where all the output should go
buckminster.output.root=${user.home}/demosite
# Where the temp files should go
buckminster.temp.root=${user.home}/tmp/demosite.tmp
# How .qualifier in versions should be replaced
qualifier.replacement.*=generator:lastRevision


use the following:

Quote:

# Where all the output should go
buckminster.output.root=${user.home}/demosite
# Where the temp files should go
buckminster.temp.root=${user.home}/tmp/demosite.tmp
# How .qualifier in versions should be replaced
qualifier.replacement.*=generator:buildTimestamp
generator.buildTimestamp.format='v'yyyyMMdd'_'HHmm

cbi.include.source=true


The first build produces the following buckminster log:

Quote:

[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#manifest]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#manifest]
[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.manifest]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.manifest]
[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]


This produces a site.p2 with the following:

Quote:

artifacts.jar
content.jar
features/org.demo.demofeature.source_1.0.0.v20120730_1458.jar
features/org.demo.demofeature_1.0.0.v20120730_1458.jar
plugins/org.demo.demoplugin.source_1.0.0.v20120730_1458.jar
plugins/org.demo.demoplugin_1.0.0.v20120730_1458.jar


Next, I add the generated site.p2 to Eclipse and install org.demo.demofeature_1.0.0.v20120730_1458

Next, I made a simple change to the org.demo.demoplugin source code.

Quote:

class ViewContentProvider implements IStructuredContentProvider {
public void inputChanged(Viewer v, Object oldInput, Object newInput) {
}
public void dispose() {
}
public Object[] getElements(Object parent) {
return new String[] { "Un", "Deux", "Trois", "Quatre" };
}
}


Next, I invoked the buckminster site.p2 action on org.demo.demosite again.
This time, I got the following log:

Quote:


[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
[start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
[end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
[start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
[end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
[start org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
[end org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]


Now, the site has the following:

Quote:

artifacts.jar
content.jar
features/org.demo.demofeature.source_1.0.0.v20120730_1458.jar
features/org.demo.demofeature.source_1.0.0.v20120730_1507.jar
features/org.demo.demofeature_1.0.0.v20120730_1458.jar
features/org.demo.demofeature_1.0.0.v20120730_1507.jar
plugins/org.demo.demoplugin.source_1.0.0.v20120730_1458.jar
plugins/org.demo.demoplugin_1.0.0.v20120730_1458.jar


Note that features/org.demo.demofeature_1.0.0.v20120730_1507.jar has the following:

Quote:


<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.demo.demofeature"
label="Demofeature"
version="1.0.0.v20120730_1507">

<description url="http://www.example.com/description">
[Enter Feature Description here.]
</description>

<copyright url="http://www.example.com/copyright">
[Enter Copyright Description here.]
</copyright>

<license url="http://www.example.com/license">
[Enter License Description here.]
</license>

<plugin
id="org.demo.demoplugin"
download-size="0"
install-size="0"
version="1.0.0.v20120730_1458"
unpack="false"/>

</feature>


So clearly, the org.demo.demoplugin has not been built.

- Nicolas.
Re: Building a p2 site for patched features/plugins [message #899763 is a reply to message #899141] Thu, 02 August 2012 05:09 Go to previous messageGo to next message
Matthias Kappeller is currently offline Matthias Kappeller
Messages: 54
Registered: July 2009
Member
Hello Nicolas,

just to be sure. You don't refer to a specific bundle version of
'org.demo.demoplugin' in you feature?

Cheers,
Matt

On 2012-07-30 16:18:24 +0000, Nicolas Rouquette said:

> The problem is really about the relative priority of generating source
> plugins vs. resolving source plugins (e.g., from the target platform or
> other p2 sites).
>
> Here is an example demonstrating the problem:
>
> 1) Follow the instructions in the BuckyBook: Chapter 13 Building a P2 site.
>
> For the buckminster.properties, instead of:
>
> Quote:
>> # Where all the output should go
>> buckminster.output.root=${user.home}/demosite
>> # Where the temp files should go
>> buckminster.temp.root=${user.home}/tmp/demosite.tmp
>> # How .qualifier in versions should be replaced
>> qualifier.replacement.*=generator:lastRevision
>
>
> use the following:
>
> Quote:
>> # Where all the output should go
>> buckminster.output.root=${user.home}/demosite
>> # Where the temp files should go
>> buckminster.temp.root=${user.home}/tmp/demosite.tmp
>> # How .qualifier in versions should be replaced
>> qualifier.replacement.*=generator:buildTimestamp
>> generator.buildTimestamp.format='v'yyyyMMdd'_'HHmm
>>
>> cbi.include.source=true
>
>
> The first build produces the following buckminster log:
>
> Quote:
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#manifest]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#manifest]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.manifest]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.manifest]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>
>
> This produces a site.p2 with the following:
>
> Quote:
>> artifacts.jar
>> content.jar
>> features/org.demo.demofeature.source_1.0.0.v20120730_1458.jar
>> features/org.demo.demofeature_1.0.0.v20120730_1458.jar
>> plugins/org.demo.demoplugin.source_1.0.0.v20120730_1458.jar
>> plugins/org.demo.demoplugin_1.0.0.v20120730_1458.jar
>
>
> Next, I add the generated site.p2 to Eclipse and install
> org.demo.demofeature_1.0.0.v20120730_1458
>
> Next, I made a simple change to the org.demo.demoplugin source code.
>
> Quote:
>> class ViewContentProvider implements IStructuredContentProvider {
>> public void inputChanged(Viewer v, Object oldInput, Object newInput) {
>> }
>> public void dispose() {
>> }
>> public Object[] getElements(Object parent) {
>> return new String[] { "Un", "Deux", "Trois", "Quatre" };
>> }
>> }
>
>
> Next, I invoked the buckminster site.p2 action on org.demo.demosite again.
> This time, I got the following log:
>
> Quote:
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>
>
> Now, the site has the following:
>
> Quote:
>> artifacts.jar
>> content.jar
>> features/org.demo.demofeature.source_1.0.0.v20120730_1458.jar
>> features/org.demo.demofeature.source_1.0.0.v20120730_1507.jar
>> features/org.demo.demofeature_1.0.0.v20120730_1458.jar
>> features/org.demo.demofeature_1.0.0.v20120730_1507.jar
>> plugins/org.demo.demoplugin.source_1.0.0.v20120730_1458.jar
>> plugins/org.demo.demoplugin_1.0.0.v20120730_1458.jar
>
>
> Note that features/org.demo.demofeature_1.0.0.v20120730_1507.jar has
> the following:
>
> Quote:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <feature
>> id="org.demo.demofeature"
>> label="Demofeature"
>> version="1.0.0.v20120730_1507">
>>
>> <description url="http://www.example.com/description">
>> [Enter Feature Description here.]
>> </description>
>>
>> <copyright url="http://www.example.com/copyright">
>> [Enter Copyright Description here.]
>> </copyright>
>>
>> <license url="http://www.example.com/license">
>> [Enter License Description here.]
>> </license>
>>
>> <plugin
>> id="org.demo.demoplugin"
>> download-size="0"
>> install-size="0"
>> version="1.0.0.v20120730_1458"
>> unpack="false"/>
>>
>> </feature>
>
>
> So clearly, the org.demo.demoplugin has not been built.
>
> - Nicolas.
Re: Building a p2 site for patched features/plugins [message #899764 is a reply to message #899141] Thu, 02 August 2012 05:10 Go to previous message
Matthias Kappeller is currently offline Matthias Kappeller
Messages: 54
Registered: July 2009
Member
Hello Nicolas,

just to be sure. You don't refer to a specific bundle version of
'org.demo.demoplugin' in you feature?

Cheers,
Matt

On 2012-07-30 16:18:24 +0000, Nicolas Rouquette said:

> The problem is really about the relative priority of generating source
> plugins vs. resolving source plugins (e.g., from the target platform or
> other p2 sites).
>
> Here is an example demonstrating the problem:
>
> 1) Follow the instructions in the BuckyBook: Chapter 13 Building a P2 site.
>
> For the buckminster.properties, instead of:
>
> Quote:
>> # Where all the output should go
>> buckminster.output.root=${user.home}/demosite
>> # Where the temp files should go
>> buckminster.temp.root=${user.home}/tmp/demosite.tmp
>> # How .qualifier in versions should be replaced
>> qualifier.replacement.*=generator:lastRevision
>
>
> use the following:
>
> Quote:
>> # Where all the output should go
>> buckminster.output.root=${user.home}/demosite
>> # Where the temp files should go
>> buckminster.temp.root=${user.home}/tmp/demosite.tmp
>> # How .qualifier in versions should be replaced
>> qualifier.replacement.*=generator:buildTimestamp
>> generator.buildTimestamp.format='v'yyyyMMdd'_'HHmm
>>
>> cbi.include.source=true
>
>
> The first build produces the following buckminster log:
>
> Quote:
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#manifest]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#manifest]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.manifest]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.manifest]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>
>
> This produces a site.p2 with the following:
>
> Quote:
>> artifacts.jar
>> content.jar
>> features/org.demo.demofeature.source_1.0.0.v20120730_1458.jar
>> features/org.demo.demofeature_1.0.0.v20120730_1458.jar
>> plugins/org.demo.demoplugin.source_1.0.0.v20120730_1458.jar
>> plugins/org.demo.demoplugin_1.0.0.v20120730_1458.jar
>
>
> Next, I add the generated site.p2 to Eclipse and install
> org.demo.demofeature_1.0.0.v20120730_1458
>
> Next, I made a simple change to the org.demo.demoplugin source code.
>
> Quote:
>> class ViewContentProvider implements IStructuredContentProvider {
>> public void inputChanged(Viewer v, Object oldInput, Object newInput) {
>> }
>> public void dispose() {
>> }
>> public Object[] getElements(Object parent) {
>> return new String[] { "Un", "Deux", "Trois", "Quatre" };
>> }
>> }
>
>
> Next, I invoked the buckminster site.p2 action on org.demo.demosite again.
> This time, I got the following log:
>
> Quote:
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#eclipse.build]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#feature.jar]
>> [start org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [end org.demo.demoplugin:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.manifest]
>> [start org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [end org.demo.demofeature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#copy.plugins]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#manifest]
>> [start org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>> [end org.demo.demosite:eclipse.feature$1.0.0.qualifier#site.p2]
>
>
> Now, the site has the following:
>
> Quote:
>> artifacts.jar
>> content.jar
>> features/org.demo.demofeature.source_1.0.0.v20120730_1458.jar
>> features/org.demo.demofeature.source_1.0.0.v20120730_1507.jar
>> features/org.demo.demofeature_1.0.0.v20120730_1458.jar
>> features/org.demo.demofeature_1.0.0.v20120730_1507.jar
>> plugins/org.demo.demoplugin.source_1.0.0.v20120730_1458.jar
>> plugins/org.demo.demoplugin_1.0.0.v20120730_1458.jar
>
>
> Note that features/org.demo.demofeature_1.0.0.v20120730_1507.jar has
> the following:
>
> Quote:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <feature
>> id="org.demo.demofeature"
>> label="Demofeature"
>> version="1.0.0.v20120730_1507">
>>
>> <description url="http://www.example.com/description">
>> [Enter Feature Description here.]
>> </description>
>>
>> <copyright url="http://www.example.com/copyright">
>> [Enter Copyright Description here.]
>> </copyright>
>>
>> <license url="http://www.example.com/license">
>> [Enter License Description here.]
>> </license>
>>
>> <plugin
>> id="org.demo.demoplugin"
>> download-size="0"
>> install-size="0"
>> version="1.0.0.v20120730_1458"
>> unpack="false"/>
>>
>> </feature>
>
>
> So clearly, the org.demo.demoplugin has not been built.
>
> - Nicolas.
Previous Topic:Updating Jenkins workspace
Next Topic:Target Platform in Buckminster
Goto Forum:
  


Current Time: Mon Jul 28 04:22:07 EDT 2014

Powered by FUDForum. Page generated in 0.03668 seconds