Skip to content

Commit

Permalink
updating logging and unit tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
schmoli committed Jun 18, 2015
1 parent 03519bf commit 500f513
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,38 @@ public class ChangeAssemblyVersion extends Builder {
private final String assemblyFile;
private final String regexPattern;
private final String replacementPattern;
private final String assemblyTitle;
private final String assemblyDescription;
private final String assemblyCompany;
private final String assemblyProduct;
private final String assemblyCopyright;
private final String assemblyTrademark;
private final String assemblyCulture;

@DataBoundConstructor
public ChangeAssemblyVersion(String versionPattern, String assemblyFile, String regexPattern, String replacementPattern) {
public ChangeAssemblyVersion(String versionPattern,
String assemblyFile,
String regexPattern,
String replacementPattern,
String assemblyTitle,
String assemblyDescription,
String assemblyCompany,
String assemblyProduct,
String assemblyCopyright,
String assemblyTrademark,
String assemblyCulture
) {
this.versionPattern = versionPattern;
this.assemblyFile = assemblyFile;
this.regexPattern = regexPattern;
this.replacementPattern = replacementPattern;
this.assemblyTitle = assemblyTitle;
this.assemblyDescription = assemblyDescription;
this.assemblyCompany = assemblyCompany;
this.assemblyProduct = assemblyProduct;
this.assemblyCopyright = assemblyCopyright;
this.assemblyTrademark = assemblyTrademark;
this.assemblyCulture = assemblyCulture;
}

public String getVersionPattern() {
Expand All @@ -48,7 +73,35 @@ public String getRegexPattern() {
public String getReplacementPattern() {
return this.replacementPattern;
}

public String getAssemblyTitle() {
return this.assemblyTitle;
}

public String getAssemblyDescription() {
return this.assemblyDescription;
}

public String getAssemblyCompany() {
return this.assemblyCompany;
}

public String getAssemblyProduct() {
return this.assemblyProduct;
}

public String getAssemblyCopyright() {
return this.assemblyCopyright;
}

public String getAssemblyTrademark() {
return this.assemblyTrademark;
}

public String getAssemblyCulture() {
return this.assemblyCulture;
}

/**
*
* The perform method is gonna search all the file named "Assemblyinfo.cs"
Expand Down Expand Up @@ -76,10 +129,29 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListener lis
listener.getLogger().println("Please provide a valid version pattern.");
return false;
}
listener.getLogger().println(String.format("Changing the file(s) %s to version : %s", assemblyGlob, version));
listener.getLogger().println(String.format("Changing File(s): %s", assemblyGlob));
listener.getLogger().println(String.format("Assembly Title : %s", this.assemblyTitle));
listener.getLogger().println(String.format("Assembly Description : %s", this.assemblyDescription));
listener.getLogger().println(String.format("Assembly Company : %s", this.assemblyCompany));
listener.getLogger().println(String.format("Assembly Product : %s", this.assemblyProduct));
listener.getLogger().println(String.format("Assembly Copyright : %s", this.assemblyCopyright));
listener.getLogger().println(String.format("Assembly Trademark : %s", this.assemblyTrademark));
listener.getLogger().println(String.format("Assembly Culture : %s", this.assemblyCulture));

for (FilePath f : build.getWorkspace().list(assemblyGlob))
{
new ChangeTools(f, this.regexPattern, this.replacementPattern).Replace(version, listener);
// Update the AssemblyVerion and AssemblyFileVersion
new ChangeTools(f, this.regexPattern, this.replacementPattern).Replace(version, listener);

// Set new things, empty string being ok for them.
// TODO: Would we need a regex for these or just blast as we are doing now?
new ChangeTools(f, "AssemblyTitle[(]\".*\"[)]", "AssemblyTitle(\"%s\")").Replace(this.assemblyTitle, listener);
new ChangeTools(f, "AssemblyDescription[(]\".*\"[)]", "AssemblyDescription(\"%s\")").Replace(this.assemblyDescription, listener);
new ChangeTools(f, "AssemblyCompany[(]\".*\"[)]", "AssemblyCompany(\"%s\")").Replace(this.assemblyCompany, listener);
new ChangeTools(f, "AssemblyProduct[(]\".*\"[)]", "AssemblyProduct(\"%s\")").Replace(this.assemblyProduct, listener);
new ChangeTools(f, "AssemblyCopyright[(]\".*\"[)]", "AssemblyCopyright(\"%s\")").Replace(this.assemblyCopyright, listener);
new ChangeTools(f, "AssemblyTrademark[(]\".*\"[)]", "AssemblyTrademark(\"%s\")").Replace(this.assemblyTrademark, listener);
new ChangeTools(f, "AssemblyCulture[(]\".*\"[)]", "AssemblyCulture(\"%s\")").Replace(this.assemblyCulture, listener);
}
} catch (Exception ex) {
StringWriter sw = new StringWriter();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ public class ChangeTools {
}
}

public void Replace(String version, BuildListener listener) throws IOException, InterruptedException {
public void Replace(String replacement, BuildListener listener) throws IOException, InterruptedException {
String content = file.readToString();
listener.getLogger().println(String.format("Updating file : %s, Version : %s", file.getRemote(), version));
content = content.replaceAll(regexPattern, String.format(replacementPattern, version));
listener.getLogger().println(String.format("Updating file : %s", file.getRemote()));
listener.getLogger().println(String.format("Updating file : %s, Replacement : %s", file.getRemote(), replacement));
content = content.replaceAll(regexPattern, String.format(replacementPattern, replacement));
//listener.getLogger().println(String.format("Updating file : %s", file.getRemote()));
file.write(content, null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@
<f:entry title="${%Assembly Version}" field="versionPattern">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Title}" field="assemblyTitle">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Description}" field="assemblyDescription">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Company}" field="assemblyCompany">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Product}" field="assemblyProduct">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Copyright}" field="assemblyCopyright">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Trademark}" field="assemblyTrademark">
<f:textbox/>
</f:entry>
<f:entry title="${%Assembly Culture}" field="assemblyCulture">
<f:textbox/>
</f:entry>
<f:entry title="${%FileName}" field="assemblyFile">
<f:textbox/>
</f:entry>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,34 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher,
BuildListener listener) throws InterruptedException, IOException {
build.getWorkspace().child("AssemblyVersion.cs").write("using System.Reflection;\n" +
"\n" +
"[assembly: AssemblyTitle(\"\")]\n" +
"[assembly: AssemblyDescription(\"\")]\n" +
"[assembly: AssemblyCompany(\"\")]\n" +
"[assembly: AssemblyProduct(\"\")]\n" +
"[assembly: AssemblyCopyright(\"\")]\n" +
"[assembly: AssemblyTrademark(\"\")]\n" +
"[assembly: AssemblyCulture(\"\")]\n" +
"[assembly: AssemblyVersion(\"13.1.1.976\")]", "UTF-8");
return true;
}
});
ChangeAssemblyVersion builder = new ChangeAssemblyVersion("$PREFIX.${BUILD_NUMBER}", "AssemblyVersion.cs", "", "");
ChangeAssemblyVersion builder = new ChangeAssemblyVersion("$PREFIX.${BUILD_NUMBER}", "AssemblyVersion.cs", "", "", "MyTitle", "MyDescription", "MyCompany", "MyProduct", "MyCopyright", "MyTrademark", "MyCulture");
project.getBuildersList().add(builder);
FreeStyleBuild build = project.scheduleBuild2(0).get();

//String s = FileUtils.readFileToString(build.getLogFile());
String content = build.getWorkspace().child("AssemblyVersion.cs").readToString();
assertTrue(content.contains("AssemblyVersion(\"1.1.0."));

// Check that we update additional assembly info
assertTrue(content.contains("AssemblyTitle(\"MyTitle"));
assertTrue(content.contains("AssemblyDescription(\"MyDescription"));
assertTrue(content.contains("AssemblyCompany(\"MyCompany"));
assertTrue(content.contains("AssemblyProduct(\"MyProduct"));
assertTrue(content.contains("AssemblyCopyright(\"MyCopyright"));
assertTrue(content.contains("AssemblyTrademark(\"MyTrademark"));
assertTrue(content.contains("AssemblyCulture(\"MyCulture"));

assertTrue(builder.getVersionPattern().equals("$PREFIX.${BUILD_NUMBER}"));
}

Expand All @@ -96,7 +113,7 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher,
return true;
}
});
ChangeAssemblyVersion builder = new ChangeAssemblyVersion("$PREFIX.${BUILD_NUMBER}", "", "", "");
ChangeAssemblyVersion builder = new ChangeAssemblyVersion("$PREFIX.${BUILD_NUMBER}", "", "", "", "", "", "", "", "", "", "");
project.getBuildersList().add(builder);
FreeStyleBuild build = project.scheduleBuild2(0).get();

Expand Down

0 comments on commit 500f513

Please sign in to comment.