@@ -88,6 +88,54 @@ public static byte[] hexToBinary(String hex) {
8888
8989 @ Override
9090 public SampleResult sample (Entry arg0 ) {
91+ if (connection == null ) { // first loop, do initialization
92+ try {
93+ if (!DEFAULT_PROTOCOL .equals (getProtocol ())) {
94+ mqtt .setSslContext (Util .getContext (this ));
95+ }
96+
97+ mqtt .setHost (getProtocol ().toLowerCase () + "://" + getServer () + ":" + getPort ());
98+ mqtt .setKeepAlive ((short ) Integer .parseInt (getConnKeepAlive ()));
99+
100+ clientId = Util .generateClientId (getConnPrefix ());
101+ mqtt .setClientId (clientId );
102+
103+ mqtt .setConnectAttemptsMax (Integer .parseInt (getConnAttamptMax ()));
104+ mqtt .setReconnectAttemptsMax (Integer .parseInt (getConnReconnAttamptMax ()));
105+
106+ if (!"" .equals (getUserNameAuth ().trim ())) {
107+ mqtt .setUserName (getUserNameAuth ());
108+ }
109+ if (!"" .equals (getPasswordAuth ().trim ())) {
110+ mqtt .setPassword (getPasswordAuth ());
111+ }
112+ if (MESSAGE_TYPE_RANDOM_STR_WITH_FIX_LEN .equals (getMessageType ())) {
113+ payload = Util .generatePayload (Integer .parseInt (getMessageLength ()));
114+ }
115+
116+ int qos = Integer .parseInt (getQOS ());
117+ switch (qos ) {
118+ case 0 :
119+ qos_enum = QoS .AT_MOST_ONCE ;
120+ break ;
121+ case 1 :
122+ qos_enum = QoS .AT_LEAST_ONCE ;
123+ break ;
124+ case 2 :
125+ qos_enum = QoS .EXACTLY_ONCE ;
126+ break ;
127+ default :
128+ break ;
129+ }
130+
131+ connection = mqtt .futureConnection ();
132+ Future <Void > f1 = connection .connect ();
133+ f1 .await (Integer .parseInt (getConnTimeout ()), TimeUnit .SECONDS );
134+ } catch (Exception e ) {
135+ logger .log (Priority .ERROR , e .getMessage (), e );
136+ }
137+ }
138+
91139 SampleResult result = new SampleResult ();
92140 result .setSampleLabel (getName ());
93141 try {
@@ -136,51 +184,7 @@ public SampleResult sample(Entry arg0) {
136184
137185 @ Override
138186 public void threadStarted () {
139- try {
140- if (!DEFAULT_PROTOCOL .equals (getProtocol ())) {
141- mqtt .setSslContext (Util .getContext (this ));
142- }
143-
144- mqtt .setHost (getProtocol ().toLowerCase () + "://" + getServer () + ":" + getPort ());
145- mqtt .setKeepAlive ((short ) Integer .parseInt (getConnKeepAlive ()));
146-
147- clientId = Util .generateClientId (getConnPrefix ());
148- mqtt .setClientId (clientId );
149-
150- mqtt .setConnectAttemptsMax (Integer .parseInt (getConnAttamptMax ()));
151- mqtt .setReconnectAttemptsMax (Integer .parseInt (getConnReconnAttamptMax ()));
152-
153- if (!"" .equals (getUserNameAuth ().trim ())) {
154- mqtt .setUserName (getUserNameAuth ());
155- }
156- if (!"" .equals (getPasswordAuth ().trim ())) {
157- mqtt .setPassword (getPasswordAuth ());
158- }
159- if (MESSAGE_TYPE_RANDOM_STR_WITH_FIX_LEN .equals (getMessageType ())) {
160- payload = Util .generatePayload (Integer .parseInt (getMessageLength ()));
161- }
162-
163- int qos = Integer .parseInt (getQOS ());
164- switch (qos ) {
165- case 0 :
166- qos_enum = QoS .AT_MOST_ONCE ;
167- break ;
168- case 1 :
169- qos_enum = QoS .AT_LEAST_ONCE ;
170- break ;
171- case 2 :
172- qos_enum = QoS .EXACTLY_ONCE ;
173- break ;
174- default :
175- break ;
176- }
177-
178- connection = mqtt .futureConnection ();
179- Future <Void > f1 = connection .connect ();
180- f1 .await (Integer .parseInt (getConnTimeout ()), TimeUnit .SECONDS );
181- } catch (Exception e ) {
182- logger .log (Priority .ERROR , e .getMessage (), e );
183- }
187+
184188 }
185189
186190 @ Override
0 commit comments