Exemplo n.º 1
0
 /** @return the managementBeanFactory */
 ManagementBeanFactory getManagementBeanFactory() throws DMException {
   if (this.managementBeanFactory == null) {
     List<SetupProperties> setOfProperties = this.getSetOfProperties();
     Properties properties = SetupPropertiesHelper.getProperties(setOfProperties);
     return ManagementBeanFactory.newInstance(properties);
   }
   return managementBeanFactory;
 }
  /**
   * @param message
   * @param httpRequest
   * @throws Sync4jException
   */
  private void process4IMEI(SyncML message, HttpServletRequest httpRequest) throws Sync4jException {
    // Get parameter
    String bsp = httpRequest.getParameter(BootstrapService.BOOTSTRAP_PARAMETRERS_NAME);
    URLParameters params = URLParameters.decode(bsp);
    if (params == null) {
      return;
    }
    String bootstrapDeviceExtID = params.getDeviceExtID();
    // String bootstrapDeviceID =
    // httpRequest.getParameter(BootstrapService.BOOTSTRAP_DEVICE_ID_PARAMETER_NAME);
    if (StringUtils.isEmpty(bootstrapDeviceExtID)) {
      return;
    }
    // Get Real IMEI
    String deviceExternalID = message.getSyncHdr().getSource().getLocURI();

    if (bootstrapDeviceExtID.equalsIgnoreCase(deviceExternalID)) {
      return;
    }
    ManagementBeanFactory factory = null;
    try {
      factory = ManagementBeanFactory.newInstance(EngineConfig.getProperties());

      DeviceBean deviceBean = factory.createDeviceBean();
      Device d = deviceBean.getDeviceByExternalID(deviceExternalID);
      if (d != null) {
        // Already exists, give up
        return;
      }

      Device device = deviceBean.getDeviceByExternalID(bootstrapDeviceExtID);
      if (device != null) {
        log.info("Change device IMEI from: " + device.getExternalId() + " to: " + deviceExternalID);
        factory.beginTransaction();
        device.setExternalId(deviceExternalID);
        deviceBean.update(device);
        factory.commit();
      }

    } catch (Exception ex) {
      if (factory != null) {
        factory.rollback();
      }
      log.error(
          "Failure in change device IMEI from: "
              + bootstrapDeviceExtID
              + " to: "
              + deviceExternalID,
          ex);
    } finally {
      if (factory != null) {
        factory.release();
      }
    }
  }