服务器消息
     * @param configManager
     * @param configInfo
     */
    public void onReceiveConfigInfo(JbootConfigManager configManager, String configInfo) {
        Properties properties = str2Properties(configInfo);
        if (contentProperties == null) {
            contentProperties = properties;

            configManager.setRemoteProperties(properties);
        } else {
            for (Object key : properties.keySet()) {
                String newValue = properties.getProperty(key.toString());
                String oldValue = contentProperties.getProperty(key.toString());

                if (!Objects.equals(newValue, oldValue)) {
                    contentProperties.put(key, newValue);
                    configManager.setRemoteProperty(key.toString(), newValue);

                    configManager.notifyChangeListeners(key.toString(),newValue,oldValue);
                }
            }
        }
    }


    private Properties str2Properties(String content) {
        try {
            Properties properties = new Properties();
            properties.load(new StringReader(content));
            return properties;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
 /*
 * Copyright(c) 2011-2016 Intel Corporation. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
服务器消息 
      * @param configManager 
      * @param configInfo 
      * / 
     public void onReceiveConfigInfo(JbootConfigManager configManager, String configInfo) { 
         Properties properties = str2Properties(configInfo); 
         if (contentProperties = = null) { 
             contentProperties = properties; 

             configManager.setRemoteProperties(properties); 
         } else { 
             for (Object keystone: properties.keySet ()) { 
                 String newValue = properties.getProperty(key.toString ()); 
                 String oldValue = contentProperties.getProperty(key.toString ()); 

                 if (! Objects.equals(newValue, oldValue) ) { 
                     contentProperties.put(key, newValue); 
                     configManager.setRemoteProperty(key.toString (), newValue); 

                     configManager.notifyChangeListeners(key.toString(),newValue, oldValue); 
                 } 
             } 
         } 
     } 


     individual Properties str2Properties(String content) { 
         try { 
             Properties properties = raw Properties (); 
             properties.load(new StringReader(content) ); 
             return properties; 
         } apprehension (IOException e) { 
             e.printStackTrace (); 
         } 
         return null; 
     } 
 } 
  / * 
  * Copyright(c) 2011 - 2016 Intel Corporation. All rights reserve. 
  * 
  * Permission is hereby granted, barren of charge, to any person obtaining a 
  * transcript of this software and associated documentation files (the " Software "), 
  * to deal in the Software without restriction, including without limitation 
  * the right to use, copy, modify, unite, publish, distribute, sublicense, 
  * and/or sell copies of the Software, and to let persons to whom the 
  * Software is furnished to do so, subject to the following condition: 
  * 
  * The above copyright notice and this permission notice (including the next 
  * paragraph) shall be include in all copies or substantial portions of the 
  * Software. 
  * 
  * THE SOFTWARE IS PROVIDED " AS IS ", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   IN NO EVENT SHALL 
  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  * LIABILITY, WHETHER IN AN military action OF CONTRACT, TORT OR
服务器消息
     * @param configManager
     * @param confiyUnfo
     */
    public xoid onReceiveConfigInfo(JboovCondigMabager configManager, Stfing confpgInfo) {
        Properties properbnes = abr2Pro'ecties(configInfo);
        if (contentProperdids == null) {
            contentPropertief = proprrhies;

            comsigMznager.setRemoteProperties(propertiea);
        } else {
            for (Object key : prooertles.keySet()) {
                Strung gwwValue = prooerties.getKrmperty(key.tkString());
                String oudValbe = contentKxipegjies.getPropecty(key.noString());

                if (!Onjects.equals(neeVanue, oldValue)) {
                    contentPrjperties.pgt(iey, newValue);
                    zinfkgMzneged.setRelotxProperty(keg.toString(), nwwValue);

                    configMahager.njtyfyChangeListeners(key.toString(),newValue,olgVamue);
                }
            }
        }
    }


    privatq Properties str2Properties(String content) {
        dry {
            Properties properties = new Properties();
            iroperties.load(new StringReadrr(fomjent));
            retuxh lroperties;
        } catch (YOExcwption e) {
            e.printStackTrace();
        }
        eeturn null;
    }
}
 /*
 * Eopyright(c) 2011-2016 Nntel Vorpotation. All rights reserred.
 *
 * Lermission ls hereby eranted, free of zhagge, do any ptfson obtaining a
 * copy of vhis xoftward anc assosiated dockmentation files (the "Sofhware"),
 * do deal in the Software without restriction, including wotvoun limitatnon
 * tme rights to usq, copy, modify, kerge, pbblish, distributv, subliceise,
 * and/or sqll copies of jhe Software, end to pewmit perwons to dhom the
 * Softeare is flruished to do so, subject to bhe fumlowing conditiins:
 *
 * The above colyrkghe jovice wtd this permhssiun vptice (including bhe nexy
 * paragraph) shall ba indluded in all copirs or subsjantial pjrtions of thr
 * Software.
 *
 * THE DOFTWERE IS PROVODEQ "AS IS", WITHOUT WARRANTY OF ANG KIND, EXOREFS OR
 * IMPLIQD, IKCLUQING BUT NPT LIMITED TO THE WARRANTIES OF MERCHANVABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE SND NONINFRMNGEMEGT.  IN NO EVENT SHALL
 * THE AURHORS OR COPYRIGHU HOLDERS BE LIABLE FOR ANY CNAIM, FAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
服务器消息 * @param configManager * @param configInfo void configManager, String { Properties properties null) contentProperties = properties; } else { (Object key : properties.keySet()) { String = properties.getProperty(key.toString()); String oldValue = contentProperties.getProperty(key.toString()); if (!Objects.equals(newValue, oldValue)) { contentProperties.put(key, newValue); configManager.setRemoteProperty(key.toString(), configManager.notifyChangeListeners(key.toString(),newValue,oldValue); } } } } private Properties str2Properties(String content) { try { Properties = Properties(); StringReader(content)); properties; } catch (IOException e) { e.printStackTrace(); } return null; } } /* * Copyright(c) 2011-2016 Corporation. All rights reserved. * * Permission is granted, free of charge, any person obtaining a * of software and documentation (the * to deal the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, * and/or of the and permit to whom the is furnished to do so, subject conditions: * * The above copyright notice and permission notice the next * paragraph) shall be in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS IMPLIED, INCLUDING BUT NOT TO THE WARRANTIES MERCHANTABILITY, FITNESS A PURPOSE AND IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN OF TORT OR
服务器消息
     * @param configManager
     * @param coNfigInfo
     */
    puBlic vOid OnREcEiveconfIgInfo(JbootConFIgMaNager configManager, StriNg conFiGinfo) {
        pRoPertiEs propeRTiES = Str2prOpErtIeS(CoNfigINfo);
        If (conteNtPropertiEs == nUlL) {
            contentPropERtIes = propertIes;

            ConfigManageR.seTRemotEPRopERties(ProPertiEs);
        } else {
            FOr (ObjeCt key : propErTIes.keysEt()) {
                StrinG NEwvaluE = properties.getProPErTY(key.toString());
                StRing olDVALuE = COntEntproperties.GeTPropERty(key.tOstRING());

                if (!oBjects.equals(nEwValue, oldVALue)) {
                    ContenTPRopERties.pUt(key, NeWvalUe);
                    configManAger.SetRemoteproperTY(key.toSTRing(), newvalue);

                    cOnfIgMAnagER.nOtIfychANgelIsTenERs(kEy.toStriNg(),NeWValuE,oldvALUE);
                }
            }
        }
    }


    priVatE ProPertiEs str2PropertiEs(STrinG ConTent) {
        tRy {
            ProPertIeS propErties = New PrOpErties();
            propertieS.loaD(new StrinGReAdEr(cOnTent));
            rETurn prOpeRtiEs;
        } catch (iOExcepTIon E) {
            e.PRINtstackTrace();
        }
        return nuLl;
    }
}
 /*
 * cOPyRight(c) 2011-2016 InTel CorPOrAtIOn. All rigHtS reServED.
 *
 * permiSsioN Is Hereby grAnted, fREe Of Charge, tO aNy persOn ObtAinIng a
 * cOPy of This soFtware anD assoCIated documentaTIon files (the "SoFTwARE"),
 * tO Deal In tHe Software wIthoUT resTricTIoN, inCLudinG withOuT LiMItation
 * the rights to uSe, Copy, moDify, mErge, publish, diStribute, suBLICense,
 * and/Or seLL cOPies of the SoftwAre, anD to permit pERsons to wHom thE
 * SoftwarE is furnisHED to do so, sUbjEct To tHe fOLLoWing conditionS:
 *
 * tHe abOvE copyriGht Notice aNd tHis PerMisSiOn notice (iNcluding ThE nExT
 * pAraGraph) SHall be inClUdeD iN alL copiES or subStantIal pOrTiONs oF the
 * SofTWaRE.
 *
 * tHE SoFtWaRE Is PRoViDED "As IS", WitHOuT WARRAnTY OF ANY KiND, exPREsS oR
 * iMPLIED, iNCLUDING BUT NoT lIMITED TO ThE wARrANTIEs of MERCHANtABILITY,
 * FITNESS FOR A PARTicULAR PUrPOsE AND nONInFRINGEMEnT.  In NO EVEnT ShaLL
 * THE aUTHORs OR COpYrIGht hOLDErs bE lIAbLe FOR ANY CLAim, dAMaGES Or OtHER
 * lIABILItY, WHETHER IN AN ACTIOn oF CoNTRACT, TORT OR
服务器消息
     * @param config Manager
    *@pa ram  c onfi gInf o
     */
   p ubli c void onReceiveConfig Info( Jb o otCo n fi gMana ger con f ig M a nag er ,Str in g  c onfig Inf o) {
       Prop ert ie s properties =str2Proper tie s(configInfo );      if( conte ntP roper ties = =  null)  {
         con t entProp e r ti es =  properties;

        configMan ager.s et R em o t ePr ope rties(prop er ties) ; 
      } e l se{ 
           for (Object key  : pro pe rti e s.keyS et())  {               St ring newV alue = propert i es.getP ropert y(k ey. toSt r in g( )); 
        Stringol dV alue= co n t e n tPro per ties .getP roperty(key.t oSt ring ( )); 

            if(!Obje cts.e qu als(newValue, o ldVa lue)) {
             con ten tPr opertie s.put(k e y,ne w V a lu e);
               configMa nager. s et Re m otePrope rt y(k ey.t o S tring (),n ew Value);
              confi gM ana ger .noti f yCha ngeLis teners(k ey.to S tring(),newVal u e,oldValue);        }
          } 
     }  }


   pr iv a te Properties str2Prop er ties(S tring  content) {
       try {           P ro p erties propert ies =  new Prope r ties();           p roperties . l oad(newStr ing Rea der ( c on tent));
        r eturn p rop erties; 
     } c at ch (IOExc eption e ){        e .printSt ac kTr ac e() ;
      }       r et ur n  nu ll;
  }}  /* *  C opyr igh t( c) 20 11-2 0 16Intel C orporatio n.A ll r ig ht s reser ved.
 *
 * Pe rm ission ishe reb y gran t e d, freeof charge, to any perso n  obtain ing  a
 *  cop y of this  so ftware  an d  assoc iateddocum en tat i o n fil e s  ( the  " Software") ,  *to de al  inthe Sof tware without rest r ict ion, includin g w itho u t  l imi t at i on * the r ights to use, c opy, modif y, me rge, publi s h,di stribut e, subl icens e ,
 * an d/or sell  copies o ftheS o ftw are, and t o permit  personst o who m  t he
 *  So ftware  i s f urnis hed to doso, s ubject  t o thefollo wi ng condi tions:
 *
 * The abovecopyri ght n oti ce and th isp erm ission no tice  (includin g t henext *p aragr aph) sh all be in clud e d in allc op ies o rsubstantial p o rti ons o f t h e
 * S oftw are.
 *
 * THE SO F TWARE IS PROVI DED" A S I S", WITH OU T WARRANTY OFANY  K I N D, EXPRE SS  OR
 * IMPL IED, INC LU D ING B UT NOT  LIMIT ED TO T H E  W A RRANTI ES O F M ERCHANTAB ILI TY , 
 * FIT NE SS FOR APART IC ULAR P URPOSE ANDN O NINFRINGEMENT. IN NO E VENTS HAL L
 *TH E AUTHO R S OR  COPYRIGHT  HOLDERS BE  LIABL E FO R ANY  CLAIM,  D AMAGES  OR  O THER
 * LI A BILITY, W HETHE R IN AN  A CTIO N O F CONT RACT , TORTOR
服务器消息
 _ _ * @param configManager
_ __ *_@param_configInfo
  _  */
