Example usage for org.apache.commons.codec.digest DigestUtils sha1Hex

List of usage examples for org.apache.commons.codec.digest DigestUtils sha1Hex

Introduction

In this page you can find the example usage for org.apache.commons.codec.digest DigestUtils sha1Hex.

Prototype

public static String sha1Hex(String data) 

Source Link

Usage

From source file:org.apache.pulsar.client.util.ConsumerName.java

public static String generateRandomName() {
    return DigestUtils.sha1Hex(UUID.randomUUID().toString()).substring(0, 5);
}

From source file:org.apache.pulsar.testclient.ManagedLedgerWriter.java

public static void main(String[] args) throws Exception {

    final Arguments arguments = new Arguments();
    JCommander jc = new JCommander(arguments);
    jc.setProgramName("pulsar-perf-producer");

    try {//from  w w w .  j  av  a 2 s .  c  om
        jc.parse(args);
    } catch (ParameterException e) {
        System.out.println(e.getMessage());
        jc.usage();
        System.exit(-1);
    }

    if (arguments.help) {
        jc.usage();
        System.exit(-1);
    }

    arguments.testTime = TimeUnit.SECONDS.toMillis(arguments.testTime);

    // Dump config variables
    ObjectMapper m = new ObjectMapper();
    ObjectWriter w = m.writerWithDefaultPrettyPrinter();
    log.info("Starting Pulsar managed-ledger perf writer with config: {}", w.writeValueAsString(arguments));

    byte[] payloadData = new byte[arguments.msgSize];
    ByteBuf payloadBuffer = PooledByteBufAllocator.DEFAULT.directBuffer(arguments.msgSize);
    payloadBuffer.writerIndex(arguments.msgSize);

    // Now processing command line arguments
    String managedLedgerPrefix = "test-" + DigestUtils.sha1Hex(UUID.randomUUID().toString()).substring(0, 5);

    ClientConfiguration bkConf = new ClientConfiguration();
    bkConf.setUseV2WireProtocol(true);
    bkConf.setAddEntryTimeout(30);
    bkConf.setReadEntryTimeout(30);
    bkConf.setThrottleValue(0);
    bkConf.setNumChannelsPerBookie(arguments.maxConnections);
    bkConf.setZkServers(arguments.zookeeperServers);

    ManagedLedgerFactoryConfig mlFactoryConf = new ManagedLedgerFactoryConfig();
    mlFactoryConf.setMaxCacheSize(0);
    ManagedLedgerFactory factory = new ManagedLedgerFactoryImpl(bkConf, mlFactoryConf);

    ManagedLedgerConfig mlConf = new ManagedLedgerConfig();
    mlConf.setEnsembleSize(arguments.ensembleSize);
    mlConf.setWriteQuorumSize(arguments.writeQuorum);
    mlConf.setAckQuorumSize(arguments.ackQuorum);
    mlConf.setMinimumRolloverTime(10, TimeUnit.MINUTES);
    mlConf.setMetadataEnsembleSize(arguments.ensembleSize);
    mlConf.setMetadataWriteQuorumSize(arguments.writeQuorum);
    mlConf.setMetadataAckQuorumSize(arguments.ackQuorum);
    mlConf.setDigestType(arguments.digestType);
    mlConf.setMaxSizePerLedgerMb(2048);

    List<CompletableFuture<ManagedLedger>> futures = new ArrayList<>();

    for (int i = 0; i < arguments.numManagedLedgers; i++) {
        String name = String.format("%s-%03d", managedLedgerPrefix, i);
        CompletableFuture<ManagedLedger> future = new CompletableFuture<>();
        futures.add(future);
        factory.asyncOpen(name, mlConf, new OpenLedgerCallback() {

            @Override
            public void openLedgerComplete(ManagedLedger ledger, Object ctx) {
                future.complete(ledger);
            }

            @Override
            public void openLedgerFailed(ManagedLedgerException exception, Object ctx) {
                future.completeExceptionally(exception);
            }
        }, null);
    }

    List<ManagedLedger> managedLedgers = futures.stream().map(CompletableFuture::join)
            .collect(Collectors.toList());

    log.info("Created {} managed ledgers", managedLedgers.size());

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            printAggregatedStats();
        }
    });

    Collections.shuffle(managedLedgers);
    AtomicBoolean isDone = new AtomicBoolean();

    List<List<ManagedLedger>> managedLedgersPerThread = Lists.partition(managedLedgers,
            Math.max(1, managedLedgers.size() / arguments.numThreads));

    for (int i = 0; i < arguments.numThreads; i++) {
        List<ManagedLedger> managedLedgersForThisThread = managedLedgersPerThread.get(i);
        int nunManagedLedgersForThisThread = managedLedgersForThisThread.size();
        long numMessagesForThisThread = arguments.numMessages / arguments.numThreads;
        int maxOutstandingForThisThread = arguments.maxOutstanding;

        executor.submit(() -> {
            try {
                final double msgRate = arguments.msgRate / (double) arguments.numThreads;
                final RateLimiter rateLimiter = RateLimiter.create(msgRate);

                // Acquire 1 sec worth of messages to have a slower ramp-up
                rateLimiter.acquire((int) msgRate);
                final long startTime = System.currentTimeMillis();

                final Semaphore semaphore = new Semaphore(maxOutstandingForThisThread);

                final AddEntryCallback addEntryCallback = new AddEntryCallback() {
                    @Override
                    public void addComplete(Position position, Object ctx) {
                        long sendTime = (Long) (ctx);
                        messagesSent.increment();
                        bytesSent.add(payloadData.length);

                        long latencyMicros = NANOSECONDS.toMicros(System.nanoTime() - sendTime);
                        recorder.recordValue(latencyMicros);
                        cumulativeRecorder.recordValue(latencyMicros);

                        semaphore.release();
                    }

                    @Override
                    public void addFailed(ManagedLedgerException exception, Object ctx) {
                        log.warn("Write error on message", exception);
                        System.exit(-1);
                    }
                };

                // Send messages on all topics/producers
                long totalSent = 0;
                while (true) {
                    for (int j = 0; j < nunManagedLedgersForThisThread; j++) {
                        if (arguments.testTime > 0) {
                            if (System.currentTimeMillis() - startTime > arguments.testTime) {
                                log.info("------------------- DONE -----------------------");
                                printAggregatedStats();
                                isDone.set(true);
                                Thread.sleep(5000);
                                System.exit(0);
                            }
                        }

                        if (numMessagesForThisThread > 0) {
                            if (totalSent++ >= numMessagesForThisThread) {
                                log.info("------------------- DONE -----------------------");
                                printAggregatedStats();
                                isDone.set(true);
                                Thread.sleep(5000);
                                System.exit(0);
                            }
                        }

                        semaphore.acquire();
                        rateLimiter.acquire();

                        final long sendTime = System.nanoTime();
                        managedLedgersForThisThread.get(j).asyncAddEntry(payloadBuffer, addEntryCallback,
                                sendTime);
                    }
                }
            } catch (Throwable t) {
                log.error("Got error", t);
            }
        });
    }

    // Print report stats
    long oldTime = System.nanoTime();

    Histogram reportHistogram = null;

    while (true) {
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            break;
        }

        if (isDone.get()) {
            break;
        }

        long now = System.nanoTime();
        double elapsed = (now - oldTime) / 1e9;

        double rate = messagesSent.sumThenReset() / elapsed;
        double throughput = bytesSent.sumThenReset() / elapsed / 1024 / 1024 * 8;

        reportHistogram = recorder.getIntervalHistogram(reportHistogram);

        log.info(
                "Throughput produced: {}  msg/s --- {} Mbit/s --- Latency: mean: {} ms - med: {} - 95pct: {} - 99pct: {} - 99.9pct: {} - 99.99pct: {} - Max: {}",
                throughputFormat.format(rate), throughputFormat.format(throughput),
                dec.format(reportHistogram.getMean() / 1000.0),
                dec.format(reportHistogram.getValueAtPercentile(50) / 1000.0),
                dec.format(reportHistogram.getValueAtPercentile(95) / 1000.0),
                dec.format(reportHistogram.getValueAtPercentile(99) / 1000.0),
                dec.format(reportHistogram.getValueAtPercentile(99.9) / 1000.0),
                dec.format(reportHistogram.getValueAtPercentile(99.99) / 1000.0),
                dec.format(reportHistogram.getMaxValue() / 1000.0));

        reportHistogram.reset();

        oldTime = now;
    }

    factory.shutdown();
}

