package org.handwerkszeug.mvnhack.repository.impl; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.util.LinkedHashSet; import java.util.Set; import java.util.logging.Level; import org.handwerkszeug.mvnhack.Constants; import org.handwerkszeug.mvnhack.repository.ArtifactBuilder; import org.handwerkszeug.mvnhack.repository.Configuration; import org.handwerkszeug.mvnhack.repository.Destination; import org.handwerkszeug.mvnhack.repository.Repository; public abstract class AbstractConfiguration implements Configuration { protected Set<Repository> repositories = new LinkedHashSet<Repository>(); protected Set<Destination> destinations = new LinkedHashSet<Destination>(); protected ArtifactBuilder builder = new StAXArtifactBuilder(); protected void addLocalRepository(File rep) { Constants.LOG.log(Level.INFO, "LocalRepository :{0}", rep.toString()); LocalRepository lr = new LocalRepository(rep, builder); addRepository(lr); addDestination(lr); } protected boolean validateURL(String url) { try { new URL(url); return true; } catch (MalformedURLException e) { return false; } } @Override public void addDestination(Destination destination) { this.destinations.add(destination); } @Override public void addRepository(Repository repository) { this.repositories.add(repository); } @Override public Set<Destination> getDestinations() { return this.destinations; } @Override public Set<Repository> getRepositories() { return this.repositories; } protected void load() { File cur = new File(".", Constants.DIR_REPOSITORY); if (cur.exists()) { addLocalRepository(cur); } StringBuilder stb = new StringBuilder(); stb.append(".m2"); stb.append('/'); stb.append(Constants.DIR_REPOSITORY); File usr = new File(System.getProperty("user.home"), stb.toString()); if (usr.exists()) { addLocalRepository(usr); } addRepository(new RemoteRepository(Constants.CENTRAL_REPOSITORY, builder)); } }