Obtaining a List of Features with the License Manager
Declare Variables/Constants
String CONTACT_SERVER = "localhost";
String ScopeFeatureInfoPart1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> "+
"<sentinelScope>"+
"<feature index=\"";
String ScopeFeatureInfoPart2 = "\"><name></name>"+
"<version></version>"+
"</feature>"+
"</sentinelScope>";
int iRetCode = LicensingConstants.SNTL_SUCCESS;
int iFeatureIndex = 0;
Attribute attrAppContext = null;
ApplicationContext appContext = null;
API Calls
To obtain features list, execute the APIs in the specified sequential order only:
>attrAppContext = new Attribute();
>attrAppContext.set(LicensingConstants.SNTL_ATTR_APPCONTEXT_CONTACT_SERVER, CONTACT_SERVER);
NOTE If instead the LSFORCEHOST or LSHOST environment variables are set, then the above-mentioned steps are not required.
>appContext = new ApplicationContext(attrAppContext);
>Now call appContext.getInfo inside a while loop (incrementing the feature index, iFeatureIndex at each iteration, its initial value being 0), till the return code is SNTL_NO_MORE_FEATURES, as shown in the code snippet below:
try
{
Attribute attrAppContext = new Attribute();
attrAppContext.set(LicensingConstants.SNTL_ATTR_APPCONTEXT_CONTACT_SERVER, CONTACT_SERVER);
ApplicationContext appContext = new ApplicationContext(attrAppContext);
while(iRetCode != LicensingConstants.SNTL_NO_MORE_FEATURES) {
StringBuffer buff = new StringBuffer(ScopeFeatureInfoPart1);
buff.append(iFeatureIndex++);
buff.append(ScopeFeatureInfoPart2);
String ScopeFeatureInfo = buff.toString();
String featureInfo = appContext.getInfo(ScopeFeatureInfo,
LicensingConstants.SNTL_QUERY_FEATURE_INFO_VERSION("1.0"));
/* Parse the XML output contained in featureInfo */
}/*end of while loop*/
attrAppContext.dispose();
appContext.dispose();
}
catch(java.io.UnsupportedEncodingException e)
{
System.out.println(e.getMessage());
}
catch(LicensingException e)
{
if (e.getStatusCode() != (int) LicensingConstants.SNTL_NO_MORE_FEATURES)
{
System.out.println("Got an exception : " + e);
System.out.println("Status Message : \n" + e.getMessage());
}
else
{
System.out.println("Reached end of enumeration...no more features");
}
}
finally{
LicensingAPI.cleanup();
}
}
On success during each iteration of the while loop, the featureInfo
string contains an XML-based output having the detailed information.