Subversion Repositories DevTools

Rev

Rev 902 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 902 Rev 906
Line 108... Line 108...
108
  /**collection of build file content in String form
108
  /**collection of build file content in String form
109
   * @attribute
109
   * @attribute
110
   */
110
   */
111
  private Vector<String> mBuildCollection = new Vector<String>();
111
  private Vector<String> mBuildCollection = new Vector<String>();
112
 
112
 
-
 
113
  /**Warning message
-
 
114
   * @attribute
-
 
115
   */
-
 
116
  private static final String mAnyBuildPlatforms = new String("Warning. The following package versions are not reproducible on any build platform: ");
-
 
117
 
-
 
118
  /**Flag to control output to standard out
-
 
119
   * @attribute
-
 
120
   */
-
 
121
  private boolean mAnyBuildPlatformsFlag = true;
-
 
122
 
-
 
123
  /**Warning message
-
 
124
   * @attribute
-
 
125
   */
-
 
126
  private static final String mAssocBuildPlatforms = new String("Warning. The following package versions are not reproducible on the build platforms associated with this baseline: ");
-
 
127
 
-
 
128
  /**Flag to control output to standard out
-
 
129
   * @attribute
-
 
130
   */
-
 
131
  private boolean mAssocBuildPlatformsFlag = true;
-
 
132
 
-
 
133
  /**Warning message
-
 
134
   * @attribute
-
 
135
   */
-
 
136
  private static final String mNotInBaseline = new String("Warning. The following package versions are not reproducible as they are directly dependent upon package versions not in the baseline: ");
-
 
137
 
-
 
138
  /**Flag to control output to standard out
-
 
139
   * @attribute
-
 
140
   */
-
 
141
  private boolean mNotInBaselineFlag = true;
-
 
142
 
-
 
143
  /**Warning message
-
 
144
   * @attribute
-
 
145
   */
-
 
146
  private static final String mDependent = new String("Warning. The following package versions are not reproducible as they are directly/indirectly dependent upon not reproducible package versions: ");
-
 
147
 
-
 
148
  /**Flag to control output to standard out
-
 
149
   * @attribute
-
 
150
   */
-
 
151
  private boolean mDependentFlag = true;
-
 
152
 
113
  /**constructor
153
  /**constructor
114
   */
154
   */
115
  public RippleEngine(ReleaseManager releaseManager, int rtag_id, 
155
  public RippleEngine(ReleaseManager releaseManager, int rtag_id, 
116
                      boolean isDaemon)
156
                      boolean isDaemon)
117
  {
157
  {
Line 206... Line 246...
206
            rippleBuildExclude(p, p.mId, "Package build dependency not in the release", null, null);
246
            rippleBuildExclude(p, p.mId, "Package build dependency not in the release", null, null);
207
             
247
             
208
            // take the package out of the build
248
            // take the package out of the build
209
            p.mBuildFile = -4;
249
            p.mBuildFile = -4;
210
            mLogger.info("planRelease set mBuildFile to -4 for package " + p.mAlias );
250
            mLogger.info("planRelease set mBuildFile to -4 for package " + p.mAlias );
-
 
251
            standardOut(mNotInBaseline, p.mAlias, mNotInBaselineFlag);
211
            break;
252
            break;
212
          }
253
          }
213
        }
254
        }
214
      }
255
      }
215
 
256
 
Line 229... Line 270...
229
            rippleBuildExclude(p, p.mId, "Package has no build environment", null, null);
270
            rippleBuildExclude(p, p.mId, "Package has no build environment", null, null);
230
  
271
  
231
            // package is not reproducible, discard
272
            // package is not reproducible, discard
232
            p.mBuildFile = -1;
273
            p.mBuildFile = -1;
233
            mLogger.info("planRelease set mBuildFile to -1 for package " + p.mAlias );
274
            mLogger.info("planRelease set mBuildFile to -1 for package " + p.mAlias );
-
 
275
            standardOut(mAnyBuildPlatforms, p.mAlias, mAnyBuildPlatformsFlag);
234
          }
276
          }
235
        }
