Subversion Repositories DevTools

Rev

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

Rev 4201 Rev 4212
Line 25... Line 25...
25
  /**instance identifier
25
  /**instance identifier
26
   * @attribute
26
   * @attribute
27
   */
27
   */
28
  String mVersion = new String();
28
  String mVersion = new String();
29
 
29
 
-
 
30
  /** Version string as specified by the user. Used with a ripple
-
 
31
   *  type of 'F'
-
 
32
   */
-
 
33
  String mFixedVersion = new String();
-
 
34
 
30
  /**unique identifier
35
  /**unique identifier
31
   * for daemon builds = mName + mExtension
36
   * for daemon builds = mName + mExtension
32
   * for escrow builds = mName + mVersion + mExtension
37
   * for escrow builds = mName + mVersion + mExtension
33
   * @attribute
38
   * @attribute
34
   */
39
   */
Line 220... Line 225...
220
  boolean mHasCircularDependency = false;
225
  boolean mHasCircularDependency = false;
221
 
226
 
222
  /**constructor
227
  /**constructor
223
   */
228
   */
224
  Package(int pv_id, String pkg_name, String v_ext, String alias, 
229
  Package(int pv_id, String pkg_name, String v_ext, String alias, 
225
          String pkg_vcs_tag, char change_type, char ripple_field)
230
          String pkg_vcs_tag, char change_type, char ripple_field, String pkg_version)
226
  {
231
  {
227
    mLogger.debug("Package 1: pv_id " + pv_id + " pkg_name " + pkg_name + " v_ext " + v_ext + " alias " + alias + " pkg_vcs_tag " + pkg_vcs_tag + " change_type " + change_type);
232
    mLogger.debug("Package 1: pv_id " + pv_id + " pkg_name " + pkg_name + " v_ext " + v_ext + " alias " + alias + " pkg_vcs_tag " + pkg_vcs_tag + " change_type " + change_type);
228
    mId = pv_id;
233
    mId = pv_id;
229
    mName = pkg_name;
234
    mName = pkg_name;
230
    mVersion = "0.0.0000";
-
 
231
    mExtension = v_ext;
235
    mExtension = v_ext;
232
    mAlias = alias;
236
    mAlias = alias;
233
    mVcsTag = pkg_vcs_tag;
237
    mVcsTag = pkg_vcs_tag;
234
 
238
 
-
 
239
    // Must not have any extension
-
 
240
    mFixedVersion = pkg_version;
-
 
241
    mFixedVersion = mFixedVersion.substring(0, mFixedVersion.length() - mExtension.length());
-
 
242
 
235
    if (change_type == 'M')
243
    if (change_type == 'M')
236
    {
244
    {
237
      // a ripple_field of 'L' indicates this package has limited version numbering
245
      // a ripple_field of 'L' indicates this package has limited version numbering
238
      mChangeType.setMajor(ripple_field == 'L' ? true : false);
246
      mChangeType.setMajor(ripple_field == 'L' ? true : false);
239
    }
247
    }
240
    else if (change_type == 'N')
248
    else if (change_type == 'N')
241
    {
249
    {
242
      mChangeType.setMinor(ripple_field == 'L' ? true : false);
250
      mChangeType.setMinor(ripple_field == 'L' ? true : false);
243
    }
251
    }
244
    else
252
    else if (change_type == 'P')
245
    {
253
    {
246
      mChangeType.setPatch(ripple_field == 'L' ? true : false);
254
      mChangeType.setPatch(ripple_field == 'L' ? true : false);
247
    }
255
    }
-
 
256
    else if (change_type == 'F')
-
 
257
    {
-
 
258
      mChangeType.setFixed();
-
 
259
    }
-
 
260
    else
-
 
261
    {
-
 
262
        mChangeType.setUnknown();
-
 
263
    }
248
  }
264
  }
249
 
265
 
250
  /**constructor
266
  /**constructor
251
   */
267
   */
252
  Package(int pv_id, String pkg_name, String pkg_version, String v_ext, 
268
  Package(int pv_id, String pkg_name, String pkg_version, String v_ext, 
Line 464... Line 480...
464
 
480
 
465
  /**applies the required version number change
481
  /**applies the required version number change
466
   * returns 0 on success
482
   * returns 0 on success
467
   *         1 on cannot work with non standard versioning
483
   *         1 on cannot work with non standard versioning
468
   *         2 on ripple field limitations prevent a ripple build
484
   *         2 on ripple field limitations prevent a ripple build
-
 
485
   *         3 on Invalid Change Type
469
   */
486
   */
470
  int applyPV(ReleaseManager releaseManager, int rtag_id) throws Exception
487
  int applyPV(ReleaseManager releaseManager, int rtag_id) throws Exception
471
  {
488
  {
472
    mLogger.debug("applyPV on Package " + mName);
489
    mLogger.debug("applyPV on Package " + mName);
-
 
490
    //
473
    // four scenarios, only applyPV for 3 of them
491
    // Four scenarios, only applyPV for 3 of them
474
    // WIP/test build exists:           mDirectlyPlanned == true;   mIndirectlyPlanned == true; mArchivalExistence don't care; mForcedRipple don't care - applyPV
492
    //                                  mDirectlyPlanned    mIndirectlyPlanned  mArchivalExistence  mForcedRipple   Action
-
 
493
    // WIP/test build exists:           true                true                don't care          don't care     applyPV
475
    // Package version is out of date:  mDirectlyPlanned == false;  mIndirectlyPlanned == true; mArchivalExistence == true;    mForcedRipple don't care - applyPV
494
    // Package version is out of date:  false               true                true                don't care     applyPV
476
    // Forced ripple:                   mDirectlyPlanned == false;  mIndirectlyPlanned == true; mArchivalExistence don't care; mForcedRipple > 0        - applyPV
495
    // Forced ripple:                   false               true                don't care          > 0            applyPV
477
    // Package version does not exist:  mDirectlyPlanned == false;  mIndirectlyPlanned == true; mArchivalExistence == false;   mForcedRipple = 0    - do not applyPV
496
    // Package version does not exist:  false               true                false               = 0            do not applyPV
-
 
497
    //
478
    if ( !mDirectlyPlanned && mIndirectlyPlanned && !mArchivalExistence && mForcedRippleInstruction == 0 )
498
    if ( !mDirectlyPlanned && mIndirectlyPlanned && !mArchivalExistence && mForcedRippleInstruction == 0 )
479
    {
499
    {
480
      // the package has an mIndirectlyPlanned flag set true in daemon mode because the package does not exist in an archive
500
      // the package has an mIndirectlyPlanned flag set true in daemon mode because the package does not exist in an archive
481
      // do not apply a different package version
501
      // do not apply a different package version
482
      mLogger.info("applyPV !mDirectlyPlanned && mIndirectlyPlanned && !mArchivalExistence && zero mForcedRippleInstruction on Package " + mName);
502
      mLogger.info("applyPV !mDirectlyPlanned && mIndirectlyPlanned && !mArchivalExistence && zero mForcedRippleInstruction on Package " + mName);
Line 488... Line 508...
488
    // override - no longer doing a rebuild - version number change from this point on
508
    // override - no longer doing a rebuild - version number change from this point on
489
    if ( mTestBuildInstruction == 0 )
509
    if ( mTestBuildInstruction == 0 )
490
    {
510
    {
491
      mRequiresSourceControlInteraction = true;
511
      mRequiresSourceControlInteraction = true;
492
    }
512
    }
-
 
513
 
-
 
514
    //
-
 
515
    //  Detect invalid change type
-
 
516
    //  Flagged when package instance is created
-
 
517
    //
-
 
518
    if (mChangeType.mUnknown)
-
 
519
    {
-
 
520
        mLogger.info("Package Vesrion specified on Package " + mName + "New Version:" + mVersion);
-
 
521
        mLogger.info("applyPv returned 3");
-
 
522
        return 3;
-
 
523
    }
493
    
524
    
-
 
525
    // If we are not calculating the new package version because the user has fixed the version
-
 
526
    // of the package. We are given the new package version.
-
 
527
    if (mChangeType.mFixed)
-
 
528
    {
-
 
529
        // mVersion is already setup
-
 
530
 
-
 
531
        mVersion = mFixedVersion;
-
 
532
        mLogger.info("Package Vesrion specified on Package " + mName + "New Version:" + mVersion);
-
 
533
        releaseManager.claimVersion(mPid, mVersion + mExtension, rtag_id);
-
 
534
        mLogger.info("applyPv returned 0");
-
 
535
        return 0;
-
 
536
    }
-
 
537
 
-
 
538
    // We need to calculate the new version number
-
 
539
    //
494
    MutableInt major = new MutableInt();
540
    MutableInt major = new MutableInt();
495
    major.value = 0;
541
    major.value = 0;
496
    MutableInt minor = new MutableInt();
542
    MutableInt minor = new MutableInt();
497
    minor.value = 0;
543
    minor.value = 0;
498
    MutableInt patch = new MutableInt();
544
    MutableInt patch = new MutableInt();
Line 510... Line 556...
510
    else
556
    else
511
    {
557
    {
512
      //
558
      //
513
      //    Can ripple a .cots package under very controlled conditions
559
      //    Can ripple a .cots package under very controlled conditions
514
      //    Its ends with a .patchBuild field
560
      //    Its ends with a .patchBuild field
515
      //    Package is marked as riple via build number
561
      //    Package is marked as ripple via build number
516
      //    Chaneg type og Major and Minor are not allowed
562
      //    Change type of Major and Minor are not allowed
517
      //
563
      //
518
      if ( !mChangeType.mMajor &&
564
      if ( !mChangeType.mMajor &&
519
           !mChangeType.mMinor &&
565
           !mChangeType.mMinor &&
520
           mRippleField.mBuild &&
566
           mRippleField.mBuild &&
521
           mExtension.compareTo(".cots") == 0 &&
567
           mExtension.compareTo(".cots") == 0 &&
Line 1164... Line 1210...
1164
     * when true indicates the major, minor, patch and build number will be incremented according to field limits
1210
     * when true indicates the major, minor, patch and build number will be incremented according to field limits
1165
     * @attribute
1211
     * @attribute
1166
     */
1212
     */
1167
    private boolean mLimit = false;
1213
    private boolean mLimit = false;
1168
 
1214
 
-
 
1215
    /**in terms of the mChangeType Package field,
-
 
1216
     * when true indicates the package version number will not be rippled. The user will have 
-
 
1217
     * fixed the version number. This is only application to WIP packages 
-
 
1218
     *  
-
 
1219
     * @attribute
-
 
1220
     */
-
 
1221
    private boolean mFixed = false;
-
 
1222
 
-
 
1223
    /**in terms of the mChangeType Package field,
-
 
1224
     * when true indicates the method of rippling a package version 
-
 
1225
     * number is not known. 
-
 
1226
     *  
-
 
1227
     * @attribute
-
 
1228
     */
-
 
1229
    private boolean mUnknown = false;
-
 
1230
 
1169
    /**constructor
1231
    /**constructor
1170
     */
1232
     */
1171
    private VersionNumberingStandard()
1233
    private VersionNumberingStandard()
1172
    {
1234
    {
1173
      mLogger.debug("VersionNumberingStandard");
1235
      mLogger.debug("VersionNumberingStandard");
Line 1181... Line 1243...
1181
      mBuild = true;
1243
      mBuild = true;
1182
      mMajor = false;
1244
      mMajor = false;
1183
      mMinor = false;
1245
      mMinor = false;
1184
      mPatch = false;
1246
      mPatch = false;
1185
      mLimit = false;
1247
      mLimit = false;
-
 
1248
      mFixed = false;
1186
    }
1249
    }
1187
 
1250
 
1188
    /**sets mBuild false, mMajor true, mMinor false, mPatch false, mLimit false
1251
    /**sets mBuild false, mMajor true, mMinor false, mPatch false, mLimit false
1189
     */
1252
     */
1190
    void setMajor()
1253
    void setMajor()
Line 1193... Line 1256...
1193
      mBuild = false;
1256
      mBuild = false;
1194
      mMajor = true;
1257
      mMajor = true;
1195
      mMinor = false;
1258
      mMinor = false;
1196
      mPatch = false;
1259
      mPatch = false;
1197
      mLimit = false;
1260
      mLimit = false;
-
 
1261
      mFixed = false;
1198
    }
1262
    }
1199
 
1263
 
1200
    /**sets mBuild false, mMajor true, mMinor false, mPatch false, mLimit limit
1264
    /**sets mBuild false, mMajor true, mMinor false, mPatch false, mLimit limit
1201
     */
1265
     */
1202
    void setMajor( boolean limit )
1266
    void setMajor( boolean limit )
Line 1205... Line 1269...
1205
      mBuild = false;
1269
      mBuild = false;
1206
      mMajor = true;
1270
      mMajor = true;
1207
      mMinor = false;
1271
      mMinor = false;
1208
      mPatch = false;
1272
      mPatch = false;
1209
      mLimit = limit;
1273
      mLimit = limit;
-
 
1274
      mFixed = false;
1210
    }
1275
    }
1211
 
1276
 
1212
    /**sets mBuild false, mMajor false, mMinor true, mPatch false, mLimit false
1277
    /**sets mBuild false, mMajor false, mMinor true, mPatch false, mLimit false
1213
     */
1278
     */
1214
    void setMinor()
1279
    void setMinor()
Line 1217... Line 1282...
1217
      mBuild = false;
1282
      mBuild = false;
1218
      mMajor = false;
1283
      mMajor = false;
1219
      mMinor = true;
1284
      mMinor = true;
1220
      mPatch = false;
1285
      mPatch = false;
1221
      mLimit = false;
1286
      mLimit = false;
-
 
1287
      mFixed = false;
1222
    }
1288
    }
1223
 
1289
 
1224
    /**sets mBuild false, mMajor false, mMinor true, mPatch false, mLimit limit
1290
    /**sets mBuild false, mMajor false, mMinor true, mPatch false, mLimit limit
1225
     */
1291
     */
1226
    void setMinor( boolean limit )
1292
    void setMinor( boolean limit )
Line 1229... Line 1295...
1229
      mBuild = false;
1295
      mBuild = false;
1230
      mMajor = false;
1296
      mMajor = false;
1231
      mMinor = true;
1297
      mMinor = true;
1232
      mPatch = false;
1298
      mPatch = false;
1233
      mLimit = limit;
1299
      mLimit = limit;
-
 
1300
      mFixed = false;
1234
    }
1301
    }
1235
 
1302
 
1236
    /**sets mBuild false, mMajor false, mMinor false, mPatch true, mLimit false
1303
    /**sets mBuild false, mMajor false, mMinor false, mPatch true, mLimit false
1237
     */
1304
     */
1238
    void setPatch()
1305
    void setPatch()
Line 1241... Line 1308...
1241
      mBuild = false;
1308
      mBuild = false;
1242
      mMajor = false;
1309
      mMajor = false;
1243
      mMinor = false;
1310
      mMinor = false;
1244
      mPatch = true;
1311
      mPatch = true;
1245
      mLimit = false;
1312
      mLimit = false;
-
 
1313
      mFixed = false;
1246
    }
1314
    }
