Skip to content

Commit

Permalink
AddonManager now avoids updating SNAPSHOT dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Oct 11, 2013
1 parent 034c92c commit e77923b
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public void testAddonsCanReferenceDependenciesInOtherRepositories() throws IOExc
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);

AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver, false);
AddonManager manager = new AddonManagerImpl(furnace, resolver);

AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
Expand Down Expand Up @@ -137,7 +137,7 @@ public void testAddonsDontFailIfDuplicatedInOtherRepositories() throws IOExcepti
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);

AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver, false);
AddonManager manager = new AddonManagerImpl(furnace, resolver);

AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public void testAddonsSharedIfSubgraphEquivalent() throws IOException, Interrupt
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);

AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver, false);
AddonManager manager = new AddonManagerImpl(furnace, resolver);

AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
Expand Down Expand Up @@ -153,7 +153,7 @@ public void testAddonsDuplicatedIfSubgraphDiffers() throws IOException, Interrup
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver, false);
AddonManager manager = new AddonManagerImpl(furnace, resolver);

AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,26 +41,11 @@ public class AddonManagerImpl implements AddonManager
{
private final Furnace furnace;
private final AddonDependencyResolver resolver;
private final boolean updateSnapshotDependencies;

public AddonManagerImpl(final Furnace forge, final AddonDependencyResolver resolver)
{
this.furnace = forge;
this.resolver = resolver;
this.updateSnapshotDependencies = true;
}

/**
* Used by Arquillian
*
* @param updateDependencies if forge should care about updating SNAPSHOT dependencies
*/
public AddonManagerImpl(final Furnace forge, final AddonDependencyResolver resolver,
boolean updateSnapshotDependencies)
{
this.furnace = forge;
this.resolver = resolver;
this.updateSnapshotDependencies = updateSnapshotDependencies;
}

@Override
Expand Down Expand Up @@ -163,21 +148,14 @@ private AddonActionRequest createRequest(final AddonInfo requestedAddonInfo, fin
AddonId addon = addonInfo.getAddon();
if (installedAddons.containsKey(addon))
{
// Already contains the installed addon. Update ONLY if the version is SNAPSHOT
if (Versions.isSnapshot(addonInfo.getAddon().getVersion()) && updateSnapshotDependencies)
// Already contains the installed addon. Update ONLY if the version is SNAPSHOT and if it is the requested
// addon
if (Versions.isSnapshot(addonInfo.getAddon().getVersion()) && addonInfo.equals(requestedAddonInfo))
{
AddonRepository addonRepository = installedAddons.get(addon);
if (repository.equals(addonRepository))
{
// Update only if it is the requested addon
if (addonInfo.equals(requestedAddonInfo))
{
request = createUpdateRequest(addonInfo, addonInfo, repository, furnace);
}
else
{
request = null;
}
request = createUpdateRequest(addonInfo, addonInfo, repository, furnace);
}
else
{
Expand All @@ -203,7 +181,7 @@ private AddonActionRequest createRequest(final AddonInfo requestedAddonInfo, fin
}
if (differentVersionEntry != null)
{
// TODO: Use Lincoln's new Version/Versions class
//TODO: Review condition below
if (differentVersionEntry.getKey().getVersion().toString().compareTo(addon.getVersion().toString()) < 0)
{
if (repository.equals(differentVersionEntry.getValue()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public void execute() throws MojoExecutionException, MojoFailureException
}
AddonRepository repository = forge.addRepository(AddonRepositoryMode.MUTABLE, addonRepository);
AddonDependencyResolver addonResolver = new MavenAddonDependencyResolver(this.classifier);
AddonManager addonManager = new AddonManagerImpl(forge, addonResolver, false);
AddonManager addonManager = new AddonManagerImpl(forge, addonResolver);

for (String addonId : addonIds)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public void testAddonsLoadAPIClassesFromBootpathJAR() throws IOException, Except
furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);

AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver, false);
AddonManager manager = new AddonManagerImpl(furnace, resolver);

AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ else if (archive instanceof ForgeRemoteAddon)
{
ForgeRemoteAddon remoteAddon = (ForgeRemoteAddon) archive;
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager addonManager = new AddonManagerImpl(runnable.furnace, resolver, false);
AddonManager addonManager = new AddonManagerImpl(runnable.furnace, resolver);

AddonRepository target = selectTargetRepository(archive);
addonManager.install(remoteAddon.getAddonId(), target).perform();
Expand Down

0 comments on commit e77923b

Please sign in to comment.