Hi All,
Here, I would be discussing the tentatively proposed pom element structure
in carbon-feature-plugin to
support dynamic creation of carbon.product file at build time.
As mentioned in the original post, carbon.product file will be used by
carbon-feature-plugin to achieve two build-time goals, namely
"publish-product" and "generate-runtime".
[1] Proposed pom element structure for Goal "publish-product"
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
Old :
This will be kept until next major release for supporting backward
compatibility.
<productConfigurationFile>
${basedir}/carbon.product
</productConfigurationFile>
New :
<buildTimeProductFileConfig>
<pdeVersion>3.5</pdeVersion>
<ProductConfig>
<name>Carbon Product</name>
<uid>carbon.product.id</uid>
<id>carbon.product</id>
<application>carbon.application</application>
<version>${carbon.kernel.version}</version>
<useFeatures>true</useFeatures>
<includeLaunchers>true</includeLaunchers>
<configIni>
<use>default</use>
</configIni>
<launcherArgs></launcherArgs>
<launcher>
<name>eclipse</name>
</launcher>
<plugins></plugins>
<productFeatures>
<feature>
<id>org.wso2.carbon.runtime</id>
<version>${carbon.kernel.version}</version>
</feature>
</productFeatures>
<pluginConfig>
<plugin>
<id>org.eclipse.core.runtime</id>
<autoStart>true</autoStart>
<startLevel>4</startLevel>
</plugin>
<plugin>
<id>org.eclipse.equinox.common</id>
<autoStart>true</autoStart>
<startLevel>2</startLevel>
</plugin> . . .
</pluginConfig>
<propertyConfig>
<property>
<name>org.eclipse.update.reconcile</name>
<value>false</value>
</property>
<property>
<name>org.eclipse.equinox.simpleconfigurator.useReference</name>
<value>true</value>
</property> . . .
</propertyConfig>
</ProductConfig>
<productFilePath>
${basedir}/target
</productFilePath>
</buildTimeProductFileConfig>
[2] Proposed pom element structure for Goal "generate-runtime"
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
Old :
This will be kept until next major release for supporting backward
compatibility.
<productConfigurationFile>
${basedir}/carbon.product
</productConfigurationFile>
New :
<productFilePath>
${basedir}/target
</productFilePath>
As discussed for the new approach, dynamically created carbon.product file
path will be the target directory of distribution folder.
Product version value will be captured using the existing pom property,
${carbon.kernel.version}.
WDYT ? Much appreciate your feedback.
Thank you,
Dilan.
*Dilan U. Ariyaratne*
Senior Software Engineer
WSO2 Inc. <http://wso2.com/>
Mobile: +94766405580 <%2B94766405580>
lean . enterprise . middleware
On Fri, Jan 27, 2017 at 9:47 PM, Afkham Azeez <[email protected]> wrote:
> Yeah that approach sounds good
>
> On Jan 27, 2017 4:30 PM, "Dilan Udara Ariyaratne" <[email protected]> wrote:
>
>>
>>
>> *Dilan U. Ariyaratne*
>> Senior Software Engineer
>> WSO2 Inc. <http://wso2.com/>
>> Mobile: +94766405580 <%2B94766405580>
>> lean . enterprise . middleware
>>
>>
>> On Thu, Jan 26, 2017 at 10:06 AM, Kishanthan Thangarajah <
>> [email protected]> wrote:
>>
>>>
>>>
>>> On Mon, Jan 23, 2017 at 11:49 AM, Dilan Udara Ariyaratne <
>>> [email protected]> wrote:
>>>
>>>> Hi Azeez,
>>>>
>>>> Even with the pom based approach (as noted by Kishanthan), we do not
>>>> have the luxury of totally getting rid of this file, carbon.product
>>>>
>>>
>>> I believe this is only needed at product build time, so we do not need
>>> to keep a file in the repo but only create the file during build time and
>>> then delete it (or may be use the target directory so that it will be
>>> anyway removed).
>>>
>> +1 to create the file at target directory during build time, I just
>> tested the implementation and it works fine. So, in going forward, we can
>> deprecate the static carbon.product file that exists in distribution folder
>> of the repo.
>>
>>>
>>> since both underlying, but external tycho and equinox launcher plug-ins
>>>> used by our carbon-feature-plugin require this file as an input.
>>>>
>>>> So IMO, the only improvement that we can introduce here is supporting
>>>> templated-dynamic-creation of the file at carbon-feature-plugin level
>>>> using the standard carbon kernel version values available in the
>>>> distribution pom.
>>>>
>>>> Thanks,
>>>> Dilan.
>>>>
>>>> *Dilan U. Ariyaratne*
>>>> Senior Software Engineer
>>>> WSO2 Inc. <http://wso2.com/>
>>>> Mobile: +94766405580 <%2B94766405580>
>>>> lean . enterprise . middleware
>>>>
>>>>
>>>> On Mon, Jan 23, 2017 at 7:33 AM, Kishanthan Thangarajah <
>>>> [email protected]> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Fri, Jan 20, 2017 at 5:57 PM, Afkham Azeez <[email protected]> wrote:
>>>>>
>>>>>> I would suggest totally getting rid of it.
>>>>>>
>>>>>
>>>>> To maintain backward compatibility of the plugin, we need to have the
>>>>> file based supported. But from next major release of the plugin, we can
>>>>> remove the usage of this file and use the pom based approach only.
>>>>>
>>>>> Thanks,
>>>>>
>>>>>>
>>>>>> On Fri, Jan 20, 2017 at 5:24 PM, KasunG Gajasinghe <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> +1. carbon.product file hasn't really been used by the products.
>>>>>>> So, +1 to make it optional.
>>>>>>>
>>>>>>> On Fri, Jan 20, 2017 at 3:06 PM, Dilan Udara Ariyaratne <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Folks,
>>>>>>>>
>>>>>>>> In the process of building C5, we currently require carbon.product
>>>>>>>> for the following goals.
>>>>>>>> [1] publish-product
>>>>>>>> [2] generate-runtime
>>>>>>>>
>>>>>>>> This file maintains current version of the carbon kernel to be
>>>>>>>> utilized by "carbon-feature-plugin" in the build process.
>>>>>>>> Keeping this value in carbon.product prevents the kernel from been
>>>>>>>> auto-released as it requires manual intervention to bump
>>>>>>>> version values as necessary during the release process.
>>>>>>>>
>>>>>>>> In order to solve this issue, we are currently in the process of
>>>>>>>> improving Carbon-Feature-Plugin to dynamically create this file during
>>>>>>>> build time using
>>>>>>>> a template where the necessary version value information is read
>>>>>>>> from corresponding distribution pom file.
>>>>>>>>
>>>>>>>> In order to support backward compatibility, we will still maintain
>>>>>>>> the original approach of keeping a carbon.product file somewhere
>>>>>>>> appropriate
>>>>>>>> in the distribution folder and read it accordingly when
>>>>>>>> <productConfigurationFile> tag is present in the pom file.
>>>>>>>>
>>>>>>>> In the meantime, as the way to go forward, we will introduce the
>>>>>>>> following.
>>>>>>>>
>>>>>>>> Carbon-Feature-Plugin will be updated to read version and other
>>>>>>>> optional values that were originally persisted in the file, from the
>>>>>>>> pom
>>>>>>>> itself.
>>>>>>>> After reading these values, plugin will dynamically create the
>>>>>>>> carbon.product which will then be taken into reference by underlying
>>>>>>>> eclipse.tycho plugin as in the usual way of execution.
>>>>>>>>
>>>>>>>> WDYT ?
>>>>>>>>
>>>>>>>> Thank You.
>>>>>>>>
>>>>>>>> *Dilan U. Ariyaratne*
>>>>>>>> Senior Software Engineer
>>>>>>>> WSO2 Inc. <http://wso2.com/>
>>>>>>>> Mobile: +94766405580 <%2B94766405580>
>>>>>>>> lean . enterprise . middleware
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Architecture mailing list
>>>>>>>> [email protected]
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> *Kasun Gajasinghe*Associate Technical Lead, WSO2 Inc.
>>>>>>> email: kasung AT spamfree wso2.com
>>>>>>> linked-in: http://lk.linkedin.com/in/gajasinghe
>>>>>>> blog: http://kasunbg.org
>>>>>>> phone: +1 650-745-4499 <+1%20650-745-4499>, 77 678 0813
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> [email protected]
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Afkham Azeez*
>>>>>> Senior Director, Platform Architecture; WSO2, Inc.; http://wso2.com
>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>> * <http://www.apache.org/>*
>>>>>> *email: **[email protected]* <[email protected]>
>>>>>> * cell: +94 77 3320919 <+94%2077%20332%200919>blog: *
>>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>>> *twitter: **http://twitter.com/afkham_azeez*
>>>>>> <http://twitter.com/afkham_azeez>
>>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>>
>>>>>> *Lean . Enterprise . Middleware*
>>>>>>
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> [email protected]
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Kishanthan Thangarajah*
>>>>> Technical Lead,
>>>>> Platform Technologies Team,
>>>>> WSO2, Inc.
>>>>> lean.enterprise.middleware
>>>>>
>>>>> Mobile - +94773426635 <+94%2077%20342%206635>
>>>>> Blog - *http://kishanthan.wordpress.com
>>>>> <http://kishanthan.wordpress.com>*
>>>>> Twitter - *http://twitter.com/kishanthan
>>>>> <http://twitter.com/kishanthan>*
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> *Kishanthan Thangarajah*
>>> Technical Lead,
>>> Platform Technologies Team,
>>> WSO2, Inc.
>>> lean.enterprise.middleware
>>>
>>> Mobile - +94773426635 <+94%2077%20342%206635>
>>> Blog - *http://kishanthan.wordpress.com
>>> <http://kishanthan.wordpress.com>*
>>> Twitter - *http://twitter.com/kishanthan
>>> <http://twitter.com/kishanthan>*
>>>
>>
>>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture