code: public static MavenDependencyExclusion createExclusion(final String canonicalForm) throws IllegalArgumentException,
          CoordinateParseException {
          if (canonicalForm == null || canonicalForm.length() == 0) {
              throw new IllegalArgumentException("canonical form is required");
          }
          final StringTokenizer tokenizer = new StringTokenizer(canonicalForm,
              String.valueOf(MavenGABaseImpl.SEPARATOR_COORDINATE));
          final String groupId;
          final String artifactId;
          try {
              groupId = tokenizer.nextToken();
              artifactId = tokenizer.nextToken();
          } catch (final NoSuchElementException nsee) {
              // Exception translate
              throw new CoordinateParseException("Canonical form must be \"groupId:artifactId\"; got: " + canonicalForm);
          }
          // Ensure there isn't *more* defined than we need
          if (tokenizer.hasMoreTokens()) {
              throw new CoordinateParseException("Canonical form must be \"groupId:artifactId\"; got: " + canonicalForm);
          }
          final MavenDependencyExclusion exclusion = createExclusion(groupId, artifactId);
          return exclusion;
      }
docs: Creates a new {@link MavenDependencyExclusion} instance from the specified, required canonical form in format
  {@code <groupId>:<artifactId>}
  
  @param canonicalForm A canonical form in format {@code <groupId>:<artifactId>}
  @return The new {@link MavenDependencyExclusion} instance.
  @throws IllegalArgumentException
  If the canonical form is not supplied
  @throws CoordinateParseException
  If the canonical form is not in the correct format