public void init()

in geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/impl/IdGenerator.java [35:69]


    public void init() {
        final String type = config.read("id.generator", "counter");
        counter = "counter".equalsIgnoreCase(type);
        switch (type) {
            case "counter":
                delegate = new Supplier<Object>() {
                    private final AtomicLong counter = new AtomicLong();

                    @Override
                    public Object get() {
                        return counter.incrementAndGet();
                    }
                };
                break;
            case "uuid":
                delegate = () -> UUID.randomUUID().toString();
                break;
            case "hex": // limited to 16 for the length cause of zipkin (see span decoder)
            default:
                delegate = new Supplier<Object>() {
                    private final Random random = new Random(System.nanoTime());
                    private final char[] hexDigits = "0123456789abcdef".toCharArray();
                    private final String constantPart = config.read("id.generator.hex.prefix", "");

                    @Override
                    public Object get() {
                        final StringBuilder sb = new StringBuilder(16).append(constantPart);
                        for (int i = 0; i < 16 - constantPart.length(); i++) {
                            sb.append(hexDigits[random.nextInt(16)]);
                        }
                        return sb.toString();
                    }
                };
        }
    }