Die Verwendung beschreibender Namen ist eine gute Programmierpraxis. Heute bin ich auf ein Beispiel gestoßen, das genau das Gegenteil bewirkt. In Maven 2 können Sie einen Proxy definieren, wenn Sie hinter einem Proxy-Server arbeiten, und es gibt dieses Aktiv-Flag, das diesen Proxy auf aktiv oder inaktiv setzt.... oder zumindest ist es das, was Sie erwarten, richtig?
So können Sie einen Proxy in Ihrer settings.xml konfigurieren
Unternehmensvollmacht false http proxy.company.nl 8080
Man sollte meinen, dass dies die Unternehmensvollmacht als nicht aktiv kennzeichnen würde. Aber die Realität hat mich eines Besseren belehrt. Hier ist der entsprechende Maven-Code, der den aktiven Proxy zurückgibt:
public synchronized Proxy getActiveProxy()
{
if(activeProxy == null)
{
java.util.List proxies = getProxies();
if ( proxies != null && !proxies.isEmpty() )
{
wenn ( proxies.size() > 1 )
{
for ( java.util.Iterator it = proxies.iterator(); it.hasNext(); )
{
Proxy proxy = (Proxy) it.next();
if ( proxy.isActive() )
{
activeProxy = proxy;
Pause;
}
}
}
sonst
{
// Wenn wir nur einen Proxy haben, verwenden Sie diesen als aktiven Proxy.
activeProxy = (Proxy) proxies.get( 0 );
}
}
}
return activeProxy;
}
Offensichtlich bedeutet "aktiv" also nicht "aktiv", sondern "aktiv, wenn mehr als ein Proxy definiert ist". Ich schlage also vor, den Namen der Eigenschaft "aktiv" in etwas wie: activeButIfIAmTheOnlyProxyDefinedInTheListOfProxiesThenIAmAlwaysActive zu ändern. Oder vielleicht wäre auch eine klare Dokumentation eine Option, wenn Sie denken, dass der Name zu lang ist. Hätte mir einen halben Tag Fehlersuche erspart.... Lars
Verfasst von
Lars Vonk
Unsere Ideen
Weitere Blogs
Contact



