Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.bazaarvoice.ostrich.examples.dictionary.user;
  
 
 import java.io.File;
 
 public class DictionaryUser {
     private static final Logger LOG = LoggerFactory.getLogger(DictionaryUser.class);
 
     private static final CharMatcher LETTER = CharMatcher.inRange('a''z').or(CharMatcher.inRange('A''Z'));
 
     private final DictionaryService _service;
 
     public DictionaryUser(DictionaryService service) {
          = service;
     }
 
     public void spellCheck(File filethrows IOException {
         .info("Spell checking file: {}"file);
         Files.readLines(file.new LineProcessor<Void>() {
             @Override
             public boolean processLine(String linethrows IOException {
                 for (String word : Splitter.on(.).split(line)) {
                     // Discard punctuation, numbers, etc.
                     word = .retainFrom(word);
                     if (!word.isEmpty()) {
                         spellCheck(word);
                     }
                 }
                 return true;
             }
 
             @Override
             public Void getResult() {
                 return null;
             }
         });
     }
 
     public void spellCheck(String word) {
         try {
             if (.contains(word.toLowerCase())) {
                 .info("ok: {}"word);
             } else {
                 .info("MISSPELLED: {}"word);
             }
         } catch (Exception e) {
             .warn("word:{}, {}"worde);
         }
 
         try {
             Thread.sleep(10);
         } catch(InterruptedException e) {
             // ignored
         }
     }
 
     public static void main(String[] argsthrows Exception {
         Namespace parsedArgs = parseCommandLine(args);
 
         // Load the config.yaml file specified as the first argument.
         DictionaryConfiguration config = loadConfigFile(parsedArgs.getString("config-file"));
 
         CuratorFramework curator = config.getZooKeeperConfiguration().newCurator();
         curator.start();
 
         // Connection caching is optional, but included here for the sake of demonstration.
        ServiceCachingPolicy cachingPolicy = new ServiceCachingPolicyBuilder()
                .withMaxNumServiceInstances(10)
                .withMaxNumServiceInstancesPerEndPoint(1)
                .withMaxServiceInstanceIdleTime(5, .)
                .build();
        // The service is partitioned, but partition filtering is configured by the ServiceFactory in this case
        // when the builder calls its configure() method.
        JerseyClientConfiguration httpClientConfiguration = config.getHttpClientConfiguration();
        MetricRegistry metrics = new MetricRegistry();
        DictionaryServiceFactory serviceFactory = new DictionaryServiceFactory(httpClientConfigurationmetrics);
        DictionaryService service = ServicePoolBuilder.create(DictionaryService.class)
                .withServiceFactory(serviceFactory)
                .withHostDiscovery(new ZooKeeperHostDiscovery(curatorserviceFactory.getServiceName(), metrics))
                .withMetricRegistry(metrics)
                .withCachingPolicy(cachingPolicy)
                .buildProxy(new ExponentialBackoffRetry(5, 50, 1000, .));
        // If using Yammer Metrics or running in Dropwizard (which includes Yammer Metrics), you may want a health
        // check that pings a service you depend on. This will register a simple check that will confirm the service
        // pool contains at least one healthy end point.
        HealthCheckRegistry healthChecks = new HealthCheckRegistry();
        healthChecks.register("dictionary-user", ContainsHealthyEndPointCheck.forProxy(service));
        DictionaryUser user = new DictionaryUser(service);
        for (String wordFile : parsedArgs.<String>getList("word-file")) {
            user.spellCheck(new File(wordFile));
        }
        ServicePoolProxies.close(service);
        Closeables.close(curatortrue);
    }
    private static Namespace parseCommandLine(String[] argsthrows ArgumentParserException {
        String usage = "java -jar " + new JarLocation(DictionaryUser.class);
        ArgumentParser argParser = ArgumentParsers.newArgumentParser(usage).defaultHelp(true);
        argParser.addArgument("config-file").nargs("?").help("yaml configuration file");
        argParser.addArgument("word-file").nargs("+").help("one or more files containing words");
        return argParser.parseArgs(args);
    }
    private static DictionaryConfiguration loadConfigFile(String configFile)
            throws IOExceptionConfigurationException {
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        ConfigurationFactory<DictionaryConfigurationconfigFactory = new ConfigurationFactory<>(
                DictionaryConfiguration.classvalidator, Jackson.newObjectMapper(), "dictionary"
        );
        if (configFile != null) {
            return configFactory.build(new File(configFile));
        } else {
            return configFactory.build();
        }
    }
New to GrepCode? Check out our FAQ X