* @params strIoTSlaveObjectHostAdd String slave host address
* @params inStream ObjectInputStream communication
* @params inStream ObjectOutputStream communication
+ * @params strLanguage String language
* @return void
*/
private void instrumentIoTSetDevice(String strFieldIdentifier, String strObjName, String strFieldName, String strIoTSlaveObjectHostAdd,
* @params strIoTSlaveObjectHostAdd String slave host address
* @params inStream ObjectInputStream communication
* @params inStream ObjectOutputStream communication
+ * @params strLanguage String language
* @return void
*/
private void instrumentIoTSetZBDevice(Map.Entry<String,Object> map, String strObjName, String strFieldName, String strIoTSlaveObjectHostAdd,
* @params strFieldName String field name
* @params inStream ObjectInputStream communication
* @params inStream ObjectOutputStream communication
+ * @params strLanguage String language
* @return void
*/
private void instrumentIoTSetAddress(String strFieldIdentifier, String strFieldName,
/**
* A private method to instrument an object on a specific machine and setting up policies
*
- * @params strFieldObjectID String field object ID
+ * @params strFieldObjectID String field object ID
+ * @params strLanguage String language
* @return void
*/
- private void instrumentObject(String strFieldObjectID) throws IOException {
+ private void instrumentObject(String strFieldObjectID, String strLanguage) throws IOException {
// Extract the interface name for RMI
// e.g. ProximitySensorInterface, TempSensorInterface, etc.
routerConfig.configureHostMainPolicies(strIoTSlaveObjectHostAdd, strIoTSlaveControllerHostAdd,
strIoTSlaveObjectHostAdd, STR_TCP_PROTOCOL);
// Instrument the IoTSet declarations inside the class file
- instrumentObjectIoTSet(strFieldObjectID);
+ instrumentObjectIoTSet(strFieldObjectID, strLanguage);
}
// Send routing policy to router for controller object
// ROUTING POLICY: RMI communication - RMI registry and stub ports
* <p>
* Mostly the IoTSet fields would contain IoTDeviceAddress objects
*
- * @params strFieldObjectID String field object ID
+ * @params strFieldObjectID String field object ID
+ * @params strLanguage String language
* @return void
*/
- private void instrumentObjectIoTSet(String strFieldObjectID) throws IOException {
+ private void instrumentObjectIoTSet(String strFieldObjectID, String strLanguage) throws IOException {
// If this is a new object ... then create one
// Instrument the class source code and look for IoTSet for device addresses
// e.g. @config private IoTSet<IoTDeviceAddress> lb_addresses;
HashMap<String,Object> hmObjectFieldObjects = null;
- if(STR_LANGUAGE.equals(STR_JAVA)) {
+ if(strLanguage.equals(STR_JAVA)) {
String strObjectClassNamePath = STR_IOT_CODE_PATH + strObjClassName + "/" + strObjClassName + STR_CLS_FILE_EXT;
FileInputStream fis = new FileInputStream(strObjectClassNamePath);
ClassReader cr = new ClassReader(fis);
*
* @params Map.Entry<String,Object> Entry of map IoTSet instrumentation
* @params strFieldName String field name
+ * @params strLanguage String language
* @return void
*/
- private void instrumentIoTSet(Map.Entry<String,Object> map, String strFieldName)
+ private void instrumentIoTSet(Map.Entry<String,Object> map, String strFieldName, String strLanguage)
throws IOException, ClassNotFoundException, InterruptedException {
// Get information from the set
String strObjID = setInstrumenter.fieldObjectID(iRow);
strObjClassName = setInstrumenter.fieldEntryType(strObjID);
// Call the method to create an object
- instrumentObject(strObjID);
+ instrumentObject(strObjID, strLanguage);
int iNumOfPorts = Integer.parseInt(STR_NUM_CALLBACK_PORTS);
objInitHand.addObjectIntoField(strFieldName, strIoTSlaveObjectHostAdd, strObjName,
strObjClassName, strObjClassInterfaceName, strObjStubClsIntfaceName, commHan.getRMIRegPort(strObjName),
*
* @params Map.Entry<String,Object> Entry of map IoTRelation instrumentation
* @params strFieldName String field name
+ * @params strLanguage String language
* @return void
*/
- private void instrumentIoTRelation(Map.Entry<String,Object> map, String strFieldName)
+ private void instrumentIoTRelation(Map.Entry<String,Object> map, String strFieldName, String strLanguage)
throws IOException, ClassNotFoundException, InterruptedException {
// Get information from the set
String strObjID = relationInstrumenter.firstFieldObjectID(iRow);
strObjClassName = relationInstrumenter.firstEntryFieldType(strObjID);
// Call the method to create an object
- instrumentObject(strObjID);
+ instrumentObject(strObjID, strLanguage);
// Get the first object controller host address
String strFirstIoTSlaveObjectHostAdd = strIoTSlaveObjectHostAdd;
int iNumOfPorts = Integer.parseInt(STR_NUM_CALLBACK_PORTS);
strObjID = relationInstrumenter.secondFieldObjectID(iRow);
strObjClassName = relationInstrumenter.secondEntryFieldType(strObjID);
// Call the method to create an object
- instrumentObject(strObjID);
+ instrumentObject(strObjID, strLanguage);
// Get the second object controller host address
String strSecondIoTSlaveObjectHostAdd = strIoTSlaveObjectHostAdd;
objInitHand.addSecondObjectIntoField(strFieldName, strIoTSlaveObjectHostAdd, strObjName,
instrumentIoTSetAddress(strFieldName, strFieldName, inStream, outStream, STR_LANGUAGE_CONTROLLER);
} else {
// Any other cases
- instrumentIoTSet(map, strFieldName);
+ instrumentIoTSet(map, strFieldName, STR_LANGUAGE_CONTROLLER);
}
} else if (strClassName.equals(STR_REL_INSTRUMENTER_CLS)) {
- instrumentIoTRelation(map, strFieldName);
+ instrumentIoTRelation(map, strFieldName, STR_LANGUAGE_CONTROLLER);
}
}
// PROFILING