read provider implementations from classpath

This commit is contained in:
Sebastian Sdorra
2012-07-15 16:23:47 +02:00
parent ac5fab3e8d
commit 5dd684973a
2 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1 @@
sonia.scm.repository.client.spi.GitRepositoryClientFactoryProvider

View File

@@ -33,13 +33,18 @@ package sonia.scm.repository.client.api;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.collect.Lists;
import sonia.scm.repository.client.spi.RepositoryClientFactoryProvider;
import sonia.scm.util.ServiceUtil;
//~--- JDK imports ------------------------------------------------------------
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
*
* @author Sebastian Sdorra
@@ -48,6 +53,16 @@ import java.io.IOException;
public final class RepositoryClientFactory
{
/**
* Constructs ...
*
*/
public RepositoryClientFactory()
{
this.providers =
ServiceUtil.getServices(RepositoryClientFactoryProvider.class);
}
/**
* Constructs ...
*
@@ -109,6 +124,24 @@ public final class RepositoryClientFactory
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
public Iterable<String> getAvailableTypes()
{
List<String> types = Lists.newArrayList();
for (RepositoryClientFactoryProvider provider : providers)
{
types.add(provider.getType());
}
return types;
}
/**
* Method description
*