Attention: this is the key used to sign the certificate requests, anyone holding this can sign certificates on your behalf. So keep it in a safe place!
openssl genrsa -des3 -out rootCA.key 4096
import java.time.* | |
import java.util.concurrent.* | |
import java.util.concurrent.atomic.* | |
def atomicInteger = new AtomicInteger() | |
def runnable = () -> { | |
atomicInteger.incrementAndGet() | |
} | |
def start = Instant.now() |
package demo; | |
import java.util.concurrent.TimeUnit; | |
import org.springframework.aop.TargetSource; | |
import org.springframework.aop.framework.ProxyFactory; | |
import org.springframework.aop.support.DelegatingIntroductionInterceptor; | |
import org.springframework.beans.factory.BeanFactory; | |
import org.springframework.boot.SpringApplication; | |
import org.springframework.boot.autoconfigure.SpringBootApplication; |
package com.example; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.beans.factory.annotation.Qualifier; | |
import org.springframework.boot.SpringApplication; | |
import org.springframework.boot.autoconfigure.SpringBootApplication; | |
import org.springframework.web.bind.annotation.RequestMapping; | |
import org.springframework.web.bind.annotation.RestController; | |
import java.util.List; |
public final class ResultFuture implements Future<Result> { | |
private final CountDownLatch latch = new CountDownLatch(1); | |
private Result value; | |
@Override | |
public boolean cancel(boolean mayInterruptIfRunning) { | |
return false; | |
} | |
@Override |
GQ { | |
from v in ( | |
from a in 1..9 | |
innerjoin b in 1..9 on a <= b | |
select a as f, b as s, "$a * $b = ${a * b}".toString() as r | |
) | |
groupby v.s | |
select max(v.f == 1 ? v.r : '') as v1, | |
max(v.f == 2 ? v.r : '') as v2, | |
max(v.f == 3 ? v.r : '') as v3, |
// .... | |
def compilerConfig = new CompilerConfiguration() | |
compilerConfig.optimizationOptions.indy = true | |
def shell = new GroovyShell(compilerConfig) |
// Show some new features of Groovy3 | |
// The complete new feature list can be found at: | |
// https://github.com/danielsun1106/groovy-parser | |
@groovy.transform.CompileStatic | |
def helloGroovy3() { | |
File f = new File("D:/hello-groovy${1 + 2}.txt") | |
try (Writer out = new FileWriter(f)) { // try-with-resources | |
out << | |
['hello', 'groovy3', 'Hello', 'Groovy3'].stream() |
/* | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you under the Apache License, Version 2.0 (the | |
* "License"); you may not use this file except in compliance | |
* with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 |
This method avoids merge conflicts if you have periodically pulled master into your branch. It also gives you the opportunity to squash into more than 1 commit, or to re-arrange your code into completely different commits (e.g. if you ended up working on three different features but the commits were not consecutive).
Note: You cannot use this method if you intend to open a pull request to merge your feature branch. This method requires committing directly to master.
Switch to the master branch and make sure you are up to date: