private static ClusterProperties fromProperties(Properties props){
  ClusterProperties prop=new ClusterProperties();
  prop.clusterName=getStringProperty(IGNITE_CLUSTER_NAME,props,DEFAULT_CLUSTER_NAME);
  prop.cpuPerNode=getDoubleProperty(IGNITE_RUN_CPU_PER_NODE,props,DEFAULT_CPU_PER_NODE);
  prop.memPerNode=getDoubleProperty(IGNITE_MEMORY_PER_NODE,props,DEFAULT_MEM_PER_NODE);
  prop.memOverHeadPerNode=getDoubleProperty(IGNITE_MEMORY_OVERHEAD_PER_NODE,props,Math.max(0.1 * prop.memPerNode,DEFAULT_MINIMUM_MEM_OVERHEAD_PER_NODE));
  prop.nodeCnt=getDoubleProperty(IGNITE_NODE_COUNT,props,DEFAULT_IGNITE_NODE_COUNT);
  prop.igniteUrl=getStringProperty(IGNITE_URL,props,null);
  prop.ignitePath=getStringProperty(IGNITE_PATH,props,null);
  prop.licencePath=getStringProperty(LICENCE_PATH,props,null);
  prop.jvmOpts=getStringProperty(IGNITE_JVM_OPTS,props,null);
  prop.igniteWorkDir=getStringProperty(IGNITE_WORKING_DIR,props,DEFAULT_IGNITE_WORK_DIR);
  prop.igniteLocalWorkDir=getStringProperty(IGNITE_LOCAL_WORK_DIR,props,DEFAULT_IGNITE_LOCAL_WORK_DIR);
  prop.igniteReleasesDir=getStringProperty(IGNITE_RELEASES_DIR,props,DEFAULT_IGNITE_RELEASES_DIR);
  prop.igniteCfg=getStringProperty(IGNITE_CONFIG_XML,props,null);
  prop.userLibs=getStringProperty(IGNITE_USERS_LIBS,props,null);
  String pattern=getStringProperty(IGNITE_HOSTNAME_CONSTRAINT,props,null);
  if (pattern != null) {
    try {
      prop.hostnameConstraint=Pattern.compile(pattern);
    }
 catch (    PatternSyntaxException e) {
      log.log(Level.WARNING,"IGNITE_HOSTNAME_CONSTRAINT has invalid pattern. It will be ignore.",e);
    }
  }
  return prop;
}

private static ClusterProperties fromProperties ( Properties props ) { ClusterProperties prop = new ClusterProperties ( ) ; prop . clusterName = getStringProperty ( IGNITE_CLUSTER_NAME , props , DEFAULT_CLUSTER_NAME ) ; prop . cpuPerNode = getDoubleProperty ( IGNITE_RUN_CPU_PER_NODE , props , DEFAULT_CPU_PER_NODE ) ; prop . memPerNode = getDoubleProperty ( IGNITE_MEMORY_PER_NODE , props , DEFAULT_MEM_PER_NODE ) ; prop . memOverHeadPerNode = getDoubleProperty ( IGNITE_MEMORY_OVERHEAD_PER_NODE , props , Math . max ( 0.1 * prop . memPerNode , DEFAULT_MINIMUM_MEM_OVERHEAD_PER_NODE ) ) ; prop . nodeCnt = getDoubleProperty ( IGNITE_NODE_COUNT , props , DEFAULT_IGNITE_NODE_COUNT ) ; prop . igniteUrl = getStringProperty ( IGNITE_URL , props , null ) ; prop . ignitePath = getStringProperty ( IGNITE_PATH , props , null ) ; prop . licencePath = getStringProperty ( LICENCE_PATH , props , null ) ; prop . jvmOpts = getStringProperty ( IGNITE_JVM_OPTS , props , null ) ; prop . igniteWorkDir = getStringProperty ( IGNITE_WORKING_DIR , props , DEFAULT_IGNITE_WORK_DIR ) ; prop . igniteLocalWorkDir = getStringProperty ( IGNITE_LOCAL_WORK_DIR , props , DEFAULT_IGNITE_LOCAL_WORK_DIR ) ; prop . igniteReleasesDir = getStringProperty ( IGNITE_RELEASES_DIR , props , DEFAULT_IGNITE_RELEASES_DIR ) ; prop . igniteCfg = getStringProperty ( IGNITE_CONFIG_XML , props , null ) ; prop . userLibs = getStringProperty ( IGNITE_USERS_LIBS , props , null ) ; String pattern = getStringProperty ( IGNITE_HOSTNAME_CONSTRAINT , props , null ) ; if ( pattern != null ) { try { prop . hostnameConstraint = Pattern . compile ( pattern ) ; } catch ( PatternSyntaxException e ) { log . log ( Level . WARNING , "IGNITE_HOSTNAME_CONSTRAINT has invalid pattern. It will be ignore." , e ) ; } } return prop ; }
instantiate a clusterproperties from a set of properties .
