Skip to content

Instantly share code, notes, and snippets.

William Speirs wspeirs

Block or report user

Report or block wspeirs

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@wspeirs
wspeirs / BasicOptions1.java
Created Jan 18, 2013
Methods for creation an Option
View BasicOptions1.java
Options options = new Options();
// create the simple option without using the OptionBuilder
options.addOption("o", "opt", false, "An option, no args");
// simple help option using the builder
options.addOption(OptionBuilder.withLongOpt("help")
.create("h"));
// an option with a value separator, defaults to =
@wspeirs
wspeirs / BasicOptions2.java
Created Jan 18, 2013
Parsing a command line
View BasicOptions2.java
final GnuParser parser = new GnuParser();
final Options options = configureOptions();
// parse with the parser
CommandLine cmdLine = null;
try {
cmdLine = parser.parse(options, args);
} catch(ParseException e) {
e.printStackTrace();
return;
View BasicOptions3.java
// check to see if they need help
// notice we only use the short-version, but it checks both!
if(cmdLine.hasOption("h")) {
new HelpFormatter().printHelp("sop4j-cli", options);
return;
}
// check to see if they passed in an opt
// recommended to use the long version as it's more readable
if(cmdLine.hasOption("opt")) {
@wspeirs
wspeirs / Velocity1.java
Created Jan 20, 2013
Configuring the Velocity engine
View Velocity1.java
// create the velocity engine
final VelocityEngine velocity = new VelocityEngine();
// set the logger to our Log4J root logger
velocity.setProperty("runtime.log.logsystem.log4j.logger", "root");
// use the resource loader as it's easy with Maven's path setup
velocity.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
velocity.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
@wspeirs
wspeirs / Velocity2.java
Created Jan 20, 2013
Setting the Velocity context.
View Velocity2.java
// create the context to set all the variables
final VelocityContext context = new VelocityContext();
// setup the context
context.put("user", new UserBean("bill"));
context.put("site", "www.sop4j.com");
context.put("articles", Arrays.asList(new ArticleBean("Welcome"),
new ArticleBean("Parsing the Command Line"),
new ArticleBean("Document Templating or Mail Merge")));
@wspeirs
wspeirs / Velocity3.java
Created Jan 20, 2013
Merging Velocity context and template together.
View Velocity3.java
// get the template
final Template template = velocity.getTemplate("my_template.vm");
final StringWriter sw = new StringWriter();
// merge the template and context
template.merge(context, sw);
// print out the resulting document
System.out.println(sw.toString());
@wspeirs
wspeirs / my_template.vm
Created Jan 20, 2013
Velocity template
View my_template.vm
## this is a single-line comment in the template
Dear ${user.Name}- ## notice we use the formal directive here because we want the - right after the variable
This is an e-mail because you signed up for $site and we're really happy that you did.
#*
This is how you check to see if a value is null
This is also a multi-line comment
*#
#if( $message )
This special message won't be shown because our \$message is null
@wspeirs
wspeirs / merged
Created Jan 20, 2013
Merged template and context.
View merged
Dear Bill-
This is an e-mail because you signed up for www.sop4j.com and we're really happy that you did.
Here are 3 cool articles you can read:
- Welcome
- Parsing the Command Line
- Document Templating or Mail Merge
View Subscriber.java
@Subscribe
public void getIntegerEvent(Integer event) throws InterruptedException {
TimeUnit.MILLISECONDS.sleep(sleep);
System.out.println(System.currentTimeMillis() + ":\t" + name + " got " + event);
}
@wspeirs
wspeirs / SimpleStatistics.java
Created Nov 13, 2013
Simple statistics using commons-math3
View SimpleStatistics.java
final DescriptiveStatistics descriptiveStats = new DescriptiveStatistics(); // stores values
final SummaryStatistics summaryStats = new SummaryStatistics(); // doesn't store values
final Frequency frequency = new Frequency();
// add numbers into our stats
for(int i=0; i < NUM_VALUES; ++i) {
values[i] = rng.nextInt(MAX_VALUE);
descriptiveStats.addValue(values[i]);
summaryStats.addValue(values[i]);
You can’t perform that action at this time.