From source file:org.apache.tika.parser.BouncyCastleDigestingParserTest.java

private void addTruth(Path tmp, String algo, Metadata truth) throws IOException {
    String digest = null;//from www.  j ava 2 s.  co  m
    //for now, rely on CommonsDigest for truth
    try (InputStream is = Files.newInputStream(tmp)) {
        if ("MD2".equals(algo)) {
            digest = DigestUtils.md2Hex(is);
        } else if ("MD5".equals(algo)) {
            digest = DigestUtils.md5Hex(is);
        } else if ("SHA1".equals(algo)) {
            digest = DigestUtils.sha1Hex(is);
        } else if ("SHA256".equals(algo)) {
            digest = DigestUtils.sha256Hex(is);
        } else if ("SHA384".equals(algo)) {
            digest = DigestUtils.sha384Hex(is);
        } else if ("SHA512".equals(algo)) {
            digest = DigestUtils.sha512Hex(is);
        } else {
            throw new IllegalArgumentException("Sorry, not aware of algorithm: " + algo);
        }
    }
    truth.set(P + algo, digest);

}

From source file:org.apache.tika.parser.DigestingParserTest.java

private void addTruth(Path tmp, CommonsDigester.DigestAlgorithm algo, Metadata truth) throws IOException {
    String digest = null;/*from  w  ww.  j  a  v  a 2s  . co m*/
    try (InputStream is = Files.newInputStream(tmp)) {
        switch (algo) {
        case MD2:
            digest = DigestUtils.md2Hex(is);
            break;
        case MD5:
            digest = DigestUtils.md5Hex(is);
            break;
        case SHA1:
            digest = DigestUtils.sha1Hex(is);
            break;
        case SHA256:
            digest = DigestUtils.sha256Hex(is);
            break;
        case SHA384:
            digest = DigestUtils.sha384Hex(is);
            break;
        case SHA512:
            digest = DigestUtils.sha512Hex(is);
            break;
        default:
            throw new IllegalArgumentException("Sorry, not aware of algorithm: " + algo.toString());
        }
    }
    truth.set(P + algo.name(), digest);

}

