code: public static PackagingType fromCache(String typeName) throws IllegalArgumentException {
  
          if (typeName == null || typeName.length() == 0) {
              throw new IllegalArgumentException("Packaging type must not be null nor empty.");
          }
          // return from cache if available
          if(cache.containsKey(typeName)) {
              return cache.get(typeName);
          }
          return null;
      }
docs: Returns a {@link PackagingType} object from cache. Objects registered into cache by default are:
  <pre><code>
  PackagingType POM = new PackagingType("pom");
  PackagingType JAR = new PackagingType("jar");
  PackagingType TEST_JAR = new PackagingType("test-jar", "jar", "tests");
  PackagingType MAVEN_PLUGIN = new PackagingType("maven-plugin", "jar", "");
  PackagingType EJB_CLIENT = new PackagingType("ejb-client", "jar", "client");
  PackagingType EJB = new PackagingType("ejb", "jar", "");
  PackagingType WAR = new PackagingType("war");
  PackagingType EAR = new PackagingType("ear");
  PackagingType RAR = new PackagingType("rar");
  PackagingType PAR = new PackagingType("par");
  PackagingType JAVADOC = new PackagingType("javadoc", "jar", "javadoc");
  PackagingType JAVA_SOURCE = new PackagingType("java-source", "jar", "sources");
  </code></pre>
  
  @param typeName
  String name of the packaging type
  @return Corresponding PackagingType object retrieved from cache, otherwise null
  @throws IllegalArgumentException
  Thrown if typeName is {@code null} or empty