One unable to write custom plugin for Thread Groups to have advanced thread start/stop scheduling. Attached patch adds such ability to JMeter. Responsibility for threads scheduling moved from StandardJMeterEngine to implementations of AbstractThreadGroup.
Created attachment 24996 [details] Changes to source files
Created attachment 24997 [details] new abstract ThreadGroup
Created attachment 24998 [details] new abstract ThreadGroupGui
There's issue with icons after this patch, JMeter seems to fail finding icon for thread groups... I failed to find a fix for this issue.
Maybe it could be better also move total threads number GUI from ThreadGroupGui to AbstractThreadGroupGui because it's common property as "on error" buttons
Created attachment 24999 [details] Proposed source code changes
Created attachment 25000 [details] Proposed source code changes Issue with icons solved
Thanks very much! The code has been applied: URL: http://svn.apache.org/viewvc?rev=915587&view=rev Log: Bug 48749 - Allowing custom Thread Groups Added: jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/AbstractThreadGroup.java (with props) jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/gui/AbstractThreadGroupGui.java (with props) Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/gui/TestPlanGui.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestPlan.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContext.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/ThreadGroup.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java jakarta/jmeter/trunk/src/reports/org/apache/jmeter/testelement/ReportPlan.java jakarta/jmeter/trunk/xdocs/changes.xml There were a few changes needed: - AbstractThreadGroupGui.configureTestElement() needed to call super.configureTestElement() - Constructors should not call overridable methods; changed init() and added initGui() to AbstractThreadGroupGui - patch included a change to TCPSampler which had already been made (and was irrelevant) - no need to patch JMeterVersion
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2343