Subversion Repositories DevTools

Rev

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

Rev 908 Rev 910
Line 97... Line 97...
97
   * -1 not reproducible
97
   * -1 not reproducible
98
   * -2 not reproducible on the build platforms configured for this release
98
   * -2 not reproducible on the build platforms configured for this release
99
   * -3 do not ripple
99
   * -3 do not ripple
100
   * -4 directly dependent on package versions not in the baseline
100
   * -4 directly dependent on package versions not in the baseline
101
   * -5 indirectly dependent on package versions which are not reproducible
101
   * -5 indirectly dependent on package versions which are not reproducible
102
   *    because of -1, -2 (escrow), -3 (daemon), -4
102
   *    because of -1, -2 (escrow), -3 (daemon), -4, -6
-
 
103
   * -6 circular dependency
103
   * @attribute
104
   * @attribute
104
   */
105
   */
105
  int mBuildFile = 0;
106
  int mBuildFile = 0;
106
 
107
 
107
  /**build dependencies by package
108
  /**build dependencies by package
Line 221... Line 222...
221
  /**when true will trigger source control interaction eg labelling
222
  /**when true will trigger source control interaction eg labelling
222
   * @attribute
223
   * @attribute
223
   */
224
   */
224
  public boolean mRequiresSourceControlInteraction = true;
225
  public boolean mRequiresSourceControlInteraction = true;
225
 
226
 
-
 
227
  /**when true has been checked for circular dependency
-
 
228
   * @attribute
-
 
229
   */
-
 
230
  boolean mCheckedCircularDependency = false;
-
 
231
 
-
 
232
  /**when true has circular dependency
-
 
233
   * @attribute
-
 
234
   */
-
 
235
  boolean mHasCircularDependency = false;
-
 
236
 
226
  /**constructor
237
  /**constructor
227
   */
238
   */
228
  Package(int pv_id, String pkg_name, String v_ext, String alias, 
239
  Package(int pv_id, String pkg_name, String v_ext, String alias, 
229
          String pkg_label, String src_path, char change_type, char ripple_field)
240
          String pkg_label, String src_path, char change_type, char ripple_field)
230
  {
241
  {
Line 1066... Line 1077...
1066
    }
1077
    }
1067
    
1078
    
1068
    releaseManager.markDaemonInstCompletedConnect(mTestBuildInstruction);
1079
    releaseManager.markDaemonInstCompletedConnect(mTestBuildInstruction);
1069
  }
1080
  }
1070
  
1081
  
-
 
1082
  /**returns true if the package has a circular dependency
-
 
1083
   */
-
 
1084
  public boolean hasCircularDependency(RippleEngine ripEng)
-
 
1085
  {
-
 
1086
    mLogger.debug("hasCircularDependency");
-
 
1087
    boolean retVal = detectCircularDependency( mAlias, ripEng );
-
 
1088
    mLogger.info("hasCircularDependency returned " + retVal);
-
 
1089
    return retVal;
-
 
1090
  }
-
 
1091
  
-
 
1092
  /**returns true if the package has a circular dependency
-
 
1093
   */
-
 
1094
  public boolean detectCircularDependency(String alias, RippleEngine ripEng)
-
 
1095
  {
-
 
1096
    mLogger.debug("detectCircularDependency");
-
 
1097
    boolean retVal = false;
-
 
1098
    
-
 
1099
    // if this package has yet to be checked for circular dependency
-
 
1100
    if ( !mCheckedCircularDependency )
-
 
1101
    {
-
 
1102
      for (Iterator<String> it2 = mDependencyCollection.iterator(); it2.hasNext(); )
-
 
1103
      {
-
 
1104
        String dependencyAlias = it2.next();
-
 
1105
        
-
 
1106
        // check its direct dependencies for an alias match
-
 
1107
        if ( alias.compareTo( dependencyAlias ) == 0 )
-
 
1108
        {
-
 
1109
          retVal = true;
-
 
1110
          break;
-
 
1111
        }
-
 
1112
        
-
 
1113
        Package dependency = ripEng.findPackage( dependencyAlias );
-
 
1114
        
-
 
1115
        // check its indirect dependencies for an alias match
-
 
1116
        if ( dependency.detectCircularDependency(alias, ripEng) )
-
 
1117
        {
-
 
1118
          retVal = true;
-
 
1119
          break;
-
 
1120
        }
-
 
1121
      }
-
 
1122
      // mark the check complete
-
 
1123
      mCheckedCircularDependency = true;
-
 
1124
      // persist the circular dependency outcome
-
 
1125
      mHasCircularDependency = retVal;
-
 
1126
    }
-
 
1127
    else
-
 
1128
    {
-
 
1129
      // return the persisted circular dependency outcome
-
 
1130
      retVal = mHasCircularDependency;
-
 
1131
    }
-
 
1132
    mLogger.info("detectCircularDependency 2 returned " + retVal);
-
 
1133
    return retVal;
-
 
1134
  }
-
 
1135
  
1071
  /**entity class supporting the ERG version numbering standard:
1136
  /**entity class supporting the ERG version numbering standard:
1072
   * <major>.<minor>.<patch/build>
1137
   * <major>.<minor>.<patch/build>
1073
   * patch/build is at least a 4 digit number whose last 3 digits represent the build
1138
   * patch/build is at least a 4 digit number whose last 3 digits represent the build
1074
   */
1139
   */
1075
  public class VersionNumberingStandard
1140
  public class VersionNumberingStandard