/**
 * Copyright 2015 Red Hat, Inc. and/or its affiliates.
 *
 * Licensed under the Eclipse Public License version 1.0, available at
 * http://www.eclipse.org/legal/epl-v10.html
 */

package org.jboss.forge.addon.projects.facets;

import java.net.URL;
import java.net.URLClassLoader;

import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFacet;

/**
 * A {@link ProjectFacet} with the {@link Project}'s {@link ClassLoader}
 * 
 * @author <a href="ggastald@redhat.com">George Gastaldi</a>
 */
public interface ClassLoaderFacet extends ProjectFacet
{
   /**
    * Returns the {@link URLClassLoader} with the {@link URL}s that this project depends on.
    * 
    * WARNING: Remember to close this {@link URLClassLoader} when no longer in use.
    * <p/>
    * Leaving it open could introduce memory leaks.
    */
   URLClassLoader getClassLoader();

}

@@ -602,19 +602,17 @@
 Returns 
-the
+a
  %7B@link 
@@ -631,212 +631,777 @@
 er%7D 
-with the %7B@link URL%7Ds that this project depends on.%0A    * %0A    * WARNING: Remember to close this %7B@link URLClassLoader%7D when no longer in use.%0A    * %3Cp/%3E%0A    * Leaving it open could introduce memory leaks
+that encompasses all %7B@link Dependency%7D instances on which this project depends. This is the equivalent of class-loading the entire project classpath.%0A    * %0A    * WARNING: You *MUST* call %7B@link URLClassLoader#close()%7D when finished with this object. Failure to close this object upon completion will result in fatal memory leaks over time. If the scope of work is appropriate, consider using a try-with-resources block to encapsulate the operations and automatically clean up any ClassLoader resources.%0A    * %3Cp/%3E%0A    * IMPORTANT: You must also clean up and release any %7B@link Class%7D references that were produced by this %7B@link ClassLoader%7D. It is not enough to close this. Held %7B@link Class%7D references will keep the %7B@link ClassLoader%7D from being garbage collected
 .%0A  

Update ClassLoaderFacet JavaDoc