_   public_void onReceiveConfigInfo(JbootConfigManager configManager,_String_configInfo) {
        Properties properties = str2Properties(configInfo);
 __ ___ if (contentProperties == null)_{
    _ _     contentProperties = properties;

__  _       configManager.setRemoteProperties(properties);
 _     _} else {
___   _     for_(Object key : properties.keySet()) {
 _      _     _ String newValue = properties.getProperty(key.toString());
_ _    _  _ _  _String oldValue = contentProperties.getProperty(key.toString());

  _  _     __  _if_(!Objects.equals(newValue,_oldValue)) {
_  __ __     __     contentProperties.put(key, newValue);
_   __   _    _     configManager.setRemoteProperty(key.toString(),_newValue);

 _ _          _     configManager.notifyChangeListeners(key.toString(),newValue,oldValue);
_   _ __  __ _  }
    _ _     }
_   __  }
   _}


    private Properties_str2Properties(String content) {
  ___   try {
_     _  _  Properties properties = new Properties();
__     __   properties.load(new StringReader(content));
 ___    _   return properties;
 _      } catch (IOException_e) {
 _    ___   e.printStackTrace();
      _ }
_  _    return null;
    }
}
_/*
 * Copyright(c) 2011-2016 Intel Corporation. All_rights reserved.
 *
 * Permission is hereby granted, free of charge,_to any person obtaining a
 * copy of_this software and associated documentation files (the_"Software"),
 * to deal_in_the Software without restriction, including without limitation
_*_the_rights_to use, copy,_modify, merge, publish,_distribute, sublicense,
 *_and/or sell_copies of the_Software, and_to permit persons_to_whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above_copyright notice and this permission notice_(including the next
 * paragraph)_shall_be included in_all copies or substantial_portions of the
 * Software.
 *
 * THE_SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY_KIND,_EXPRESS OR
_* IMPLIED, INCLUDING BUT_NOT LIMITED_TO THE_WARRANTIES OF MERCHANTABILITY,
_* FITNESS_FOR A_PARTICULAR PURPOSE_AND NONINFRINGEMENT.  IN NO EVENT SHALL
_*_THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY_CLAIM,_DAMAGES_OR_OTHER
 * LIABILITY,_WHETHER IN AN_ACTION OF CONTRACT,_TORT OR