walkmod / walkmod-core

walkmod: an open source tool to fix coding style issues
http://www.walkmod.com
GNU Lesser General Public License v3.0
154 stars 23 forks source link

walkmod not working behind a proxy (with resolution) #90

Open vladislav-knoll opened 4 years ago

vladislav-knoll commented 4 years ago

I wasn't able to use walkmod behind a corporate proxy, because the PrintPluginsCommand tries connect to the MVN_SEARCH_URL to get all available plugins and walks into an Exception. I was able to avoid this issue by writing a ProxyUrlUtil

package org.walkmod.util;

import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Proxy.Type;
import java.net.URL;

public class ProxyUrlUtil {

  public static InputStream openURL(String url) throws IOException {
    String[] proxyHost = System.getProperty("http.proxyHost").split("\\."); //$NON-NLS-1$ //$NON-NLS-2$
    int proxyPort = Integer.parseInt(System.getProperty("http.proxyPort")); //$NON-NLS-1$
    Proxy proxy = null;
    if (proxyHost != null) {
      byte[] proxyAddress = new byte[4];
      for (int i = 0; i < 4; i++) {
        proxyAddress[i] = (byte) Integer.parseInt(proxyHost[i]);
      }
      InetAddress address = InetAddress.getByAddress(proxyAddress);
      InetSocketAddress socket = new InetSocketAddress(address, proxyPort);
      proxy = new Proxy(Type.HTTP, socket);
    }

    if (proxy != null) {
      return new URL(url).openConnection(proxy).getInputStream();
    } else {
      return new URL(url).openStream();
    }
  }
}

and using it in the org.walkmod.commands.PrintPluginsCommand

is = ProxyUrlUtil.openURL(MVN_SEARCH_URL); projectIs = ProxyUrlUtil.openURL(artifactDetailsURL);

Furthermore you have to insert your http.proxyHost and http.proxyPort in the the walkmod.bat

@set WALKMOD_OPTS=-Dhttp.proxyHost=<MY_PROXY_HOST> -Dhttp.proxyPort=<MY_PROXY_PORT>

octopatch commented 4 years ago

Ok!

Thank you so much! I'll review it in the next days

El vie., 15 nov. 2019 11:20, vladislav-knoll notifications@github.com escribió:

I wasn't able to use walkmod behind a corporate proxy, because the PrintPluginsCommand tries connect to the MVN_SEARCH_URL to get all available plugins and walks into an Exception. I was able to avoid this issue by writing a ProxyUrlUtil

package org.walkmod.util;

import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.Proxy.Type; import java.net.URL;

public class ProxyUrlUtil {

public static InputStream openURL(String url) throws IOException { String[] proxyHost = System.getProperty("http.proxyHost").split("\."); //$NON-NLS-1$ //$NON-NLS-2$ int proxyPort = Integer.parseInt(System.getProperty("http.proxyPort")); //$NON-NLS-1$ Proxy proxy = null; if (proxyHost != null) { byte[] proxyAddress = new byte[4]; for (int i = 0; i < 4; i++) { proxyAddress[i] = (byte) Integer.parseInt(proxyHost[i]); } InetAddress address = InetAddress.getByAddress(proxyAddress); InetSocketAddress socket = new InetSocketAddress(address, proxyPort); proxy = new Proxy(Type.HTTP, socket); }

if (proxy != null) {
  return new URL(url).openConnection(proxy).getInputStream();
} else {
  return new URL(url).openStream();
}

} }

and using it in the org.walkmod.commands.PrintPluginsCommand

is = ProxyUrlUtil.openURL(MVN_SEARCH_URL); projectIs = ProxyUrlUtil.openURL(artifactDetailsURL);

Furthermore you have to insert your http.proxyHost and http.proxyPort in the the walkmod.bat

@set WALKMOD_OPTS=-Dhttp.proxyHost= -Dhttp.proxyPort=

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/walkmod/walkmod-core/issues/90?email_source=notifications&email_token=ACNDOQ5TESVVVDAZFKOUT6DQTZZXPA5CNFSM4JNYWKQKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HZSGD7Q, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACNDOQ7DLJWJ25K6P6RPEJ3QTZZXPANCNFSM4JNYWKQA .