From: Anjo K. <an...@us...> - 2008-01-11 16:32:07
|
Update of /cvsroot/wonder/Wonder/Deployment/JavaMonitorFramework/Sources/com/webobjects/monitor/_private In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7369/Sources/com/webobjects/monitor/_private Modified Files: MHost.java MInstance.java MApplication.java Log Message: - Major refactoring to reduce code size and have at least halfway reasonable structure. - Added "Bounce" action - Fixed refuseNewSessions bug Index: MHost.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Deployment/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MHost.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MHost.java 4 Nov 2007 20:30:45 -0000 1.2 --- MHost.java 11 Jan 2008 16:32:01 -0000 1.3 *************** *** 30,62 **** import com.webobjects.foundation._NSThreadsafeMutableArray; - public class MHost extends MObject { /* ! NSString name; ! NSString type; // WINDOWS | UNIX | MACOSX */ ! /********** 'values' accessors **********/ ! public String name() { return (String) values.valueForKey("name"); } ! public void setName(String value) { values.takeValueForKey(value, "name"); _siteConfig.dataHasChanged(); } ! public String type() { return (String) values.valueForKey("type"); } ! public void setType(String value) { values.takeValueForKey(MObject.validatedHostType(value), "type"); _siteConfig.dataHasChanged(); } ! /**********/ ! ! /********** Object Graph **********/ NSMutableArray _instanceArray; NSMutableArray _applicationArray = new NSMutableArray(); ! public NSMutableArray instanceArray() { return _instanceArray; } ! public NSArray applicationArray() { return _applicationArray; } ! /**********/ ! /********** Constructors **********/ // From the UI public MHost(MSiteConfig aConfig, String name, String type) { ! this(new NSDictionary <Object, Object>(new Object[]{name, type}, new Object[]{"name", "type"}), aConfig); } --- 30,78 ---- import com.webobjects.foundation._NSThreadsafeMutableArray; public class MHost extends MObject { /* ! * NSString name; NSString type; // WINDOWS | UNIX | MACOSX */ ! /** ******** 'values' accessors ********* */ ! public String name() { ! return (String) values.valueForKey("name"); ! } ! public void setName(String value) { ! values.takeValueForKey(value, "name"); ! _siteConfig.dataHasChanged(); ! } ! public String type() { ! return (String) values.valueForKey("type"); ! } ! ! public void setType(String value) { ! values.takeValueForKey(MObject.validatedHostType(value), "type"); ! _siteConfig.dataHasChanged(); ! } ! ! /** ******* */ ! ! /** ******** Object Graph ********* */ NSMutableArray _instanceArray; + NSMutableArray _applicationArray = new NSMutableArray(); ! public NSMutableArray instanceArray() { ! return _instanceArray; ! } + public NSArray applicationArray() { + return _applicationArray; + } ! /** ******* */ ! ! /** ******** Constructors ********* */ // From the UI public MHost(MSiteConfig aConfig, String name, String type) { ! this(new NSDictionary<Object, Object>(new Object[] { name, type }, new Object[] { "name", "type" }), aConfig); } *************** *** 74,84 **** // This is just for caching purposes ! errorResponse = (new _JavaMonitorCoder()).encodeRootObjectForKey(new NSDictionary<String, NSArray> (new NSArray("Failed to contact " + name() +"-"+ WOApplication.application().lifebeatDestinationPort()), "errorResponse"), "instanceResponse"); } - /**********/ - ! /********** Adding and Removing Instance Primitives **********/ public void _addInstancePrimitive(MInstance anInstance) { _instanceArray.addObject(anInstance); --- 90,102 ---- // This is just for caching purposes ! errorResponse = (new _JavaMonitorCoder()).encodeRootObjectForKey(new NSDictionary<String, NSArray>(new NSArray( ! "Failed to contact " + name() + "-" + WOApplication.application().lifebeatDestinationPort()), ! "errorResponse"), "instanceResponse"); } ! /** ******* */ ! ! /** ******** Adding and Removing Instance Primitives ********* */ public void _addInstancePrimitive(MInstance anInstance) { _instanceArray.addObject(anInstance); *************** *** 90,97 **** public void _removeInstancePrimitive(MInstance anInstance) { _instanceArray.removeObject(anInstance); ! // get the instances's host - check all the other instances that this application has to see if any other ones have that host // if not, remove it. boolean uniqueApplication = true; ! for (Enumeration e = _instanceArray.objectEnumerator(); e.hasMoreElements(); ) { MInstance anInst = (MInstance) e.nextElement(); if (anInstance._application == anInst._application) { --- 108,116 ---- public void _removeInstancePrimitive(MInstance anInstance) { _instanceArray.removeObject(anInstance); ! // get the instances's host - check all the other instances that this ! // application has to see if any other ones have that host // if not, remove it. boolean uniqueApplication = true; ! for (Enumeration e = _instanceArray.objectEnumerator(); e.hasMoreElements();) { MInstance anInst = (MInstance) e.nextElement(); if (anInstance._application == anInst._application) { *************** *** 104,114 **** } } - /**********/ ! /********** InetAddress stuff **********/ private InetAddress _address = null; ! public InetAddress address() { return _address; } public String addressAsString() { --- 123,135 ---- } } + /** ******* */ ! /** ******** InetAddress stuff ********* */ private InetAddress _address = null; ! public InetAddress address() { ! return _address; ! } public String addressAsString() { *************** *** 118,142 **** return "Unknown"; } - /**********/ ! /********** Archiving Support **********/ ! public NSDictionary dictionaryForArchive() { return values; } public String toString() { ! return ! values.toString() + "\n" + ! "address = " + _address + "\n" + ! "runningInstances = " + runningInstances + "\n" + ! "operatingSystem = " + operatingSystem + "\n" + ! "processorType = " + processorType + "\n"; } - /**********/ ! public Integer runningInstancesCount_W() { int runningInstances = 0; int numInstances = _instanceArray.count(); ! for (int i=0; i<numInstances; i++) { MInstance anInstance = (MInstance) _instanceArray.objectAtIndex(i); if (anInstance.isRunning_W()) { --- 139,174 ---- return "Unknown"; } + /** ******* */ ! @Override ! public boolean equals(Object other) { ! return (other instanceof MHost) && (((MHost) other)._address.equals(_address)); ! } ! ! @Override ! public int hashCode() { ! return _address.hashCode(); ! } ! ! /** ******** Archiving Support ********* */ ! public NSDictionary dictionaryForArchive() { ! return values; ! } public String toString() { ! if (false) { ! return values.toString() + " " + "address = " + _address + " " + "runningInstances = " + runningInstances ! + " " + "operatingSystem = " + operatingSystem + " " + "processorType = " + processorType + " "; ! } ! return "MHost@" + _address; } ! /** ******* */ ! public Integer runningInstancesCount_W() { int runningInstances = 0; int numInstances = _instanceArray.count(); ! for (int i = 0; i < numInstances; i++) { MInstance anInstance = (MInstance) _instanceArray.objectAtIndex(i); if (anInstance.isRunning_W()) { *************** *** 169,173 **** public MInstance instanceWithPort(Integer port) { int instanceArrayCount = _instanceArray.count(); ! for (int i=0; i<instanceArrayCount; i++) { MInstance anInst = (MInstance) _instanceArray.objectAtIndex(i); if (anInst.port().equals(port)) { --- 201,205 ---- public MInstance instanceWithPort(Integer port) { int instanceArrayCount = _instanceArray.count(); ! for (int i = 0; i < instanceArrayCount; i++) { MInstance anInst = (MInstance) _instanceArray.objectAtIndex(i); if (anInst.port().equals(port)) { *************** *** 178,205 **** } ! ! /********** Machine Information and Availability Check (Used by MONITOR) **********/ public String runningInstances = "?"; public String operatingSystem = "?"; public String processorType = "?"; public boolean isAvailable = false; public void _setHostInfo(NSDictionary _hostStats) { Object aValue = null; ! aValue = _hostStats.valueForKey("runningInstances"); ! if (aValue != null) runningInstances = aValue.toString(); ! aValue = _hostStats.valueForKey("operatingSystem"); ! if (aValue != null) operatingSystem = aValue.toString(); aValue = _hostStats.valueForKey("processorType"); ! if (aValue != null) processorType = aValue.toString(); } - /**********/ - ! /********** Communications Goop **********/ public static WOResponse[] sendRequestToWotaskdArray(NSData content, NSArray wotaskdArray, boolean willChange) { MSiteConfig aConfig; --- 210,244 ---- } ! /** ! * ******** Machine Information and Availability Check (Used by MONITOR) ! * ********* ! */ public String runningInstances = "?"; + public String operatingSystem = "?"; + public String processorType = "?"; + public boolean isAvailable = false; public void _setHostInfo(NSDictionary _hostStats) { Object aValue = null; ! aValue = _hostStats.valueForKey("runningInstances"); ! if (aValue != null) ! runningInstances = aValue.toString(); ! aValue = _hostStats.valueForKey("operatingSystem"); ! if (aValue != null) ! operatingSystem = aValue.toString(); aValue = _hostStats.valueForKey("processorType"); ! if (aValue != null) ! processorType = aValue.toString(); } + /** ******* */ ! /** ******** Communications Goop ********* */ public static WOResponse[] sendRequestToWotaskdArray(NSData content, NSArray wotaskdArray, boolean willChange) { MSiteConfig aConfig; *************** *** 218,228 **** if (NSLog.debugLoggingAllowedForLevelAndGroups(NSLog.DebugLevelDetailed, NSLog.DebugGroupDeployment)) NSLog.debug.appendln("Sending sync requests to: " + syncHosts.array()); ! // final MSiteConfig finalConfig = aConfig; Thread[] workers = new Thread[syncHosts.count()]; ! for (int i=0; i<workers.length; i++) { final int j = i; Runnable work = new Runnable() { public void run() { ! MHost aHost = (MHost)syncHosts.objectAtIndex(j); aHost.sendRequestToWotaskd(aSyncRequest, true, true); } --- 257,267 ---- if (NSLog.debugLoggingAllowedForLevelAndGroups(NSLog.DebugLevelDetailed, NSLog.DebugGroupDeployment)) NSLog.debug.appendln("Sending sync requests to: " + syncHosts.array()); ! // final MSiteConfig finalConfig = aConfig; Thread[] workers = new Thread[syncHosts.count()]; ! for (int i = 0; i < workers.length; i++) { final int j = i; Runnable work = new Runnable() { public void run() { ! MHost aHost = (MHost) syncHosts.objectAtIndex(j); aHost.sendRequestToWotaskd(aSyncRequest, true, true); } *************** *** 233,237 **** try { ! for (int i=0; i<workers.length; i++) { workers[i].join(); } --- 272,276 ---- try { ! for (int i = 0; i < workers.length; i++) { workers[i].join(); } *************** *** 240,245 **** } ! ! final WORequest aRequest = new WORequest(MObject._POST, MObject.directActionString, MObject._HTTP1, aConfig.passwordDictionary(), content, null); final NSArray finalWotaskdArray = wotaskdArray; final boolean wc = willChange; --- 279,284 ---- } ! final WORequest aRequest = new WORequest(MObject._POST, MObject.directActionString, MObject._HTTP1, aConfig ! .passwordDictionary(), content, null); final NSArray finalWotaskdArray = wotaskdArray; final boolean wc = willChange; *************** *** 248,256 **** final WOResponse[] responses = new WOResponse[workers.length]; ! for (int i=0; i<workers.length; i++) { final int j = i; Runnable work = new Runnable() { public void run() { ! responses[j] = ((MHost) finalWotaskdArray.objectAtIndex(j)).sendRequestToWotaskd(aRequest, wc, false); } }; --- 287,296 ---- final WOResponse[] responses = new WOResponse[workers.length]; ! for (int i = 0; i < workers.length; i++) { final int j = i; Runnable work = new Runnable() { public void run() { ! responses[j] = ((MHost) finalWotaskdArray.objectAtIndex(j)).sendRequestToWotaskd(aRequest, wc, ! false); } }; *************** *** 260,264 **** try { ! for (int i=0; i<workers.length; i++) { workers[i].join(); } --- 300,304 ---- try { ! for (int i = 0; i < workers.length; i++) { workers[i].join(); } *************** *** 271,285 **** private static WORequest _syncRequest = null; private static WORequest syncRequest(MSiteConfig aConfig) { if (_syncRequest == null) { ! NSMutableDictionary<String, NSDictionary> data = new NSMutableDictionary<String, NSDictionary>(aConfig.dictionaryForArchive(), "SiteConfig"); ! NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>> updateWotaskd = new NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>>(data, "sync"); ! NSMutableDictionary<String, NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>>> monitorRequest = new NSMutableDictionary<String, NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>>>(updateWotaskd, "updateWotaskd"); ! NSData content = new NSData( (new _JavaMonitorCoder()).encodeRootObjectForKey(monitorRequest, "monitorRequest") ); ! _syncRequest = new WORequest(MObject._POST, MObject.directActionString, MObject._HTTP1, aConfig.passwordDictionary(), content, null); } return _syncRequest; } ! private String errorResponse = null; --- 311,331 ---- private static WORequest _syncRequest = null; + private static WORequest syncRequest(MSiteConfig aConfig) { if (_syncRequest == null) { ! NSMutableDictionary<String, NSDictionary> data = new NSMutableDictionary<String, NSDictionary>(aConfig ! .dictionaryForArchive(), "SiteConfig"); ! NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>> updateWotaskd = new NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>>( ! data, "sync"); ! NSMutableDictionary<String, NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>>> monitorRequest = new NSMutableDictionary<String, NSMutableDictionary<String, NSMutableDictionary<String, NSDictionary>>>( ! updateWotaskd, "updateWotaskd"); ! NSData content = new NSData((new _JavaMonitorCoder()).encodeRootObjectForKey(monitorRequest, ! "monitorRequest")); ! _syncRequest = new WORequest(MObject._POST, MObject.directActionString, MObject._HTTP1, aConfig ! .passwordDictionary(), content, null); } return _syncRequest; } ! private String errorResponse = null; *************** *** 290,294 **** try { ! WOHTTPConnection anHTTPConnection = new WOHTTPConnection(name(), WOApplication.application().lifebeatDestinationPort()); anHTTPConnection.setReceiveTimeout(10000); --- 336,341 ---- try { ! WOHTTPConnection anHTTPConnection = new WOHTTPConnection(name(), WOApplication.application() ! .lifebeatDestinationPort()); anHTTPConnection.setReceiveTimeout(10000); *************** *** 306,310 **** isAvailable = false; } ! } catch(Throwable localException) { if (NSLog.debugLoggingAllowedForLevelAndGroups(NSLog.DebugLevelDetailed, NSLog.DebugGroupDeployment)) NSLog.err.appendln(localException); --- 353,357 ---- isAvailable = false; } ! } catch (Throwable localException) { if (NSLog.debugLoggingAllowedForLevelAndGroups(NSLog.DebugLevelDetailed, NSLog.DebugGroupDeployment)) NSLog.err.appendln(localException); Index: MInstance.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Deployment/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MInstance.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MInstance.java 31 Oct 2007 16:01:18 -0000 1.1 --- MInstance.java 11 Jan 2008 16:32:01 -0000 1.2 *************** *** 27,172 **** import com.webobjects.foundation.NSTimestampFormatter; - public class MInstance extends MObject { static NSTimestampFormatter dateFormatter = new NSTimestampFormatter("%m/%d/%Y %H:%M:%S %Z"); static NSTimestampFormatter shutdownFormatter = new NSTimestampFormatter("%a @ %H:00"); /* ! String hostName; ! Integer id; ! Integer port; [...1252 lines suppressed...] ! if ((temp == 0) && (startTime <= currentHourOfDay)) ! currentDayOfMonth += 7; ! setNextScheduledShutdown(new NSTimestamp(currentYear, currentMonth, currentDayOfMonth, startTime, 0, 0, ! currentTimeZone)); } *************** *** 824,828 **** NSLog.debug.appendln("calculateNextScheduledShutdown: " + _nextScheduledShutdown); } ! /**********/ ! } --- 1074,1078 ---- NSLog.debug.appendln("calculateNextScheduledShutdown: " + _nextScheduledShutdown); } ! /** ******* */ ! } Index: MApplication.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Deployment/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MApplication.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MApplication.java 5 Nov 2007 12:43:50 -0000 1.2 --- MApplication.java 11 Jan 2008 16:32:01 -0000 1.3 *************** *** 63,71 **** */ /********** 'values' accessors **********/ public String name() { return (String) values.valueForKey("name"); } public void setName(String value) { if (!value.equals(name())) { ! setOldname(name()); values.takeValueForKey(value, "name"); _siteConfig.dataHasChanged(); --- 63,96 ---- */ + String _name; + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name() == null) ? 0 : name().hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final MApplication other = (MApplication) obj; + if ( name() == null) { + if (other. name() != null) + return false; + } else if (! name().equals(other.name())) + return false; + return true; + } /********** 'values' accessors **********/ public String name() { return (String) values.valueForKey("name"); } public void setName(String value) { if (!value.equals(name())) { ! setOldname(name()); values.takeValueForKey(value, "name"); _siteConfig.dataHasChanged(); *************** *** 223,228 **** NSMutableArray _hostArray = new NSMutableArray(); ! public NSArray instanceArray() { return _instanceArray; } ! public NSArray hostArray() { return _hostArray; } /**********/ --- 248,253 ---- NSMutableArray _hostArray = new NSMutableArray(); ! public NSArray<MInstance> instanceArray() { return _instanceArray; } ! public NSArray<MHost> hostArray() { return _hostArray; } /**********/ *************** *** 312,316 **** public String toString() { ! return values.toString(); } --- 337,344 ---- public String toString() { ! if(false) { ! return values.toString(); ! } ! return "MApplication@" + name(); } |