Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Problem with Target Platform Definition(using ${git_work_tree} variable)
Problem with Target Platform Definition [message #1002374] Fri, 18 January 2013 13:30 Go to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 384
Registered: December 2010
Location: Germany
Senior Member
Hello Bucky Team

I am currently trying to setup an rcp build using buckminster. During the process I came over the following issue with the target definition.

We use a target definition which only uses plugins (jar files) which are placed in a general eclipse project. This project is placed in a git repository. Therefor the target definition itself looks like this, so it is identical for every developer regardless of the location of his git repository.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="GO§A Target" sequenceNumber="280">
	<locations>
		<location path="${git_work_tree}/lib/Target/test" type="Directory"/>
		<location path="${git_work_tree}/lib/Target/eclipse" type="Directory"/>
		<location path="${git_work_tree}/lib/Target/extensions" type="Directory"/>
	</locations>
	... skipped ...
</target>


This works in PDE but does not get resolved correctly by buckminster. If I use full path names instead of the ${git_work_tree} property everything works fine.

Is there a way I can let buckminster know where to look for ${git_work_tree}?

Version: Juno Service Release 1
Build id: 20121004-1855
Buckminster Core 1.5.0.v20121128-1508

Greetings
Christoph
Re: Problem with Target Platform Definition [message #1002394 is a reply to message #1002374] Fri, 18 January 2013 13:55 Go to previous messageGo to next message
Lorenzo Bettini is currently offline Lorenzo BettiniFriend
Messages: 1390
Registered: July 2009
Senior Member
Hi

you probably should pass a value for git_work_tree to buckminster (are
you talking about buckminster headless or in the IDE?) for instance in
the cquery on in a properties file.

in general where is ${git_work_tree} defined?

cheers
Lorenzo

On 01/18/2013 02:30 PM, Christoph Keimel wrote:
> Hello Bucky Team
>
> I am currently trying to setup an rcp build using buckminster. During
> the process I came over the following issue with the target definition.
>
> We use a target definition which only uses plugins (jar files) which are
> placed in a general eclipse project. This project is placed in a git
> repository. Therefor the target definition itself looks like this, so it
> is identical for every developer regardless of the location of his git
> repository.
>
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <?pde version="3.8"?>
> <target name="GO§A Target" sequenceNumber="280">
> <locations>
> <location path="${git_work_tree}/lib/Target/test"
> type="Directory"/>
> <location path="${git_work_tree}/lib/Target/eclipse"
> type="Directory"/>
> <location path="${git_work_tree}/lib/Target/extensions"
> type="Directory"/>
> </locations>
> ... skipped ...
> </target>
>
> This works in PDE but does not get resolved correctly by buckminster. If
> I use full path names instead of the ${git_work_tree} property
> everything works fine.
>
> Is there a way I can let buckminster know where to look for
> ${git_work_tree}?
>
> Version: Juno Service Release 1
> Build id: 20121004-1855
> Buckminster Core 1.5.0.v20121128-1508
>
> Greetings
> Christoph


--
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
HOME: http://www.lorenzobettini.it
Re: Problem with Target Platform Definition [message #1002411 is a reply to message #1002394] Fri, 18 January 2013 14:25 Go to previous messageGo to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 384
Registered: December 2010
Location: Germany
Senior Member
Hi Lorenzo

Thanks for your input! I am working inside the IDE. I am not quite sure where ${git_work_tree} is defined. Maybe it gets defined as part of the EGit feature ... ?

Thanks for your blog on building an rcp application! I followed the tutorial succesfully and am now trying to use the concept for our application. Speaking in the context of your blog. Where would you put the definition in relation to the org.eclipse.buckminster.examples.rcp.mail.product.site project?

I tried placing the line "git_work_tree=D:/GitRepos/gosa" in buckminster-win-32.properties, but this doesn't work.

A global solution would be better anyway, so that the target platform is available for all buckminster components (i.e. the Component Explorer).

To achieve this I tried to start the IDE itself with "-Dgit_work_tree=D:/GitRepos/gosa", but that doesn't work either Sad.

Greetings
Christoph
Re: Problem with Target Platform Definition [message #1003108 is a reply to message #1002411] Sun, 20 January 2013 08:58 Go to previous messageGo to next message
Lorenzo Bettini is currently offline Lorenzo BettiniFriend
Messages: 1390
Registered: July 2009
Senior Member
Hi Christoph

I'm not sure I understand what you are doing: you have a standard PDE
..target definition file right? and what are your steps to make
Buckminster resolve that target in the IDE?

As far as I know, Buckminster headless has commands to use a .target
file, but inside the IDE you have to set the target platform based on a
..target file with standard PDE tools. At least, that's how I understood
(Thomas?)

When does it happen that it "does not get resolved correctly by
buckminster"? During an headless build? Or here we're not talking
about headless build at all?

Placing the line "git_work_tree=D:/GitRepos/gosa" in
buckminster-win-32.properties, for instance, would work during a
headless build if you pass this properties file to buckminster headless
when resolving the CQUERY; but if you are using this properties file
from the IDE for running an action, like site.p2, this will not work,
since those actions assume that target platform resolution has already
been resolved.

Or probably I missed some details :)

P.S. my tutorial does not use .target definition files at all: it
defines the target platform with standard Buckminster components
dependencies.

cheers
Lorenzo


On 01/18/2013 03:25 PM, Christoph Keimel wrote:
> Hi Lorenzo
>
> Thanks for your input! I am working inside the IDE. I am not quite sure
> where ${git_work_tree} is defined. Maybe it gets defined as part of the
> EGit feature ... ?
>
> Thanks for your blog on building an rcp application! I followed the
> tutorial succesfully and am now trying to use the concept for our
> application. Speaking in the context of your blog. Where would you put
> the definition in relation to the
> org.eclipse.buckminster.examples.rcp.mail.product.site project?
> I tried placing the line "git_work_tree=D:/GitRepos/gosa" in
> buckminster-win-32.properties, but this doesn't work.
> A global solution would be better anyway, so that the target platform is
> available for all buckminster components (i.e. the Component Explorer).
>
> To achieve this I tried to start the IDE itself with
> "-Dgit_work_tree=D:/GitRepos/gosa", but that doesn't work either :(.
>
> Greetings
> Christoph


--
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
HOME: http://www.lorenzobettini.it
Re: Problem with Target Platform Definition [message #1003455 is a reply to message #1003108] Mon, 21 January 2013 09:28 Go to previous messageGo to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 384
Registered: December 2010
Location: Germany
Senior Member
> I'm not sure I understand what you are doing: you have a standard PDE
> ..target definition file right? and what are your steps to make
> Buckminster resolve that target in the IDE?

Yes, the target platform is defined in a .target file. Afaik no steps are
needed for Buckminster to know about the target platform. Looking at the view
"Component Explorer", you can see the "Target Platform Components".

> As far as I know, Buckminster headless has commands to use a .target
> file, but inside the IDE you have to set the target platform based on a
> ..target file with standard PDE tools. At least, that's how I understood
> (Thomas?)

Good to know, as I will be working on a headless build in the future. Right
know I am happy to get it working within the IDE.

> When does it happen that it "does not get resolved correctly by
> buckminster"? During an headless build? Or here we're not talking
> about headless build at all?

I am talking about a build from the IDE.
The problem depends on how the target is defined in the .target file.

This works:
<target name="GO§A Target for Build" sequenceNumber="294">
	<locations>
		<location path="D:/GitRepos/gosa/lib/Target/eclipse" type="Directory"/>
		<location path="D:/GitRepos/gosa/lib/Target/test" type="Directory"/>
		<location path="D:/GitRepos/gosa/lib/Target/extensions" type="Directory"/>
	</locations>
	... skipped ...
</target>
The bundles are listed in the PDE view "Target Platform State" and in the Buckinster view "Target Platform Components".

This does not work:
<target name="GO§A Target" sequenceNumber="280">
	<locations>
		<location path="${git_work_tree}/lib/Target/test" type="Directory"/>
		<location path="${git_work_tree}/lib/Target/eclipse" type="Directory"/>
		<location path="${git_work_tree}/lib/Target/extensions" type="Directory"/>
	</locations>
	... skipped ...
</target>
The bundles are listed in the PDE view "Target Platform State" but NOT in the Buckinster view "Target Platform Components".

> Placing the line "git_work_tree=D:/GitRepos/gosa" in
> buckminster-win-32.properties, for instance, would work during a
> headless build if you pass this properties file to buckminster headless
> when resolving the CQUERY; but if you are using this properties file
> from the IDE for running an action, like site.p2, this will not work,
> since those actions assume that target platform resolution has already
> been resolved.

Thanks for the explanation. That explains why my efforts have been fruitless Smile
Is there a way to customize the target platform resolution?

Smile,
Christoph
Re: Problem with Target Platform Definition [message #1003946 is a reply to message #1003455] Tue, 22 January 2013 09:51 Go to previous messageGo to next message
Lorenzo Bettini is currently offline Lorenzo BettiniFriend
Messages: 1390
Registered: July 2009
Senior Member
Hi Christoph

comments inline

On 01/21/2013 10:28 AM, Christoph Keimel wrote:
>> I'm not sure I understand what you are doing: you have a standard PDE
>> ..target definition file right? and what are your steps to make
>> Buckminster resolve that target in the IDE?
>
> Yes, the target platform is defined in a .target file. Afaik no steps are
> needed for Buckminster to know about the target platform. Looking at the
> view "Component Explorer", you can see the "Target Platform Components".

Yes, you resolve and set the target platform with PDE.

>
>> When does it happen that it "does not get resolved correctly by
>> buckminster"? During an headless build? Or here we're not talking
>> about headless build at all?
>
> I am talking about a build from the IDE. The problem depends on how the
> target is defined in the .target file.
>
> This works:
> <target name="GO§A Target for Build" sequenceNumber="294">
> <locations>
> <location path="D:/GitRepos/gosa/lib/Target/eclipse"
> type="Directory"/>
> <location path="D:/GitRepos/gosa/lib/Target/test"
> type="Directory"/>
> <location path="D:/GitRepos/gosa/lib/Target/extensions"
> type="Directory"/>
> </locations>
> ... skipped ...
> </target>The bundles are listed in the PDE view "Target Platform State"
> and in the Buckinster view "Target Platform Components".
>
> This does not work:
> <target name="GO§A Target" sequenceNumber="280">
> <locations>
> <location path="${git_work_tree}/lib/Target/test"
> type="Directory"/>
> <location path="${git_work_tree}/lib/Target/eclipse"
> type="Directory"/>
> <location path="${git_work_tree}/lib/Target/extensions"
> type="Directory"/>
> </locations>
> ... skipped ...
> </target>The bundles are listed in the PDE view "Target Platform State"
> but NOT in the Buckinster view "Target Platform Components".
>

but all the projects compile fine anyway, don't they?
you're able, for instance, to run site.p2 action in the IDE anyway,
aren't you?

As for the Buckminster View I don't know why it does not show that...
let's hear from Buckminster developers :)

>> Placing the line "git_work_tree=D:/GitRepos/gosa" in
>> buckminster-win-32.properties, for instance, would work during a
>> headless build if you pass this properties file to buckminster headless
>> when resolving the CQUERY; but if you are using this properties file
>> from the IDE for running an action, like site.p2, this will not work,
>> since those actions assume that target platform resolution has already
>> been resolved.
>
> Thanks for the explanation. That explains why my efforts have been
> fruitless :)
> Is there a way to customize the target platform resolution?

you mean in the IDE again, right?

If the projects compile fine, and it is only a matter of the Buckminster
View not showing that it might be only a problem in that view... but
again, Buckminster developers should confirm this :)

cheers
Lorenzo


--
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
HOME: http://www.lorenzobettini.it
Re: Problem with Target Platform Definition [message #1003950 is a reply to message #1003946] Tue, 22 January 2013 10:04 Go to previous messageGo to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 384
Registered: December 2010
Location: Germany
Senior Member
Good morning Lorenzo,

> but all the projects compile fine anyway, don't they?
> you're able, for instance, to run site.p2 action in the IDE anyway,
> aren't you?

Unfortunately not, and that exactly is the problem i'm facing. If I use ${git_work_tree} in the target platform definition buckminster actions like site.p2 will not find the bundles in the target platform.

Greetings,
Christoph
Re: Problem with Target Platform Definition [message #1003974 is a reply to message #1003946] Tue, 22 January 2013 10:49 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3229
Registered: July 2009
Senior Member
On 2013-01-22 10:51, Lorenzo Bettini wrote:
> On 01/21/2013 10:28 AM, Christoph Keimel wrote:
>> I am talking about a build from the IDE. The problem depends on how the
>> target is defined in the .target file.
>>
>> This works:
>> <target name="GO§A Target for Build" sequenceNumber="294">
>> <locations>
>> <location path="D:/GitRepos/gosa/lib/Target/eclipse"
>> type="Directory"/>
>> <location path="D:/GitRepos/gosa/lib/Target/test"
>> type="Directory"/>
>> <location path="D:/GitRepos/gosa/lib/Target/extensions"
>> type="Directory"/>
>> </locations>
>> ... skipped ...
>> </target>The bundles are listed in the PDE view "Target Platform State"
>> and in the Buckinster view "Target Platform Components".
>>
>> This does not work:
>> <target name="GO§A Target" sequenceNumber="280">
>> <locations>
>> <location path="${git_work_tree}/lib/Target/test"
>> type="Directory"/>
>> <location path="${git_work_tree}/lib/Target/eclipse"
>> type="Directory"/>
>> <location path="${git_work_tree}/lib/Target/extensions"
>> type="Directory"/>
>> </locations>
>> ... skipped ...
>> </target>The bundles are listed in the PDE view "Target Platform State"
>> but NOT in the Buckinster view "Target Platform Components".
>>
>
> but all the projects compile fine anyway, don't they?
> you're able, for instance, to run site.p2 action in the IDE anyway,
> aren't you?
>
> As for the Buckminster View I don't know why it does not show that...
> let's hear from Buckminster developers :)
>

The ${git_work_tree} must be associated with a workspace resource
somehow which makes this construct fall apart. A workspace can only have
*one* active target platform but it may well have multiple projects and
multiple git repositories.

The ${git_work_tree} will have different settings depending on what
workspace resource you have selected (clicked on) or be unset in case
you don't select anything. Perhaps that's the issue here rather than a
difference between PDE and Buckminster?

In any case, I think the construct is wrong. Project specific settings
should not be used in parameter substitutions in a target platform.

HTH,

- thomas
Re: Problem with Target Platform Definition [message #1003981 is a reply to message #1003974] Tue, 22 January 2013 11:08 Go to previous message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 384
Registered: December 2010
Location: Germany
Senior Member
Hi Thomas

thanks for the explanation. You are correct, the ${git_work_tree} depends on the project (workspace resource) where the target definition file (.target) is located. I'll work on a different approach ...

Greetings
Christoph
Previous Topic:materializing using an MSPEC
Next Topic:Component is not known to Buckminster
Goto Forum:
  


Current Time: Mon Nov 24 21:53:17 GMT 2014

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

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