1247
 
1315
 
1248
    /**sets mBuild false, mMajor false, mMinor false, mPatch true, mLimit limit
1316
    /**sets mBuild false, mMajor false, mMinor false, mPatch true, mLimit limit
1249
     */
1317
     */
1250
    void setPatch( boolean limit )
1318
    void setPatch( boolean limit )
Line 1253... Line 1321...
1253
      mBuild = false;
1321
      mBuild = false;
1254
      mMajor = false;
1322
      mMajor = false;
1255
      mMinor = false;
1323
      mMinor = false;
1256
      mPatch = true;
1324
      mPatch = true;
1257
      mLimit = limit;
1325
      mLimit = limit;
-
 
1326
      mFixed = false;
1258
    }
1327
    }
1259
 
1328
 
1260
    /**sets mBuild false, mMajor false, mMinor false, mPatch false, mLimit true
1329
    /**sets mBuild false, mMajor false, mMinor false, mPatch false, mLimit true
1261
     */
1330
     */
1262
    void setLimit()
1331
    void setLimit()
Line 1265... Line 1334...
1265
      mBuild = false;
1334
      mBuild = false;
1266
      mMajor = false;
1335
      mMajor = false;
1267
      mMinor = false;
1336
      mMinor = false;
1268
      mPatch = false;
1337
      mPatch = false;
1269
      mLimit = true;
1338
      mLimit = true;
-
 
1339
      mFixed = false;
-
 
1340
    }
-
 
1341
 
-
 
1342
    /**sets parameters to indicate that the change type is Fixed. The version number is set by the user 
-
 
1343
     * and a ripple will not be calculated 
-
 
1344
     */ 
-
 
1345
    void setFixed()
-
 
1346
    {
-
 
1347
        mLogger.debug("setFixed");
-
 
1348
        mBuild = false;
-
 
1349
        mMajor = false;
-
 
1350
        mMinor = false;
-
 
1351
        mPatch = false;
-
 
1352
        mLimit = false;
-
 
1353
        mFixed = true;
-
 
1354
    }
-
 
1355
 
-
 
1356
    /** Sets parameters to indicate that the chnage type is not
-
 
1357
     *  known
-
 
1358
     *  
-
 
1359
     */
-
 
1360
    void setUnknown()
-
 
1361
    {
-
 
1362
        mUnknown = true;
1270
    }
1363
    }
1271
 
1364
 
1272
  }
1365
  }
1273
 
1366
 
1274
}
1367
}