To install: Help/Eclipse Marketplace, search for Docker Tools, install.
Otherwise, install https://tools.jboss.org/features/dockertools.html "JBoss Tools" and you get also Docker Tools.
Show View / Docker Explorer
you get by default this one:
unix:///var/run/docker.sock
but you can also work with remote docker via TCP with authentication
this view shows ALL your containers (docker ps -a) and images (docker images), with a list of ports and volumes
https://www.eclipse.org/community/eclipse_newsletter/2015/june/article3.php
To enable managing a Docker environment running in your VirtualBox centos image, in VirtualBox enable port forwarding 2376 or 2375, see http://www.javamonamour.org/2017/12/docker-enabling-remote-daemon.html
Eclipse for Docker is a really nice tool! It makes it much easier to work with Docker. However I still believe one should be familiar with the Docker CLI.
Wednesday, May 30, 2018
Tuesday, May 29, 2018
Sanity check on a Nexus 2 Maven Proxy repo
The task is: verify that all the JARs in a Nexus 2 repo are still in Maven Central.
I did a
find /path/to/nexusdata/central -name "*.jar" > alljarsfiltered.txt
and then run this Java application:
I did a
find /path/to/nexusdata/central -name "*.jar" > alljarsfiltered.txt
and then run this Java application:
package mavenchecker;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Stream;
public class MavenChecker {
public static ArrayList<String> errors = new ArrayList<String>();
public static ArrayList<String> nonexisting = new ArrayList<String>();
static int count = 0;
public static void main(String[] args) {
String fileName = "/home/centos/Downloads/alljarsfiltered.txt";
// read file into stream, try-with-resources
try (Stream<String> stream = Files.lines(Paths.get(fileName)).parallel()) {
stream.forEach((line) -> checkLine(line));
} catch (IOException e) {
e.printStackTrace();
}
for (String error : errors) {
System.out.println("ERROR : " + error);
}
for (String nonexistingItem : nonexisting) {
System.out.println("nonexisting : " + nonexistingItem);
}
}
private static void checkLine(String line) {
count++;
if (count % 100 == 0) {
System.out.println("COUNT " + count);
}
if (!line.endsWith(".jar"))
return;
String gavstring = line.replace("/path/to/nexusdata/central/", "");
String[] parts = gavstring.split("/");
int len = parts.length;
if (len < 4) {
System.err.println("invalid length for gavstring " + gavstring + " len = " + len + " should be at least 4");
errors.add(gavstring);
} else {
String filename = parts[len - 1];
String version = parts[len - 2];
String artifactid = parts[len - 3];
String group = String.join(".", Arrays.copyOfRange(parts, 0, len - 3));
String message = "filename=" + filename + " group=" + group + " artifactid=" + artifactid + " version=" + version;
//System.out.println(message);
boolean exists = exists("https://repo.maven.apache.org/maven2/" + gavstring);
if (!exists) nonexisting.add(gavstring);
}
}
public static boolean exists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
// HttpURLConnection.setInstanceFollowRedirects(false)
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
Monday, May 28, 2018
Nexus Firewall
http://www.javamonamour.org/2017/09/software-vulnerability-control-with.html
As usual, Sonatype scatters his product documentation across the 5 Oceans, in the most disparate formats (blogs, videos, poorly formatted wiki pages etc)
https://my.sonatype.com/firewall/
Good video here https://blog.sonatype.com/nexus-firewall-for-oss-users
https://help.sonatype.com/iqserver/nexus-firewall-quick-start quick start
The Firewall product is really simple: given a GAV, it checks a DB (NIST Vulnerabilities) for all its vulnerabilities, and applies a bunch of rules to determine if the component is risky. If it's risky, it quarantines it, but provides a function to "unlock it" to the end user (Maven).
As usual, Sonatype scatters his product documentation across the 5 Oceans, in the most disparate formats (blogs, videos, poorly formatted wiki pages etc)
https://my.sonatype.com/firewall/
Good video here https://blog.sonatype.com/nexus-firewall-for-oss-users
https://help.sonatype.com/iqserver/nexus-firewall-quick-start quick start
The Firewall product is really simple: given a GAV, it checks a DB (NIST Vulnerabilities) for all its vulnerabilities, and applies a bunch of rules to determine if the component is risky. If it's risky, it quarantines it, but provides a function to "unlock it" to the end user (Maven).
Subscribe to:
Posts (Atom)