use of lombok.AccessLevel.PRIVATE in project component-runtime by Talend.
the class Dependencies method findRepositories.
private static List<MavenRemoteRepository> findRepositories() {
final List<MavenRemoteRepository> repositories = new ArrayList<>();
final String repos = System.getProperty("talend.component.junit.maven.repositories");
if (repos != null && !repos.isEmpty()) {
for (final String repo : repos.split(",")) {
final String[] parts = repo.split("::");
final MavenRemoteRepository repository = MavenRemoteRepositories.createRemoteRepository(parts.length == 1 ? "repo_" + parts[0].replace(':', '_').replace('/', '_') : parts[0], parts.length == 1 ? parts[0] : parts[1], parts.length < 3 ? "default" : parts[2]);
repository.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_DAILY);
repository.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
repositories.add(repository);
}
} else if (!Boolean.getBoolean("talend.component.junit.maven.skipPomReading")) {
// try to grab from the root pom the repos - simplifying maven parsing for speed reasons and enough
// generally
File current = new File(".").getAbsoluteFile();
while (new File(current, "pom.xml").exists()) {
final File parent = current.getParentFile();
if (parent != null && new File(parent, "pom.xml").exists()) {
current = parent;
continue;
}
break;
}
final File pom = new File(current, "pom.xml");
if (pom.exists()) {
final PomEquippedResolveStage localPom = Maven.configureResolver().loadPomFromFile(pom);
final MavenWorkingSession mavenWorkingSession = PomEquippedResolveStageBaseImpl.class.cast(localPom).getMavenWorkingSession();
try {
final Field remoteRepositories = mavenWorkingSession.getClass().getDeclaredField("remoteRepositories");
if (!remoteRepositories.isAccessible()) {
remoteRepositories.setAccessible(true);
}
final List<RemoteRepository> pomRepos = List.class.cast(remoteRepositories.get(mavenWorkingSession));
if (pomRepos != null && !pomRepos.isEmpty()) {
pomRepos.forEach(r -> {
final MavenRemoteRepository repository = MavenRemoteRepositories.createRemoteRepository(r.getId(), r.getUrl(), "default");
repository.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_DAILY);
repository.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
repositories.add(repository);
});
}
} catch (final Exception e) {
throw new IllegalStateException("Check your shrinkwrap maven version", e);
}
}
}
if (!Boolean.getBoolean("talend.component.junit.maven.central.skip")) {
final MavenRemoteRepository central = MavenRemoteRepositories.createRemoteRepository("central_test_default", "http://repo.maven.apache.org/maven2/", "default");
central.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_WARN);
central.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
repositories.add(central);
}
return repositories;
}
use of lombok.AccessLevel.PRIVATE in project component-runtime by Talend.
the class Generator method generatedServerConfiguration.
private static void generatedServerConfiguration(final File generatedDir) throws MalformedURLException {
final File file = new File(generatedDir, "generated_server-configuration.adoc");
try (final PrintStream stream = new PrintStream(new WriteIfDifferentStream(file))) {
stream.println("");
stream.println("NOTE: the configuration is read from system properties, environment variables, ....");
stream.println("");
stream.println("[role=\"table-striped table-hover table-ordered\",options=\"header,autowidth\"]");
stream.println("|====");
stream.println("|Key|Description|Default");
final File api = jarLocation(ComponentServerConfiguration.class);
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
final AnnotationFinder finder = new AnnotationFinder(api.isDirectory() ? new FileArchive(loader, api) : new JarArchive(loader, api.toURI().toURL()));
finder.findAnnotatedClasses(Configuration.class).stream().flatMap(c -> Stream.of(c.getMethods())).map(method -> {
final ConfigProperty configProperty = method.getAnnotation(ConfigProperty.class);
final String name = method.getDeclaringClass().getAnnotation(Configuration.class).prefix() + method.getAnnotation(ConfigProperty.class).name();
return "|" + name + "|" + method.getAnnotation(Documentation.class).value() + "|" + (ConfigProperty.NULL.equalsIgnoreCase(configProperty.defaultValue()) ? "-" : configProperty.defaultValue());
}).sorted().forEach(stream::println);
stream.println("|====");
stream.println();
}
}
use of lombok.AccessLevel.PRIVATE in project component-runtime by Talend.
the class Generator method sample.
private static String sample(final Class<?> returnedType) {
if (returnedType == Values.class) {
final Values list = new Values();
list.setItems(new ArrayList<>());
final Values.Item item = new Values.Item();
item.setId("value");
item.setLabel("label");
list.getItems().add(item);
return new MapperBuilder().setPretty(false).build().writeObjectAsString(list);
}
if (returnedType == HealthCheckStatus.class) {
final HealthCheckStatus status = new HealthCheckStatus();
status.setStatus(HealthCheckStatus.Status.KO);
status.setComment("Something went wrong");
return new MapperBuilder().setPretty(false).build().writeObjectAsString(status);
}
if (returnedType == Schema.class) {
final Schema.Entry entry = new Schema.Entry();
entry.setName("column1");
entry.setType(Type.STRING);
final Schema schema = new Schema();
schema.setEntries(new ArrayList<>());
schema.getEntries().add(entry);
return new MapperBuilder().setPretty(false).build().writeObjectAsString(schema);
}
if (returnedType == ValidationResult.class) {
final ValidationResult status = new ValidationResult();
status.setStatus(ValidationResult.Status.KO);
status.setComment("Something went wrong");
return new MapperBuilder().setPretty(false).build().writeObjectAsString(status);
}
return "{\n" + Stream.of(returnedType.getDeclaredFields()).map(f -> " \"" + f.getName() + "\": " + createSample(f.getType())).collect(joining("\n")) + "\n}";
}
use of lombok.AccessLevel.PRIVATE in project component-runtime by Talend.
the class Generator method generatedConstraints.
private static void generatedConstraints(final File generatedDir) throws Exception {
final File file = new File(generatedDir, "generated_constraints.adoc");
try (final PrintStream stream = new PrintStream(new WriteIfDifferentStream(file))) {
stream.println("");
stream.println("[role=\"table-striped table-hover table-ordered\",options=\"header,autowidth\"]");
stream.println("|====");
stream.println("|API|Name|Parameter Type|Description|Supported Types|Metadata sample");
final File api = jarLocation(Validation.class);
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
final AnnotationFinder finder = new AnnotationFinder(api.isDirectory() ? new FileArchive(loader, api) : new JarArchive(loader, api.toURI().toURL()));
final ValidationParameterEnricher enricher = new ValidationParameterEnricher();
final Mapper mapper = new MapperBuilder().build();
Stream.concat(finder.findAnnotatedClasses(Validation.class).stream().map(validation -> {
final Validation val = validation.getAnnotation(Validation.class);
return createConstraint(validation, val);
}), finder.findAnnotatedClasses(Validations.class).stream().flatMap(validations -> Stream.of(validations.getAnnotation(Validations.class).value()).map(validation -> createConstraint(validations, validation)))).sorted((o1, o2) -> {
final int types = Stream.of(o1.types).map(Class::getName).collect(joining("/")).compareTo(Stream.of(o2.types).map(Class::getName).collect(joining("/")));
if (types == 0) {
return o1.name.compareTo(o2.name);
}
return types;
}).forEach(constraint -> stream.println("|@" + constraint.marker.getName() + "|" + constraint.name + "|" + sanitizeType(constraint.paramType) + "|" + constraint.description + "|" + Stream.of(constraint.types).map(Class::getName).map(Generator::sanitizeType).collect(joining(", ")) + "|" + mapper.writeObjectAsString(enricher.onParameterAnnotation("test", constraint.types[0], generateAnnotation(constraint.marker))).replace("tcomp::", "")));
stream.println("|====");
stream.println();
}
}
use of lombok.AccessLevel.PRIVATE in project component-runtime by Talend.
the class Generator method generatedUi.
private static void generatedUi(final File generatedDir) throws Exception {
final File file = new File(generatedDir, "generated_ui.adoc");
try (final PrintStream stream = new PrintStream(new WriteIfDifferentStream(file))) {
stream.println("");
stream.println("[role=\"table-striped table-hover table-ordered\",options=\"header,autowidth\"]");
stream.println("|====");
stream.println("|API|Description|Generated property metadata");
final File api = jarLocation(Ui.class);
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
final AnnotationFinder finder = new AnnotationFinder(api.isDirectory() ? new FileArchive(loader, api) : new JarArchive(loader, api.toURI().toURL()));
final ParameterExtensionEnricher enricher = new UiParameterEnricher();
final Mapper mapper = new MapperBuilder().build();
finder.findAnnotatedClasses(Ui.class).stream().sorted(Comparator.comparing(Class::getName)).forEach(type -> {
final Map<String, String> meta = enricher.onParameterAnnotation("theparameter", Object.class, generateAnnotation(type)).entrySet().stream().collect(toMap(e -> e.getKey().replace("tcomp::", ""), Map.Entry::getValue));
stream.println("|@" + type.getName() + "|" + extractDoc(type) + "|" + mapper.writeObjectAsString(meta).replace("|", "\\|"));
});
stream.println("|====");
stream.println();
}
}
Aggregations