277
        }
236
      }
278
      }
237
      
279
      
238
      // process packages which are not reproducible on the build platforms configured for this baseline
280
      // process packages which are not reproducible on the build platforms configured for this baseline
Line 281... Line 323...
281
            }
323
            }
282
          }
324
          }
283
  
325
  
284
          if ( !reproduce )
326
          if ( !reproduce )
285
          {
327
          {
286
            // for escrow build purposes, exclude all dependent package versions
-
 
287
            mLogger.info("planRelease package not reproducible on the build platforms configured for this baseline " + p.mName);
328
            mLogger.info("planRelease package not reproducible on the build platforms configured for this baseline " + p.mName);
-
 
329
            
-
 
330
            if (mDaemon)
-
 
331
            {
-
 
332
              // DEVI 54816
-
 
333
              // for escrow build purposes, do not exclude all dependent package versions
288
            // max 50 chars
334
              // max 50 chars
289
            rippleBuildExclude(p, p.mId, "Package not built for configured platforms", null, null);
335
              rippleBuildExclude(p, p.mId, "Package not built for configured platforms", null, null);
-
 
336
            }
290
            
337
            
291
            // package is not reproducible on the build platforms configured for this baseline, discard
338
            // package is not reproducible on the build platforms configured for this baseline, discard
292
            p.mBuildFile = -2;
339
            p.mBuildFile = -2;
293
            mLogger.info("planRelease set mBuildFile to -2 for package " + p.mAlias );
340
            mLogger.info("planRelease set mBuildFile to -2 for package " + p.mAlias );
-
 
341
            standardOut(mAssocBuildPlatforms, p.mAlias, mAssocBuildPlatformsFlag);
294
          }
342
          }
295
        }
343
        }
296
      }      
344
      }      
297
        
345
        
298
      if (mDaemon)
346
      if (mDaemon)
Line 401... Line 449...
401
              }
449
              }
402
            }
450
            }
403
          }
451
          }
404
        }
452
        }
405
      }
453
      }
-
 
454
      else
-
 
455
      {
-
 
456
        // escrow reporting only     
-
 
457
        for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
-
 
458
        {
-
 
459
          Package p = it.next();
-
 
460
    
-
 
461
          if (p.mBuildFile == -3)
-
 
462
          {
-
 
463
            standardOut(mDependent, p.mAlias, mDependentFlag);
-
 
464
          }
-
 
465
        }
-
 
466
      }
406
      
467
      
407
      // process remaining packages which need to be reproduced for this baseline
468
      // process remaining packages which need to be reproduced for this baseline
408
      // determine the build file for each package
469
      // determine the build file for each package
409
      // for daemon builds, determine the first package that can be built now, this means the first package not dependent upon packages also to be built
470
      // for daemon builds, determine the first package that can be built now, this means the first package not dependent upon packages also to be built
410
      // set its mBuildNumber to 1, all remaining reproducible packages to 2
471
      // set its mBuildNumber to 1, all remaining reproducible packages to 2
Line 451... Line 512...
451
          
512
          
452
          for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
513
          for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
453
          {
514
          {
454
            Package p = it.next();
515
            Package p = it.next();
455
            
516
            
456
            if ( mDaemon && ( ( !p.mDirectlyPlanned && !p.mIndirectlyPlanned ) || p.mBuildFile < 0 ) )
517
            if ( ( mDaemon && ( ( !p.mDirectlyPlanned && !p.mIndirectlyPlanned ) || p.mBuildFile < 0 ) ) ||
-
 
518
                 ( !mDaemon && p.mBuildFile == -2 ) )
457
            {
519
            {
458
              // flag packages with no build requirement as processed in daemon mode
520
              // flag packages with no build requirement as processed in daemon mode
-
 
521
              // DEVI 54816 flag packages with a foreign build environment as processed in escrow mode
459
              p.mProcessed = true;
522
              p.mProcessed = true;
460
              mLogger.info("planRelease package has no build requirement " + p.mName);            
523
              mLogger.info("planRelease package has no build requirement " + p.mName);            
461
            }
524
            }
462
            else
525
            else if ( ( p.mBuildFile == 0 ) && ( (mDaemon && ( p.mDirectlyPlanned || p.mIndirectlyPlanned ) ) || ( !mDaemon ) ) )
463
            {
526
            {
-
 
527
              // package yet to be processed and
-
 
528
              // in daemon mode has a build requirement or
-
 
529
              // in escrow mode
-
 
530
              boolean canBeBuiltNow = true;
-
 
531
              boolean allDependenciesForThisPackageProcessed = true;
-
 
532
              
-
 
533
              for ( Iterator<Package> it2 = p.mPackageDependencyCollection.iterator(); it2.hasNext(); )
-
 
534
              {
-
 
535
                Package dependency = it2.next();
-
 
536
                
-
 
537
                if ( !dependency.mProcessed )
-
 
538
                {
-
 
539
                  // cannot determine canBeBuiltNow until this dependency has been processed
-
 
540
                  allDependenciesForThisPackageProcessed = false;
-
 
541
                  allDependenciesProcessed = false;
-
 
542
                }
464
              if ( ( p.mBuildFile == 0 ) && ( (mDaemon && ( p.mDirectlyPlanned || p.mIndirectlyPlanned ) ) || ( !mDaemon ) ) )
543
                else if ( ( mDaemon && ( dependency.mDirectlyPlanned ) || ( dependency.mIndirectlyPlanned ) ) || 
-
 
544
                          ( !mDaemon &&
-
 
545
                            ( ( dependency.mBuildFile == 0 ) ||
-
 
546
                              ( dependency.mBuildFile == buildFile &&
-
 
547
                                ( ( p.isLinuxBuilt() && !dependency.isLinuxBuilt() ) ||
-
 
548
                                  ( p.isWin32Built() && !dependency.isWin32Built() ) ||
-
 
549
                                  ( p.isSolarisBuilt() && !dependency.isSolarisBuilt() ) ||
-
 
550
                                  ( !p.isLinuxBuilt() && dependency.isLinuxBuilt() ) ||
-
 
551
                                  ( !p.isWin32Built() && dependency.isWin32Built() ) ||
-
 
552
                                  ( !p.isSolarisBuilt() && dependency.isSolarisBuilt() ) ) ) ) ) )
-
 
553
                {
-
 
554
                  // in daemon mode this processed dependency has a build requirement or
-
 
555
                  // in escrow mode...
-
 
556
                  // this processed dependency has not been assigned to a build iteration or
-
 
557
                  // this processed dependency has been assigned to this build iteration and does not build on this platform
-
 
558
                  canBeBuiltNow = false;
-
 
559
                  mLogger.info("planRelease package cannot be built in this iteration " + p.mName);
-
 
560
                  break;
-
 
561
                }
-
 
562
              }
-
 
563
              
-
 
564
              if (allDependenciesForThisPackageProcessed)
465
              {
565
              {
466
                // package yet to be processed and
-
 
467
                // in daemon mode has a build requirement or
-
 
468
                // in escrow mode
566
                p.mProcessed = true;
469
                boolean canBeBuiltNow = true;
-
 
470
                boolean allDependenciesForThisPackageProcessed = true;
-
 
471
                
567
                
472
                for ( Iterator<Package> it2 = p.mPackageDependencyCollection.iterator(); it2.hasNext(); )
568
                if ( mDaemon )
473
                {
569
                {
474
                  Package dependency = it2.next();
-
 
475
                  
-
 
476
                  if ( !dependency.mProcessed )
570
                  if ( canBeBuiltNow )
477
                  {
571
                  {
478
                    // cannot determine canBeBuiltNow until this dependency has been processed
572
                    // flag package with build requirement, may get downgraded to future build requirement
479
                    allDependenciesForThisPackageProcessed = false;
573
                    p.mBuildFile = 1;
480
                    allDependenciesProcessed = false;
574
                    mLogger.info("planRelease set mBuildFile to 1 for package " + p.mAlias );
481
                  }
575
                  }
482
                  else if ( ( mDaemon && ( dependency.mDirectlyPlanned ) || ( dependency.mIndirectlyPlanned ) ) || 
-
 
483
                            ( !mDaemon &&
576
                  else
484
                              ( ( dependency.mBuildFile == 0 ) ||
-
 
485
                                ( dependency.mBuildFile == buildFile &&
-
 
486
                                  ( ( p.isLinuxBuilt() && !dependency.isLinuxBuilt() ) ||
-
 
487
                                    ( p.isWin32Built() && !dependency.isWin32Built() ) ||
-
 
488
                                    ( p.isSolarisBuilt() && !dependency.isSolarisBuilt() ) ||
-
 
489
                                    ( !p.isLinuxBuilt() && dependency.isLinuxBuilt() ) ||
-
 
490
                                    ( !p.isWin32Built() && dependency.isWin32Built() ) ||
-
 
491
                                    ( !p.isSolarisBuilt() && dependency.isSolarisBuilt() ) ) ) ) ) )
-
 
492
                  {
577
                  {
493
                    // in daemon mode this processed dependency has a build requirement or
578
                    // flag package with future build requirement
494
                    // in escrow mode...
-
 
495
                    // this processed dependency has not been assigned to a build iteration or
-
 
496
                    // this processed dependency has been assigned to this build iteration and does not build on this platform
-
 
497
                    canBeBuiltNow = false;
579
                    p.mBuildFile = 2;
498
                    mLogger.info("planRelease package cannot be built in this iteration " + p.mName);
580
                    mLogger.info("planRelease set mBuildFile to 2 for package " + p.mAlias );
499
                    break;
-
 
500
                  }
581
                  }
501
                }
582
                }
502
                
583
                else
503
                if (allDependenciesForThisPackageProcessed)
-
 
504
                {
584
                {
505
                  p.mProcessed = true;
-
 
506
                  
-
 
507
                  if ( mDaemon )
585
                  if ( canBeBuiltNow )
508
                  {
586
                  {
-
 
587
                    String isWin32Built = new String("");
-
 
588
                    
509
                    if ( canBeBuiltNow )
589
                    if ( p.isWin32Built() )
510
                    {
590
                    {
511
                      // flag package with build requirement, may get downgraded to future build requirement
-
 
512
                      p.mBuildFile = 1;
591
                      isWin32Built = "W";
513
                      mLogger.info("planRelease set mBuildFile to 1 for package " + p.mAlias );
-
 
514
                    }
592
                    }
-
 
593
                    
-
 
594
                    String isLinuxBuilt = new String("");
515
                    else
595
                    
-
 
596
                    if ( p.isLinuxBuilt() )
516
                    {
597
                    {
517
                      // flag package with future build requirement
-
 
518
                      p.mBuildFile = 2;
598
                      isLinuxBuilt = "L";
519
                      mLogger.info("planRelease set mBuildFile to 2 for package " + p.mAlias );
-
 
520
                    }
599
                    }
-
 
600
                    
-
 
601
                    String isSolarisBuilt = new String("");
521
                  }
602
                    
-
 
603
                    if ( p.isSolarisBuilt() )
-
 
604
                    {
-
 
605
                      isSolarisBuilt = "S";
522
                  else
606
                    }
-
 
607
                    
-
 
608
                    String isGeneric = new String("");
523
                  {
609
                    
524
                    if ( canBeBuiltNow )
610
                    if ( p.isGeneric() )
525
                    {
611
                    {
526
                      if ( !mDaemon )
-
 
527
                      {
-
 
528
                        String isWin32Built = new String("");
-
 
529
                        
-
 
530
                        if ( p.isWin32Built() )
-
 
531
                        {
-
 
532
                          isWin32Built = "W";
-
 
533
                        }
-
 
534
                        
-
 
535
                        String isLinuxBuilt = new String("");
-
 
536
                        
-
 
537
                        if ( p.isLinuxBuilt() )
-
 
538
                        {
-
 
539
                          isLinuxBuilt = "L";
-
 
540
                        }
-
 
541
                        
-
 
542
                        String isSolarisBuilt = new String("");
-
 
543
                        
-
 
544
                        if ( p.isSolarisBuilt() )
-
 
545
                        {
-
 
546
                          isSolarisBuilt = "S";
-
 
547
                        }
-
 
548
                        
-
 
549
                        String isGeneric = new String("");
-
 
550
                        
-
 
551
                        if ( p.isGeneric() )
-
 
552
                        {
-
 
553
                          isGeneric = "G";
612
                      isGeneric = "G";
554
                        }
-
 
555
                        
-
 
556
                        raw_data += p.mAlias + "," +
-
 
557
                                    isWin32Built + "," +
-
 
558
                                    isLinuxBuilt + "," +
-
 
559
                                    isSolarisBuilt + "," +
-
 
560
                                    isGeneric + "," +
-
 
561
                                    buildFile +
-
 
562
                                    lf;
-
 
563
                      }
-
 
564
                      
-
 
565
                      // not daemon
-
 
566
                      p.mBuildFile = buildFile;
-
 
567
                      mLogger.info("planRelease set mBuildFile to " + buildFile + " for package " + p.mAlias );
-
 
568
                    }
613
                    }
-
 
614
                    
-
 
615
                    raw_data += p.mAlias + "," +
-
 
616
                                isWin32Built + "," +
-
 
617
                                isLinuxBuilt + "," +
-
 
618
                                isSolarisBuilt + "," +
-
 
619
                                isGeneric + "," +
-
 
620
                                buildFile +
-
 
621
                                lf;
-
 
622
                    
-
 
623
                    // not daemon
-
 
624
                    p.mBuildFile = buildFile;
-
 
625
                    mLogger.info("planRelease set mBuildFile to " + buildFile + " for package " + p.mAlias );
569
                  }
626
                  }
570
                }
627
                }
571
              }
628
              }
572
            }
629
            }
573
          }
630
          }
Line 674... Line 731...
674
        String buildFileContent = new String( generateBuildFileHeader() );
731
        String buildFileContent = new String( generateBuildFileHeader() );
675
        
732
        
676
        for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
733
        for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
677
        {
734
        {
678
          Package p = it.next();
735
          Package p = it.next();
679
        
736
          
-
 
737
          // DEVI 54816
-
 
738
          // now set a packages mBuildFile to -2 in escrow mode, but do not ripple this through
-
 
739
          // its consumers need dependency package property info
680
          if ( ( p.mBuildFile > 0 ) && ( p.mBuildFile <= buildFile ) )
740
          if ( ( ( p.mBuildFile > 0 ) && ( p.mBuildFile <= buildFile ) ) || ( !mDaemon && p.mBuildFile == -2 ) )
681
          {
741
          {
682
            buildFileContent += generatePackageProperty(p);
742
            buildFileContent += generatePackageProperty(p);
683
          }
743
          }
684
        }
744
        }
685
        
745
        
Line 1243... Line 1303...
1243
        retVal +=" depends=\"";
1303
        retVal +=" depends=\"";
1244
        boolean comma = false;
1304
        boolean comma = false;
1245
        
1305
        
1246
        for (Iterator<Package> it = p.mPackageDependencyCollection.iterator(); it.hasNext(); )
1306
        for (Iterator<Package> it = p.mPackageDependencyCollection.iterator(); it.hasNext(); )
1247
        {
1307
        {
-
 
1308
          Package dependency = it.next();
-
 
1309
          // DEVI 54816
-
 
1310
          if ( !mDaemon && dependency.mBuildFile == -2 )
-
 
1311
          {
-
 
1312
            // ignore targets which build in foreign environments in escrow mode
-
 
1313
            continue;
-
 
1314
          }
1248
          if (comma)
1315
          if (comma)
1249
          {
1316
          {
1250
            retVal += ",";
1317
            retVal += ",";
1251
          }
1318
          }
1252
          comma = true;
1319
          comma = true;
1253
          
1320
          
1254
          Package dependency = it.next();
-
 
1255
          retVal += dependency.mAlias;
1321
          retVal += dependency.mAlias;
1256
        }
1322
        }
1257
        
1323
        
1258
        retVal += "\"";
1324
        retVal += "\"";
1259
      }
1325
      }
Line 1494... Line 1560...
1494
    "<target name=\"fullstart\">" + lf;
1560
    "<target name=\"fullstart\">" + lf;
1495
    
1561
    
1496
    if (buildFile == 1)
1562
    if (buildFile == 1)
1497
    {
1563
    {
1498
      retVal +=
1564
      retVal +=
1499
      "<echo message=\"${line.separator}The following package versions are not reproducible on any build platform:${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1565
      "<echo message=\"${line.separator}" + mAnyBuildPlatforms + "${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1500
      
1566
      
1501
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1567
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1502
      {
1568
      {
1503
        Package p = it.next();
1569
        Package p = it.next();
1504
        
1570
        
Line 1508... Line 1574...
1508
          "<echo message=\"${line.separator}" + p.mAlias + "${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1574
          "<echo message=\"${line.separator}" + p.mAlias + "${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1509
        }
1575
        }
1510
      }
1576
      }
