Commit 667f2308 authored by Björn Richerzhagen's avatar Björn Richerzhagen
Browse files

Removed SimLogger-dependency

parent 7d3a9810
...@@ -27,11 +27,10 @@ import java.net.DatagramPacket; ...@@ -27,11 +27,10 @@ import java.net.DatagramPacket;
import java.net.DatagramSocket; import java.net.DatagramSocket;
import java.net.SocketException; import java.net.SocketException;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.impl.network.IPv4Message; import de.tud.kom.p2psim.impl.network.IPv4Message;
import de.tud.kom.p2psim.impl.network.realNetworking.RealNetworkingNetLayerManager; import de.tud.kom.p2psim.impl.network.realNetworking.RealNetworkingNetLayerManager;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
/** /**
* The listener interface for receiving udp events. * The listener interface for receiving udp events.
...@@ -45,9 +44,6 @@ import de.tud.kom.p2psim.impl.util.logging.SimLogger; ...@@ -45,9 +44,6 @@ import de.tud.kom.p2psim.impl.util.logging.SimLogger;
* @see UdpEvent * @see UdpEvent
*/ */
public class RealNetworkingUdpListener implements Runnable { public class RealNetworkingUdpListener implements Runnable {
/** The logger. */
private static Logger log = SimLogger.getLogger(RealNetworkingUdpListener.class);
/** The socket to listen on. */ /** The socket to listen on. */
private DatagramSocket socket; private DatagramSocket socket;
...@@ -80,7 +76,8 @@ public class RealNetworkingUdpListener implements Runnable { ...@@ -80,7 +76,8 @@ public class RealNetworkingUdpListener implements Runnable {
public void run() { public void run() {
if( running ) { if( running ) {
log.debug("UdpListener thread running."); Monitor.log(RealNetworkingUdpListener.class, Level.DEBUG,
"UdpListener thread running.");
this.alive = true; this.alive = true;
} }
...@@ -128,9 +125,11 @@ public class RealNetworkingUdpListener implements Runnable { ...@@ -128,9 +125,11 @@ public class RealNetworkingUdpListener implements Runnable {
} catch (SocketException e) { } catch (SocketException e) {
/* Nothing. Socket was closed, thread will end now. */ /* Nothing. Socket was closed, thread will end now. */
} catch (IOException e) { } catch (IOException e) {
log.warn("Socket IOException: " + e.getMessage()); Monitor.log(RealNetworkingUdpListener.class, Level.WARN,
"Socket IOException: " + e.getMessage());
} catch (AssertionError e) { } catch (AssertionError e) {
log.warn("Assertion: " + e.getMessage()); Monitor.log(RealNetworkingUdpListener.class, Level.WARN,
"Assertion: " + e.getMessage());
} }
} }
...@@ -141,7 +140,8 @@ public class RealNetworkingUdpListener implements Runnable { ...@@ -141,7 +140,8 @@ public class RealNetworkingUdpListener implements Runnable {
* Stop. * Stop.
*/ */
public void stop() { public void stop() {
log.debug("UdpListener thread stopping."); Monitor.log(RealNetworkingUdpListener.class, Level.DEBUG,
"UdpListener thread stopping.");
running = false; running = false;
} }
......
...@@ -20,8 +20,6 @@ ...@@ -20,8 +20,6 @@
package de.tud.kom.p2psim.impl.network.routed.routing; package de.tud.kom.p2psim.impl.network.routed.routing;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason; import de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason;
import de.tud.kom.p2psim.api.analyzer.NetlayerAnalyzer; import de.tud.kom.p2psim.api.analyzer.NetlayerAnalyzer;
import de.tud.kom.p2psim.api.common.SimHost; import de.tud.kom.p2psim.api.common.SimHost;
...@@ -33,7 +31,6 @@ import de.tud.kom.p2psim.api.network.routing.RoutingAlgorithm; ...@@ -33,7 +31,6 @@ import de.tud.kom.p2psim.api.network.routing.RoutingAlgorithm;
import de.tud.kom.p2psim.api.network.routing.RoutingListener; import de.tud.kom.p2psim.api.network.routing.RoutingListener;
import de.tud.kom.p2psim.api.network.routing.RoutingMessage; import de.tud.kom.p2psim.api.network.routing.RoutingMessage;
import de.tud.kom.p2psim.impl.network.routed.RoutedNetMessage; import de.tud.kom.p2psim.impl.network.routed.RoutedNetMessage;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tudarmstadt.maki.simonstrator.api.Host; import de.tudarmstadt.maki.simonstrator.api.Host;
import de.tudarmstadt.maki.simonstrator.api.Monitor; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level; import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
...@@ -52,9 +49,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.network.NetworkComponent.N ...@@ -52,9 +49,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.network.NetworkComponent.N
*/ */
public abstract class AbstractRoutingAlgorithm implements RoutingAlgorithm { public abstract class AbstractRoutingAlgorithm implements RoutingAlgorithm {
protected static Logger log = SimLogger
.getLogger(AbstractRoutingAlgorithm.class);
private SimHost host; private SimHost host;
private RoutingListener netlayer; private RoutingListener netlayer;
......
...@@ -23,14 +23,13 @@ package de.tud.kom.p2psim.impl.network.routed.routing.aodv.operation; ...@@ -23,14 +23,13 @@ package de.tud.kom.p2psim.impl.network.routed.routing.aodv.operation;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.impl.network.IPv4NetID; import de.tud.kom.p2psim.impl.network.IPv4NetID;
import de.tud.kom.p2psim.impl.network.routed.routing.aodv.AodvConstants; import de.tud.kom.p2psim.impl.network.routed.routing.aodv.AodvConstants;
import de.tud.kom.p2psim.impl.network.routed.routing.aodv.message.RouteRequestMessage; import de.tud.kom.p2psim.impl.network.routed.routing.aodv.message.RouteRequestMessage;
import de.tud.kom.p2psim.impl.network.routed.routing.aodv.state.AodvRouteTableEntry; import de.tud.kom.p2psim.impl.network.routed.routing.aodv.state.AodvRouteTableEntry;
import de.tud.kom.p2psim.impl.network.routed.routing.aodv.state.AodvState; import de.tud.kom.p2psim.impl.network.routed.routing.aodv.state.AodvState;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.Time; import de.tudarmstadt.maki.simonstrator.api.Time;
import de.tudarmstadt.maki.simonstrator.api.component.network.NetID; import de.tudarmstadt.maki.simonstrator.api.component.network.NetID;
import de.tudarmstadt.maki.simonstrator.api.operation.AbstractOperation; import de.tudarmstadt.maki.simonstrator.api.operation.AbstractOperation;
...@@ -46,8 +45,7 @@ import de.tudarmstadt.maki.simonstrator.api.operation.OperationCallback; ...@@ -46,8 +45,7 @@ import de.tudarmstadt.maki.simonstrator.api.operation.OperationCallback;
* @author Christoph Neumann * @author Christoph Neumann
*/ */
public class RequestRouteOperation extends AbstractOperation<AodvState, NetID> { public class RequestRouteOperation extends AbstractOperation<AodvState, NetID> {
private static Logger log = SimLogger.getLogger(RequestRouteOperation.class);
List<OperationCallback<NetID>> callbacks = new ArrayList<OperationCallback<NetID>>(); List<OperationCallback<NetID>> callbacks = new ArrayList<OperationCallback<NetID>>();
AodvState state; AodvState state;
...@@ -161,7 +159,8 @@ public class RequestRouteOperation extends AbstractOperation<AodvState, NetID> { ...@@ -161,7 +159,8 @@ public class RequestRouteOperation extends AbstractOperation<AodvState, NetID> {
if (rte != null && rte.isValid()) { if (rte != null && rte.isValid()) {
// if we know about a valid route, this method should not // if we know about a valid route, this method should not
// have been called in the first place // have been called in the first place
log.warn("Tried to broadcast a RREQ even though I know about a valid route."); Monitor.log(RequestRouteOperation.class, Level.WARN,
"Tried to broadcast a RREQ even though I know about a valid route.");
return; return;
} }
......
...@@ -22,8 +22,6 @@ ...@@ -22,8 +22,6 @@
package de.tud.kom.p2psim.impl.network.simple; package de.tud.kom.p2psim.impl.network.simple;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason; import de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason;
import de.tud.kom.p2psim.api.common.Position; import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.common.SimHost; import de.tud.kom.p2psim.api.common.SimHost;
...@@ -33,14 +31,12 @@ import de.tud.kom.p2psim.api.network.NetProtocol; ...@@ -33,14 +31,12 @@ import de.tud.kom.p2psim.api.network.NetProtocol;
import de.tud.kom.p2psim.api.transport.TransProtocol; import de.tud.kom.p2psim.api.transport.TransProtocol;
import de.tud.kom.p2psim.impl.network.AbstractNetLayer; import de.tud.kom.p2psim.impl.network.AbstractNetLayer;
import de.tud.kom.p2psim.impl.transport.AbstractTransMessage; import de.tud.kom.p2psim.impl.transport.AbstractTransMessage;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tudarmstadt.maki.simonstrator.api.Message; import de.tudarmstadt.maki.simonstrator.api.Message;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.component.network.NetID; import de.tudarmstadt.maki.simonstrator.api.component.network.NetID;
public class SimpleNetLayer extends AbstractNetLayer { public class SimpleNetLayer extends AbstractNetLayer {
protected static Logger log = SimLogger.getLogger(SimpleNetLayer.class);
private double currentDownBandwidth; private double currentDownBandwidth;
private double currentUpBandwidth; private double currentUpBandwidth;
...@@ -83,7 +79,8 @@ public class SimpleNetLayer extends AbstractNetLayer { ...@@ -83,7 +79,8 @@ public class SimpleNetLayer extends AbstractNetLayer {
} }
} else { } else {
int assignedMsgId = subNet.determineTransMsgNumber(msg); int assignedMsgId = subNet.determineTransMsgNumber(msg);
log.debug("During send: Assigning MsgId " + assignedMsgId Monitor.log(SimpleNetLayer.class, Monitor.Level.DEBUG,
"During send: Assigning MsgId " + assignedMsgId
+ " to dropped message"); + " to dropped message");
((AbstractTransMessage) msg).setCommId(assignedMsgId); ((AbstractTransMessage) msg).setCommId(assignedMsgId);
NetMessage netMsg = new SimpleNetMessage(msg, receiver, NetMessage netMsg = new SimpleNetMessage(msg, receiver,
......
...@@ -25,16 +25,15 @@ package de.tud.kom.p2psim.impl.network.simple; ...@@ -25,16 +25,15 @@ package de.tud.kom.p2psim.impl.network.simple;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.network.NetLayer; import de.tud.kom.p2psim.api.network.NetLayer;
import de.tud.kom.p2psim.api.network.NetMessage; import de.tud.kom.p2psim.api.network.NetMessage;
import de.tud.kom.p2psim.impl.network.AbstractSubnet; import de.tud.kom.p2psim.impl.network.AbstractSubnet;
import de.tud.kom.p2psim.impl.network.modular.st.LatencyStrategy; import de.tud.kom.p2psim.impl.network.modular.st.LatencyStrategy;
import de.tud.kom.p2psim.impl.transport.AbstractTransMessage; import de.tud.kom.p2psim.impl.transport.AbstractTransMessage;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tudarmstadt.maki.simonstrator.api.Event; import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler; import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.Time; import de.tudarmstadt.maki.simonstrator.api.Time;
import de.tudarmstadt.maki.simonstrator.api.component.network.NetID; import de.tudarmstadt.maki.simonstrator.api.component.network.NetID;
...@@ -43,9 +42,7 @@ import de.tudarmstadt.maki.simonstrator.api.component.network.NetID; ...@@ -43,9 +42,7 @@ import de.tudarmstadt.maki.simonstrator.api.component.network.NetID;
* *
* @author Sebastian Kaune * @author Sebastian Kaune
*/ */
public class SimpleSubnet extends AbstractSubnet implements EventHandler { public class SimpleSubnet extends AbstractSubnet implements EventHandler {
private static Logger log = SimLogger.getLogger(SimpleSubnet.class);
Map<NetID, NetLayer> netLayers; Map<NetID, NetLayer> netLayers;
...@@ -66,7 +63,6 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler { ...@@ -66,7 +63,6 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler {
@Override @Override
public void registerNetLayer(NetLayer net) { public void registerNetLayer(NetLayer net) {
netLayers.put(net.getNetID(), net); netLayers.put(net.getNetID(), net);
log.debug("Register " + net.getNetID() + " " + net);
} }
@Override @Override
...@@ -82,7 +78,8 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler { ...@@ -82,7 +78,8 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler {
SimpleNetLayer receiver = (SimpleNetLayer) netLayers.get(msg.getReceiver()); SimpleNetLayer receiver = (SimpleNetLayer) netLayers.get(msg.getReceiver());
long latency = netLatencyModel.getMessagePropagationDelay(msg, sender, receiver, null); long latency = netLatencyModel.getMessagePropagationDelay(msg, sender, receiver, null);
log.debug("Send from " + sender + " to " + receiver + " with delay " + latency); Monitor.log(SimpleSubnet.class, Level.INFO, "Send from " + sender
+ " to " + receiver + " with delay " + latency);
scheduleReceiveEvent(msg, receiver, latency); scheduleReceiveEvent(msg, receiver, latency);
} }
...@@ -92,11 +89,8 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler { ...@@ -92,11 +89,8 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler {
long lastArrivalTime = getLastArrivalTime(link); long lastArrivalTime = getLastArrivalTime(link);
long newArrivalTime = Time.getCurrentTime() + latency; long newArrivalTime = Time.getCurrentTime() + latency;
log.debug("new arrival time = " + newArrivalTime + " lastArrivalTime="
+ lastArrivalTime);
if (lastArrivalTime > newArrivalTime) { // assure ordered delivery if (lastArrivalTime > newArrivalTime) { // assure ordered delivery
newArrivalTime = lastArrivalTime + inOrderOffset; newArrivalTime = lastArrivalTime + inOrderOffset;
log.debug("arrival time adjusted to " + newArrivalTime);
} }
links.put(link, newArrivalTime); links.put(link, newArrivalTime);
...@@ -164,7 +158,6 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler { ...@@ -164,7 +158,6 @@ public class SimpleSubnet extends AbstractSubnet implements EventHandler {
long lastArrivalTime = getLastArrivalTime(linkID); long lastArrivalTime = getLastArrivalTime(linkID);
if (lastArrivalTime == Time.getCurrentTime()) { if (lastArrivalTime == Time.getCurrentTime()) {
links.remove(linkID); links.remove(linkID);
log.debug("Remove obsolete link " + linkID);
assert !links.containsKey(linkID); assert !links.containsKey(linkID);
} }
((SimpleNetLayer) receiver).receive(msg); ((SimpleNetLayer) receiver).receive(msg);
......
...@@ -28,13 +28,12 @@ import java.io.FileReader; ...@@ -28,13 +28,12 @@ import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.scenario.ConfigurationException; import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.scenario.Scenario; import de.tud.kom.p2psim.api.scenario.Scenario;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tudarmstadt.maki.simonstrator.api.Event; import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler; import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.Time; import de.tudarmstadt.maki.simonstrator.api.Time;
/** /**
...@@ -54,8 +53,6 @@ public class CSVScenarioFactory extends AbstractScenarioFactory { ...@@ -54,8 +53,6 @@ public class CSVScenarioFactory extends AbstractScenarioFactory {
private String tokenDelimiter = " "; private String tokenDelimiter = " ";
static final Logger log = SimLogger.getLogger(CSVScenarioFactory.class);
// Element behaviorElem; // Element behaviorElem;
// private int experimentSize; // private int experimentSize;
...@@ -96,7 +93,10 @@ public class CSVScenarioFactory extends AbstractScenarioFactory { ...@@ -96,7 +93,10 @@ public class CSVScenarioFactory extends AbstractScenarioFactory {
Event.scheduleWithDelay(time, new EventHandler() { Event.scheduleWithDelay(time, new EventHandler() {
public void eventOccurred(Object data, int type) { public void eventOccurred(Object data, int type) {
log.info("Scenario Echo: " + data.toString() + " at " Monitor.log(
CSVScenarioFactory.class,
Level.INFO,
"Scenario Echo: " + data.toString() + " at "
+ Time.getCurrentTime()); + Time.getCurrentTime());
} }
...@@ -157,7 +157,8 @@ public class CSVScenarioFactory extends AbstractScenarioFactory { ...@@ -157,7 +157,8 @@ public class CSVScenarioFactory extends AbstractScenarioFactory {
else else
actionCounter += parseActions(line); actionCounter += parseActions(line);
} }
log.info("Created " + actionCounter + " actions"); Monitor.log(CSVScenarioFactory.class, Level.INFO, "Created "
+ actionCounter + " actions");
} catch (IOException e) { } catch (IOException e) {
throw new ConfigurationException("Failed to parse " + actionsFile throw new ConfigurationException("Failed to parse " + actionsFile
+ " reason: ", e); + " reason: ", e);
......
...@@ -25,14 +25,12 @@ package de.tud.kom.p2psim.impl.scenario; ...@@ -25,14 +25,12 @@ package de.tud.kom.p2psim.impl.scenario;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import org.apache.log4j.Logger;
import org.dom4j.Element; import org.dom4j.Element;
import de.tud.kom.p2psim.api.scenario.Builder; import de.tud.kom.p2psim.api.scenario.Builder;
import de.tud.kom.p2psim.api.scenario.ConfigurationException; import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.scenario.Configurator; import de.tud.kom.p2psim.api.scenario.Configurator;
import de.tud.kom.p2psim.api.scenario.Scenario; import de.tud.kom.p2psim.api.scenario.Scenario;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
/** /**
* Factory to create a default scenario from a DOM subtree. Expected format: * Factory to create a default scenario from a DOM subtree. Expected format:
...@@ -52,9 +50,6 @@ public class DOMScenarioFactory extends AbstractScenarioFactory implements ...@@ -52,9 +50,6 @@ public class DOMScenarioFactory extends AbstractScenarioFactory implements
*/ */
private String paramsDelimiter = ";"; private String paramsDelimiter = ";";
private static final Logger log = SimLogger
.getLogger(DOMScenarioFactory.class);
private Scenario scenario; private Scenario scenario;
// Element behaviorElem; // Element behaviorElem;
...@@ -92,7 +87,6 @@ public class DOMScenarioFactory extends AbstractScenarioFactory implements ...@@ -92,7 +87,6 @@ public class DOMScenarioFactory extends AbstractScenarioFactory implements
scenario.createActions(hostId, time, method, params); scenario.createActions(hostId, time, method, params);
actionCounter++; actionCounter++;
} }
log.debug("Created " + actionCounter + " actions");
} catch (Exception e) { } catch (Exception e) {
throw new ConfigurationException("Failed to parse DOM element " throw new ConfigurationException("Failed to parse DOM element "
+ elem.asXML() + " reason: ", e); + elem.asXML() + " reason: ", e);
......
...@@ -41,7 +41,6 @@ import javax.xml.parsers.ParserConfigurationException; ...@@ -41,7 +41,6 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.SAXParserFactory;
import org.apache.log4j.Logger;
import org.dom4j.Attribute; import org.dom4j.Attribute;
import org.dom4j.Document; import org.dom4j.Document;
import org.dom4j.DocumentException; import org.dom4j.DocumentException;
...@@ -58,8 +57,9 @@ import de.tud.kom.p2psim.api.scenario.Builder; ...@@ -58,8 +57,9 @@ import de.tud.kom.p2psim.api.scenario.Builder;
import de.tud.kom.p2psim.api.scenario.Composable; import de.tud.kom.p2psim.api.scenario.Composable;
import de.tud.kom.p2psim.api.scenario.ConfigurationException; import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.scenario.Configurator; import de.tud.kom.p2psim.api.scenario.Configurator;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tud.kom.p2psim.impl.util.toolkits.Dom4jToolkit; import de.tud.kom.p2psim.impl.util.toolkits.Dom4jToolkit;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.Time; import de.tudarmstadt.maki.simonstrator.api.Time;
import de.tudarmstadt.maki.simonstrator.api.component.Component; import de.tudarmstadt.maki.simonstrator.api.component.Component;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
...@@ -134,8 +134,6 @@ public class DefaultConfigurator implements Configurator { ...@@ -134,8 +134,6 @@ public class DefaultConfigurator implements Configurator {
*/ */
protected static final String CLASS_SEPARATOR = ";"; protected static final String CLASS_SEPARATOR = ";";
private static Logger log = SimLogger.getLogger(DefaultConfigurator.class);
private Map<String, Object> configurables = new LinkedHashMap<String, Object>(); private Map<String, Object> configurables = new LinkedHashMap<String, Object>();
private LinkedList<Object> componentList = new LinkedList<Object>(); private LinkedList<Object> componentList = new LinkedList<Object>();
...@@ -203,7 +201,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -203,7 +201,8 @@ public class DefaultConfigurator implements Configurator {
* @throws ConfigurationException * @throws ConfigurationException
*/ */
public Collection<Object> configureAll() throws ConfigurationException { public Collection<Object> configureAll() throws ConfigurationException {
log.info("Configure system from file " + configFile); Monitor.log(DefaultConfigurator.class, Level.INFO,
"Configure system from file " + configFile);
try { try {
SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParserFactory factory = SAXParserFactory.newInstance();
try { try {
...@@ -259,8 +258,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -259,8 +258,8 @@ public class DefaultConfigurator implements Configurator {
* root of the subtree * root of the subtree
*/ */
private void configureFirstLevel(Element parent) { private void configureFirstLevel(Element parent) {
if (log.isDebugEnabled()) Monitor.log(DefaultConfigurator.class, Level.DEBUG,
log.debug("Configure simulator using " + parent.asXML()); "Configure simulator using " + parent.asXML());
for (Object obj : parent.elements()) { for (Object obj : parent.elements()) {
Element elem = (Element) obj; Element elem = (Element) obj;
...@@ -298,7 +297,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -298,7 +297,8 @@ public class DefaultConfigurator implements Configurator {
*/ */
public Object configureComponent(Element elem) { public Object configureComponent(Element elem) {
log.debug("Configure component " + elem.getName()); Monitor.log(DefaultConfigurator.class, Level.DEBUG,
"Configure component " + elem.getName());
Object component = configurables.get(elem.getName()); Object component = configurables.get(elem.getName());
// register new component (if not done yet) // register new component (if not done yet)
Set<String> consAttrs = new HashSet<String>(); // attributes that were Set<String> consAttrs = new HashSet<String>(); // attributes that were
...@@ -310,13 +310,15 @@ public class DefaultConfigurator implements Configurator { ...@@ -310,13 +310,15 @@ public class DefaultConfigurator implements Configurator {
// configure it // configure it
if (component != null) { if (component != null) {
log.info("Configure component " Monitor.log(DefaultConfigurator.class, Level.INFO,
"Configure component "
+ component.getClass().getSimpleName() + " with element " + component.getClass().getSimpleName() + " with element "
+ elem.getName()); + elem.getName());
configureAttributes(component, elem, consAttrs); configureAttributes(component, elem, consAttrs);
// configure subcomponents // configure subcomponents
if (component instanceof Builder) { if (component instanceof Builder) {
log.info("Configure builder " + component); Monitor.log(DefaultConfigurator.class, Level.INFO,
"Configure builder " + component);
Builder builder = (Builder) component; Builder builder = (Builder) component;
builder.parse(elem, this); builder.parse(elem, this);
} else { } else {
...@@ -329,7 +331,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -329,7 +331,8 @@ public class DefaultConfigurator implements Configurator {
} }
} else { } else {
// component cannot be created and has not been registered // component cannot be created and has not been registered
log.warn("Skip element " + elem.getName()); Monitor.log(DefaultConfigurator.class, Level.WARN, "Skip element "
+ elem.getName());
} }
return component; return component;
} }
...@@ -340,7 +343,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -340,7 +343,8 @@ public class DefaultConfigurator implements Configurator {
Object component; Object component;
String className = getAttributeValue(elem.attribute(CLASS_TAG)); String className = getAttributeValue(elem.attribute(CLASS_TAG));
log.debug("Create component " + className + " with element " Monitor.log(DefaultConfigurator.class, Level.DEBUG, "Create component "
+ className + " with element "
+ elem.getName()); + elem.getName());
component = createInstance(className, component = createInstance(className,
getAttributeValue(elem.attribute(STATIC_CREATION_METHOD_TAG)), getAttributeValue(elem.attribute(STATIC_CREATION_METHOD_TAG)),
...@@ -349,7 +353,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -349,7 +353,8 @@ public class DefaultConfigurator implements Configurator {
register(elem.getName(), (Component) component); register(elem.getName(), (Component) component);
// composable can use other components // composable can use other components
if (component instanceof Composable) { if (component instanceof Composable) {
log.debug("Compose composable " + component); Monitor.log(DefaultConfigurator.class, Level.DEBUG,
"Compose composable " + component);
((Composable) component).compose(this); ((Composable) component).compose(this);
} }
return component; return component;
...@@ -405,19 +410,22 @@ public class DefaultConfigurator implements Configurator { ...@@ -405,19 +410,22 @@ public class DefaultConfigurator implements Configurator {
for (int i = 0; i < methods.length; i++) { for (int i = 0; i < methods.length; i++) {
if (methodName.equals(methods[i].getName())) { if (methodName.equals(methods[i].getName())) {
match = methods[i]; match = methods[i];
log.debug("Match " + match); Monitor.log(DefaultConfigurator.class, Level.DEBUG, "Match "
+ match);
break; break;
} }
} }
if (match == null) { if (match == null) {
log.warn("Cannot set " + subcomponent + " as there is no method " Monitor.log(DefaultConfigurator.class, Level.WARN, "Cannot set "
+ subcomponent + " as there is no method "
+ methodName + " declared in " + component); + methodName + " declared in " + component);
throw new ConfigurationException("Cannot set " + subcomponent throw new ConfigurationException("Cannot set " + subcomponent
+ " as there is no method " + methodName + " declared in " + " as there is no method " + methodName + " declared in "
+ component); + component);
} else { } else {
Class[] types = match.getParameterTypes(); Class[] types = match.getParameterTypes();
log.debug("Param types" + Arrays.asList(types)); Monitor.log(DefaultConfigurator.class, Level.DEBUG, "Param types"
+ Arrays.asList(types));
if (types.length == 1) { if (types.length == 1) {
try { try {
match.invoke(component, types[0].cast(subcomponent)); match.invoke(component, types[0].cast(subcomponent));
...@@ -465,7 +473,9 @@ public class DefaultConfigurator implements Configurator { ...@@ -465,7 +473,9 @@ public class DefaultConfigurator implements Configurator {
if (method == null) { if (method == null) {
method = methods[i]; method = methods[i];
} else { } else {
log.error("Found two possible methods " Monitor.log(DefaultConfigurator.class,
Level.ERROR,
"Found two possible methods "
+ method + " and " + methods[i]); + method + " and " + methods[i]);
throw new IllegalArgumentException( throw new IllegalArgumentException(
"Cannot set property " "Cannot set property "
...@@ -594,7 +604,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -594,7 +604,8 @@ public class DefaultConfigurator implements Configurator {
int posDollar = value.indexOf(CONFIG_VARIABLE_PREFIX_TAG); int posDollar = value.indexOf(CONFIG_VARIABLE_PREFIX_TAG);
String varName = value.substring(posDollar + 1, value.length()); String varName = value.substring(posDollar + 1, value.length());
value = variables.get(varName); value = variables.get(varName);
log.debug("Fetched variable " + varName + " as " + value); Monitor.log(DefaultConfigurator.class, Level.DEBUG,
"Fetched variable " + varName + " as " + value);
} else { } else {
// The following allows for inner-value substitution. For example // The following allows for inner-value substitution. For example
// when using // when using
...@@ -726,7 +737,6 @@ public class DefaultConfigurator implements Configurator { ...@@ -726,7 +737,6 @@ public class DefaultConfigurator implements Configurator {
return component; return component;
} catch (Exception e) { } catch (Exception e) {
log.error(e);
throw new ConfigurationException("Failed to create configurable " throw new ConfigurationException("Failed to create configurable "
+ className, e); + className, e);
} }
...@@ -739,8 +749,10 @@ public class DefaultConfigurator implements Configurator { ...@@ -739,8 +749,10 @@ public class DefaultConfigurator implements Configurator {
* @param variables * @param variables
*/ */
public void setVariables(Map<String, String> variables) { public void setVariables(Map<String, String> variables) {
if (variables.size() != 0) if (variables.size() != 0) {
log.warn("Set variables " + variables); Monitor.log(DefaultConfigurator.class, Level.WARN, "Set variables "
+ variables);
}
this.variables.putAll(variables); this.variables.putAll(variables);
} }
...@@ -862,7 +874,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -862,7 +874,8 @@ public class DefaultConfigurator implements Configurator {
Iterator iter = ifClause.elementIterator(); Iterator iter = ifClause.elementIterator();
if (!iter.hasNext()) if (!iter.hasNext())
log.warn("No component to configure in the ifEqualStr-clause (arg0=" Monitor.log(DefaultConfigurator.class, Level.WARN,
"No component to configure in the ifEqualStr-clause (arg0="
+ arg0 + ", arg1=" + arg1 + ")."); + arg0 + ", arg1=" + arg1 + ").");
else { else {
while (iter.hasNext()) { while (iter.hasNext()) {
...@@ -901,7 +914,8 @@ public class DefaultConfigurator implements Configurator { ...@@ -901,7 +914,8 @@ public class DefaultConfigurator implements Configurator {
Iterator iter = ifClause.elementIterator(); Iterator iter = ifClause.elementIterator();
if (!iter.hasNext()) if (!iter.hasNext())
log.warn("No component to configure in the ifNotEqualStr-clause (arg0=" Monitor.log(DefaultConfigurator.class, Level.WARN,
"No component to configure in the ifNotEqualStr-clause (arg0="
+ arg0 + ", arg1=" + arg1 + ")."); + arg0 + ", arg1=" + arg1 + ").");
else { else {
while (iter.hasNext()) { while (iter.hasNext()) {
......
...@@ -30,7 +30,6 @@ import java.util.List; ...@@ -30,7 +30,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Vector; import java.util.Vector;
import org.apache.log4j.Logger;
import org.dom4j.Element; import org.dom4j.Element;
import de.tud.kom.p2psim.api.common.SimHost; import de.tud.kom.p2psim.api.common.SimHost;
...@@ -42,8 +41,9 @@ import de.tud.kom.p2psim.api.topology.TopologyComponent; ...@@ -42,8 +41,9 @@ import de.tud.kom.p2psim.api.topology.TopologyComponent;
import de.tud.kom.p2psim.impl.common.DefaultHost; import de.tud.kom.p2psim.impl.common.DefaultHost;
import de.tud.kom.p2psim.impl.common.DefaultHostProperties; import de.tud.kom.p2psim.impl.common.DefaultHostProperties;
import de.tud.kom.p2psim.impl.common.FakeHost; import de.tud.kom.p2psim.impl.common.FakeHost;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tud.kom.p2psim.impl.util.oracle.GlobalOracle; import de.tud.kom.p2psim.impl.util.oracle.GlobalOracle;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponent; import de.tudarmstadt.maki.simonstrator.api.component.HostComponent;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory; import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory;
...@@ -87,9 +87,6 @@ public class DefaultHostBuilder implements HostBuilder, Builder { ...@@ -87,9 +87,6 @@ public class DefaultHostBuilder implements HostBuilder, Builder {
*/ */
public static final String GROUP_ID_TAG = "groupID"; public static final String GROUP_ID_TAG = "groupID";
private static final Logger log = SimLogger
.getLogger(DefaultHostBuilder.class);
/** /**
* Groups of hosts indexed by group ids. * Groups of hosts indexed by group ids.
*/ */
...@@ -200,7 +197,11 @@ public class DefaultHostBuilder implements HostBuilder, Builder { ...@@ -200,7 +197,11 @@ public class DefaultHostBuilder implements HostBuilder, Builder {
HostComponentFactory layer = (HostComponentFactory) defaultConfigurator HostComponentFactory layer = (HostComponentFactory) defaultConfigurator
.configureComponent(layerElem); .configureComponent(layerElem);
if (layer == null) { if (layer == null) {
log.warn("Host group " + groupElem.getName() Monitor.log(
DefaultHostBuilder.class,
Level.WARN,
"Host group "
+ groupElem.getName()
+ ": An element of name '" + ": An element of name '"
+ layerElem.getName() + layerElem.getName()
+ "' is not configured. Ignoring."); + "' is not configured. Ignoring.");
...@@ -238,11 +239,13 @@ public class DefaultHostBuilder implements HostBuilder, Builder { ...@@ -238,11 +239,13 @@ public class DefaultHostBuilder implements HostBuilder, Builder {
} }
group.add(host); group.add(host);
} }
log.debug("Created a group with " + group.size() + " hosts"); Monitor.log(DefaultHostBuilder.class, Level.DEBUG,
"Created a group with " + group.size() + " hosts");
hosts.addAll(group); hosts.addAll(group);
groups.put(groupID, group); groups.put(groupID, group);
} }
log.info("CREATED " + hosts.size() + " hosts"); Monitor.log(DefaultHostBuilder.class, Level.INFO,
"CREATED " + hosts.size() + " hosts");
// Populate Global Oracle // Populate Global Oracle
GlobalOracle.populate(hosts); GlobalOracle.populate(hosts);
...@@ -269,7 +272,10 @@ public class DefaultHostBuilder implements HostBuilder, Builder { ...@@ -269,7 +272,10 @@ public class DefaultHostBuilder implements HostBuilder, Builder {
} }
if (hosts.size() != experimentSize) { if (hosts.size() != experimentSize) {
log.warn("Only " Monitor.log(
DefaultHostBuilder.class,
Level.WARN,
"Only "
+ hosts.size() + hosts.size()
+ " hosts were specified, though the experiment size was set to " + " hosts were specified, though the experiment size was set to "
+ experimentSize); + experimentSize);
......
...@@ -29,13 +29,12 @@ import java.util.LinkedList; ...@@ -29,13 +29,12 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.common.SimHost; import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.api.scenario.Scenario; import de.tud.kom.p2psim.api.scenario.Scenario;
import de.tud.kom.p2psim.api.scenario.ScenarioAction; import de.tud.kom.p2psim.api.scenario.ScenarioAction;
import de.tud.kom.p2psim.impl.common.FakeHost; import de.tud.kom.p2psim.impl.common.FakeHost;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.ComponentNotAvailableException; import de.tudarmstadt.maki.simonstrator.api.component.ComponentNotAvailableException;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponent; import de.tudarmstadt.maki.simonstrator.api.component.HostComponent;
import de.tudarmstadt.maki.simonstrator.api.operation.OperationCallback; import de.tudarmstadt.maki.simonstrator.api.operation.OperationCallback;
...@@ -51,8 +50,6 @@ import de.tudarmstadt.maki.simonstrator.api.operation.Operations; ...@@ -51,8 +50,6 @@ import de.tudarmstadt.maki.simonstrator.api.operation.Operations;
* *
*/ */
class ExtendedScenario implements Scenario { class ExtendedScenario implements Scenario {
private final static Logger log = SimLogger
.getLogger(ExtendedScenario.class);
/** /**
* contains the created hosts, indexed by their IDs, which start at 1 * contains the created hosts, indexed by their IDs, which start at 1
...@@ -75,7 +72,6 @@ class ExtendedScenario implements Scenario { ...@@ -75,7 +72,6 @@ class ExtendedScenario implements Scenario {
actions = new LinkedList<ExtendedScenarioAction>(); actions = new LinkedList<ExtendedScenarioAction>();
paramParsers = new LinkedHashMap<Class, Parser>(); paramParsers = new LinkedHashMap<Class, Parser>();
this.componentClass = defaultCompClass; this.componentClass = defaultCompClass;
log.info("ComponentClass is " + defaultCompClass);
if (defaultCompClass == null) if (defaultCompClass == null)
throw new IllegalArgumentException("Component class was not set!"); throw new IllegalArgumentException("Component class was not set!");
registeredComponentClasses = new LinkedList<Class>(); registeredComponentClasses = new LinkedList<Class>();
...@@ -99,7 +95,8 @@ class ExtendedScenario implements Scenario { ...@@ -99,7 +95,8 @@ class ExtendedScenario implements Scenario {
for (List<SimHost> group : groups.values()) { for (List<SimHost> group : groups.values()) {
hosts.addAll(group); hosts.addAll(group);
} }
log.info("Total number: " + hosts.size() + " hosts in " + groups.size() Monitor.log(ExtendedScenario.class, Level.INFO, "Total number: "
+ hosts.size() + " hosts in " + groups.size()
+ " groups"); + " groups");
} }
...@@ -116,7 +113,8 @@ class ExtendedScenario implements Scenario { ...@@ -116,7 +113,8 @@ class ExtendedScenario implements Scenario {
target = host.getComponent(componentClass); target = host.getComponent(componentClass);
} catch (ComponentNotAvailableException e) { } catch (ComponentNotAvailableException e) {
if (ignoreMissingComponents) { if (ignoreMissingComponents) {
log.warn("[Ignoring] Cannot find target implementing " Monitor.log(ExtendedScenario.class, Level.WARN,
"[Ignoring] Cannot find target implementing "
+ componentClass + " in host " + host); + componentClass + " in host " + host);
return; return;
} else { } else {
...@@ -178,7 +176,8 @@ class ExtendedScenario implements Scenario { ...@@ -178,7 +176,8 @@ class ExtendedScenario implements Scenario {
// calculate time // calculate time
List<SimHost> hosts = groups.get(hostIds); List<SimHost> hosts = groups.get(hostIds);
if (hosts == null) { if (hosts == null) {
log.warn("Unknown host/group id: " Monitor.log(ExtendedScenario.class, Level.WARN,
"Unknown host/group id: "
+ hostIds); + hostIds);
return 0; return 0;
} }
...@@ -190,11 +189,13 @@ class ExtendedScenario implements Scenario { ...@@ -190,11 +189,13 @@ class ExtendedScenario implements Scenario {
String[] split = methodName.split(":"); String[] split = methodName.split(":");
String simpleName = split[0]; String simpleName = split[0];
methodName = split[1]; methodName = split[1];
log.info("Search for " + simpleName); Monitor.log(ExtendedScenario.class, Level.INFO, "Search for "
+ simpleName);
// search for the appropriate class // search for the appropriate class
for (Class type : registeredComponentClasses) { for (Class type : registeredComponentClasses) {
Class[] interfaces = type.getInterfaces(); Class[] interfaces = type.getInterfaces();
log.info("for type " + type); Monitor.log(ExtendedScenario.class, Level.INFO, "for type "
+ type);
// try itself // try itself
if (type.getSimpleName().equals(simpleName)) { if (type.getSimpleName().equals(simpleName)) {
if (selectedClass != null) if (selectedClass != null)
...@@ -208,7 +209,8 @@ class ExtendedScenario implements Scenario { ...@@ -208,7 +209,8 @@ class ExtendedScenario implements Scenario {
// try interfaces // try interfaces
for (int i = 0; i < interfaces.length; i++) { for (int i = 0; i < interfaces.length; i++) {
Class interfaceType = interfaces[i]; Class interfaceType = interfaces[i];
log.info("for interface " + interfaceType); Monitor.log(ExtendedScenario.class, Level.INFO,
"for interface " + interfaceType);
if (interfaceType.getSimpleName().equals(simpleName)) { if (interfaceType.getSimpleName().equals(simpleName)) {
if (selectedClass != null) if (selectedClass != null)
throw new IllegalArgumentException( throw new IllegalArgumentException(
...@@ -224,7 +226,8 @@ class ExtendedScenario implements Scenario { ...@@ -224,7 +226,8 @@ class ExtendedScenario implements Scenario {
throw new IllegalArgumentException( throw new IllegalArgumentException(
"Unknown component class with simple name=" "Unknown component class with simple name="
+ simpleName); + simpleName);
log.info("Found " + selectedClass); Monitor.log(ExtendedScenario.class, Level.INFO, "Found "
+ selectedClass);
} else { } else {
// use default class // use default class
selectedClass = this.componentClass; selectedClass = this.componentClass;
...@@ -233,7 +236,8 @@ class ExtendedScenario implements Scenario { ...@@ -233,7 +236,8 @@ class ExtendedScenario implements Scenario {
for (int i = 0; i < hosts.size(); i++) { for (int i = 0; i < hosts.size(); i++) {
createAction(hosts.get(i), selectedClass, time[i], methodName, createAction(hosts.get(i), selectedClass, time[i], methodName,
params); params);
log.debug("Created actions " + methodName + " and time offset=" Monitor.log(ExtendedScenario.class, Level.DEBUG, "Created actions "
+ methodName + " and time offset="
+ time[i] + "and params=" + Arrays.asList(params)); + time[i] + "and params=" + Arrays.asList(params));
} }
// int hostId = Integer.parseInt(tokens[0]); // int hostId = Integer.parseInt(tokens[0]);
...@@ -247,7 +251,8 @@ class ExtendedScenario implements Scenario { ...@@ -247,7 +251,8 @@ class ExtendedScenario implements Scenario {
for (ScenarioAction action : actions) { for (ScenarioAction action : actions) {
action.schedule(); action.schedule();
} }
log.info("Scheduled " + actions.size() + " actions "); Monitor.log(ExtendedScenario.class, Level.INFO,
"Scheduled " + actions.size() + " actions ");
} }
/** /**
......
...@@ -24,12 +24,11 @@ package de.tud.kom.p2psim.impl.scenario; ...@@ -24,12 +24,11 @@ package de.tud.kom.p2psim.impl.scenario;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.scenario.ScenarioAction; import de.tud.kom.p2psim.api.scenario.ScenarioAction;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tudarmstadt.maki.simonstrator.api.Event; import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler; import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponent; import de.tudarmstadt.maki.simonstrator.api.component.HostComponent;
/** /**
...@@ -42,7 +41,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.HostComponent; ...@@ -42,7 +41,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.HostComponent;
* *
*/ */
public final class ExtendedScenarioAction implements ScenarioAction { public final class ExtendedScenarioAction implements ScenarioAction {
final static Logger log = SimLogger.getLogger(ExtendedScenarioAction.class);
// Operation operation; // Operation operation;
/** /**
...@@ -84,13 +82,15 @@ public final class ExtendedScenarioAction implements ScenarioAction { ...@@ -84,13 +82,15 @@ public final class ExtendedScenarioAction implements ScenarioAction {
} }
public void schedule() { public void schedule() {
log.debug("Schedule action for time " + offset); Monitor.log(ExtendedScenarioAction.class, Level.DEBUG,
"Schedule action for time " + offset);
Event.scheduleWithDelay(offset, new EventHandler() { Event.scheduleWithDelay(offset, new EventHandler() {
public void eventOccurred(Object event, int type) { public void eventOccurred(Object event, int type) {
try { try {
method.invoke(target, params); method.invoke(target, params);
} catch (Exception e) { } catch (Exception e) {
log.error("Failed to execute action.", e); Monitor.log(ExtendedScenarioAction.class, Level.ERROR,
"Failed to execute action.", e);
throw new RuntimeException("Failed to execute action.", e); throw new RuntimeException("Failed to execute action.", e);
} }
} }
......
...@@ -19,11 +19,26 @@ ...@@ -19,11 +19,26 @@
package de.tud.kom.p2psim.impl.scenario.simcfg2; package de.tud.kom.p2psim.impl.scenario.simcfg2;
import java.io.File;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import de.tud.kom.p2psim.api.scenario.*;
import de.tud.kom.p2psim.api.scenario.Composable;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.scenario.Configurator;
import de.tud.kom.p2psim.api.scenario.Scenario;
import de.tud.kom.p2psim.api.scenario.ScenarioFactory;
import de.tud.kom.p2psim.api.scenario.simcfg.converter.SimCfgTypeConverter; import de.tud.kom.p2psim.api.scenario.simcfg.converter.SimCfgTypeConverter;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.*; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.ConfigurationContext;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfigurationMerger;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgFileParser;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value;
import de.tud.kom.p2psim.impl.scenario.simcfg2.initialization.ComponentInitializer; import de.tud.kom.p2psim.impl.scenario.simcfg2.initialization.ComponentInitializer;
import de.tud.kom.p2psim.impl.scenario.simcfg2.initialization.InitializationContext; import de.tud.kom.p2psim.impl.scenario.simcfg2.initialization.InitializationContext;
...@@ -31,19 +46,9 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.initialization.InitializationUtil ...@@ -31,19 +46,9 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.initialization.InitializationUtil
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil;
import de.tud.kom.p2psim.impl.simengine.Simulator; import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tud.kom.p2psim.impl.util.Tuple; import de.tud.kom.p2psim.impl.util.Tuple;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory; import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory;
import org.apache.log4j.Logger;
import java.io.File;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SimCfgConfigurator implements Configurator { public class SimCfgConfigurator implements Configurator {
private static Logger log = SimLogger.getLogger(SimCfgConfigurator.class);
private File configFile; private File configFile;
private ConfigurationContext configurationContext; private ConfigurationContext configurationContext;
...@@ -75,13 +80,9 @@ public class SimCfgConfigurator implements Configurator { ...@@ -75,13 +80,9 @@ public class SimCfgConfigurator implements Configurator {
} }
private void loadConfig() { private void loadConfig() {
log.info("Loading '" + configFile.getName() + "'");
SimCfgFileParser parser = new SimCfgFileParser(); SimCfgFileParser parser = new SimCfgFileParser();
this.configurationContext = parser.parseConfig(this.configFile); this.configurationContext = parser.parseConfig(this.configFile);
String relative = new File("config").toURI().relativize(configFile.toURI()).getPath(); String relative = new File("config").toURI().relativize(configFile.toURI()).getPath();
log.info(configurationContext.getNumberOfLoadedConfigurations() + " configs loaded through imports; started at '" + relative + "'");
} }
@Override @Override
...@@ -94,8 +95,6 @@ public class SimCfgConfigurator implements Configurator { ...@@ -94,8 +95,6 @@ public class SimCfgConfigurator implements Configurator {
configuration.getSettings().put(key, new Value(Value.ValueType.STRING, uiVariables.get(key))); configuration.getSettings().put(key, new Value(Value.ValueType.STRING, uiVariables.get(key)));
} }
log.info(configuration.getNumberOfTopComponents() + " top level components, " + configuration.getNumberOfComponents() + " components overall");
processConfiguration(configuration, configurationContext); processConfiguration(configuration, configurationContext);
callComposableComponents(); callComposableComponents();
......
...@@ -19,25 +19,26 @@ ...@@ -19,25 +19,26 @@
package de.tud.kom.p2psim.impl.scenario.simcfg2.configuration; package de.tud.kom.p2psim.impl.scenario.simcfg2.configuration;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Variation; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Variation;
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgExpressionExecutor; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgExpressionExecutor;
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil;
import de.tud.kom.p2psim.impl.util.Tuple; import de.tud.kom.p2psim.impl.util.Tuple;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import org.apache.log4j.Logger; import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import java.util.List;
import java.util.Map;
/** /**
* This class is used to create a single SimCfgConfiguration * This class is used to create a single SimCfgConfiguration
* based on a given ConfigurationContext. * based on a given ConfigurationContext.
*/ */
public class SimCfgConfigurationMerger { public class SimCfgConfigurationMerger {
private static Logger log = SimLogger.getLogger(SimCfgConfigurationMerger.class);
SimCfgExpressionExecutor exprExecutor = new SimCfgExpressionExecutor(); SimCfgExpressionExecutor exprExecutor = new SimCfgExpressionExecutor();
/** /**
...@@ -177,22 +178,39 @@ public class SimCfgConfigurationMerger { ...@@ -177,22 +178,39 @@ public class SimCfgConfigurationMerger {
Component targetComponent = matchByAlias(sourceComponent, targetComponents); Component targetComponent = matchByAlias(sourceComponent, targetComponents);
if (targetComponent == null || alreadyMergedComponents.contains(sourceComponent.getAlias())) { if (targetComponent == null || alreadyMergedComponents.contains(sourceComponent.getAlias())) {
// No matching component found. Retain. // No matching component found. Retain.
log.debug("Adding component '" + sourceComponent.getAlias() + "' there is no such target component or already another target component configured"); Monitor.log(
SimCfgConfigurationMerger.class,
Level.DEBUG,
"Adding component '"
+ sourceComponent.getAlias()
+ "' there is no such target component or already another target component configured");
adder.addComponent(sourceComponent); adder.addComponent(sourceComponent);
} else { } else {
// Only the first occurrence is merged // Only the first occurrence is merged
alreadyMergedComponents.add(sourceComponent.getAlias()); alreadyMergedComponents.add(sourceComponent.getAlias());
// Merge attributes and sub components // Merge attributes and sub components
if (targetComponent.isRedefined()) { if (targetComponent.isRedefined()) {
log.debug("Ignoring '" + sourceComponent.getAlias() + "' as higher level config redefines component"); Monitor.log(
SimCfgConfigurationMerger.class,
Level.DEBUG,
"Ignoring '"
+ sourceComponent.getAlias()
+ "' as higher level config redefines component");
// The higher level config redefines the component. Ignore sub components. // The higher level config redefines the component. Ignore sub components.
return; return;
} else if (targetComponent.isMerged()) { } else if (targetComponent.isMerged()) {
log.debug("Merging component '" + sourceComponent.getAlias() + "' as higher level config allows merge"); Monitor.log(SimCfgConfigurationMerger.class, Level.DEBUG,
"Merging component '" + sourceComponent.getAlias()
+ "' as higher level config allows merge");
// Higher level config allows this component to be merged with an existing one. // Higher level config allows this component to be merged with an existing one.
mergeComponent(sourceComponent, targetComponent); mergeComponent(sourceComponent, targetComponent);
} else { } else {
log.debug("Adding component '" + sourceComponent.getAlias() + "' as higher level config neither allows a merge or redefines the component"); Monitor.log(
SimCfgConfigurationMerger.class,
Level.DEBUG,
"Adding component '"
+ sourceComponent.getAlias()
+ "' as higher level config neither allows a merge or redefines the component");
// No merging or redefine. The component is simply added as another instance // No merging or redefine. The component is simply added as another instance
adder.addComponent(sourceComponent); adder.addComponent(sourceComponent);
} }
......
...@@ -19,20 +19,20 @@ ...@@ -19,20 +19,20 @@
package de.tud.kom.p2psim.impl.scenario.simcfg2.configuration; package de.tud.kom.p2psim.impl.scenario.simcfg2.configuration;
import com.google.common.base.CharMatcher;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Import;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.scanner.Scanner;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
import org.apache.log4j.Logger;
import java.io.File; import java.io.File;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
import com.google.common.base.CharMatcher;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Import;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.scanner.Scanner;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
public class SimCfgFileParser { public class SimCfgFileParser {
private static Logger log = SimLogger.getLogger(SimCfgFileParser.class);
private File currentFile; // Contains the file of the currently parsed config (changes during parsing) private File currentFile; // Contains the file of the currently parsed config (changes during parsing)
...@@ -114,7 +114,8 @@ public class SimCfgFileParser { ...@@ -114,7 +114,8 @@ public class SimCfgFileParser {
if (currentFile != null) { if (currentFile != null) {
name = currentFile.getName(); name = currentFile.getName();
} }
log.debug("[" + name + "] " + output); Monitor.log(SimCfgFileParser.class, Level.DEBUG, "[" + name + "] "
+ output);
} }
private void logInfo(String output) { private void logInfo(String output) {
...@@ -122,6 +123,7 @@ public class SimCfgFileParser { ...@@ -122,6 +123,7 @@ public class SimCfgFileParser {
if (currentFile != null) { if (currentFile != null) {
name = currentFile.getName(); name = currentFile.getName();
} }
log.info("[" + name + "] " + output); Monitor.log(SimCfgFileParser.class, Level.DEBUG, "[" + name + "] "
+ output);
} }
} }
...@@ -26,8 +26,6 @@ import java.util.List; ...@@ -26,8 +26,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.log4j.Logger;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import de.tud.kom.p2psim.api.scenario.Composable; import de.tud.kom.p2psim.api.scenario.Composable;
...@@ -41,7 +39,8 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration ...@@ -41,7 +39,8 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value;
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgExpressionExecutor; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgExpressionExecutor;
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
/** /**
...@@ -49,7 +48,6 @@ import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; ...@@ -49,7 +48,6 @@ import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
* @version 1.0, 17.08.13 * @version 1.0, 17.08.13
*/ */
public class ComponentInitializer { public class ComponentInitializer {
private static Logger log = SimLogger.getLogger(ComponentInitializer.class);
/** /**
* The static getter method that is called on components marked with static * The static getter method that is called on components marked with static
* in the configuration. The method is expected to have the signature * in the configuration. The method is expected to have the signature
...@@ -82,11 +80,18 @@ public class ComponentInitializer { ...@@ -82,11 +80,18 @@ public class ComponentInitializer {
boolean isActive = component.getGuard() != null ? expressionExecutor.evaluate(configuration, component.getGuard()) : true; boolean isActive = component.getGuard() != null ? expressionExecutor.evaluate(configuration, component.getGuard()) : true;
if (!isActive) { if (!isActive) {
log.debug("Ignoring: " + component.getName() + " [guard: " + component.getGuard() + ", type: " + mapping.getName() + "]"); Monitor.log(
ComponentInitializer.class,
Level.DEBUG,
"Ignoring: " + component.getName() + " [guard: "
+ component.getGuard() + ", type: "
+ mapping.getName() + "]");
continue; continue;
} }
log.debug("Processing: " + component.getName() + " [guard: " + component.getGuard() + ", type: " + mapping.getName() + "]"); Monitor.log(ComponentInitializer.class, Level.DEBUG, "Processing: "
+ component.getName() + " [guard: " + component.getGuard()
+ ", type: " + mapping.getName() + "]");
Object initializedComponent = createComponent(null, component); Object initializedComponent = createComponent(null, component);
context.addComponent(component, initializedComponent); context.addComponent(component, initializedComponent);
} }
...@@ -100,7 +105,9 @@ public class ComponentInitializer { ...@@ -100,7 +105,9 @@ public class ComponentInitializer {
boolean isActive = component.getGuard() != null ? expressionExecutor.evaluate(configuration, component.getGuard()) : true; boolean isActive = component.getGuard() != null ? expressionExecutor.evaluate(configuration, component.getGuard()) : true;
if (!isActive) { if (!isActive) {
log.debug("Ignoring: " + component.getName() + " [guard: " + component.getGuard() + "]"); Monitor.log(ComponentInitializer.class, Level.DEBUG, "Ignoring: "
+ component.getName() + " [guard: " + component.getGuard()
+ "]");
return null; return null;
} }
...@@ -114,7 +121,8 @@ public class ComponentInitializer { ...@@ -114,7 +121,8 @@ public class ComponentInitializer {
System.out.println("test"); System.out.println("test");
} }
log.debug("Creating " + component.getName() + ": " + mapping.getCanonicalName()); Monitor.log(ComponentInitializer.class, Level.DEBUG, "Creating "
+ component.getName() + ": " + mapping.getCanonicalName());
ConstructorMatchInfo constructor = InitializationUtils.findBestMatchingConstructor(component, context); ConstructorMatchInfo constructor = InitializationUtils.findBestMatchingConstructor(component, context);
Object componentObj = instantiateComponent(constructor, component); Object componentObj = instantiateComponent(constructor, component);
...@@ -212,9 +220,11 @@ public class ComponentInitializer { ...@@ -212,9 +220,11 @@ public class ComponentInitializer {
} }
public Object constructWithConstructor(ConstructorMatchInfo matchInfo, Component component) { public Object constructWithConstructor(ConstructorMatchInfo matchInfo, Component component) {
log.debug("Selected: " + matchInfo); Monitor.log(ComponentInitializer.class, Level.DEBUG, "Selected: "
+ matchInfo);
Object[] arguments = createTypedAttributes(matchInfo, component.getAttributes()); Object[] arguments = createTypedAttributes(matchInfo, component.getAttributes());
log.debug("With arguments: " + Arrays.asList(arguments)); Monitor.log(ComponentInitializer.class, Level.DEBUG, "With arguments: "
+ Arrays.asList(arguments));
try { try {
return matchInfo.getConstructor().newInstance(arguments); return matchInfo.getConstructor().newInstance(arguments);
} catch (Exception e) { } catch (Exception e) {
...@@ -245,7 +255,8 @@ public class ComponentInitializer { ...@@ -245,7 +255,8 @@ public class ComponentInitializer {
if (index == -1) { if (index == -1) {
continue; continue;
} }
log.debug("kv: [" + key + ", " + attributes.get(key) + "], index: " + index); Monitor.log(ComponentInitializer.class, Level.DEBUG, "kv: [" + key
+ ", " + attributes.get(key) + "], index: " + index);
Class<?> type = matchInfo.getParameterTypes()[index]; Class<?> type = matchInfo.getParameterTypes()[index];
arguments[index] = SimCfgTypeConverter.convertTo(key, context.getVariableResolver().resolveValue(value), type); arguments[index] = SimCfgTypeConverter.convertTo(key, context.getVariableResolver().resolveValue(value), type);
} }
...@@ -256,7 +267,9 @@ public class ComponentInitializer { ...@@ -256,7 +267,9 @@ public class ComponentInitializer {
if (index == -1) { if (index == -1) {
continue; continue;
} }
log.debug("kv: [" + key + ", " + matchInfo.getComponentInConstructor().get(key) + "], index: " + index); Monitor.log(ComponentInitializer.class, Level.DEBUG, "kv: [" + key
+ ", " + matchInfo.getComponentInConstructor().get(key)
+ "], index: " + index);
arguments[index] = createComponent(null, matchInfo.getComponentInConstructor().get(key)); arguments[index] = createComponent(null, matchInfo.getComponentInConstructor().get(key));
} }
...@@ -294,7 +307,11 @@ public class ComponentInitializer { ...@@ -294,7 +307,11 @@ public class ComponentInitializer {
if (setterMethod != null) { if (setterMethod != null) {
setterMethod.invoke(newComponent, typedParameter); setterMethod.invoke(newComponent, typedParameter);
} else { } else {
log.debug("Magic method has been invoked on '" + component.getName() + "' for '" + parameter + "' with value '" + typedParameter + "'."); Monitor.log(ComponentInitializer.class, Level.DEBUG,
"Magic method has been invoked on '"
+ component.getName() + "' for '"
+ parameter + "' with value '"
+ typedParameter + "'.");
if (magicMethod.getParameterTypes()[1].equals(Value.class)) { if (magicMethod.getParameterTypes()[1].equals(Value.class)) {
magicMethod.invoke(newComponent, parameter, value); magicMethod.invoke(newComponent, parameter, value);
} else { } else {
......
...@@ -24,8 +24,6 @@ import java.util.Collection; ...@@ -24,8 +24,6 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
...@@ -37,7 +35,8 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.Component; ...@@ -37,7 +35,8 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.Component;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.ConfigurationContext; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.ConfigurationContext;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration;
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory; import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory;
/** /**
...@@ -45,7 +44,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory; ...@@ -45,7 +44,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory;
* @version 1.0, 17.08.13 * @version 1.0, 17.08.13
*/ */
public class InitializationContext { public class InitializationContext {
private static Logger log = SimLogger.getLogger(InitializationContext.class);
private SimCfgConfigurator configurator; private SimCfgConfigurator configurator;
private SimCfgConfiguration configuration; private SimCfgConfiguration configuration;
...@@ -118,7 +116,8 @@ public class InitializationContext { ...@@ -118,7 +116,8 @@ public class InitializationContext {
} }
public void register(String name, Object component) { public void register(String name, Object component) {
log.debug("Registering component '" + name + "'."); Monitor.log(InitializationContext.class, Level.DEBUG,
"Registering component '" + name + "'.");
strangeComponentNameToObjectMap.put(name, component); strangeComponentNameToObjectMap.put(name, component);
} }
......
...@@ -31,8 +31,6 @@ import java.util.List; ...@@ -31,8 +31,6 @@ import java.util.List;
import java.util.PriorityQueue; import java.util.PriorityQueue;
import java.util.Set; import java.util.Set;
import org.apache.log4j.Logger;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
...@@ -44,7 +42,8 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.Component; ...@@ -44,7 +42,8 @@ import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.Component;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value;
import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil; import de.tud.kom.p2psim.impl.scenario.simcfg2.utils.SimCfgUtil;
import de.tud.kom.p2psim.impl.util.Tuple; import de.tud.kom.p2psim.impl.util.Tuple;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
/** /**
...@@ -52,7 +51,6 @@ import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor; ...@@ -52,7 +51,6 @@ import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
* @version 1.0, 17.08.13 * @version 1.0, 17.08.13
*/ */
public class InitializationUtils { public class InitializationUtils {
private static Logger log = SimLogger.getLogger(InitializationUtils.class);
public static ConstructorMatchInfo findBestMatchingConstructor(Component component, InitializationContext context) { public static ConstructorMatchInfo findBestMatchingConstructor(Component component, InitializationContext context) {
...@@ -124,7 +122,8 @@ public class InitializationUtils { ...@@ -124,7 +122,8 @@ public class InitializationUtils {
while (anotherRound) { while (anotherRound) {
anotherRound = false; anotherRound = false;
log.debug("Components to configure this round: " + descriptors); Monitor.log(InitializationUtils.class, Level.DEBUG,
"Components to configure this round: " + descriptors);
Iterator iter = descriptors.iterator(); Iterator iter = descriptors.iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
...@@ -146,16 +145,29 @@ public class InitializationUtils { ...@@ -146,16 +145,29 @@ public class InitializationUtils {
boolean dependenciesAreConfigured = optionalStatus && requiredStatus; boolean dependenciesAreConfigured = optionalStatus && requiredStatus;
if (!dependenciesAreConfigured) { if (!dependenciesAreConfigured) {
log.debug("Component: " + component.getClass().getName()); Monitor.log(InitializationUtils.class, Level.DEBUG,
log.debug("Optional dependencies configured: " + optionalStatus + " " + Lists.newArrayList(optionalDependencies)); "Component: " + component.getClass().getName());
log.debug("Required dependencies configured: " + requiredStatus + " " + Lists.newArrayList(requiredDependencies)); Monitor.log(
InitializationUtils.class,
Level.DEBUG,
"Optional dependencies configured: "
+ optionalStatus + " "
+ Lists.newArrayList(optionalDependencies));
Monitor.log(
InitializationUtils.class,
Level.DEBUG,
"Required dependencies configured: "
+ requiredStatus + " "
+ Lists.newArrayList(requiredDependencies));
anotherRound = true; anotherRound = true;
continue; continue;
} }
Method configureMethod = descriptor.getConfigureMethod(); Method configureMethod = descriptor.getConfigureMethod();
log.debug("Configuring " + configureMethod.getName() + " of " + component.getClass().getSimpleName()); Monitor.log(InitializationUtils.class, Level.DEBUG,
"Configuring " + configureMethod.getName() + " of "
+ component.getClass().getSimpleName());
try { try {
if (configureMethod.getReturnType().equals(boolean.class)) { if (configureMethod.getReturnType().equals(boolean.class)) {
if (!(Boolean) configureMethod.invoke(component, buildConfigureParameterArray(component, configureMethod, context))) { if (!(Boolean) configureMethod.invoke(component, buildConfigureParameterArray(component, configureMethod, context))) {
...@@ -164,17 +176,27 @@ public class InitializationUtils { ...@@ -164,17 +176,27 @@ public class InitializationUtils {
iter.remove(); iter.remove();
if (!getAvailableTypes(descriptors).contains(component.getClass())) { // TODO: getAvailableTypes is inefficient if (!getAvailableTypes(descriptors).contains(component.getClass())) { // TODO: getAvailableTypes is inefficient
log.debug(component.getClass().getSimpleName() + " is fully configured..."); Monitor.log(InitializationUtils.class,
Level.DEBUG, component.getClass()
.getSimpleName()
+ " is fully configured...");
configuredTypes.add(component.getClass()); configuredTypes.add(component.getClass());
} }
} }
} else { } else {
log.debug("The configuration methods return type of '" + component.getClass().getSimpleName() + "' isn't boolean and thus will only be called once."); Monitor.log(
InitializationUtils.class,
Level.DEBUG,
"The configuration methods return type of '"
+ component.getClass().getSimpleName()
+ "' isn't boolean and thus will only be called once.");
configureMethod.invoke(component, buildConfigureParameterArray(component, configureMethod, context)); configureMethod.invoke(component, buildConfigureParameterArray(component, configureMethod, context));
iter.remove(); iter.remove();
if (!getAvailableTypes(descriptors).contains(component.getClass())) { // TODO: getAvailableTypes is inefficient if (!getAvailableTypes(descriptors).contains(component.getClass())) { // TODO: getAvailableTypes is inefficient
log.debug(component.getClass().getSimpleName() + " is fully configured..."); Monitor.log(InitializationUtils.class, Level.DEBUG,
component.getClass().getSimpleName()
+ " is fully configured...");
configuredTypes.add(component.getClass()); configuredTypes.add(component.getClass());
} }
} }
...@@ -213,7 +235,9 @@ public class InitializationUtils { ...@@ -213,7 +235,9 @@ public class InitializationUtils {
throwExceptionIfDependsOnSelf(cls, component); throwExceptionIfDependsOnSelf(cls, component);
if (isAvailableConfigurationType(availableComponentTypes, cls) && !alreadyConfigured(configuredTypes, cls)) { if (isAvailableConfigurationType(availableComponentTypes, cls) && !alreadyConfigured(configuredTypes, cls)) {
log.debug("Skipping " + component.getClass().getSimpleName() + ", since " + cls.getSimpleName() + " isn't configured yet"); Monitor.log(InitializationUtils.class, Level.DEBUG, "Skipping "
+ component.getClass().getSimpleName() + ", since "
+ cls.getSimpleName() + " isn't configured yet");
return false; return false;
} }
} }
...@@ -224,12 +248,17 @@ public class InitializationUtils { ...@@ -224,12 +248,17 @@ public class InitializationUtils {
// TODO: Merge alreadyConfigured and isAvailableConfigurationType // TODO: Merge alreadyConfigured and isAvailableConfigurationType
private static boolean alreadyConfigured(Collection<Class> configuredTypes, Class testCls) { private static boolean alreadyConfigured(Collection<Class> configuredTypes, Class testCls) {
for (Class cls : configuredTypes) { for (Class cls : configuredTypes) {
log.debug("Testing " + testCls.getSimpleName() + " against " + cls.getSimpleName()); Monitor.log(
InitializationUtils.class,
Level.DEBUG,
"Testing " + testCls.getSimpleName() + " against "
+ cls.getSimpleName());
if (testCls.isAssignableFrom(cls)) { if (testCls.isAssignableFrom(cls)) {
return true; return true;
} }
} }
log.debug(testCls.getSimpleName() + " is not yet configured."); Monitor.log(InitializationUtils.class, Level.DEBUG,
testCls.getSimpleName() + " is not yet configured.");
return false; return false;
} }
......
...@@ -21,20 +21,17 @@ package de.tud.kom.p2psim.impl.scenario.simcfg2.initialization; ...@@ -21,20 +21,17 @@ package de.tud.kom.p2psim.impl.scenario.simcfg2.initialization;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger;
import de.tud.kom.p2psim.api.scenario.ConfigurationException; import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.SimCfgConfiguration;
import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value; import de.tud.kom.p2psim.impl.scenario.simcfg2.configuration.beans.Value;
import de.tud.kom.p2psim.impl.util.logging.SimLogger;
/** /**
* @author Fabio Zöllner * @author Fabio Zöllner
* @version 1.0, 17.08.13 * @version 1.0, 17.08.13
*/ */
public class VariableResolver { public class VariableResolver {
private static Logger log = SimLogger.getLogger(VariableResolver.class);
private SimCfgConfiguration configuration; private SimCfgConfiguration configuration;
public VariableResolver(SimCfgConfiguration configuration) { public VariableResolver(SimCfgConfiguration configuration) {
this.configuration = configuration; this.configuration = configuration;
......
...@@ -19,17 +19,19 @@ ...@@ -19,17 +19,19 @@
*/ */
package de.tud.kom.p2psim.impl.scenario.simcfg2.utils; package de.tud.kom.p2psim.impl.scenario.simcfg2.utils;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import com.google.common.collect.Sets;
import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.impl.scenario.simcfg2.SimCfgConfigurator;
import de.tudarmstadt.maki.simonstrator.api.Host;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponent;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory;
import org.apache.log4j.Logger;
import org.dom4j.Element; import org.dom4j.Element;
import com.google.common.collect.Sets;
import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.api.scenario.ConfigurationException; import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.scenario.Configurator; import de.tud.kom.p2psim.api.scenario.Configurator;
import de.tud.kom.p2psim.api.scenario.HostBuilder; import de.tud.kom.p2psim.api.scenario.HostBuilder;
...@@ -37,8 +39,12 @@ import de.tud.kom.p2psim.api.scenario.simcfg.SimCfgHostBuilder; ...@@ -37,8 +39,12 @@ import de.tud.kom.p2psim.api.scenario.simcfg.SimCfgHostBuilder;
import de.tud.kom.p2psim.api.scenario.simcfg.converter.SimCfgTypeConverter; import de.tud.kom.p2psim.api.scenario.simcfg.converter.SimCfgTypeConverter;
import de.tud.kom.p2psim.impl.common.DefaultHost; import de.tud.kom.p2psim.impl.common.DefaultHost;
import de.tud.kom.p2psim.impl.common.DefaultHostProperties; import de.tud.kom.p2psim.impl.common.DefaultHostProperties;
import de.tud.kom.p2psim.impl.scenario.simcfg2.SimCfgConfigurator;
import de.tud.kom.p2psim.impl.scenario.simcfg2.annotations.Configure; import de.tud.kom.p2psim.impl.scenario.simcfg2.annotations.Configure;
import de.tud.kom.p2psim.impl.util.logging.SimLogger; import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponent;
import de.tudarmstadt.maki.simonstrator.api.component.HostComponentFactory;
/** /**
* This host builder uses the @Configure annotation of the SimCfgConfigurator to * This host builder uses the @Configure annotation of the SimCfgConfigurator to
...@@ -49,7 +55,6 @@ import de.tud.kom.p2psim.impl.util.logging.SimLogger; ...@@ -49,7 +55,6 @@ import de.tud.kom.p2psim.impl.util.logging.SimLogger;
* @version 1.0, 07.05.2012 * @version 1.0, 07.05.2012
*/ */
public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder { public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder {
private static Logger log = SimLogger.getLogger(SimCfgDefaultHostBuilder.class);
private int experimentSize = 0; private int experimentSize = 0;
private ArrayList<HostGroup> hostGroups = new ArrayList<HostGroup>(); private ArrayList<HostGroup> hostGroups = new ArrayList<HostGroup>();
...@@ -73,14 +78,21 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder ...@@ -73,14 +78,21 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder
for (String layer : hostGroup.getComponents()) { for (String layer : hostGroup.getComponents()) {
HostComponentFactory factory = configurator.getFactory(layer); HostComponentFactory factory = configurator.getFactory(layer);
if (factory == null) { if (factory == null) {
log.warn("Host group " + hostGroup.getGroupId() + ": Couldn't obtain factory '" + layer + "', ignoring."); Monitor.log(SimCfgDefaultHostBuilder.class, Level.DEBUG,
"Host group " + hostGroup.getGroupId()
+ ": Couldn't obtain factory '" + layer
+ "', ignoring.");
} else { } else {
log.debug("Found factory '" + factory.getClass().getSimpleName() + "'."); Monitor.log(SimCfgDefaultHostBuilder.class, Level.DEBUG,
"Found factory '"
+ factory.getClass().getSimpleName() + "'.");
instanciatedLayers.add(factory); instanciatedLayers.add(factory);
} }
} }
log.info("Configuring host group '" + hostGroup.getGroupId() + "' with " + hostGroup.getSize() + " nodes."); Monitor.log(SimCfgDefaultHostBuilder.class, Level.INFO,
"Configuring host group '" + hostGroup.getGroupId()
+ "' with " + hostGroup.getSize() + " nodes.");
// create hosts and instances of specified components for each host // create hosts and instances of specified components for each host
Set<String> warnedKeys = Sets.newHashSet(); Set<String> warnedKeys = Sets.newHashSet();
...@@ -101,7 +113,14 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder ...@@ -101,7 +113,14 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder
} catch (ConfigurationException e) { } catch (ConfigurationException e) {
if (!warnedKeys.contains(key)) { if (!warnedKeys.contains(key)) {
warnedKeys.add(key); warnedKeys.add(key);
log.warn("Loss of precession: Could not set the attribute '" + key + "' on host group '" + hostGroup.getGroupId() + "'. Adding a custom property with type String."); Monitor.log(
SimCfgDefaultHostBuilder.class,
Level.WARN,
"Loss of precession: Could not set the attribute '"
+ key
+ "' on host group '"
+ hostGroup.getGroupId()
+ "'. Adding a custom property with type String.");
} }
hostProperties.setProperty(key, (String) SimCfgTypeConverter.convertTo(key, hostGroup.getProperties().get(key), String.class)); hostProperties.setProperty(key, (String) SimCfgTypeConverter.convertTo(key, hostGroup.getProperties().get(key), String.class));
} }
...@@ -114,7 +133,8 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder ...@@ -114,7 +133,8 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder
} }
group.add(host); group.add(host);
} }
log.debug("Created a group with " + group.size() + " hosts"); Monitor.log(SimCfgDefaultHostBuilder.class, Level.DEBUG,
"Created a group with " + group.size() + " hosts");
hosts.addAll(group); hosts.addAll(group);
groups.put(hostGroup.getGroupId(), group); groups.put(hostGroup.getGroupId(), group);
} }
...@@ -126,7 +146,13 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder ...@@ -126,7 +146,13 @@ public class SimCfgDefaultHostBuilder implements SimCfgHostBuilder, HostBuilder
} }
if (hosts.size() != experimentSize) { if (hosts.size() != experimentSize) {
log.warn("Only " + hosts.size() + " hosts were specified, though the experiment size was set to " + experimentSize); Monitor.log(
SimCfgDefaultHostBuilder.class,
Level.WARN,
"Only "
+ hosts.size()
+ " hosts were specified, though the experiment size was set to "
+ experimentSize);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment