Skip to main content



      Home
Home » Archived » Buckminster » Materializing target platform
Materializing target platform [message #387650] Tue, 07 July 2009 12:04 Go to next message
Eclipse UserFriend
Hi,

now that I have managed to successfully materialize all the plug-ins for
my RCP application into my workspace, I'd love to go further.

First item of order is to materialize the target platform.

The only mentions in the newsgroups and out there on the web only
mention this as a passing item, so I must be missing something very obvious.

How do I start so that I will be able to materialize the target platform
(in the eclipse/osgi sense).

--
Roland
Re: Materializing target platform [message #387651 is a reply to message #387650] Tue, 07 July 2009 14:59 Go to previous messageGo to next message
Eclipse UserFriend
Hi Roland,

Materializing the target platform is not that much different from
materializing source code. You would start by defining a CQUERY for the
component (typically an eclipse.feature) that you want to have in your
target platform. In your RMAP, you can use the eclipse.import reader to
resolve that from a regular (p2) update site:

<provider readerType="eclipse.import"
componentTypes="eclipse.feature,osgi.bundle"
mutable="false"
source="false">
<uri
format=" http://www.somewhere.org/path/to/update/site?importType=bina ry"/>
</provider>

Finally, you must use the "p2" materializer and specify an installLocation
in your MSPEC. Repeat the process for all features you want to have in your
target platform. That's it. :-)

Some final notes:

* You should use the following advisory node in your CQUERY to prevent
Buckminster from resolving components that are already in your workspace or
in your current target platform:

<cq:advisorNode namePattern=".*" useTargetPlatform="false"
useWorkspace="false" />

* Instead of resolving multiple features sequentially, you can also define
your own target platform component with a CSPEC and resolve everything in
one go. Mine looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0"
name="base.target.platform" componentType="buckminster" version="1.5.0">
<cs:dependencies>
<cs:dependency name="org.eclipse.emf.emfqtv.all.sdk"
componentType="eclipse.feature" versionDesignator="[1.3.0,2.0.0)"/>
<cs:dependency name="org.eclipse.emf.sdk"
componentType="eclipse.feature" versionDesignator="[2.5.0,3.0.0)"/>
<cs:dependency name="org.eclipse.gef.sdk"
componentType="eclipse.feature" versionDesignator="[3.5.0,4.0.0)"/>
<cs:dependency name="org.eclipse.gmf.sdk"
componentType="eclipse.feature" versionDesignator="[2.2.0,3.0.0)"/>
<cs:dependency name="org.eclipse.ocl.all.sdk"
componentType="eclipse.feature" versionDesignator="[1.3.0,2.0.0)"/>
<cs:dependency name="org.eclipse.sdk"
componentType="eclipse.feature" versionDesignator="[3.5.0,4.0.0)"/>
<cs:dependency name="org.eclipse.uml2.sdk"
componentType="eclipse.feature" versionDesignator="[3.0.0,4.0.0)"/>
<cs:dependency name="org.eclipse.xpand.sdk"
componentType="eclipse.feature" versionDesignator="[0.7.0,1.0.0)"/>
<cs:dependency name="org.eclipse.xsd.sdk"
componentType="eclipse.feature" versionDesignator="[2.5.0,3.0.0)"/>
</cs:dependencies>
</cs:cspec>

However, the p2 materializer cannot deal with components of type
Buckminster, so you'll have to add this line to your MSPEC:

<md:mspecNode namePattern=".*" componentType="buckminster"
exclude="true"/>

HTH,
Achim

Roland Tepp wrote:

> Hi,
>
> now that I have managed to successfully materialize all the plug-ins for
> my RCP application into my workspace, I'd love to go further.
>
> First item of order is to materialize the target platform.
>
> The only mentions in the newsgroups and out there on the web only
> mention this as a passing item, so I must be missing something very
> obvious.
>
> How do I start so that I will be able to materialize the target platform
> (in the eclipse/osgi sense).
>
Re: Materializing target platform [message #387652 is a reply to message #387650] Tue, 07 July 2009 15:05 Go to previous messageGo to next message
Eclipse UserFriend
Hi Roland,

I'm not sure if you're talking about a target platform in the sense of
the platform you build your plugins against, or materializing an eclipse
product.
For the first case, Thomas gave me some great insight here:
http://dev.eclipse.org/mhonarc/lists/buckminster-dev/msg0085 5.html

For the later case you might want to have a look at the RCP MailApp
tutorial in the buckminster SVN.
If you're interesting in adding that kind of build to a CI system, I'm
about the write a tutorial for that for the Hudson CI server. I just
need to add some stuff to the Buckminster PlugIn for Hudson first so it
will take a few days, but I'll post in the newsgroup once I'm done.

Best regards,
Johannes

Roland Tepp schrieb:
> Hi,
>
> now that I have managed to successfully materialize all the plug-ins for
> my RCP application into my workspace, I'd love to go further.
>
> First item of order is to materialize the target platform.
>
> The only mentions in the newsgroups and out there on the web only
> mention this as a passing item, so I must be missing something very
> obvious.
>
> How do I start so that I will be able to materialize the target platform
> (in the eclipse/osgi sense).
>
Re: Materializing target platform [message #387739 is a reply to message #387652] Mon, 13 July 2009 04:35 Go to previous messageGo to next message
Eclipse UserFriend
Hey, thanks for all the great answers.

I was initially interested in materializing the target platform to the
workspace to build and develop against, but the second option of
building the RCP product is also on the plate and I'll be waiting for
Your installment on that :)



7.07.2009 22:05, Johannes Utzig kirjutas:
> Hi Roland,
>
> I'm not sure if you're talking about a target platform in the sense of
> the platform you build your plugins against, or materializing an eclipse
> product.
> For the first case, Thomas gave me some great insight here:
> http://dev.eclipse.org/mhonarc/lists/buckminster-dev/msg0085 5.html
>
> For the later case you might want to have a look at the RCP MailApp
> tutorial in the buckminster SVN.
> If you're interesting in adding that kind of build to a CI system, I'm
> about the write a tutorial for that for the Hudson CI server. I just
> need to add some stuff to the Buckminster PlugIn for Hudson first so it
> will take a few days, but I'll post in the newsgroup once I'm done.
>
> Best regards,
> Johannes
>
> Roland Tepp schrieb:
>> Hi,
>>
>> now that I have managed to successfully materialize all the plug-ins
>> for my RCP application into my workspace, I'd love to go further.
>>
>> First item of order is to materialize the target platform.
>>
>> The only mentions in the newsgroups and out there on the web only
>> mention this as a passing item, so I must be missing something very
>> obvious.
>>
>> How do I start so that I will be able to materialize the target
>> platform (in the eclipse/osgi sense).
>>
Re: Materializing target platform [message #467869 is a reply to message #387652] Mon, 03 August 2009 05:10 Go to previous messageGo to next message
Eclipse UserFriend
Hi Johannes,

I have one last question about Target platform materrialization.

I want to materialize the TP into the running eclipse workspace.

I managed to materialize the workspace via File->Import... but there are
few questions I want to ask.

The MSPEC has a property reference:
installLocation="${targetPlatformPath}"

Is there any way I could use eclipse properties (e.g. ${workspace_loc})
as defaults for that property (or if I can use these directly) so that
they would be automagically expanded to the real paths?

Also - I get to materialize the TP, but I'd like to set this TP in the
running workspace as well. Do I have to create the build.xml to do that
or can I somehow force the materialization to set up the target platform
as a separate (or same) step from the Eclipse UI?

(come to think of that - I kind of like the build.xml idea - I could do
the TP materialization and workspace materialization in one sweeping
step...)

7.07.2009 22:05, Johannes Utzig kirjutas:
> Hi Roland,
>
> I'm not sure if you're talking about a target platform in the sense of
> the platform you build your plugins against, or materializing an eclipse
> product.
> For the first case, Thomas gave me some great insight here:
> http://dev.eclipse.org/mhonarc/lists/buckminster-dev/msg0085 5.html
>
> For the later case you might want to have a look at the RCP MailApp
> tutorial in the buckminster SVN.
> If you're interesting in adding that kind of build to a CI system, I'm
> about the write a tutorial for that for the Hudson CI server. I just
> need to add some stuff to the Buckminster PlugIn for Hudson first so it
> will take a few days, but I'll post in the newsgroup once I'm done.
>
> Best regards,
> Johannes
>
> Roland Tepp schrieb:
>> Hi,
>>
>> now that I have managed to successfully materialize all the plug-ins
>> for my RCP application into my workspace, I'd love to go further.
>>
>> First item of order is to materialize the target platform.
>>
>> The only mentions in the newsgroups and out there on the web only
>> mention this as a passing item, so I must be missing something very
>> obvious.
>>
>> How do I start so that I will be able to materialize the target
>> platform (in the eclipse/osgi sense).
>>
Re: Materializing target platform [message #467897 is a reply to message #467869] Mon, 03 August 2009 06:28 Go to previous messageGo to next message
Eclipse UserFriend
Hi Roland,

Roland Tepp wrote:
> Hi Johannes,
>
> I have one last question about Target platform materrialization.
>
> I want to materialize the TP into the running eclipse workspace.
>
I'm confused. You either have things in the TP or in the workspace, i.e. you can import (materialize) binaries into your
workspace or into a TP. Also, you use the term "running" which makes me think about the running Eclipse instance (which
incidentally is the default TP). The term "running workspace" is confusing.

You have:
1. The current workspace
2. The current target platform
3. The running instance (can be used as a target platform)

Can you please clarify what it is you want to materialize into?

> I managed to materialize the workspace via File->Import... but there are
> few questions I want to ask.
>
> The MSPEC has a property reference:
> installLocation="${targetPlatformPath}"
>
> Is there any way I could use eclipse properties (e.g. ${workspace_loc})
> as defaults for that property (or if I can use these directly) so that
> they would be automagically expanded to the real paths?
>
You can use ${workspace.root} to reference the root folder of the workspace. That's the folder where the workspace
meta-data resides but not necessarily the folder for the physical project directories.

Regards,
Thomas Hallgren
Re: Materializing target platform [message #467908 is a reply to message #467897] Mon, 03 August 2009 07:14 Go to previous message
Eclipse UserFriend
3.08.2009 13:29, Thomas Hallgren kirjutas:
>> I have one last question about Target platform materrialization.
>>
>> I want to materialize the TP into the running eclipse workspace.
>>
> I'm confused. You either have things in the TP or in the workspace, i.e.
> you can import (materialize) binaries into your workspace or into a TP.
> Also, you use the term "running" which makes me think about the running
> Eclipse instance (which incidentally is the default TP). The term
> "running workspace" is confusing.
>
> You have:
> 1. The current workspace
> 2. The current target platform
> 3. The running instance (can be used as a target platform)
>
> Can you please clarify what it is you want to materialize into?
>
Okay, I guess I used a bit confusing terminology here...

Basically I want to use Buckminster for easier setup of the eclipse
workspace (that would be first step at least).

As we are building our product against an older Eclipse (3.2 to be
precise) the first thing I need to materialize is the target platform.

I want to be able from the "ru8nning insance" of eclipse to materialize
the target platform into the local filesystem and set the "current
workspace" to use this materialized TP as "current target platform".

Did that make any sense?

>> Is there any way I could use eclipse properties (e.g.
>> ${workspace_loc}) as defaults for that property (or if I can use these
>> directly) so that they would be automagically expanded to the real paths?
>>
> You can use ${workspace.root} to reference the root folder of the
> workspace. That's the folder where the workspace meta-data resides but
> not necessarily the folder for the physical project directories.
>

Thanks - that sounds like it :)
Previous Topic:Unique qualifiers for features
Next Topic:How to ensure the exact same target platform is materialized
Goto Forum:
  


Current Time: Sat Jul 19 05:29:40 EDT 2025

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

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

Back to the top