You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(89) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(9) |
Feb
(6) |
Mar
(22) |
Apr
(34) |
May
(43) |
Jun
(48) |
Jul
(96) |
Aug
(64) |
Sep
(30) |
Oct
(12) |
Nov
(17) |
Dec
(21) |
2007 |
Jan
(61) |
Feb
(24) |
Mar
(51) |
Apr
(54) |
May
(41) |
Jun
(57) |
Jul
(16) |
Aug
(12) |
Sep
(29) |
Oct
(143) |
Nov
(57) |
Dec
(193) |
2008 |
Jan
(92) |
Feb
(54) |
Mar
(34) |
Apr
(50) |
May
(71) |
Jun
(3) |
Jul
(16) |
Aug
(16) |
Sep
(11) |
Oct
(13) |
Nov
(8) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(9) |
Apr
(36) |
May
(10) |
Jun
(2) |
Jul
(13) |
Aug
(15) |
Sep
(5) |
Oct
(2) |
Nov
(13) |
Dec
(4) |
2010 |
Jan
(5) |
Feb
(2) |
Mar
(6) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(24) |
Sep
(14) |
Oct
(8) |
Nov
(4) |
Dec
(9) |
2011 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(1) |
From: Eric P. <th...@us...> - 2005-12-06 17:46:44
|
Update of /cvsroot/sandev/sand/platform/tools/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20065 Modified Files: build.xml Log Message: Fixed confusing comment. Index: build.xml =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/build.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** build.xml 4 Dec 2005 02:56:04 -0000 1.3 --- build.xml 6 Dec 2005 17:46:36 -0000 1.4 *************** *** 214,218 **** </fileset> </copy> ! <!-- repack the new war and copy it into the deployment area --> <mkdir dir="./wardeploy"/> <war destfile="./wardeploy/${warfile}" --- 214,218 ---- </fileset> </copy> ! <!-- repack the new war --> <mkdir dir="./wardeploy"/> <war destfile="./wardeploy/${warfile}" |
From: Eric P. <th...@us...> - 2005-12-06 17:45:45
|
Update of /cvsroot/sandev/sand/platform/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19901 Modified Files: release.txt Log Message: Updated release description. Index: release.txt =================================================================== RCS file: /cvsroot/sandev/sand/platform/docs/release.txt,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** release.txt 30 Nov 2005 04:11:00 -0000 1.1.1.1 --- release.txt 6 Dec 2005 17:45:37 -0000 1.2 *************** *** 1,6 **** ! Release 0.8.0 is a prerelease version of ! the sandev project without tool support or ! hot redeploy. We don't recommend using ! this for development yet. The online docs are posted at sandev.org --- 1,5 ---- ! Release 0.9.0 is a beta version of the ! sandev project. The tools work, but hot ! redeploy is not supported yet. The online docs are posted at sandev.org |
From: Eric P. <th...@us...> - 2005-12-06 15:35:55
|
Update of /cvsroot/sandev/sand/apps/TaskHeap/src/org/sandev/TaskHeap/TaskHeapUI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21749 Modified Files: UIActionHandler.java Log Message: if componentSummaryAction is already working with a PlanComponentReport (or gets anything else that it doesn't know what to do with), then it should just return the uifc.currInst unchanged. This gets rid of display problems when performing multiple edits on a PlanComponentReport directly. Index: UIActionHandler.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/TaskHeap/src/org/sandev/TaskHeap/TaskHeapUI/UIActionHandler.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** UIActionHandler.java 30 Nov 2005 04:10:39 -0000 1.1.1.1 --- UIActionHandler.java 6 Dec 2005 15:35:47 -0000 1.2 *************** *** 1537,1540 **** --- 1537,1541 ---- throws UIFormManagerException { + owner.log(LOGINFO,"UIActionHandler: executing componentSummaryAction"); PlanComponentReport pcr=new PlanComponentReport(); Note[] notes=new Note[0]; *************** *** 1559,1562 **** --- 1560,1566 ---- pcr.setDescription(ep.getDescription()); notes=ep.getNotes(); } + else { + owner.log(LOGINFO,"componentSummaryAction unknown instance: " + sim); + return uifc; } ReportWriter rw=new ReportWriter(); StringBuffer out=new StringBuffer(); |
From: Eric P. <th...@us...> - 2005-12-05 23:29:18
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20255 Modified Files: FastXMLWSServlet.java XHTMLSandUIServlet.java Log Message: Added protection where if the service node is unavailable, then sleep for a bit before returning an error. This gating should help prevent getting inundated with a barrage of requests from automated clients resubmitting in a tight loop while the server is starting up. Index: XHTMLSandUIServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/XHTMLSandUIServlet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XHTMLSandUIServlet.java 5 Dec 2005 15:42:06 -0000 1.2 --- XHTMLSandUIServlet.java 5 Dec 2005 23:29:10 -0000 1.3 *************** *** 44,47 **** --- 44,48 ---- import org.sandev.basics.nodecommon.CharSerializerFactory; import org.sandev.basics.nodecommon.NodeInstanceFactory; + import org.sandev.basics.nodecommon.Controllable; import org.sandev.basics.structs.SandException; import org.sandev.basics.structs.SandUpdateMessage; *************** *** 657,660 **** --- 658,666 ---- SandUI sandui=getSandUI(); UIFormOwner owner=getFormOwner(); + if(owner instanceof Controllable) { + Controllable node=(Controllable)owner; + if(node.getSandNodeState()!=Controllable.STATE_RUNNING) { + pauseAndFail(res); + return; } } UserWorkLog uwl=owner.getUserWorkLog(); uwl.init(null); *************** *** 1876,1879 **** --- 1882,1906 ---- + /** + * Return failure after waiting for a few moments. The wait is to + * prevent lots of clients from continually retrying and thereby + * causing a barrage of requests that prevents us from getting any + * work done, especially when starting up. + */ + protected void pauseAndFail(HttpServletResponse res) + throws IOException + { + try { + Thread.sleep(20*1000); + } catch(InterruptedException e) { + //just fall through, all we were doing was pausing anyway.. + } + res.setContentType("text/html; charset=iso-8859-1"); + PrintWriter out=res.getWriter(); + out.println("<p>The application is currently unavailable, please try "); + out.println("back in a few moments. </p>"); + } + + //////////////////////////////////////// // template conversion utilities Index: FastXMLWSServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/FastXMLWSServlet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FastXMLWSServlet.java 5 Dec 2005 15:42:06 -0000 1.2 --- FastXMLWSServlet.java 5 Dec 2005 23:29:10 -0000 1.3 *************** *** 27,30 **** --- 27,31 ---- import org.sandev.basics.nodecommon.Messageable; import org.sandev.basics.nodecommon.SerializerUtil; + import org.sandev.basics.nodecommon.Controllable; import org.sandev.basics.util.CommBridge; import org.sandev.basics.util.AuthUser; *************** *** 233,236 **** --- 234,238 ---- try { CommBridge cb=getCommBridge(); + verifyRunning(cb); String username=req.getParameter("username"); //debug("username: " + username); *************** *** 283,286 **** --- 285,316 ---- /** + * If the CommBridge is a node that is not currently running, then + * throw an exception after waiting for a few moments. The wait is + * to prevent lots of clients from continually retrying and thereby + * causing a barrage of requests that prevents us from getting any + * work done, especially whn starting up. + */ + protected void verifyRunning(CommBridge cb) + throws SandException + { + boolean running=true; + if(cb==null) { + running=false; } + else if(cb instanceof Controllable) { + Controllable node=(Controllable)cb; + if(node.getSandNodeState()!=Controllable.STATE_RUNNING) { + running=false; } } + if(!running) { + debug("CommBridge unavailable, failing request after hold."); + try { + Thread.sleep(20*1000); + } catch(InterruptedException e) { + //just fall through, all we were doing was pausing.. + } + throw new SandException("CommBridge is not running"); } + } + + + /** * Dump out the given text to the debug log. Just calls system out * for now. |
From: Eric P. <th...@us...> - 2005-12-05 15:50:21
|
Update of /cvsroot/sandev/sand/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4324 Modified Files: dirmap.html intro.html Messaging.html Persist.html Testing.html UIGen.html Log Message: Final sandboss cleanout. Index: Persist.html =================================================================== RCS file: /cvsroot/sandev/sand/docs/Persist.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Persist.html 30 Nov 2005 04:10:55 -0000 1.1.1.1 --- Persist.html 5 Dec 2005 15:50:12 -0000 1.2 *************** *** 23,32 **** <P>This document provides an overview of the persistence implementation in ! SandBoss, which serves as an updated reference and framework for <A HREF="http://www.epinova.com/docs/sand.html">Structs and Nodes Development</A> (SAND). Persistence in SAND is transactionally safe, queryable, permanent storage of application information which can be implemented over any persistence technology. The default implementation ! in SandBoss uses JDBC. <BR> <P>A typical persistent struct declaration looks like this: <PRE> --- 23,32 ---- <P>This document provides an overview of the persistence implementation in ! SANDev, which serves as an updated reference and framework for <A HREF="http://www.epinova.com/docs/sand.html">Structs and Nodes Development</A> (SAND). Persistence in SAND is transactionally safe, queryable, permanent storage of application information which can be implemented over any persistence technology. The default implementation ! in SANDev uses JDBC. <BR> <P>A typical persistent struct declaration looks like this: <PRE> *************** *** 336,340 **** <P>By default, the <A HREF="../platform/tools/docs/javadoc/org/sandev/tools/JDBC/JDBCPersister.html"> ! JDBCPersister</A> that comes with SandBoss maps persistent struct definitions as follows: <UL> <LI>A persistent message instance is stored in a table with the same name. --- 336,340 ---- <P>By default, the <A HREF="../platform/tools/docs/javadoc/org/sandev/tools/JDBC/JDBCPersister.html"> ! JDBCPersister</A> that comes with SANDev maps persistent struct definitions as follows: <UL> <LI>A persistent message instance is stored in a table with the same name. Index: Messaging.html =================================================================== RCS file: /cvsroot/sandev/sand/docs/Messaging.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Messaging.html 30 Nov 2005 04:10:55 -0000 1.1.1.1 --- Messaging.html 5 Dec 2005 15:50:12 -0000 1.2 *************** *** 452,481 **** <p><b><a name="msgimpl"/>Messaging implementation: </b></p> ! <p>SandBoss ships with a <a href="../platform/tools/docs/javadoc/org/sandev/tools/util/DirectCallMessager.html"> ! DirectCallMessager</a> which handles delivery of messages through direct java method calls if possible. This much is a common need for all system deployments we have been involved with. After that it gets significantly more complicated. </p> ! <p>SandBoss will probably include a default JMS implementation of the <a href="../apps/basics/docs/javadoc/org/sandev/basics/nodecommon/Messager.html"> ! Messager</a> interface at some point in the future. This will be adequate ! to support inter-server communications for full-JMS systems, and for ! systems where the JMS implementation provides necessary bridging to all ! other protocols needed. In practice however, were finding that: <ul> ! <li>Many systems want to do their synchronous communications using web ! services, without any JMS involvement at all (except possibly for ! asynchronous feeds). ! <li>Systems with homogeneous, geographically distributed installations ! may want to take advantage of specific native features of their ! messaging system which are not part of the JMS specification. ! </ul> ! ! <p>In these, and other cases, the application will want to provide their ! own Messager implementation(s). For more information on Messager ! implementations related to your application requirements, contact ! <a href="http://sandservices.com">Structs And Nodes Development Services</a> ! </p> <p><a href="#TOC">TOC</a></p> --- 452,465 ---- <p><b><a name="msgimpl"/>Messaging implementation: </b></p> ! <p>SANDev comes with a <a href="../platform/tools/docs/javadoc/org/sandev/tools/util/DirectCallMessager.html"> ! DirectCallMessager</a> that handles delivery of messages through direct java method calls if possible. This much is a common need for all system deployments we have been involved with. After that it gets significantly more complicated. </p> ! <p>There is also a JMS <a href="../apps/basics/docs/javadoc/org/sandev/basics/nodecommon/Messager.html"> ! Messager</a>, and there may be one for web services in the future. </p> <p><a href="#TOC">TOC</a></p> Index: UIGen.html =================================================================== RCS file: /cvsroot/sandev/sand/docs/UIGen.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** UIGen.html 30 Nov 2005 04:10:57 -0000 1.1.1.1 --- UIGen.html 5 Dec 2005 15:50:12 -0000 1.2 *************** *** 440,444 **** <p>How the adaptor node does its work, and what the view generator code needs to do, depends on your application, the interface API, and which ! framework you are using. SandBoss ships with an example <a href="../deploy/TaskHeapDemo/docs/index.html">TaskHeapDemo</a> deployment with a simplified user interface that serves as an example --- 440,444 ---- <p>How the adaptor node does its work, and what the view generator code needs to do, depends on your application, the interface API, and which ! framework you are using. SANDev ships with an example <a href="../deploy/TaskHeapDemo/docs/index.html">TaskHeapDemo</a> deployment with a simplified user interface that serves as an example Index: dirmap.html =================================================================== RCS file: /cvsroot/sandev/sand/docs/dirmap.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** dirmap.html 30 Nov 2005 04:10:54 -0000 1.1.1.1 --- dirmap.html 5 Dec 2005 15:50:11 -0000 1.2 *************** *** 7,11 **** <BODY BGColor="#FFFFFF"> ! <P><CENTER><H1>SandBoss directories and files<BR></H1></CENTER> <P><B><A Name="TOC"><A HREF="#TOC">Table of Contents</A>:</B><UL> --- 7,11 ---- <BODY BGColor="#FFFFFF"> ! <P><CENTER><H1>SANDev directories and files<BR></H1></CENTER> <P><B><A Name="TOC"><A HREF="#TOC">Table of Contents</A>:</B><UL> *************** *** 88,92 **** <P><B><A Name="resfile">reserved files: </B><BR> ! <P>Files reserved for use by the SandBoss RAD environment: <UL> <LI><B>build/build.xml</B> is used for the build process. You can modify this to run your generators and do other build related activities. <BR> --- 88,92 ---- <P><B><A Name="resfile">reserved files: </B><BR> ! <P>Files reserved for use by the SANDev RAD environment: <UL> <LI><B>build/build.xml</B> is used for the build process. You can modify this to run your generators and do other build related activities. <BR> Index: Testing.html =================================================================== RCS file: /cvsroot/sandev/sand/docs/Testing.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Testing.html 30 Nov 2005 04:10:56 -0000 1.1.1.1 --- Testing.html 5 Dec 2005 15:50:12 -0000 1.2 *************** *** 19,23 **** <P><B><A Name="intro">introduction: </B><BR> ! <P>SandBoss provides an integrated message-level testing infrastructure which can be leveraged for functionality verification, regression, "smoke check" and other purposes. This document provides an overview of the --- 19,23 ---- <P><B><A Name="intro">introduction: </B><BR> ! <P>SANDev provides an integrated message-level testing infrastructure which can be leveraged for functionality verification, regression, "smoke check" and other purposes. This document provides an overview of the *************** *** 41,52 **** <P>Assuming an application or deployment called "MyProj", this is how testing works in the simplest case: <OL> ! <LI>The SandBoss developer uses the test script editor to define a new test script, saving it as <CODE>MyProj/test/test_1.xml</CODE> ! <LI>The SandBoss developer uses the configuration editor to define a new configuration with the nodes required for the test. The developer saves the test as <CODE>MyProj/test/config_1.xml</CODE> after verifying <CODE>test_1.xml</CODE> is listed in the <CODE>testScripts</CODE> parameter of the MessageDriver node instance. ! <LI>At runtime, SandBossRoot finds the test directory off of the triggering build area and loads <CODE>config_1.xml</CODE>, which in turn triggers the MessageDriverNode to load <CODE>test_1.xml</CODE>. At the conclusion --- 41,52 ---- <P>Assuming an application or deployment called "MyProj", this is how testing works in the simplest case: <OL> ! <LI>The SANDev developer uses the test script editor to define a new test script, saving it as <CODE>MyProj/test/test_1.xml</CODE> ! <LI>The SANDev developer uses the configuration editor to define a new configuration with the nodes required for the test. The developer saves the test as <CODE>MyProj/test/config_1.xml</CODE> after verifying <CODE>test_1.xml</CODE> is listed in the <CODE>testScripts</CODE> parameter of the MessageDriver node instance. ! <LI>At runtime, SandRoot finds the test directory off of the triggering build area and loads <CODE>config_1.xml</CODE>, which in turn triggers the MessageDriverNode to load <CODE>test_1.xml</CODE>. At the conclusion *************** *** 74,81 **** <CODE>MyBasicApp/test</CODE> into <CODE>MyProj/test/MyBasicApp</CODE>. ! <LI>When loading configurations, SandBossRoot goes through all subdirectories first, on the idea that these represent module tests and aggregated application tests which are more likely to pinpoint problems. ! Within a directory, SandBossRoot goes through configuration files in alphabetical order. The overall result is a depth-first alphabetical traversal of the defined test configurations. --- 74,81 ---- <CODE>MyBasicApp/test</CODE> into <CODE>MyProj/test/MyBasicApp</CODE>. ! <LI>When loading configurations, SandRoot goes through all subdirectories first, on the idea that these represent module tests and aggregated application tests which are more likely to pinpoint problems. ! Within a directory, SandRoot goes through configuration files in alphabetical order. The overall result is a depth-first alphabetical traversal of the defined test configurations. *************** *** 95,99 **** <LI>A deployment may wish to test basic functionality on system startup. By defining a specific set of configurations and tests to be copied for the ! deployment, a "smoke check" test is set up. Unless halted, SandBossRoot will load the main configuration and start it as the last step in the system startup process. --- 95,99 ---- <LI>A deployment may wish to test basic functionality on system startup. By defining a specific set of configurations and tests to be copied for the ! deployment, a "smoke check" test is set up. Unless halted, SandRoot will load the main configuration and start it as the last step in the system startup process. *************** *** 106,114 **** </UL> ! <P>Test suite management can get as advanced as necessary through specific build targets appropriate for the deployment. For additional details, refer ! to the build files or the ! <A HREF="../platform/tools/docs/javadoc/org/sandev/tools/SandBossRoot/package-summary.html"> ! SandBossRoot</A> package documentation.<BR> <P><A HREF="#TOC">TOC</A> --- 106,112 ---- </UL> ! <p>Test suite management can get as advanced as necessary through specific build targets appropriate for the deployment. For additional details, refer ! to the build files and documentation. </p> <P><A HREF="#TOC">TOC</A> Index: intro.html =================================================================== RCS file: /cvsroot/sandev/sand/docs/intro.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** intro.html 30 Nov 2005 04:10:54 -0000 1.1.1.1 --- intro.html 5 Dec 2005 15:50:11 -0000 1.2 *************** *** 1,5 **** <html> <head> ! <title>SandBoss top level</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> --- 1,5 ---- <html> <head> ! <title>SANDev top level</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> |
From: Eric P. <th...@us...> - 2005-12-05 15:49:48
|
Update of /cvsroot/sandev/sand/deploy/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4161 Modified Files: adaptor.html depover.html Log Message: Final sandboss cleanout. Index: adaptor.html =================================================================== RCS file: /cvsroot/sandev/sand/deploy/docs/adaptor.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** adaptor.html 30 Nov 2005 04:10:43 -0000 1.1.1.1 --- adaptor.html 5 Dec 2005 15:49:40 -0000 1.2 *************** *** 22,26 **** <P><B><A Name="intro">introduction: </B><BR> ! <P>Adaptor nodes which are controlled outside of the sandbox (eg SandBoss) pose some unique deployment challenges, since they cannot be configured and identified in the deployment configuration. They are essentially --- 22,26 ---- <P><B><A Name="intro">introduction: </B><BR> ! <P>Adaptor nodes which are controlled outside of the SANDev environment pose some unique deployment challenges, since they cannot be configured and identified in the deployment configuration. They are essentially Index: depover.html =================================================================== RCS file: /cvsroot/sandev/sand/deploy/docs/depover.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** depover.html 30 Nov 2005 04:10:43 -0000 1.1.1.1 --- depover.html 5 Dec 2005 15:49:40 -0000 1.2 *************** *** 149,157 **** <P>How a config editor will be made available to a SAND environment user will vary depending on the environment they are using. In the case of ! SandBoss, we have a straightforward webapp that is made part of every deployment. The webapp is implemented through a webapp directory, which is be packaged into a .war file for each deployment. <BR> ! <P>However it's important to note that webapps are specific to the SandBoss environment (or at least J2EE-based SAND environments). The same thing would probably *not* make sense for a .NET environment, or a PDA --- 149,157 ---- <P>How a config editor will be made available to a SAND environment user will vary depending on the environment they are using. In the case of ! SANDev, we have a straightforward webapp that is made part of every deployment. The webapp is implemented through a webapp directory, which is be packaged into a .war file for each deployment. <BR> ! <P>However it's important to note that webapps are specific to the SANDev environment (or at least J2EE-based SAND environments). The same thing would probably *not* make sense for a .NET environment, or a PDA *************** *** 162,166 **** support creation of the config editor. However it's important to note that this aspect of the overall system is not part of SAND, but rather part of ! the SandBoss network application compiler. A webapp is not supported across every potential application environment. <BR> --- 162,166 ---- support creation of the config editor. However it's important to note that this aspect of the overall system is not part of SAND, but rather part of ! the SANDev network application compiler. A webapp is not supported across every potential application environment. <BR> |
From: Eric P. <th...@us...> - 2005-12-05 15:47:08
|
Update of /cvsroot/sandev/sand/platform/tools/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3699 Modified Files: Control.html intro.html Log Message: Final sandboss cleanout. Index: Control.html =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/docs/Control.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Control.html 30 Nov 2005 04:11:20 -0000 1.1.1.1 --- Control.html 5 Dec 2005 15:47:00 -0000 1.2 *************** *** 64,68 **** it looks for the presence of <code>sandev/config.xml</code> to see if it is running as part of a deployment WAR. If it is, then it creates a new ! instance of SandBossRoot and initializes the SingletonAccessor. </p> <br /><br /><br /><br /><br /><br /><br /><br /> --- 64,68 ---- it looks for the presence of <code>sandev/config.xml</code> to see if it is running as part of a deployment WAR. If it is, then it creates a new ! instance of SandRoot and initializes the SingletonAccessor. </p> <br /><br /><br /><br /><br /><br /><br /><br /> Index: intro.html =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/docs/intro.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** intro.html 30 Nov 2005 04:11:20 -0000 1.1.1.1 --- intro.html 5 Dec 2005 15:47:00 -0000 1.2 *************** *** 17,22 **** <li><a href="javadoc/org/sandev/tools/UIProcessor/package-summary.html"> UI processor</a></li> ! <li><a href="javadoc/org/sandev/tools/SandBossRoot/package-summary.html"> ! SandBossRoot</a> deployment runtime interface</li> </ul> </p><br/> --- 17,22 ---- <li><a href="javadoc/org/sandev/tools/UIProcessor/package-summary.html"> UI processor</a></li> ! <li><a href="javadoc/org/sandev/tools/SANDPlatformRoot/package-summary.html"> ! SANDPlatformRoot</a> deployment runtime interface</li> </ul> </p><br/> |
From: Eric P. <th...@us...> - 2005-12-05 15:46:51
|
Update of /cvsroot/sandev/sand/platform/tools/webapp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3638 Modified Files: index.html Log Message: Final sandboss cleanout. Index: index.html =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/webapp/index.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** index.html 30 Nov 2005 04:11:30 -0000 1.1.1.1 --- index.html 5 Dec 2005 15:46:43 -0000 1.2 *************** *** 1,13 **** ! <HTML> ! <HEAD> ! <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> ! <TITLE>SandBoss tools index page</TITLE> ! </HEAD> ! <BODY> ! <P>You have reached the default tools page. <BR> ! <P>The config editor should be <A HREF="./ConfigEditor">here</A>. <BR> ! </BODY> ! </HTML> --- 1,15 ---- ! <html> ! <head> ! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ! <title>SANDev tools index page</title> ! </head> ! <body> ! <p>You have reached the default tools page, probably as a result of ! following a bad link. </p> ! <p>To access the config editor, try ! <a href="./ConfigEditor">click here</A>. </p> ! </body> ! </html> |
From: Eric P. <th...@us...> - 2005-12-05 15:46:24
|
Update of /cvsroot/sandev/sand/platform/sandbuild/src/org/sandev/sandbuild In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3574 Modified Files: SandManifest.java Log Message: Final sandboss cleanout. Index: SandManifest.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/sandbuild/src/org/sandev/sandbuild/SandManifest.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** SandManifest.java 30 Nov 2005 04:11:03 -0000 1.1.1.1 --- SandManifest.java 5 Dec 2005 15:46:16 -0000 1.2 *************** *** 65,69 **** PrintWriter out=new PrintWriter(fw); out.println("Manifest-Version: 1.0"); ! out.println("Created-By: SandBoss"); if(addClassPath) { String classpath="Class-Path: "; --- 65,69 ---- PrintWriter out=new PrintWriter(fw); out.println("Manifest-Version: 1.0"); ! out.println("Created-By: SAND"); if(addClassPath) { String classpath="Class-Path: "; |
From: Eric P. <th...@us...> - 2005-12-05 15:43:51
|
Update of /cvsroot/sandev/sand/apps/ui/build/generate/org/sandev/generator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3164 Modified Files: WebShellGeneratorBase.java Log Message: Final sandboss cleanout. Index: WebShellGeneratorBase.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/ui/build/generate/org/sandev/generator/WebShellGeneratorBase.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** WebShellGeneratorBase.java 30 Nov 2005 04:10:41 -0000 1.1.1.1 --- WebShellGeneratorBase.java 5 Dec 2005 15:43:41 -0000 1.2 *************** *** 223,227 **** out.println(""); out.println(" System.out.println(\"" + uideploy.getName() + ": setting SingletonAccessor\");"); ! out.println(" String singletonImplClassName=\"org.sandev.tools.SandBossRoot." + prefix + "SingletonAccessorImpl\";"); out.println(" System.out.println(\"" + uideploy.getName() + ": creating new \" + singletonImplClassName + \" instance\");"); out.println(" Class saImplClass=Class.forName(singletonImplClassName);"); --- 223,227 ---- out.println(""); out.println(" System.out.println(\"" + uideploy.getName() + ": setting SingletonAccessor\");"); ! out.println(" String singletonImplClassName=\"org.sandev.tools.SANDPlatformRoot." + prefix + "SingletonAccessorImpl\";"); out.println(" System.out.println(\"" + uideploy.getName() + ": creating new \" + singletonImplClassName + \" instance\");"); out.println(" Class saImplClass=Class.forName(singletonImplClassName);"); |
From: Eric P. <th...@us...> - 2005-12-05 15:43:24
|
Update of /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/tags In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3091 Modified Files: StructTagVerbforms.java Log Message: Final sandboss cleanout. Index: StructTagVerbforms.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/tags/StructTagVerbforms.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** StructTagVerbforms.java 30 Nov 2005 04:10:16 -0000 1.1.1.1 --- StructTagVerbforms.java 5 Dec 2005 15:43:15 -0000 1.2 *************** *** 94,99 **** * different revisionNumbers. <BR> * ! * <P>Historical processing is not currently supported in the open source ! * version of SandBoss. If your application requires historical processing * contact * <A HREF="http://sandservices.com">Structs And Nodes Development Services</A> --- 94,99 ---- * different revisionNumbers. <BR> * ! * <P>Historical processing is not currently supported in the default ! * version of SAND. If your application requires historical processing * contact * <A HREF="http://sandservices.com">Structs And Nodes Development Services</A> |
From: Eric P. <th...@us...> - 2005-12-05 15:42:17
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2902 Modified Files: FastXMLWSServlet.java XHTMLSandUIServlet.java Log Message: Final sandboss cleanout. Index: XHTMLSandUIServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/XHTMLSandUIServlet.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** XHTMLSandUIServlet.java 30 Nov 2005 04:11:28 -0000 1.1.1.1 --- XHTMLSandUIServlet.java 5 Dec 2005 15:42:06 -0000 1.2 *************** *** 76,81 **** import org.sandev.tools.HTTP.ServletInput; import org.sandev.tools.HTTP.XSLTransformer; ! import org.sandev.tools.SandBossRoot.SandBossRootNode; ! import org.sandev.tools.SandBossRoot.DefaultSingletonAccessorImpl; --- 76,81 ---- import org.sandev.tools.HTTP.ServletInput; import org.sandev.tools.HTTP.XSLTransformer; ! import org.sandev.tools.SANDPlatformRoot.SANDPlatformRootNode; ! import org.sandev.tools.SANDPlatformRoot.DefaultSingletonAccessorImpl; *************** *** 1761,1765 **** SingletonAccessor sa=getSingletonAccessor(); if((sa!=null)&&(sa.getSandRoot()==null)&&(isLocalLaunch())) { ! SandBossRootNode sbrn=new SandBossRootNode(); sbrn.setSingletonAccessor(sa); sbrn.setCharSerializerClassName(getCharSerializerClassName()); --- 1761,1765 ---- SingletonAccessor sa=getSingletonAccessor(); if((sa!=null)&&(sa.getSandRoot()==null)&&(isLocalLaunch())) { ! SANDPlatformRootNode sbrn=new SANDPlatformRootNode(); sbrn.setSingletonAccessor(sa); sbrn.setCharSerializerClassName(getCharSerializerClassName()); Index: FastXMLWSServlet.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/UIProcessor/FastXMLWSServlet.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** FastXMLWSServlet.java 30 Nov 2005 04:11:26 -0000 1.1.1.1 --- FastXMLWSServlet.java 5 Dec 2005 15:42:06 -0000 1.2 *************** *** 30,34 **** import org.sandev.basics.util.AuthUser; import org.sandev.ui.util.SandUIAdaptor; ! import org.sandev.tools.SandBossRoot.DefaultSingletonAccessorImpl; import java.io.PrintWriter; --- 30,34 ---- import org.sandev.basics.util.AuthUser; import org.sandev.ui.util.SandUIAdaptor; ! import org.sandev.tools.SANDPlatformRoot.DefaultSingletonAccessorImpl; import java.io.PrintWriter; |
From: Eric P. <th...@us...> - 2005-12-05 15:40:15
|
Update of /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2370 Modified Files: CtrlPanelServletGenerator.java InstanceFactoryGenerator.java JDBCPersisterGenerator.java NodeStdMBeanGenerator.java SingletonAccessorGenerator.java Log Message: Final sandboss cleanout. Index: JDBCPersisterGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/JDBCPersisterGenerator.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** JDBCPersisterGenerator.java 30 Nov 2005 04:11:10 -0000 1.1.1.1 --- JDBCPersisterGenerator.java 5 Dec 2005 15:40:05 -0000 1.2 *************** *** 122,126 **** out.println("import org.sandev.tools.JDBC." + structPrefix + "QueryProcessor;"); out.println("import org.sandev.tools.JDBC." + structPrefix + "UpdateProcessor;"); ! out.println("import org.sandev.tools.SandBossRoot.SandBossRootNode;"); out.println("import " + getUtilPackage(getLastAppProject()) + ".XMLSerializer;"); out.println(""); --- 122,126 ---- out.println("import org.sandev.tools.JDBC." + structPrefix + "QueryProcessor;"); out.println("import org.sandev.tools.JDBC." + structPrefix + "UpdateProcessor;"); ! out.println("import org.sandev.tools.SANDPlatformRoot.SANDPlatformRootNode;"); out.println("import " + getUtilPackage(getLastAppProject()) + ".XMLSerializer;"); out.println(""); Index: SingletonAccessorGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/SingletonAccessorGenerator.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** SingletonAccessorGenerator.java 30 Nov 2005 04:11:12 -0000 1.1.1.1 --- SingletonAccessorGenerator.java 5 Dec 2005 15:40:05 -0000 1.2 *************** *** 46,50 **** /** ! * Return "gen_base/src/org/sandev/tools/SandBossRoot/prefixSingletonAccessorImpl.java" */ protected String getFileSpec(File baseDir) { --- 46,50 ---- /** ! * Return "gen_base/src/org/sandev/tools/SANDPlatformRoot/prefixSingletonAccessorImpl.java" */ protected String getFileSpec(File baseDir) { *************** *** 57,61 **** return base + File.separator + "src" + File.separator + "org" + File.separator + "sandev" + File.separator + "tools" + ! File.separator + "SandBossRoot" + File.separator + prefix + "SingletonAccessorImpl.java"; } --- 57,61 ---- return base + File.separator + "src" + File.separator + "org" + File.separator + "sandev" + File.separator + "tools" + ! File.separator + "SANDPlatformRoot" + File.separator + prefix + "SingletonAccessorImpl.java"; } *************** *** 67,71 **** protected void writeFile(PrintStream out,SandDecl[] decls) { String prefix=getDeploymentPrefix(); ! out.println("package org.sandev.tools.SandBossRoot;"); out.println(""); out.println(""); --- 67,71 ---- protected void writeFile(PrintStream out,SandDecl[] decls) { String prefix=getDeploymentPrefix(); ! out.println("package org.sandev.tools.SANDPlatformRoot;"); out.println(""); out.println(""); Index: NodeStdMBeanGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/NodeStdMBeanGenerator.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** NodeStdMBeanGenerator.java 30 Nov 2005 04:11:11 -0000 1.1.1.1 --- NodeStdMBeanGenerator.java 5 Dec 2005 15:40:05 -0000 1.2 *************** *** 362,366 **** out.println(" try {"); out.println(" if(mbs!=null) {"); ! out.println(" ObjectName on=new ObjectName(\"SandBoss:service=\" +"); out.println(" nodeInstName);"); out.println(" mbs.registerMBean(this,on); }"); --- 362,366 ---- out.println(" try {"); out.println(" if(mbs!=null) {"); ! out.println(" ObjectName on=new ObjectName(\"SAND:service=\" +"); out.println(" nodeInstName);"); out.println(" mbs.registerMBean(this,on); }"); Index: CtrlPanelServletGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/CtrlPanelServletGenerator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CtrlPanelServletGenerator.java 5 Dec 2005 04:20:27 -0000 1.2 --- CtrlPanelServletGenerator.java 5 Dec 2005 15:40:05 -0000 1.3 *************** *** 100,104 **** out.println("import org.sandev.basics.sandmessages.Configuration;"); out.println("import org.sandev.basics.structs.NodeInstance;"); ! out.println("import org.sandev.tools.SandBossRoot.DefaultSingletonAccessorImpl;"); out.println(""); out.println(""); --- 100,104 ---- out.println("import org.sandev.basics.sandmessages.Configuration;"); out.println("import org.sandev.basics.structs.NodeInstance;"); ! out.println("import org.sandev.tools.SANDPlatformRoot.DefaultSingletonAccessorImpl;"); out.println(""); out.println(""); *************** *** 137,141 **** String prefix=deployment.getAntProject().getProperty("DeploymentPrefix"); out.println(" public final static String jmxCtrlPanelURLPrefix ="); ! out.println(" \"../../JMXPANEL_PLACEHOLDERname=SandBoss%3Aservice%3D\";"); out.println(""); out.println(""); --- 137,141 ---- String prefix=deployment.getAntProject().getProperty("DeploymentPrefix"); out.println(" public final static String jmxCtrlPanelURLPrefix ="); ! out.println(" \"../../JMXPANEL_PLACEHOLDERname=SAND%3Aservice%3D\";"); out.println(""); out.println(""); *************** *** 211,218 **** out.println(" sos.println(\"<p>Found MBeanServer: \" + mbs + \"</p>\");"); out.println(" try {"); ! out.println(" ObjectName filter=new ObjectName(\"Sand*:*\");"); out.println(" Set mbeans=mbs.queryMBeans(filter,null);"); out.println(" if(mbeans.size()<=0) {"); ! out.println(" sos.println(\"No SAND MBeans found (PREFIX deployment)\");"); out.println(" return; }"); out.println(" sos.println(\"<p>Registered SAND node MBeans: <ol>\");"); --- 211,218 ---- out.println(" sos.println(\"<p>Found MBeanServer: \" + mbs + \"</p>\");"); out.println(" try {"); ! out.println(" ObjectName filter=new ObjectName(\"SAND*:*\");"); out.println(" Set mbeans=mbs.queryMBeans(filter,null);"); out.println(" if(mbeans.size()<=0) {"); ! out.println(" sos.println(\"No SAND MBeans found (" + prefix + " deployment)\");"); out.println(" return; }"); out.println(" sos.println(\"<p>Registered SAND node MBeans: <ol>\");"); Index: InstanceFactoryGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/InstanceFactoryGenerator.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** InstanceFactoryGenerator.java 30 Nov 2005 04:11:09 -0000 1.1.1.1 --- InstanceFactoryGenerator.java 5 Dec 2005 15:40:05 -0000 1.2 *************** *** 114,118 **** ClassDoc cd=decls[i].getClassDoc(); String classname=cd.name(); ! if(classname.startsWith("SandBossRoot")) { continue; } String nodename=classname.substring(0,classname.lastIndexOf("Decl"));; --- 114,118 ---- ClassDoc cd=decls[i].getClassDoc(); String classname=cd.name(); ! if(classname.startsWith("SANDPlatformRoot")) { continue; } String nodename=classname.substring(0,classname.lastIndexOf("Decl"));; |
From: Eric P. <th...@us...> - 2005-12-05 15:38:44
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/SANDPlatformRoot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2017 Added Files: SANDPlatformRootNode.java SANDPlatformRootNodeDecl.java Log Message: Final sandboss cleanout. --- NEW FILE: SANDPlatformRootNodeDecl.java --- /* * SAND development/deployment environment * Copyright (C) 2002-2005 SAND Services Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package org.sandev.tools.SANDPlatformRoot; /** * The root of the SAND runtime environment. The main purpose of the * root is to form the base of the configuration tree on a particular * machine. Essentially this is a liaison MBean which is loaded * automatically by the container. Once loaded, it checks the configuration * information to see what other node instances should be created and * started. * * <p>This is an adaptor node, whose lifetime is determined by the * container. Essentially it is loaded on container startup, and destroyed * on container shutdown. Because it is automatically loaded, it has no * configuration parameters. </p> */ public class SANDPlatformRootNodeDecl { //////////////////////////////////////// //The fields here are not config parameters since the root is not //part of the config. These values all set directly by the bootstrap //process using the control interface. //////////////////////////////////////// /** * To allow for setting up the CharSerializer to be used for this node, * we expose the class name as an attribute that can be set via the * control interface. */ protected String charSerializerClassName; /** * To allow for setting up the NodeInstanceFactory to be used for * this node, we expose the class name as an attribute that can be * set via the control interface. */ protected String nodeInstanceFactoryClassName; /** * The full path of the directory where the property files and * config file can be found. To allow this value to be initialized * we expose this field in the control interface. */ protected String propertiesPath; } --- NEW FILE: SANDPlatformRootNode.java --- /* * SAND development/deployment environment * Copyright (C) 2002 SAND Services Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package org.sandev.tools.SANDPlatformRoot; import javax.management.ObjectName; import javax.management.MalformedObjectNameException; import javax.management.InstanceAlreadyExistsException; import javax.management.MBeanServerFactory; import javax.management.MBeanServer; import java.io.IOException; import java.io.File; import java.io.FileReader; import java.io.BufferedReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Iterator; import org.sandev.basics.sandmessages.Configuration; import org.sandev.basics.structs.NodeInstance; import org.sandev.basics.structs.SandException; import org.sandev.basics.nodecommon.SandRoot; import org.sandev.basics.nodecommon.SingletonAccessor; import org.sandev.basics.nodecommon.Controllable; import org.sandev.basics.nodecommon.ControlWrapper; import org.sandev.basics.nodecommon.ControlException; import org.sandev.basics.nodecommon.Logger; import org.sandev.basics.nodecommon.LoggerException; import org.sandev.basics.nodecommon.Loggable; import org.sandev.basics.nodecommon.Messager; import org.sandev.basics.nodecommon.MessagerException; import org.sandev.basics.nodecommon.Messageable; import org.sandev.basics.nodecommon.CharSerializer; import org.sandev.basics.nodecommon.CharSerializerFactory; import org.sandev.basics.nodecommon.NodeInstanceFactory; import org.sandev.basics.util.EnvGrabber; import org.sandev.tools.util.JavaLogger; /** * Implementation of SANDPlatformRootNodeDecl. The root instance is * accessable through the SingletonAccessor class, which is maintained * by the startup and shutdown methods. */ public class SANDPlatformRootNode extends SANDPlatformRootNodeBase implements SandRoot { protected static final String LOGGER_NAME = "SANDPlatformRoot"; //////////////////////////////////////// // data members //////////////////////////////////////// /** * Our SingletonAccessor reference. We initialize this at startup * to provide general access to this root instance from UI adaptor * technologies that are started independently. */ protected SingletonAccessor singletonAccessor; /** accessor for singletonAccessor */ public SingletonAccessor getSingletonAccessor() { return singletonAccessor; } /** mutator for singletonAccessor */ public void setSingletonAccessor(SingletonAccessor val) { singletonAccessor=val; } public SingletonAccessor getRootSingletonAccessor() { SingletonAccessor sa=getSingletonAccessor(); if(sa==null) { sa=DefaultSingletonAccessorImpl.getSingletonAccessor(); } return sa; } /** * The CharSerializer to use when reading the Configuration from file. * This must be set before the node is started. */ protected CharSerializer charSerializer=null; /** accessor for charSerializer */ public CharSerializer getCharSerializer() { return charSerializer; } /** mutator for charSerializer */ public void setCharSerializer(CharSerializer val) { charSerializer=val; } /** * The NodeInstanceFactory to use when instantiating nodes. This is * initialized on startup. */ protected NodeInstanceFactory nodeInstanceFactory=null; /** accessor for nodeInstanceFactory */ public NodeInstanceFactory getNodeInstanceFactory() { return nodeInstanceFactory; } /** mutator for nodeInstanceFactory */ public void setNodeInstanceFactory(NodeInstanceFactory val) { nodeInstanceFactory=val; } /** * On startup, we load the configuration. We keep a copy around * for use by things like the DataManager, or for other nodes that * may want to check it for consistency on startup. */ protected Configuration config; /** accessor for config */ public Configuration getConfiguration() { return config; } /** mutator for config */ public void setConfiguration(Configuration config) { this.config=config; } /** * Messageable instances keyed by instance name. */ protected HashMap dictionary; protected Map getDictionary() { if(dictionary==null) { dictionary=new HashMap(); } return dictionary; } //////////////////////////////////////// // ctor //////////////////////////////////////// /** * The default ctor initializes the basics for this node, since * it doesn't get the benefit of the work done by initNode. */ public SANDPlatformRootNode() { Logger logger = new JavaLogger(); try { logger.init(LOGGER_NAME); } catch(Exception e) { //Oh well, guess we're using println logging.. } setLogger(logger); } //////////////////////////////////////// // overrides (SANDPlatformRootNodeBase implementation) //////////////////////////////////////// /** * On startup, we load the configuration, and initialize the top * level nodes as our helper nodes. The SingletonAccessor reference * must be set before making this call since we initialize it here. */ public void startup() throws ControlException { if(getSandNodeState()==Controllable.STATE_RUNNING) { log(Logger.LOGLEVEL_INFO, "SANDPlatformRootNode.startup: node is RUNNING"); return; } //skip any notification echos if(!validTransition(Controllable.OPERATION_STARTUP)) { String warning="cannot startup, node is currently " + Controllable.STATE_STRINGS[getSandNodeState()]; log(Logger.LOGLEVEL_WARN,warning); return; } SingletonAccessor sa=getRootSingletonAccessor(); log(LOGINFO,"SandRoot SingletonAccessor is " + sa); sa.init(this); setSingletonAccessor(sa); if(getCharSerializer()==null) { log(LOGINFO,"SandRoot loading CharSerializer: " + getCharSerializerClassName()); setCharSerializer(CharSerializerFactory.getCharSerializer( getCharSerializerClassName(),getLogger())); } if(getCharSerializer()==null) { throw new ControlException( "No CharSerializer, so can't load configuration."); } if(getNodeInstanceFactory()==null) { log(LOGINFO,"SandRoot loading NodeInstanceFactory: " + getNodeInstanceFactoryClassName()); initNodeInstanceFactory(); } if(getNodeInstanceFactory()==null) { throw new ControlException( "No NodeInstanceFactory, so can't create nodes."); } EnvGrabber.envDump(); MBeanServer mbs=null; ArrayList al=MBeanServerFactory.findMBeanServer(null); Iterator iter=al.iterator(); log(LOGINFO,"Looking for MBeanServers"); while(iter.hasNext()) { mbs=(MBeanServer)iter.next(); log(LOGINFO," MBeanServer: " + mbs); } loadConfiguration(); if(getConfiguration()!=null) { setLogger(getLoggerForNode(LOGGER_NAME)); setupServices(this,getLocalNodes(getConfiguration())); } if(getHelperNodes()==null) { log(LOGINFO,"no nodes were loaded."); setHelperNodes(new Controllable[0]); } else { log(LOGINFO,"node instances loaded. Calling startup."); } super.startup(); } /** * Clean up what we created. Remove singleton access. */ protected void onShutdown() throws SandException { SingletonAccessor sa=getSingletonAccessor(); if(sa!=null) { sa.init(null); } } /** * Override to handle the global signalling. The local nodes are * handled directly via their Controllable interface since they are * all on this local VM. We then signal across as needed. */ public void systemwideShutdown(int code) throws ControlException { switch(code) { case Controllable.SHUTDOWN_NORMAL: setSandNodeErrorMessage("NORMAL SHUTDOWN GLOBAL"); shutdown(); signalRemoteShutdown(code); break; case Controllable.SHUTDOWN_ERROR_TERMINATE: setSandNodeErrorMessage("ERROR SHUTDOWN GLOBAL"); shutdown(); signalRemoteShutdown(code); break; case Controllable.SHUTDOWN_ERROR_RESTART_LOCAL: setSandNodeErrorMessage("ERROR RESTART LOCAL"); restart(); break; case Controllable.SHUTDOWN_ERROR_RESTART_GLOBAL: setSandNodeErrorMessage("ERROR RESTART GLOBAL"); restart(); signalRemoteShutdown(code); break; default: setSandNodeErrorMessage("ERROR unknown shutdown code"); shutdown(); signalRemoteShutdown(Controllable.SHUTDOWN_ERROR_TERMINATE); break; } } /** * Override of standard generated method. The root does not have * an associated node instance declaration, but we need to return * something for the control panel to display so we just return * "SandRoot". */ public String getNodeInstanceName() { return "SandRoot"; } /** * Override of standard generated method. The root does not have an * associated node instance declaration, but we need to return something * for the control panel to display, so we just return "undefined". */ public String getServername() { return "undefined"; } //////////////////////////////////////// // SandRoot interface implementation //////////////////////////////////////// /** * Using the dictionary and the node tree, find the Messageable * corresponding to the instance name specified. */ public Messageable getNode(String instanceName) { if((instanceName==null)||(instanceName.equals(""))) { return null; } String key=instanceName.intern(); Messageable node=(Messageable)(getDictionary().get(key)); if(node!=null) { return node; } node=findNodeForName(key,getHelperNodes()); return node; } /** * Walk the tree of nodes and return the one with the specified name. * Returns null if nothing was found. This does a recursive tree * traversal. The node is added to our dictionary as a side-effect, * so the specified key should be interned. */ protected Messageable findNodeForName(String key,Controllable[] nodes) { Messageable node=null; if (nodes==null) { return null; } for(int i=0;i<nodes.length;i++) { if(nodes[i].getNodeInstance().getNodeInstanceName().equals(key)) { node=((Messageable)(nodes[i])); getDictionary().put(key,node); break; } Controllable[] subnodes=nodes[i].getHelperNodes(); if(subnodes.length>0) { node=findNodeForName(key,subnodes); } if(node!=null) { break; } } return node; } //////////////////////////////////////// // propertiesPath //////////////////////////////////////// /** * Initializing accessor for propertiesPath. Overrides standard * accessor to return something reasonable when the propertiesPath * was not initialized. */ public String getPropertiesPath() { if(propertiesPath==null) { propertiesPath="sandev"; } return propertiesPath; } //////////////////////////////////////// // utility methods //////////////////////////////////////// /** * Signal the other servers in this configuration that they need * to perform a systemwide shutdown with the specified code. */ protected void signalRemoteShutdown(int code) throws ControlException { //TODO: implement this } /** * Given a Configuration, return an array of those nodes which are * to run on this server. Each server is responsible for loading * its own nodes only. <BR> * * <P>If <CODE>SAND_RUNMODE=development</CODE> in our environment, * then all the nodes are being run on this server regardless of what * is listed in the configuration. This is a typical development * setup. <BR> */ protected NodeInstance[] getLocalNodes(Configuration conf) { if(conf==null) { return null; } //TODO: do the filtering for multi-host after initial demo // For now everything is localhost. return conf.getNodes(); } /** * Load the configuration from file */ protected void loadConfiguration() { String configFileName="config.xml"; try { String propDirName=getPropertiesPath(); File config=new File(propDirName + File.separator + configFileName); log(LOGINFO,"loadConfiguration reading " + config); FileReader fr=new FileReader(config); BufferedReader br=new BufferedReader(fr); setConfiguration((Configuration)charSerializer.read(br)); br.close(); } catch(IOException e) { e.printStackTrace(); log(LOGERROR,"SANDPlatformRootNode could not load Configuration: " + e); } if(getConfiguration()==null) { log(LOGINFO,"no configuration loaded"); } } /** * Walk the node declaration tree creating the nodes and their * corresponding control services. We do not start the helper * nodes at this point, that will be done as part of the startup * processing. */ protected void setupServices(Controllable parent,NodeInstance[] nodes) { try { ArrayList al=new ArrayList(); for(int i=0;i<nodes.length;i++) { NodeInstance decl=nodes[i]; Controllable currnode=getNodeInstanceFactory().createNode(decl); initNode(currnode,decl); al.add(currnode); log(LOGINFO,"Creating " + decl.getNodeInstanceName() + " (" + currnode.getClass().getName() + ")..."); ControlWrapper cw=getNodeInstanceFactory().addControlWrapper(currnode); if(cw!=null) { cw.sandInitialize(); } setupServices(currnode,nodes[i].getHelperNodes()); } Controllable[] helperNodes=new Controllable[al.size()]; helperNodes=(Controllable[])al.toArray(helperNodes); parent.setHelperNodes(helperNodes); } catch(Exception e) { log(LOGERROR,"container creation problem: " + e); e.printStackTrace(); } } /** * Initialize a node with the basics it needs. */ protected void initNode(Object node,NodeInstance decl) { Controllable ctrlnode=(Controllable)node; ctrlnode.setNodeInstance(decl); ctrlnode.setSandRoot(this); Loggable lognode=(Loggable)node; lognode.setLogLevel(decl.getLogLevel()); lognode.setLogger(getLoggerForNode(decl)); Messageable msgnode=(Messageable)node; msgnode.setMessager(getMessagerForNode(msgnode,decl)); } /** * Return a new Logger for use by the node instance corresponding * to the declaration. This is basically a factory method that * looks up the logger to be used and returns a new instance. * Since the logger class is declared by name, we have to look * it up using reflection. * * <P>Yes, reflection is slow, but it makes the system very flexible * and we only pay for it at startup time. We are leaving open the * possibility of specifying different Loggers for specific nodes * within a configuration. <BR> */ protected Logger getLoggerForNode(NodeInstance decl) { return getLoggerForNode(decl.getNodeInstanceName()); } /** * Return a new Logger with the given name. * * @see #getLoggerForNode(NodeInstance) */ protected Logger getLoggerForNode(String loggerName) { Logger sandlogger=null; String logClassName=getConfiguration().getLoggerClass(); if((logClassName==null)||(logClassName.equals(""))) { logClassName="org.sandev.tools.util.JavaLogger"; } try { Class slclass=Class.forName(logClassName); java.lang.reflect.Constructor slctor=slclass.getConstructor(null); Object slobj=slctor.newInstance(null); sandlogger=(Logger)slobj; sandlogger.init(loggerName); } catch(ClassNotFoundException e) { log(LOGWARN,"Could not find class " + logClassName + ": " + e); } catch(NoSuchMethodException e) { log(LOGWARN,"No default ctor for class " + logClassName + ": " + e); } catch(java.lang.reflect.InvocationTargetException e) { log(LOGWARN,"Could not call default ctor for class " + logClassName + ": " + e); } catch(IllegalAccessException e) { log(LOGWARN,"Could not access class " + logClassName + ": " + e); } catch(InstantiationException e) { log(LOGWARN,"Could not instantiate " + logClassName + ": " + e); } catch(LoggerException e) { log(LOGWARN,"Initialization failed " + logClassName + ": " + e); } return sandlogger; } /** * Return a new Messager for use by the node instance corresponding * to the declaration. This is basically a factory method that * looks up the Messager to be used and returns a new instance. * Since the Messager class is declared by name, we have to look * it up using reflection. * * <P>Yes, reflection is slow, but it makes the system very flexible * and we only pay for it at startup time. We are leaving open the * possibility of specifying different Messagers for specific nodes * within a configuration. <BR> */ protected Messager getMessagerForNode(Messageable node,NodeInstance decl) { Messager sandmessager=null; String msgClassName=getConfiguration().getMessagerClass(); if((msgClassName==null)||(msgClassName.equals(""))) { msgClassName="org.sandev.tools.util.DirectCallMessager"; } try { Class smclass=Class.forName(msgClassName); java.lang.reflect.Constructor smctor=smclass.getConstructor(null); Object smobj=smctor.newInstance(null); sandmessager=(Messager)smobj; sandmessager.init(node,decl); } catch(ClassNotFoundException e) { log(LOGWARN,"Could not find class " + msgClassName + ": " + e); } catch(NoSuchMethodException e) { log(LOGWARN,"No default ctor for class " + msgClassName + ": " + e); } catch(java.lang.reflect.InvocationTargetException e) { log(LOGWARN,"Could not call default ctor for class " + msgClassName + ": " + e); } catch(IllegalAccessException e) { log(LOGWARN,"Could not access class " + msgClassName + ": " + e); } catch(InstantiationException e) { log(LOGWARN,"Could not instantiate " + msgClassName + ": " + e); } catch(MessagerException e) { e.printStackTrace(); log(LOGWARN,"Initialization failed " + msgClassName + ": " + e); } return sandmessager; } /** * Initialize our NodeInstanceFactory reference. */ protected void initNodeInstanceFactory() { String name=getNodeInstanceFactoryClassName(); NodeInstanceFactory nif=null; try { Class nifclass=Class.forName(name); java.lang.reflect.Constructor nifctor=nifclass.getConstructor(null); Object nifobj=nifctor.newInstance(null); nif=(NodeInstanceFactory)nifobj; } catch(ClassNotFoundException e) { log(LOGERROR,"Could not find class " + name + ": " + e); } catch(NoSuchMethodException e) { log(LOGERROR,"No default ctor for class " + name + ": " + e); } catch(java.lang.reflect.InvocationTargetException e) { log(LOGERROR,"Could not call default ctor for class " + name + ": " + e); } catch(IllegalAccessException e) { log(LOGERROR,"Could not access class " + name + ": " + e); } catch(InstantiationException e) { log(LOGERROR,"Could not instantiate " + name + ": " + e); } setNodeInstanceFactory(nif); } } |
From: Eric P. <th...@us...> - 2005-12-05 15:38:24
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/SANDPlatformRoot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1930/SANDPlatformRoot Log Message: Directory /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/SANDPlatformRoot added to the repository |
From: Eric P. <th...@us...> - 2005-12-05 15:37:49
|
Update of /cvsroot/sandev/sand/platform/tools/src/org/sandev/tools/SandBossRoot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1872 Removed Files: SandBossRootNode.java SandBossRootNodeDecl.java Log Message: Final sandboss cleanout. --- SandBossRootNode.java DELETED --- --- SandBossRootNodeDecl.java DELETED --- |
From: Eric P. <th...@us...> - 2005-12-05 04:20:35
|
Update of /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5591 Modified Files: CtrlPanelServletGenerator.java Log Message: Rewrote this to work directly with the JMX MBeanServer without any use of the SandRoot. This allows us to double check that our deployed nodes are in fact available, and it is generalizable across containers. The link to the JMX panel is currently a PLACEHOLDER value since Tomcat does not currently have a JMX control panel built in. Apparently this is coming at some point, when it does we'll update this so the links lead to the right place. Index: CtrlPanelServletGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/CtrlPanelServletGenerator.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** CtrlPanelServletGenerator.java 30 Nov 2005 04:11:09 -0000 1.1.1.1 --- CtrlPanelServletGenerator.java 5 Dec 2005 04:20:27 -0000 1.2 *************** *** 83,86 **** --- 83,94 ---- out.println("import javax.servlet.http.HttpServletResponse;"); out.println("import javax.servlet.ServletOutputStream;"); + out.println("import javax.management.ObjectName;"); + out.println("import javax.management.InstanceAlreadyExistsException;"); + out.println("import javax.management.MBeanServerFactory;"); + out.println("import javax.management.MBeanServer;"); + out.println("import javax.management.ObjectInstance;"); + out.println("import java.util.ArrayList;"); + out.println("import java.util.Iterator;"); + out.println("import java.util.Set;"); out.println("import java.io.File;"); out.println("import java.io.FileReader;"); *************** *** 129,134 **** String prefix=deployment.getAntProject().getProperty("DeploymentPrefix"); out.println(" public final static String jmxCtrlPanelURLPrefix ="); ! out.println(" \"../../jmx-console/HtmlAdaptor?action=inspectMBean&name=SandBoss%3Aservice%3D\";"); ! out.println(""); out.println(""); out.println(""); --- 137,141 ---- String prefix=deployment.getAntProject().getProperty("DeploymentPrefix"); out.println(" public final static String jmxCtrlPanelURLPrefix ="); ! out.println(" \"../../JMXPANEL_PLACEHOLDERname=SandBoss%3Aservice%3D\";"); out.println(""); out.println(""); *************** *** 138,142 **** out.println(""); out.println(" /**"); ! out.println(" * <P>Pass HTTP 'GET' request over to handleRequest method. <BR>"); out.println(" */"); out.println(" public void doGet(HttpServletRequest req, HttpServletResponse res) {"); --- 145,149 ---- out.println(""); out.println(" /**"); ! out.println(" * Pass HTTP 'GET' request over to handleRequest method."); out.println(" */"); out.println(" public void doGet(HttpServletRequest req, HttpServletResponse res) {"); *************** *** 146,150 **** out.println(""); out.println(" /**"); ! out.println(" * <P>Pass HTTP 'POST' request over to handleRequest method. <BR>"); out.println(" */"); out.println(" public void doPost(HttpServletRequest req, HttpServletResponse res) {"); --- 153,157 ---- out.println(""); out.println(" /**"); ! out.println(" * Pass HTTP 'POST' request over to handleRequest method."); out.println(" */"); out.println(" public void doPost(HttpServletRequest req, HttpServletResponse res) {"); *************** *** 158,162 **** out.println(""); out.println(" /**"); ! out.println(" * <P>Process the HTTP request and trap any errors. <BR>"); out.println(" */"); out.println(" protected void handleRequest(HttpServletRequest req,HttpServletResponse res)"); --- 165,169 ---- out.println(""); out.println(" /**"); ! out.println(" * Process the HTTP request and trap any errors."); out.println(" */"); out.println(" protected void handleRequest(HttpServletRequest req,HttpServletResponse res)"); *************** *** 164,176 **** out.println(" try {"); out.println(" ServletOutputStream sos=res.getOutputStream();"); ! out.println(" sos.println(\"<HTML>\");"); ! out.println(" sos.println(\"<HEAD>\");"); ! out.println(" sos.println(\" <TITLE>Control Panel</TITLE>\");"); ! out.println(" sos.println(\" <META HTTP-EQUIV=\\\"Content-Type\\\" CONTENT=\\\"text/html; charset=iso-8859-1\\\">\");"); ! out.println(" sos.println(\"</HEAD>\");"); ! out.println(" sos.println(\"<BODY BGColor=\\\"#e1b464\\\">\");"); out.println(" sos.println(\"\");"); ! out.println(" sos.println(\"<B><CENTER><H2>Generic Control Panel</H2></CENTER></B>\");"); ! out.println(" sos.println(\"<P>Links lead to standard system control panels for each node.<BR>\");"); out.println(" sos.println(\"\");"); out.println(" writeNodeStructure(sos);"); --- 171,185 ---- out.println(" try {"); out.println(" ServletOutputStream sos=res.getOutputStream();"); ! out.println(" sos.println(\"<html>\");"); ! out.println(" sos.println(\"<head>\");"); ! out.println(" sos.println(\" <title>Control Panel</title>\");"); ! out.println(" sos.println(\" <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=iso-8859-1\\\"/>\");"); ! out.println(" sos.println(\"</head>\");"); ! out.println(" sos.println(\"<body bgcolor=\\\"#e1b464\\\">\");"); out.println(" sos.println(\"\");"); ! out.println(" sos.println(\"<p><center><h2>SAND Node Access Panel</h2></center></p>\");"); ! out.println(" sos.println(\"\");"); ! out.println(" sos.println(\"<p>Access links to the native container control panel for JMX MBean\");"); ! out.println(" sos.println(\"control interfaces of the running SAND nodes. </p>\");"); out.println(" sos.println(\"\");"); out.println(" writeNodeStructure(sos);"); *************** *** 178,183 **** out.println(" writeUpgradeInfo(sos);"); out.println(" sos.println(\"\");"); ! out.println(" sos.println(\"</BODY>\");"); ! out.println(" sos.println(\"</HTML>\");"); out.println(" } catch(java.io.IOException e) {"); out.println(" System.out.println(\"HTTPControlPanelNodeDecl.handleRequest \" + e);"); --- 187,192 ---- out.println(" writeUpgradeInfo(sos);"); out.println(" sos.println(\"\");"); ! out.println(" sos.println(\"</body>\");"); ! out.println(" sos.println(\"</html>\");"); out.println(" } catch(java.io.IOException e) {"); out.println(" System.out.println(\"HTTPControlPanelNodeDecl.handleRequest \" + e);"); *************** *** 192,233 **** out.println(" throws IOException"); out.println(" {"); ! out.println(" SingletonAccessor acc=DefaultSingletonAccessorImpl.getSingletonAccessor();"); ! out.println(" SandRoot sr=acc.getSandRoot();"); ! out.println(" if(sr==null) {"); ! out.println(" sos.println(\"Could not retrieve SandRoot. <br />\");"); ! out.println(" return; }"); ! out.println(" Configuration conf=sr.getConfiguration();"); ! out.println(" if(conf==null) {"); ! out.println(" sos.println(\"Could not retrieve Configuration. <br />\");"); out.println(" return; }"); ! out.println(" String rootlink=\"<a href=\\\"\" + jmxCtrlPanelURLPrefix +"); ! out.println(" \"SandBossRoot\\\">SandBossRoot</a>\";"); ! out.println(" sos.println(\"<ul><p>\" + rootlink + \": <ul>\");"); ! out.println(" writeNodeDecls(sos,conf.getNodes());"); ! out.println(" sos.println(\"</ul></p></ul>\");"); ! out.println(""); out.println(" }"); out.println(""); out.println(""); out.println(" /**"); ! out.println(" * Given a Configuration, write out the node control structure for it."); ! out.println(" * We link to the control panel interface for each node, which in"); ! out.println(" * turn uses the service that has been set up for each node by the"); ! out.println(" * root. The service name is the same as the node instance name."); out.println(" */"); ! out.println(" protected void writeNodeDecls(ServletOutputStream sos,"); ! out.println(" NodeInstance[] nodes)"); ! out.println(" throws IOException"); out.println(" {"); ! out.println(" for(int i=0;i<nodes.length;i++) {"); ! out.println(" String name=nodes[i].getNodeInstanceName();"); ! out.println(" String link=\"<a href=\\\"\" + jmxCtrlPanelURLPrefix +"); ! out.println(" \"" + prefix + "\" + name + \"\\\">\" + name +"); ! out.println(" \"</a>\";"); ! out.println(" sos.println(link + \"<br />\");"); ! out.println(" writeNodeDecls(sos,nodes[i].getHelperNodes()); }"); out.println(" }"); out.println(""); out.println(""); out.println(" protected void writeUpgradeInfo(ServletOutputStream sos)"); out.println(" throws IOException"); --- 201,253 ---- out.println(" throws IOException"); out.println(" {"); ! out.println(" MBeanServer mbs=null;"); ! out.println(" ArrayList al=MBeanServerFactory.findMBeanServer(null);"); ! out.println(" Iterator iter=al.iterator();"); ! out.println(" while(iter.hasNext()) {"); ! out.println(" mbs=(MBeanServer)iter.next(); } //use the most recent"); ! out.println(" if(mbs==null) {"); ! out.println(" sos.println(\"<p>No MBeanServer found. </p>\");"); out.println(" return; }"); ! out.println(" sos.println(\"<p>Found MBeanServer: \" + mbs + \"</p>\");"); ! out.println(" try {"); ! out.println(" ObjectName filter=new ObjectName(\"Sand*:*\");"); ! out.println(" Set mbeans=mbs.queryMBeans(filter,null);"); ! out.println(" if(mbeans.size()<=0) {"); ! out.println(" sos.println(\"No SAND MBeans found (PREFIX deployment)\");"); ! out.println(" return; }"); ! out.println(" sos.println(\"<p>Registered SAND node MBeans: <ol>\");"); ! out.println(" iter=mbeans.iterator();"); ! out.println(" while(iter.hasNext()) {"); ! out.println(" ObjectInstance oi=(ObjectInstance)iter.next();"); ! out.println(" String link=getLink(oi);"); ! out.println(" sos.println(\"<li>\" + link + \"</li>\"); }"); ! out.println(" sos.println(\"</ol></p>\");"); ! out.println(" } catch(Exception e) {"); ! out.println(" e.printStackTrace();"); ! out.println(" sos.println(\"<p>Error in processing: \" + e + \"</p>\");"); ! out.println(" }"); out.println(" }"); out.println(""); out.println(""); out.println(" /**"); ! out.println(" * Given an ObjectInstance, write out a link to the native JMX"); ! out.println(" * control panel for it."); out.println(" */"); ! out.println(" protected String getLink(ObjectInstance oi) "); out.println(" {"); ! out.println(" String serviceName=oi.getObjectName().getKeyProperty(\"service\");"); ! out.println(" String link=\"<a href=\\\"\" + jmxCtrlPanelURLPrefix + serviceName +"); ! out.println(" \"\\\">\" + serviceName + \"</a> (\" + oi.getClassName() + \")\";"); ! out.println(" return link;"); out.println(" }"); out.println(""); out.println(""); + out.println(" /**"); + out.println(" * Footer information explaining how to change the link URLs. Some"); + out.println(" * containers may not provide a native JMX control panel interface,"); + out.println(" * and others may want to use an aftermarket JMX monitor. That's done"); + out.println(" * by changing the jmxCtrlPanelURLPrefix directly (normally as part of"); + out.println(" * the build process for the particular deployment."); + out.println(" */"); out.println(" protected void writeUpgradeInfo(ServletOutputStream sos)"); out.println(" throws IOException"); *************** *** 236,244 **** out.println(" sos.println(\"<br /><br /><br />\");"); out.println(" sos.println(\"<i><p>\");"); ! out.println(" sos.println(\"This generic console provides access to the default container control\");"); ! out.println(" sos.println(\"interface. For advanced integration with third-party software control\");"); ! out.println(" sos.println(\"and management software, or for statistical dashboards and other\");"); ! out.println(" sos.println(\"advanced displays, please contact\");"); ! out.println(" sos.println(\"<a href=\\\"http://sandservices.com\\\">SAND Services Inc.</a>\");"); out.println(" sos.println(\"</p></i>\");"); out.println(" sos.println(\"\");"); --- 256,261 ---- out.println(" sos.println(\"<br /><br /><br />\");"); out.println(" sos.println(\"<i><p>\");"); ! out.println(" sos.println(\"To change the passthrough link URLs used here, change the\");"); ! out.println(" sos.println(\"jmxCtrlPanelURLPrefix value in org.sandev.tools.ControlPanel.XHTMLControlPanelServlet\");"); out.println(" sos.println(\"</p></i>\");"); out.println(" sos.println(\"\");"); |
From: Eric P. <th...@us...> - 2005-12-04 02:57:09
|
Update of /cvsroot/sandev/sand/platform/sandbuild/src/org/sandev/sandbuild In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27099 Modified Files: WARDeploymentPackager.java Log Message: Gave the control back to the build for deploying the war. Index: WARDeploymentPackager.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/sandbuild/src/org/sandev/sandbuild/WARDeploymentPackager.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** WARDeploymentPackager.java 30 Nov 2005 04:11:04 -0000 1.1.1.1 --- WARDeploymentPackager.java 4 Dec 2005 02:57:01 -0000 1.2 *************** *** 68,83 **** platform.getAntProject().setProperty("deploymentDir", deploymentDir.toString()); String warname= deployment.getAntProject().getProperty("DeploymentPrefix") + deployment.getName() + ".war"; platform.getAntProject().setProperty("targetwar",warname); if(mode==SandBuildDriver.MODE_BUILD) { ! platform.getAntProject().setProperty("deploymentenv", ! getEnvDir(deployment)); ! platform.callTarget("build.repacked.war"); ! platform.callTarget("build.deploy.war"); } else { //MODE_CLEAN ! platform.callTarget("clean.repacked.war"); ! platform.callTarget("clean.deploy.war"); platform.callTarget("clean.deploy.files"); } } --- 68,84 ---- platform.getAntProject().setProperty("deploymentDir", deploymentDir.toString()); + String depenv=getEnvDir(deployment); String warname= deployment.getAntProject().getProperty("DeploymentPrefix") + deployment.getName() + ".war"; platform.getAntProject().setProperty("targetwar",warname); + String devmode=deployment.getAntProject().getProperty("sandevMode"); + if((devmode!=null)&&(!devmode.trim().equals(""))) { + platform.getAntProject().setProperty("sandevMode",devmode); } if(mode==SandBuildDriver.MODE_BUILD) { ! platform.getAntProject().setProperty("deploymentenv",depenv); ! platform.callTarget("build.deployment.war"); } else { //MODE_CLEAN ! platform.callTarget("clean.deployment.war"); platform.callTarget("clean.deploy.files"); } } |
From: Eric P. <th...@us...> - 2005-12-04 02:56:15
|
Update of /cvsroot/sandev/sand/platform/tools/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26981 Modified Files: build.xml Log Message: Redid the wardeploy so it repacks and deploys the tools.war in addition to the app war file, provided that we are not in release mode. The config editor and SandUI editor now work. The control panel is nowhere though. Index: build.xml =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/build.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** build.xml 1 Dec 2005 15:13:49 -0000 1.2 --- build.xml 4 Dec 2005 02:56:04 -0000 1.3 *************** *** 145,162 **** --> ! <!-- if the config has changed, delete the repacked war. Otherwise set a ! property if all the env jars are up to date. Call to repack the war. ! --> ! <target name="build.repacked.war"> ! <uptodate property="repack.noconfigchange" ! targetfile="./wardeploy/${targetwar}"> ! <srcfiles dir="${deploymentenv}"/> ! </uptodate> ! <antcall target="delete.repackwar.ifconfigchange"/> ! <uptodate property="repack.uptodate" ! targetfile="./wardeploy/${targetwar}"> ! <srcfiles dir="${main.envdir}"/> ! </uptodate> ! <antcall target="build.repacked.war.work"/> </target> --- 145,161 ---- --> ! <!-- check for config change, repack and deploy warfiles --> ! <target name="build.deployment.war"> ! <echo message="repacking and deploying ${targetwar} as needed."/> ! <echo message="sandevMode: ${sandevMode}"/> ! <uptodate property="repack.noconfigchange" ! targetfile="./wardeploy/${targetwar}"> ! <srcfiles dir="${deploymentenv}"/> ! </uptodate> ! <antcall target="delete.repackwar.ifconfigchange"/> ! <antcall target="build.deployment.war.work"> ! <param name="warfile" value="${targetwar}"/> ! </antcall> ! <antcall target="build.deploy.tools.war"/> </target> *************** *** 164,176 **** <!-- delete the repacked war if the config has changed. --> <target name="delete.repackwar.ifconfigchange" unless="repack.noconfigchange"> ! <antcall target="clean.repacked.war"/> </target> <!-- repack the target war file to include the other runtime files --> ! <target name="build.repacked.war.work" unless="repack.uptodate"> <!-- unpack the deployment war to a temp area --> <mkdir dir="./repack"/> ! <unzip src="${main.envdir}/${targetwar}" dest="./repack"/> <!-- copy all jars into unpacked war lib --> <mkdir dir="./repack/WEB-INF/lib"/> --- 163,198 ---- <!-- delete the repacked war if the config has changed. --> <target name="delete.repackwar.ifconfigchange" unless="repack.noconfigchange"> ! <antcall target="clean.deployment.war.work"/> ! </target> ! ! ! <!-- build and deploy the supporting tools if dev deployment --> ! <target name="build.deploy.tools.war" unless="sandevMode"> ! <antcall target="build.deployment.war.work"> ! <param name="warfile" value="${DeploymentPrefix}tools.war"/> ! </antcall> ! </target> ! ! ! <!-- repack and deploy the specified war --> ! <target name="build.deployment.war.work"> ! <uptodate property="repack.${warfile}.uptodate" ! targetfile="./wardeploy/${warfile}"> ! <srcfiles dir="${main.envdir}"/> ! </uptodate> ! <antcall target="build.repacked.war.work"/> ! <copy todir="${deploymentDir}"> ! <fileset dir="./wardeploy"> ! <include name="${warfile}"/> ! </fileset> ! </copy> </target> <!-- repack the target war file to include the other runtime files --> ! <target name="build.repacked.war.work" unless="repack.${warfile}.uptodate"> <!-- unpack the deployment war to a temp area --> <mkdir dir="./repack"/> ! <unzip src="${main.envdir}/${warfile}" dest="./repack"/> <!-- copy all jars into unpacked war lib --> <mkdir dir="./repack/WEB-INF/lib"/> *************** *** 194,198 **** <!-- repack the new war and copy it into the deployment area --> <mkdir dir="./wardeploy"/> ! <war destfile="./wardeploy/${targetwar}" webxml="./repack/WEB-INF/web.xml" manifest="./repack/META-INF/MANIFEST.MF" --- 216,220 ---- <!-- repack the new war and copy it into the deployment area --> <mkdir dir="./wardeploy"/> ! <war destfile="./wardeploy/${warfile}" webxml="./repack/WEB-INF/web.xml" manifest="./repack/META-INF/MANIFEST.MF" *************** *** 202,225 **** ! <!-- delete the repacked warfile and associated work files --> ! <target name="clean.repacked.war"> ! <delete dir="./repack" failonerror="false"/> ! <delete dir="./wardeploy" failonerror="false"/> ! </target> ! ! ! <!-- copy the repacked warfile to the deployment area --> ! <target name="build.deploy.war"> ! <copy todir="${deploymentDir}"> ! <fileset dir="./wardeploy"> ! <include name="${targetwar}"/> ! </fileset> ! </copy> </target> ! <!-- delete the repacked warfile from the deployment area --> ! <target name="clean.deploy.war"> ! <delete file="${deploymentDir}/${targetwar}" failonerror="false"/> </target> --- 224,244 ---- ! <!-- undeploy and remove the specified war --> ! <target name="clean.deployment.war"> ! <echo message="undeploying and deleting ${targetwar}"/> ! <antcall target="clean.deployment.war.work"> ! <param name="warfile" value="${targetwar}"/> ! </antcall> ! <antcall target="clean.deployment.war.work"> ! <param name="warfile" value="${DeploymentPrefix}tools.war"/> ! </antcall> </target> ! <!-- undeploy and delete the repacked warfile and associated work files --> ! <target name="clean.deployment.war.work"> ! <delete dir="./repack" failonerror="false"/> ! <delete dir="./wardeploy" failonerror="false"/> ! <delete file="${deploymentDir}/${warfile}" failonerror="false"/> </target> |
From: Eric P. <th...@us...> - 2005-12-03 00:29:56
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12770 Modified Files: mainbuild.xml Log Message: unzip from the right server after publishing. Slightly annoying otherwise. Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mainbuild.xml 30 Nov 2005 22:05:48 -0000 1.3 --- mainbuild.xml 3 Dec 2005 00:29:41 -0000 1.4 *************** *** 657,661 **** <delete file="${SAND_HOME}/sand.zip"/> <!-- Unpack the docs on the server --> ! <get src="http://sandev.org/cgi-bin/unzip.cgi" dest="${SAND_HOME}/unused.foo" verbose="true"/> --- 657,661 ---- <delete file="${SAND_HOME}/sand.zip"/> <!-- Unpack the docs on the server --> ! <get src="http://${publish.server}/cgi-bin/unzip.cgi" dest="${SAND_HOME}/unused.foo" verbose="true"/> |
From: Eric P. <th...@us...> - 2005-12-01 15:13:57
|
Update of /cvsroot/sandev/sand/platform/tools/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12913 Modified Files: build.xml Log Message: Added placeholder comments for other platforms to easily tweak the build. Index: build.xml =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/build.xml,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** build.xml 30 Nov 2005 04:11:04 -0000 1.1.1.1 --- build.xml 1 Dec 2005 15:13:49 -0000 1.2 *************** *** 68,72 **** <sandgenerator classname="org.sandev.generator.ConfigEditorGenerator" source="nodes" sourcescope="build" runscope="project"/> ! <sandenvfile name="SANDService.sar"/> </target> --- 68,73 ---- <sandgenerator classname="org.sandev.generator.ConfigEditorGenerator" source="nodes" sourcescope="build" runscope="project"/> ! <!-- insert platform-specific generators here --> ! <!-- insert platform-specific env files here --> </target> *************** *** 98,133 **** ! <!-- ! ******************************************** ! * Build our .sar file ! ******************************************** ! ! <target name="build.postjar"> ! <antcall target="build.compile"> ! <param name="classdir" value="sar" /> ! <param name="srcdir" value="sar/src" /> ! <param name="envdir" value="${runenv.JBOSS_HOME}/lib" /> ! </antcall> ! <available property="haveSarManifest" file="sar/META-INF/MANIFEST.MF"/> ! <antcall target="write.sar.manifest"/> ! <zip destfile="${main.envdir}/SANDService.sar"> ! <fileset dir="sar"> ! <exclude name="cvs"/> ! </fileset> ! </zip> ! </target> ! ! <target name="write.sar.manifest" unless="haveSarManifest"> ! <sandmanifest dir="sar/META-INF" addClassPath="false"/> ! </target> ! ! <target name="clean.postjar"> ! <antcall target="clean.compile"> ! <param name="classdir" value="sar/org" /> ! </antcall> ! <delete file="${main.envdir}/SANDService.sar" failonerror="false"/> ! <delete file="sar/META-INF/MANIFEST.MF" failonerror="false"/> ! </target> ! --> --- 99,103 ---- ! <!-- insert postjar targets here --> |
From: Eric P. <th...@us...> - 2005-11-30 22:05:59
|
Update of /cvsroot/sandev/sand/apps/basics/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13979 Modified Files: mainbuild.xml Log Message: On to the next version of sandev. We need to make the config editor and sandui editor tools work now. Index: mainbuild.xml =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/mainbuild.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mainbuild.xml 30 Nov 2005 18:02:16 -0000 1.2 --- mainbuild.xml 30 Nov 2005 22:05:48 -0000 1.3 *************** *** 103,107 **** <property name="main.webappdir" value="../webapp"/> <!-- next release of sandev --> ! <property name="publish.releasename" value="sandev_0_8_0"/> <property name="taglets" value= --- 103,107 ---- <property name="main.webappdir" value="../webapp"/> <!-- next release of sandev --> ! <property name="publish.releasename" value="sandev_0_9_0"/> <property name="taglets" value= |