1511
 
1577
 
1512
      retVal +=
1578
      retVal +=
1513
      "<echo message=\"${line.separator}The following package versions are not reproducible on the build platforms associated with this baseline:${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1579
      "<echo message=\"${line.separator}" + mAssocBuildPlatforms + "${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1514
      
1580
      
1515
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1581
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1516
      {
1582
      {
1517
        Package p = it.next();
1583
        Package p = it.next();
1518
        
1584
        
Line 1522... Line 1588...
1522
          "<echo message=\"${line.separator}" + p.mAlias + "${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1588
          "<echo message=\"${line.separator}" + p.mAlias + "${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1523
        }
1589
        }
1524
      }
1590
      }
1525
 
1591
 
1526
      retVal +=
1592
      retVal +=
1527
      "<echo message=\"${line.separator}The following package versions are not reproducible as they are directly dependent upon package versions not in the baseline:${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1593
      "<echo message=\"${line.separator}" + mNotInBaseline + "${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1528
      
1594
      
1529
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1595
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1530
      {
1596
      {
1531
        Package p = it.next();
1597
        Package p = it.next();
1532
        
1598
        
Line 1536... Line 1602...
1536
          "<echo message=\"${line.separator}" + p.mAlias + "${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1602
          "<echo message=\"${line.separator}" + p.mAlias + "${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1537
        }
1603
        }
1538
      }
1604
      }
1539
 
1605
 
1540
      retVal +=
1606
      retVal +=
1541
      "<echo message=\"${line.separator}The following package versions are not reproducible as they are directly/indirectly dependent upon not reproducible package versions:${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1607
      "<echo message=\"${line.separator}" + mDependent + "${line.separator}${line.separator}\" file=\"publish.log\" append=\"true\"/>" + lf;
1542
      
1608
      
1543
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1609
      for (Iterator<Package> it = mPackageCollection.iterator(); it.hasNext(); )
1544
      {
1610
      {
1545
        Package p = it.next();
1611
        Package p = it.next();
1546
        
1612
        
Line 1771... Line 1837...
1771
    
1837
    
1772
    mLogger.info("buildInfo returned " + platforms + standards);
1838
    mLogger.info("buildInfo returned " + platforms + standards);
1773
    return platforms + standards;
1839
    return platforms + standards;
1774
  }
1840
  }
1775
 
1841
 
-
 
1842
  /**prints to standard out in escrow mode only
-
 
1843
   */
-
 
1844
  private void standardOut(final String message, final String alias, boolean printMessage)
-
 
1845
  {
-
 
1846
    mLogger.debug("standardOut");
-
 
1847
    if (!mDaemon)
-
 
1848
    {
-
 
1849
      if ( printMessage )
-
 
1850
      {
-
 
1851
        System.out.println(message);
-
 
1852
        // switch the message off
-
 
1853
        printMessage = false;
-
 
1854
      }
-
 
1855
      
-
 
1856
      System.out.println(alias);
-
 
1857
    }
-
 
1858
  }
1776
}
1859
}