How to add custom properties to config page?
Accepted answer
here is one of mine exactly
<code>
<extension point="com.ibm.team.repository.service.serviceProvider">
<serviceProvider
componentId="com.xx.remoterepository"
implementationClass="com.xx.repository.service.RepositoryFileService">
<provides>
<providedService interface="com.xx.repository.service.IRepositoryFileService"/>
</provides>
<prerequisites>
<requiredService
interface="com.ibm.team.repository.common.internal.IRepositoryRemoteService">
</requiredService>
<configurationProperties >
<configurationProperty
accessPolicy="OPEN"
default="128"
name="sfdc.VolumeSize"
description="Max size (in MegaBytes) of files to copy into the RTC repository"
displayableName="Maximum file size to copy"
required="true"
type="INTEGER"
updatePolicy="NO_RESTART_REQUIRED">
</configurationProperty>
<configurationProperty
accessPolicy="OPEN"
default="idrive"
name="sfdc.VolumePrefix"
description="the network share name of the Shared volume (FTP server)"
displayableName="FTP Volume Share name"
required="true"
type="STRING"
updatePolicy="NO_RESTART_REQUIRED">
</configurationProperty>
</configurationProperties>
</prerequisites>
</serviceProvider>
</extension>
</code>
<code>
<extension point="com.ibm.team.repository.service.serviceProvider">
<serviceProvider
componentId="com.xx.remoterepository"
implementationClass="com.xx.repository.service.RepositoryFileService">
<provides>
<providedService interface="com.xx.repository.service.IRepositoryFileService"/>
</provides>
<prerequisites>
<requiredService
interface="com.ibm.team.repository.common.internal.IRepositoryRemoteService">
</requiredService>
<configurationProperties >
<configurationProperty
accessPolicy="OPEN"
default="128"
name="sfdc.VolumeSize"
description="Max size (in MegaBytes) of files to copy into the RTC repository"
displayableName="Maximum file size to copy"
required="true"
type="INTEGER"
updatePolicy="NO_RESTART_REQUIRED">
</configurationProperty>
<configurationProperty
accessPolicy="OPEN"
default="idrive"
name="sfdc.VolumePrefix"
description="the network share name of the Shared volume (FTP server)"
displayableName="FTP Volume Share name"
required="true"
type="STRING"
updatePolicy="NO_RESTART_REQUIRED">
</configurationProperty>
</configurationProperties>
</prerequisites>
</serviceProvider>
</extension>
</code>
3 other answers
The document at https://jazz.net/wiki/bin/view/Main/ConfigurationStory shows how to declare your configuration properties:
All configuration properties must be declared via extension point using the configurationProperties element. This element is nested within a prerequisites element. The prerequisites element is included in both serviceProvider elements as well as extensionService elements.
and how to consume your configuration properties:
As mentioned previously, configuration properties are owned by a particular service. When the activate method is called on a service, it can safely assume that all of its required configuration properties are accessible via protected methods on AbstractService. These methods are called get****ConfigProperty(propertyName). The stars are replaced with one of the four valid types(Integer, Long, Boolean, String)
We add the code below to our plugin.xml:
<extension
point="com.ibm.team.repository.service.serviceProvider">
<serviceProvider
componentId="componentId"
implementationClass="implementationClass">
<provides>
</provides>
<prerequisites>
<configurationProperties>
<configurationProperty
accessPolicy="OPEN"
default="localhost"
description="HOSTNAME"
displayableName="HOSTNAME"
name="HOSTNAME"
required="true"
type="STRING"
updatePolicy="NO_RESTART_REQUIRED">
</configurationProperty>
</configurationProperties>
</prerequisites>
</serviceProvider>
</extension>
but then there isn't any new custom properties at /jazz/admin#action=com.ibm.team.repository.admin.configureAdvanced... Any advice?
Thanks in advance.
Comments
Sam, your interface is:
package com.xx.repository.service;
public interface IRepositoryFileService {
// ...
}
and your implementation class is:
package com.xx.repository.service;
import com.ibm.team.repository.service.AbstractService;
public class RepositoryFileService extends AbstractService implements IRepositoryFileService {
public RepositoryFileService() {
super();
}
@Override
public void activate() {
// ...
}
}
If so, even the Java code seems like mine...