Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / 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 / 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 / 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.