code: private void startApplication(File currentFile, String type) {
          if (_tc.isEventEnabled()) {
              Tr.event(_tc, "Starting dropin application '" + currentFile.getName() + "'");
          }
          String filePath = getAppLocation(currentFile);
  
          try {
              Configuration config = _configs.get(filePath);
  
              // This is a new application we don't know about so we need to create it.
              if (config == null) {
                  Hashtable<String, Object> appConfigSettings = new Hashtable<String, Object>();
  
                  appConfigSettings.put("location", filePath);
                  if (type != null) {
                      appConfigSettings.put("type", type);
                  }
  
                  //for application monitor to know if an application is installed by dropin monitor we need to add a unique variable
                  appConfigSettings.put(AppManagerConstants.AUTO_INSTALL_PROP, true);
  
                  //get a handle on the configuration object
                  config = configAdmin.createFactoryConfiguration(AppManagerConstants.APPLICATIONS_PID);
                  config.update(appConfigSettings);
                  _configs.put(filePath, config);
  
              }
          } catch (Exception e) {
              getAppMessageHelper(type, filePath).error("MONITOR_APP_START_FAIL", filePath);
          }
  
      }
docs: Takes a file and an optional file type, and updates the file. If no type is given it will use the
  extension of the file given.
  
  @param ca the configuration admin service.
  @param currentFile the file of the application to install. Can be a directory
  @param type the type of the application.