Skip to content

Commit

Permalink
Implement GradleMetadataFacet
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-wyluda committed Aug 11, 2013
1 parent 4d44285 commit 76914bf
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@
import java.util.Map;

import org.jboss.forge.addon.dependencies.Dependency;
import org.jboss.forge.addon.dependencies.builder.DependencyBuilder;
import org.jboss.forge.addon.facets.AbstractFacet;
import org.jboss.forge.addon.gradle.parser.GradleSourceUtil;
import org.jboss.forge.addon.gradle.projects.GradleFacet;
import org.jboss.forge.addon.gradle.projects.exceptions.UnremovableElementException;
import org.jboss.forge.addon.gradle.projects.model.GradleModel;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.facets.MetadataFacet;

Expand All @@ -33,82 +38,110 @@ public boolean isInstalled()
@Override
public String getProjectName()
{
// TODO Auto-generated method stub
return null;
return getGradleFacet().getModel().getName();
}

@Override
public void setProjectName(String name)
{
// TODO Auto-generated method stub

try
{
GradleModel model = getGradleFacet().getModel();
model.setName(name);
getGradleFacet().setModel(model);
}
catch (UnremovableElementException e)
{
// TODO Handle Gradle exceptions
e.printStackTrace();
}
}

@Override
public String getTopLevelPackage()
{
// TODO Auto-generated method stub
return null;
return getGradleFacet().getModel().getGroup();
}

@Override
public void setTopLevelPackage(String groupId)
{
// TODO Auto-generated method stub
try
{
GradleModel model = getGradleFacet().getModel();
model.setGroup(groupId);
getGradleFacet().setModel(model);
}
catch (UnremovableElementException e)
{
// TODO Handle Gradle exceptions
e.printStackTrace();
}
}

@Override
public String getProjectVersion()
{
// TODO Auto-generated method stub
return null;
return getGradleFacet().getModel().getVersion();
}

@Override
public void setProjectVersion(String version)
{
// TODO Auto-generated method stub
try
{
GradleModel model = getGradleFacet().getModel();
model.setVersion(version);
getGradleFacet().setModel(model);
}
catch (UnremovableElementException e)
{
// TODO Handle Gradle exceptions
e.printStackTrace();
}
}

@Override
public Dependency getOutputDependency()
{
// TODO Auto-generated method stub
return null;
return DependencyBuilder.create().setGroupId(getTopLevelPackage()).setArtifactId(getProjectName())
.setVersion(getProjectVersion());
}

@Override
public Map<String, String> getEffectiveProperties()
{
// TODO Auto-generated method stub
return null;
return getGradleFacet().getModel().getProperties();
}

@Override
public Map<String, String> getDirectProperties()
{
// TODO Auto-generated method stub
return null;
return GradleSourceUtil.getDirectProperties(getGradleFacet().getModel().getScript());
}

@Override
public String getEffectiveProperty(String name)
{
// TODO Auto-generated method stub
return null;
return getEffectiveProperties().get(name);
}

@Override
public String getDirectProperty(String name)
{
// TODO Auto-generated method stub
return null;
return getDirectProperties().get(name);
}

@Override
public void setProperty(String name, String value)
{
// TODO Auto-generated method stub

GradleModel model = getGradleFacet().getModel();
model.setProperty(name, value);
getGradleFacet().setModel(model);
}

private GradleFacet getGradleFacet()
{
return getFaceted().getFacet(GradleFacet.class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ public GradleModelImpl(GradleModel original)
this.plugins = Lists.newArrayList(original.getPlugins());
this.repositories = Lists.newArrayList(original.getRepositories());
this.sourceSets = Lists.newArrayList(original.getSourceSets());
this.properties = Maps.newHashMap(original.getProperties());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,33 +131,55 @@ public void testGetOutputDependency()
}

@Test
public void testGetProperties()
public void testGetEffectiveProperties()
{
Map<String, String> props = facet.getEffectiveProperties();

assertEquals("https://github.com/forge/addon-gradle", props.get("githubRepo"));
assertEquals("JBoss", props.get("organization"));
assertEquals(".45", props.get("someVersion"));
assertNull(props.get("version"));
}

@Test
public void testGetEffectiveProperty()
{
assertEquals("https://github.com/forge/addon-gradle", facet.getEffectiveProperty("githubRepo"));
assertEquals("JBoss", facet.getEffectiveProperty("organization"));
assertEquals(".45", facet.getEffectiveProperty("someVersion"));
assertNull(facet.getEffectiveProperty("group"));
}

@Test
public void testGetDirectProperties()
{
Map<String, String> props = facet.getDirectProperties();

assertEquals("https://github.com/forge/addon-gradle", props.get("githubRepo"));
assertEquals("JBoss", props.get("organization"));
assertNull(props.get("someVersion"));
assertNull(props.get("version"));
}

@Test
public void testGetProperty()
public void testGetDirectProperty()
{
assertEquals("https://github.com/forge/addon-gradle", facet.getDirectProperty("githubRepo"));
assertEquals("JBoss", facet.getDirectProperty("organization"));
assertNull(facet.getDirectProperty("someVersion"));
assertNull(facet.getDirectProperty("group"));
}

@Test
public void testSetProperty()
{
assertEquals("JBoss", facet.getDirectProperty("organization"));
assertEquals("JBoss", facet.getEffectiveProperty("organization"));

facet.setProperty("organization", "EJB-OSS");

Project sameProject = projectProvider.findProject();
MetadataFacet sameFacet = sameProject.getFacet(MetadataFacet.class);

assertEquals("EJB-OSS", sameFacet.getDirectProperty("organization"));
assertEquals("EJB-OSS", sameFacet.getEffectiveProperty("organization"));
}
}
6 changes: 5 additions & 1 deletion tests/src/test/resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ archiveName 'archiveX'
ext.githubRepo = 'https://github.com/forge/addon-gradle'
ext.organization = 'JBoss'

ext.someVersion = '.45'
def dynamicProperty = {
project.ext.someVersion = '.45'
}

dynamicProperty()

sourceSets {
main {
Expand Down

0 comments on commit 76914bf

Please sign in to comment.