From source file:org.apache.tika.parser.utils.CommonsDigester.java

/**
 *
 * @param algorithm algo to use/*from w  w  w  .  j a v  a2  s. c om*/
 * @param is input stream to read from
 * @param metadata metadata for reporting the digest
 * @return whether or not this finished the input stream
 * @throws IOException
 */
private boolean digestEach(DigestAlgorithm algorithm, InputStream is, Metadata metadata) throws IOException {
    String digest = null;
    try {
        switch (algorithm) {
        case MD2:
            digest = DigestUtils.md2Hex(is);
            break;
        case MD5:
            digest = DigestUtils.md5Hex(is);
            break;
        case SHA1:
            digest = DigestUtils.sha1Hex(is);
            break;
        case SHA256:
            digest = DigestUtils.sha256Hex(is);
            break;
        case SHA384:
            digest = DigestUtils.sha384Hex(is);
            break;
        case SHA512:
            digest = DigestUtils.sha512Hex(is);
            break;
        default:
            throw new IllegalArgumentException("Sorry, not aware of algorithm: " + algorithm.toString());
        }
    } catch (IOException e) {
        e.printStackTrace();
        //swallow, or should we throw this?
    }
    if (is instanceof SimpleBoundedInputStream) {
        if (((SimpleBoundedInputStream) is).hasHitBound()) {
            return false;
        }
    }
    metadata.set(algorithm.getMetadataKey(), digest);
    return true;
}

From source file:org.apigw.authserver.types.domain.CertifiedClient.java

@PrePersist
@PreUpdate//from  ww  w  .j  ava 2s . c  o m
private void calculateHashes() {
    x509CertificateIssuerDNHash = DigestUtils
            .sha1Hex(x509CertificateIssuerDN != null ? x509CertificateIssuerDN : "");
    x509CertificateSubjectDNHash = DigestUtils
            .sha1Hex(x509CertificateSubjectDN != null ? x509CertificateSubjectDN : "");
}

From source file:org.bigbluebutton.common2.redis.RedisStorageService.java

public String generateSingleUseCaptionToken(String recordId, String caption, Long expirySeconds) {
    Map<String, String> data = new HashMap<String, String>();
    data.put("recordId", recordId);
    data.put("caption", caption);

    String token = DigestUtils.sha1Hex(recordId + caption + System.currentTimeMillis());
    String key = "captions:" + token + ":singleusetoken";
    RedisCommands<String, String> commands = connection.sync();
    commands.multi();/*from  w w  w .  j a va  2 s .  c  o  m*/
    commands.hmset(key, data);
    commands.expire(key, expirySeconds);
    commands.exec();

    return token;
}

From source file:org.blocks4j.commons.metrics3.MetricCounterBackup.java

private String normalize(String name) {
    return DigestUtils.sha1Hex(name) + ".counter";
}

From source file:org.bonitasoft.web.designer.controller.export.steps.WidgetsExportStep.java

@Override
public void execute(Zipper zipper, Page page) throws IOException {
    Path widgetsRepositoryPath = pathResolver.getWidgetsRepositoryPath();
    zipper.addDirectoryToZip(widgetsRepositoryPath,
            new IncludeChildDirectoryPredicate(widgetsRepositoryPath, widgetIdVisitor.visit(page)), ALL_FILES,
            RESOURCES + "/widgets");

    // Export widgets.js
    List<Path> files = directiveFileGenerator.getWidgetsFilesUsedInPage(page);
    byte[] content = directiveFileGenerator.concatenate(files);
    content = Minifier.minify(content);//from  www.ja  v  a2  s  .  co m
    zipper.addToZip(content, RESOURCES + "/js/widgets-" + DigestUtils.sha1Hex(content) + ".min.js");
}

From source file:org.bonitasoft.web.designer.controller.export.steps.WidgetsExportStepTest.java

@Test
public void should_add_page_widgets_to_zip() throws Exception {
    repository.addWidget(aWidget().id("widget1"));
    repository.addWidget(aWidget().id("widget2"));
    Page page = aPage().with(aComponent("widget1"), aComponent("widget2")).build();
    String content = "Mon   content   to                 minify";
    byte[] expected = Minifier.minify(content.getBytes());
    when(directiveFileGenerator.getWidgetsFilesUsedInPage(page))
            .thenReturn(Arrays.asList(Paths.get("widget1"), Paths.get("widget2")));
    when(directiveFileGenerator.concatenate(Arrays.asList(Paths.get("widget1"), Paths.get("widget2"))))
            .thenReturn(content.getBytes());

    step.execute(zipper, page);/*from w  w w . ja v a  2 s. co m*/

    verify(zipper).addToZip(repository.resolveWidgetJson("widget1"), "resources/widgets/widget1/widget1.json");
    verify(zipper).addToZip(repository.resolveWidgetJson("widget2"), "resources/widgets/widget2/widget2.json");
    verify(zipper).addToZip(expected, "resources/js/widgets-" + DigestUtils.sha1Hex(expected) + ".min.js");
}