Skip to main content

Re: Generic framework issues

8 replies [Last post]
Anonymous

Alexander,

Thank you for your comments. I will integrate the comments by
Wednesday.
Do you have a CDC TCK version that use these new cqme interview and
testsuites?

Thank you,
Maxim

Alexander Alexeev writes:
> Hi Maxim,
>
> Now I've started review changes in interview for enabling pluggable
> communication channel. Below some my comments:
>
> 1. exportCommonData() in CdcBaseCommInterview is never called. Therefore
> test's run fails due to incorrect script.
>
> 2. Does it really need to use static fields for tags? Seems simple
> string constant looks more readable. In any case it need to be
> consistent - all questions through interview should use strings or
> static fields. One more comment - fields should be private as much as
> possible.
>
> 3. Should be possible to choose http client: MidHTTPCommClient (yes, the
> name is rather confusing but in reality currently it used by distributed
> test when tcp/ip transport is chosen).
>
> Thanks,
> Alexander
>
> Maxim Sokolnikov wrote:
> > Alexander,
> >
> > Thank you for your results. It looks like there is a performance
> > problem in DatagramSocketComm(Client|Server).
> >
> > The difference is that datagram_commClient sends packages one by one
> > and expects response from the packet prior sending next packet.
> > The datagram connection used in the DatagramAgent implements more
> > complicated tcp/ip like protocol.
> >
> > If in old TCKs the data being sent by
> > DatagramSocketComm(Client|Server) was not too large, then now, the class
> > loading and sending of the tests results causes that this simple
> > problem becomes bottle neck.
> >
> > I think that the more efficient implementation of the
> > DatagramSocketComm(Client|Server) could be implemented.
> >
> > Today I have run CLDC TCK using generic communication agent with
> > SocketComm(Client|Server) and using standard TCK/IP JavaTest agent.
> >
> > I have run the tests with concurrency 5 using 8 separate concurrent
> > agents in both runs.
> >
> > The generic agent executed the tests for 4:55 and standard agent
> > executed the for 4:36.
> >
> > It shown performance degradation 7% or 2 seconds for each 1000 tests.
> >
> > I think that the execution framework does not introduce performance
> > problems and new scheme can replace the existing execution agents
> > after DatagramSocketComm(Client|Server) optimization.
> >
> >
> > Thank you,
> > Maxim
> >
> >
> > Alexander Alexeev writes:
> > > Hi Maxim,
> > >
> > > I've submitted yet another issue:
> > > https://cqme.dev.java.net/issues/show_bug.cgi?id=140
> > >
> > > Also I've tested new framework with CDC TCK and found performance degradation:
> > > run of api tests get about 73 minutes with new agent in opposite to about 31
> > > minutes with old agent.
> > >
> > > Thanks,
> > > Alexander
> > >
> > > Maxim Sokolnikov wrote:
> > > > Alexander,
> > > >
> > > > Thank you for your results. I am going to fix the problems before end
> > > > of this week.
> > > >
> > > > Thank you,
> > > > Maxim
> > > >
> > > > Alexander Alexeev writes:
> > > > > Hi Maxim,
> > > > >
> > > > > I've started review generic communication execution framework and submitted
> > > > > several issues already:
> > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=135
> > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=136
> > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=137
> > > > >
> > > > > Please review them and provide your comments.
> > > > >
> > > > > Thanks,
> > > > > Alexander
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> > > > For additional commands, e-mail: meframework-help@cqme.dev.java.net
> > > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> > For additional commands, e-mail: meframework-help@cqme.dev.java.net
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Alexander Alexeev

Maxim,

no, currently I haven't CDC TCK version. I'm going to implement
something to enable new interviews in CDC. I'm using COP TCKs currently.

Thanks,
Alexander

Maxim V. Sokolnikov wrote:
> Alexander,
>
> Thank you for your comments. I will integrate the comments by
> Wednesday.
> Do you have a CDC TCK version that use these new cqme interview and
> testsuites?
>
> Thank you,
> Maxim
>
>
> Alexander Alexeev writes:
> > Hi Maxim,
> >
> > Now I've started review changes in interview for enabling pluggable
> > communication channel. Below some my comments:
> >
> > 1. exportCommonData() in CdcBaseCommInterview is never called. Therefore
> > test's run fails due to incorrect script.
> >
> > 2. Does it really need to use static fields for tags? Seems simple
> > string constant looks more readable. In any case it need to be
> > consistent - all questions through interview should use strings or
> > static fields. One more comment - fields should be private as much as
> > possible.
> >
> > 3. Should be possible to choose http client: MidHTTPCommClient (yes, the
> > name is rather confusing but in reality currently it used by distributed
> > test when tcp/ip transport is chosen).
> >
> > Thanks,
> > Alexander
> >
> > Maxim Sokolnikov wrote:
> > > Alexander,
> > >
> > > Thank you for your results. It looks like there is a performance
> > > problem in DatagramSocketComm(Client|Server).
> > >
> > > The difference is that datagram_commClient sends packages one by one
> > > and expects response from the packet prior sending next packet.
> > > The datagram connection used in the DatagramAgent implements more
> > > complicated tcp/ip like protocol.
> > >
> > > If in old TCKs the data being sent by
> > > DatagramSocketComm(Client|Server) was not too large, then now, the class
> > > loading and sending of the tests results causes that this simple
> > > problem becomes bottle neck.
> > >
> > > I think that the more efficient implementation of the
> > > DatagramSocketComm(Client|Server) could be implemented.
> > >
> > > Today I have run CLDC TCK using generic communication agent with
> > > SocketComm(Client|Server) and using standard TCK/IP JavaTest agent.
> > >
> > > I have run the tests with concurrency 5 using 8 separate concurrent
> > > agents in both runs.
> > >
> > > The generic agent executed the tests for 4:55 and standard agent
> > > executed the for 4:36.
> > >
> > > It shown performance degradation 7% or 2 seconds for each 1000 tests.
> > >
> > > I think that the execution framework does not introduce performance
> > > problems and new scheme can replace the existing execution agents
> > > after DatagramSocketComm(Client|Server) optimization.
> > >
> > >
> > > Thank you,
> > > Maxim
> > >
> > >
> > > Alexander Alexeev writes:
> > > > Hi Maxim,
> > > >
> > > > I've submitted yet another issue:
> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=140
> > > >
> > > > Also I've tested new framework with CDC TCK and found performance degradation:
> > > > run of api tests get about 73 minutes with new agent in opposite to about 31
> > > > minutes with old agent.
> > > >
> > > > Thanks,
> > > > Alexander
> > > >
> > > > Maxim Sokolnikov wrote:
> > > > > Alexander,
> > > > >
> > > > > Thank you for your results. I am going to fix the problems before end
> > > > > of this week.
> > > > >
> > > > > Thank you,
> > > > > Maxim
> > > > >
> > > > > Alexander Alexeev writes:
> > > > > > Hi Maxim,
> > > > > >
> > > > > > I've started review generic communication execution framework and submitted
> > > > > > several issues already:
> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=135
> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=136
> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=137
> > > > > >
> > > > > > Please review them and provide your comments.
> > > > > >
> > > > > > Thanks,
> > > > > > Alexander
> > > > >
> > > > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> > > > > For additional commands, e-mail: meframework-help@cqme.dev.java.net
> > > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> > > For additional commands, e-mail: meframework-help@cqme.dev.java.net
> > >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Alexander Alexeev

Hi Maxim,

several new comments:

1. These strings should be located in cdcbasecomm.properties:
CdcBaseCommInterview.communicationTypes.smry=Communication types
CdcBaseCommInterview.communicationTypes.text=Please choose communication
type supported by the device under tests
Also I propose to move CustomCommunicationInterview properties in separate file.
Says "customcomm.properties".

2. The "$commService.server.address" environment variable should be correctly
exported in case of TCP_IP transport.

3. export() method of CustomCommunicationInterview is never called so

"$commService.server" variable is never exported. Also another two variables are
needed in order to run distributed tests: "$commService.j2me.jar" and
"$msgService.j2me.jar".

4. Why not to move question about communication type in CommInterview and enable
it in CDC mode only? Seems this question is very tied to CommInterview and make
no sense without it.

5. Since "$commService.client.jar" variable is not exported in case of custom
channel, DistributedTestSuite should carefully register extra jars. Ideally they
should be registered in CLDC/MIDP mode only.

6. Checking for COMMSERVICE_PATH should be done in NullPointerException catch
block instead of TestEnvironment.Fault. Fault occurs in very rare cases when
something definitely wrong with the environment. When variable is simple absent
in the environment JavaTest returns empty array.

7. Initialization of communication channel should not be done in CDC mode in
DistributedTestBase.

I've attached patch with changes were done in order to run SATSA TCK 2.0b with
new communication channel.

Thanks,
Alexander

Alexander Alexeev wrote:
> Maxim,
>
> no, currently I haven't CDC TCK version. I'm going to implement
> something to enable new interviews in CDC. I'm using COP TCKs currently.
>
> Thanks,
> Alexander
>
> Maxim V. Sokolnikov wrote:
>> Alexander,
>>
>> Thank you for your comments. I will integrate the comments by
>> Wednesday.
>> Do you have a CDC TCK version that use these new cqme interview and
>> testsuites?
>>
>> Thank you,
>> Maxim
>>
>>
>> Alexander Alexeev writes:
>> > Hi Maxim,
>> > > Now I've started review changes in interview for enabling pluggable
>> > communication channel. Below some my comments:
>> > > 1. exportCommonData() in CdcBaseCommInterview is never called.
>> Therefore
>> > test's run fails due to incorrect script.
>> > > 2. Does it really need to use static fields for tags? Seems simple
>> > string constant looks more readable. In any case it need to be
>> > consistent - all questions through interview should use strings or
>> > static fields. One more comment - fields should be private as much as
>> > possible.
>> > > 3. Should be possible to choose http client: MidHTTPCommClient
>> (yes, the
>> > name is rather confusing but in reality currently it used by
>> distributed
>> > test when tcp/ip transport is chosen).
>> > > Thanks,
>> > Alexander
>> > > Maxim Sokolnikov wrote:
>> > > Alexander,
>> > > > > Thank you for your results. It looks like there is a
>> performance
>> > > problem in DatagramSocketComm(Client|Server).
>> > > > > The difference is that datagram_commClient sends packages
>> one by one
>> > > and expects response from the packet prior sending next packet.
>> > > The datagram connection used in the DatagramAgent implements more
>> > > complicated tcp/ip like protocol.
>> > > > > If in old TCKs the data being sent by
>> > > DatagramSocketComm(Client|Server) was not too large, then now,
>> the class
>> > > loading and sending of the tests results causes that this simple
>> > > problem becomes bottle neck.
>> > > > > I think that the more efficient implementation of the
>> > > DatagramSocketComm(Client|Server) could be implemented.
>> > > > > Today I have run CLDC TCK using generic communication agent
>> with
>> > > SocketComm(Client|Server) and using standard TCK/IP JavaTest agent.
>> > > > > I have run the tests with concurrency 5 using 8 separate
>> concurrent
>> > > agents in both runs.
>> > > > > The generic agent executed the tests for 4:55 and standard
>> agent
>> > > executed the for 4:36.
>> > > > > It shown performance degradation 7% or 2 seconds for each
>> 1000 tests.
>> > > > > I think that the execution framework does not introduce
>> performance
>> > > problems and new scheme can replace the existing execution agents
>> > > after DatagramSocketComm(Client|Server) optimization.
>> > > > > > > Thank you,
>> > > Maxim
>> > > > > > > Alexander Alexeev writes:
>> > > > Hi Maxim,
>> > > > > > > I've submitted yet another issue:
>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=140
>> > > > > > > Also I've tested new framework with CDC TCK and found
>> performance degradation:
>> > > > run of api tests get about 73 minutes with new agent in
>> opposite to about 31
>> > > > minutes with old agent.
>> > > > > > > Thanks,
>> > > > Alexander
>> > > > > > > Maxim Sokolnikov wrote:
>> > > > > Alexander,
>> > > > > > > > > Thank you for your results. I am going to fix the
>> problems before end
>> > > > > of this week.
>> > > > > > > > > Thank you,
>> > > > > Maxim
>> > > > > > > > > Alexander Alexeev writes:
>> > > > > > Hi Maxim,
>> > > > > > > > > > > I've started review generic communication
>> execution framework and submitted
>> > > > > > several issues already:
>> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=135
>> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=136
>> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=137
>> > > > > > > > > > > Please review them and provide your comments.
>> > > > > > > > > > > Thanks,
>> > > > > > Alexander
>> > > > > > > > >
>> ---------------------------------------------------------------------
>> > > > > To unsubscribe, e-mail:
>> meframework-unsubscribe@cqme.dev.java.net
>> > > > > For additional commands, e-mail:
>> meframework-help@cqme.dev.java.net
>> > > > > > > > > > > >
>> ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>> > > For additional commands, e-mail: meframework-help@cqme.dev.java.net
>> > > >
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>

Index: build/filelists.mk
===================================================================
--- build/filelists.mk (revision 953)
+++ build/filelists.mk (working copy)
@@ -47,18 +47,7 @@
com/sun/tck/cldc/javatest/i18n.properties \
com/sun/tck/midp/policy/i18n.properties \
com/sun/tck/j2me/javatest/i18n.properties \
- com/sun/tck/j2me/interview/i18n.properties \
- com/sun/tck/j2me/interview/vm.properties \
- com/sun/tck/j2me/interview/cldcbasecomm.properties \
- com/sun/tck/j2me/interview/cldccustomcomm.properties \
- com/sun/tck/j2me/interview/cldccommadv.properties \
- com/sun/tck/j2me/interview/midpcommadv.properties \
- com/sun/tck/j2me/interview/cdcbasecomm.properties \
- com/sun/tck/j2me/interview/comm.properties \
- com/sun/tck/j2me/interview/trusted.properties \
- com/sun/tck/j2me/interview/ota.properties \
- com/sun/tck/j2me/interview/export.properties \
- com/sun/tck/j2me/interview/preverify.properties \
+ com/sun/tck/j2me/interview/*.properties \
com/sun/tck/javatest/i18n.properties \
com/sun/cldc/communication/midp/i18n.properties \
com/sun/tck/midp/lib/i18n.properties \
Index: src/share/classes/com/sun/tck/j2me/agent/AgentMain.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/agent/AgentMain.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/agent/AgentMain.java (working copy)
@@ -211,8 +211,9 @@
return 1;
} else if (index == args.length - 1) {
throw new IllegalArgumentException("Unknown argument:" + args[index]);
- } else if (args[index].equals("CLASSPATH_OPTION")) {
+ } else if (args[index].equals(CLASSPATH_OPTION)) {
this.classpath = args[++index];
+ return 2;
} else if (args[index].equalsIgnoreCase(MAP_OPTION)) {
this.map = args[index + 1];
return 2;
Index: src/share/classes/com/sun/tck/j2me/execution/javatest/AgentQueue.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/execution/javatest/AgentQueue.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/execution/javatest/AgentQueue.java (working copy)
@@ -157,7 +157,7 @@
}
}
URL[] urls = (URL[])buff.toArray(new URL[buff.size()]);
- return buff.isEmpty() ? parentLoader : new URLClassLoader(urls, parentLoader);
+ return buff.isEmpty() ? parentLoader : new URLClassLoader(urls, null);
}

private static class ClassLoaderResourceProvider extends Service implements ResourceProvider {
Index: src/share/classes/com/sun/tck/j2me/interview/cdcbasecomm.properties
===================================================================
--- src/share/classes/com/sun/tck/j2me/interview/cdcbasecomm.properties (revision 953)
+++ src/share/classes/com/sun/tck/j2me/interview/cdcbasecomm.properties (working copy)
@@ -42,7 +42,5 @@
CdcBaseCommInterview.dataLength.smry=UDP data length
CdcBaseCommInterview.dataLength.text=How many bytes of data do you wish to include in a datagram packet?

-CdcBaseCommInterview.agentType.smry=Communication protocol
-CdcBaseCommInterview.agentType.text=Which protocol is used for communication between the test system and the JavaTest harness?
-CdcBaseCommInterview.agentType.cdcAgent=Datagram
-CdcBaseCommInterview.agentType.jtAgent=TCP/IP
+CdcBaseCommInterview.communicationTypes.smry=Communication types
+CdcBaseCommInterview.communicationTypes.text=Please choose communication type supported by the device under tests
Index: src/share/classes/com/sun/tck/j2me/interview/CdcBaseCommInterview.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/interview/CdcBaseCommInterview.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/interview/CdcBaseCommInterview.java (working copy)
@@ -133,7 +133,14 @@
"Socket based connection",
"Datagram Socket connection",
"Custom connection",
- });
+ }) {
+
+ @Override
+ public void export(Map data) {
+ super.export(data);
+ exportCommonData(data, false);
+ }
+ };
setFirstQuestion(callInterview(iConcurrency, commTypes));
questions.addQuestion(commTypes, COMMUNICATION_TYPES_TAG);
questions.addInterview(new CommInterview(this, CommInterview.CDC_MODE, true));
@@ -202,3 +209,4 @@
VmInterview parent = null;
}

+
Index: src/share/classes/com/sun/tck/j2me/interview/CommInterview.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/interview/CommInterview.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/interview/CommInterview.java (working copy)
@@ -144,6 +144,7 @@
commClientArgs += "verbose=$remoteVerbose";
commServiceServer += " verbose=$remoteVerbose";
} else if (iTransport == CommInterview.TCP_IP_TRANSPORT) {
+ commUrl = TCP_IP_COMM_URL;
commServerJar = TCP_IP_COMM_SERVER_JAR;
commServerClass = TCP_IP_COMM_SERVER_CLASS;
commServiceServer = commServerClass + " host=$httpHost port=$commService.server.port";
@@ -211,6 +212,8 @@
"com.sun.tck.j2me.services.commService.clients.DatagramSocketCommClient";

//TCP/IP
+ static final String TCP_IP_COMM_URL =
+ "$httpHost:$commService.server.port";
static final String TCP_IP_COMM_SERVER_JAR =
"$j2meFwLibDir$/j2mefw_jt.jar";
static final String TCP_IP_COMM_SERVER_CLASS =
Index: src/share/classes/com/sun/tck/j2me/interview/customcomm.properties
===================================================================
--- src/share/classes/com/sun/tck/j2me/interview/customcomm.properties (revision 0)
+++ src/share/classes/com/sun/tck/j2me/interview/customcomm.properties (revision 0)
@@ -0,0 +1,38 @@
+#
+# $Id$
+#
+# Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License version
+# 2 only, as published by the Free Software Foundation.
+#
+# This program 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
+# General Public License version 2 for more details (a copy is
+# included at /legal/license.txt).
+#
+# You should have received a copy of the GNU General Public License
+# version 2 along with this work; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+# Clara, CA 95054 or visit www.sun.com if you need additional
+# information or have any questions.
+#
+
+
+CustomCommunicationInterview.intro.smry=Custom communications
+CustomCommunicationInterview.intro.text=The following questions garther information about custom server implementation
+
+CustomCommunicationInterview.commClassPath.smry=Server implementation classpath
+CustomCommunicationInterview.commClassPath.text=Specify the .jar/.zip files or directories containing server implementation classes
+
+CustomCommunicationInterview.commClassName.smry=Communication server implementation
+CustomCommunicationInterview.commClassName.text=Specify the full qualified name of the class implementing communication server
+
+CustomCommunicationInterview.commInitArgs.smry=Server initialization parameters
+CustomCommunicationInterview.commInitArgs.text=Specify the communication server initialization parameters
Index: src/share/classes/com/sun/tck/j2me/interview/CustomCommunicationInterview.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/interview/CustomCommunicationInterview.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/interview/CustomCommunicationInterview.java (working copy)
@@ -30,6 +30,7 @@
import com.sun.interview.FinalQuestion;
import com.sun.interview.Interview;
import com.sun.interview.Question;
+import com.sun.tck.j2me.interview.lib.Exporter;
import com.sun.tck.j2me.interview.lib.Exporters;
import com.sun.tck.j2me.interview.lib.NullQuestion;
import com.sun.tck.j2me.interview.lib.PathQuestion;
@@ -56,7 +57,7 @@
/** Creates a new instance of CustomCommunicationInterview */
public CustomCommunicationInterview(Interview parent) throws Fault {
super(parent, "CustomCommunication");
- setResourceBundle("i18n");
+ setResourceBundle("customcomm");
setHelpSet("help/vm");

NullQuestion intro = new NullQuestion(this, INTRO_TAG);
@@ -69,29 +70,18 @@
path.linkTo(clName);

StringQuestion args = new StringQuestion(this, COMM_INIT_ARGS_TAG);
- args.setExporter(Exporters.getStringValueExporter(COMM_INIT_ARGS_VARIABLE));
+ args.setExporter(new Exporter() {
+ public void export(Question q, Map data) {
+ data.put(COMM_INIT_ARGS_VARIABLE, q.getStringValue());
+ data.put("commService.j2me.jar", "$j2meFwLibDir$/j2me_communication.jar");
+ data.put("msgService.j2me.jar", "$j2meFwLibDir$/j2me_messaging.jar");
+ data.put("commService.server", "$commService.server.name $commService.server.init.args");
+ }
+ });
args.setValidator(Validators.ALWAYS_VALID);
clName.linkTo(args);

args.linkTo(new FinalQuestion(this));
setFirstQuestion(intro);
}
-
- public static void createSequence(ArrayList questions) {
- createSequence((Question[])questions.toArray(new Question[questions.size()]));
- }
-
- public static void createSequence(Question... questions) {
- PathResolver resolver = PathResolvers.getSequentialResolver(questions);
- for (Question current : questions) {
- if (current instanceof QuestionExtension) {
- ((QuestionExtension)current).setResolver(resolver);
- }
- }
- }
-
- public void export(Map map) {
- super.export(map);
- map.put("commService.server", "$commService.server.name $commService.server.init.args");
- }
}
Index: src/share/classes/com/sun/tck/j2me/interview/i18n.properties
===================================================================
--- src/share/classes/com/sun/tck/j2me/interview/i18n.properties (revision 953)
+++ src/share/classes/com/sun/tck/j2me/interview/i18n.properties (working copy)
@@ -43,18 +43,3 @@

BasicTckInterview.confDesc.smry=Description
BasicTckInterview.confDesc.text=Please provide a short description of this configuration.
-
-CdcBaseCommInterview.communicationTypes.smry=Communication types
-CdcBaseCommInterview.communicationTypes.text=Please choose communication type supported by the device under tests
-
-CustomCommunicationInterview.intro.smry=Custom communications
-CustomCommunicationInterview.intro.text=The following questions garther information about custom server implementation
-
-CustomCommunicationInterview.commClassPath.smry=Server implementation classpath
-CustomCommunicationInterview.commClassPath.text=Specify the .jar/.zip files or directories containing server implementation classes
-
-CustomCommunicationInterview.commClassName.smry=Communication server implementation
-CustomCommunicationInterview.commClassName.text=Specify the full qualified name of the class implementing communication server
-
-CustomCommunicationInterview.commInitArgs.smry=Server initialization parameters
-CustomCommunicationInterview.commInitArgs.text=Specify the communication server initialization parameters
Index: src/share/classes/com/sun/tck/j2me/javatest/DistributedTestSuite.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/javatest/DistributedTestSuite.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/javatest/DistributedTestSuite.java (working copy)
@@ -181,7 +181,7 @@
protected void loadParameters(TestEnvironment env) throws Fault {
super.loadParameters(env);

- if (shouldEnableDistrTests()) {
+ if (shouldEnableDistrTests() && !isCDCMode()) {
String commClientJar = getJarNameFromEnv(env, COMMSERVICE_CLIENT_JAR);
String j2meCommunicationJar = getJarNameFromEnv(env, COMMSERVICE_J2ME_JAR);
String j2meMessagingJar = getJarNameFromEnv(env, MSGSERVICE_J2ME_JAR);
Index: src/share/classes/com/sun/tck/j2me/services/commService/CommTestSuiteService.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/services/commService/CommTestSuiteService.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/services/commService/CommTestSuiteService.java (working copy)
@@ -94,15 +94,15 @@
f1 = Utils.getJarFromEnv(env, COMMSERVICE_JAR);
list.add(f1.toURI().toURL());
} catch (TestEnvironment.Fault fault) {
+ throw new TestSuiteServiceFault(i18n, "dts.lookupError", COMMSERVICE_JAR);
+ } catch (IllegalArgumentException e) {
+ throw new TestSuiteServiceFault(i18n, "dts.cannotReadFile", e.getMessage());
+ } catch (NullPointerException e) {
// COMMSERVICE_JAR is not required if the COMMSERVICE_PATH defines
// at least one file.
if (list.size() == 0) {
- throw new TestSuiteServiceFault(i18n, "dts.lookupError", COMMSERVICE_JAR);
+ throw new TestSuiteServiceFault(i18n, "dts.jarUndefined", COMMSERVICE_JAR);
}
- } catch (IllegalArgumentException e) {
- throw new TestSuiteServiceFault(i18n, "dts.cannotReadFile", e.getMessage());
- } catch (NullPointerException e) {
- throw new TestSuiteServiceFault(i18n, "dts.jarUndefined", COMMSERVICE_JAR);
} catch (MalformedURLException e) {
throw new TestSuiteServiceFault(i18n, "dts.commService.server.jar.NotFound", f1.getAbsoluteFile());
}
Index: src/share/classes/com/sun/tck/j2me/services/messagingService/DistributedTestBase.java
===================================================================
--- src/share/classes/com/sun/tck/j2me/services/messagingService/DistributedTestBase.java (revision 953)
+++ src/share/classes/com/sun/tck/j2me/services/messagingService/DistributedTestBase.java (working copy)
@@ -162,19 +162,14 @@
protected void initCommService() {
CommServiceConfig commCfg = CommServiceConfig.getInstance();

- if (bundleId != null) {
- // set configuration in CDC mode
- commCfg.setConnectionId(bundleId);
- commCfg.setCommServiceAddress(commServiceAddress);
- commCfg.setCommClientClass(commClientClass);
- commCfg.setCommClientArgs(commClientArgs);
+ if (bundleId == null) {
+ CommToJavatestService.getInstance().init(
+ commCfg.getCommServiceAddress(),
+ commCfg.getConnectionId(),
+ commCfg.getCommClientClass(),
+ commCfg.getCommClientArgs());
}

- CommToJavatestService.getInstance().init(
- commCfg.getCommServiceAddress(),
- commCfg.getConnectionId(),
- commCfg.getCommClientClass(),
- commCfg.getCommClientArgs());
}

/**

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Vladimir Sizikov

Hi Alexander,

Since Maxim is on vacation until Wednesday, we got his permission to
modify the sources ourselves. :) Maxim even suggested to modify the
sources right in his branch. :) So feel free to update the branch with
your latest changes (excluding those that you feel are expermental or
not ready).

Thanks,
--Vladimir

On Mon, May 21, 2007 at 01:17:16PM +0400, Alexander Alexeev wrote:
> Hi Maxim,
>
> several new comments:
>
> 1. These strings should be located in cdcbasecomm.properties:
> CdcBaseCommInterview.communicationTypes.smry=Communication types
> CdcBaseCommInterview.communicationTypes.text=Please choose communication
> type supported by the device under tests
> Also I propose to move CustomCommunicationInterview properties in separate
> file.
> Says "customcomm.properties".
>
> 2. The "$commService.server.address" environment variable should be
> correctly
> exported in case of TCP_IP transport.
>
> 3. export() method of CustomCommunicationInterview is never called so
>
> "$commService.server" variable is never exported. Also another two
> variables are
> needed in order to run distributed tests: "$commService.j2me.jar" and
> "$msgService.j2me.jar".
>
> 4. Why not to move question about communication type in CommInterview and
> enable
> it in CDC mode only? Seems this question is very tied to CommInterview and
> make
> no sense without it.
>
> 5. Since "$commService.client.jar" variable is not exported in case of
> custom
> channel, DistributedTestSuite should carefully register extra jars. Ideally
> they
> should be registered in CLDC/MIDP mode only.
>
> 6. Checking for COMMSERVICE_PATH should be done in NullPointerException
> catch
> block instead of TestEnvironment.Fault. Fault occurs in very rare cases when
> something definitely wrong with the environment. When variable is simple
> absent
> in the environment JavaTest returns empty array.
>
> 7. Initialization of communication channel should not be done in CDC mode in
> DistributedTestBase.
>
> I've attached patch with changes were done in order to run SATSA TCK 2.0b
> with
> new communication channel.
>
> Thanks,
> Alexander
>
> Alexander Alexeev wrote:
> >Maxim,
> >
> >no, currently I haven't CDC TCK version. I'm going to implement
> >something to enable new interviews in CDC. I'm using COP TCKs currently.
> >
> >Thanks,
> >Alexander
> >
> >Maxim V. Sokolnikov wrote:
> >>Alexander,
> >>
> >>Thank you for your comments. I will integrate the comments by
> >>Wednesday.
> >>Do you have a CDC TCK version that use these new cqme interview and
> >>testsuites?
> >>
> >>Thank you,
> >>Maxim
> >>
> >>
> >>Alexander Alexeev writes:
> >> > Hi Maxim,
> >> > > Now I've started review changes in interview for enabling pluggable
> >> > communication channel. Below some my comments:
> >> > > 1. exportCommonData() in CdcBaseCommInterview is never called.
> >>Therefore
> >> > test's run fails due to incorrect script.
> >> > > 2. Does it really need to use static fields for tags? Seems simple
> >> > string constant looks more readable. In any case it need to be
> >> > consistent - all questions through interview should use strings or
> >> > static fields. One more comment - fields should be private as much as
> >> > possible.
> >> > > 3. Should be possible to choose http client: MidHTTPCommClient
> >>(yes, the
> >> > name is rather confusing but in reality currently it used by
> >>distributed
> >> > test when tcp/ip transport is chosen).
> >> > > Thanks,
> >> > Alexander
> >> > > Maxim Sokolnikov wrote:
> >> > > Alexander,
> >> > > > > Thank you for your results. It looks like there is a
> >>performance
> >> > > problem in DatagramSocketComm(Client|Server).
> >> > > > > The difference is that datagram_commClient sends packages
> >>one by one
> >> > > and expects response from the packet prior sending next packet.
> >> > > The datagram connection used in the DatagramAgent implements more
> >> > > complicated tcp/ip like protocol.
> >> > > > > If in old TCKs the data being sent by
> >> > > DatagramSocketComm(Client|Server) was not too large, then now,
> >>the class
> >> > > loading and sending of the tests results causes that this simple
> >> > > problem becomes bottle neck.
> >> > > > > I think that the more efficient implementation of the
> >> > > DatagramSocketComm(Client|Server) could be implemented.
> >> > > > > Today I have run CLDC TCK using generic communication agent
> >>with
> >> > > SocketComm(Client|Server) and using standard TCK/IP JavaTest agent.
> >> > > > > I have run the tests with concurrency 5 using 8 separate
> >>concurrent
> >> > > agents in both runs.
> >> > > > > The generic agent executed the tests for 4:55 and standard
> >>agent
> >> > > executed the for 4:36.
> >> > > > > It shown performance degradation 7% or 2 seconds for each
> >>1000 tests.
> >> > > > > I think that the execution framework does not introduce
> >>performance
> >> > > problems and new scheme can replace the existing execution agents
> >> > > after DatagramSocketComm(Client|Server) optimization.
> >> > > > > > > Thank you,
> >> > > Maxim
> >> > > > > > > Alexander Alexeev writes:
> >> > > > Hi Maxim,
> >> > > > > > > I've submitted yet another issue:
> >> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=140
> >> > > > > > > Also I've tested new framework with CDC TCK and found
> >>performance degradation:
> >> > > > run of api tests get about 73 minutes with new agent in
> >>opposite to about 31
> >> > > > minutes with old agent.
> >> > > > > > > Thanks,
> >> > > > Alexander
> >> > > > > > > Maxim Sokolnikov wrote:
> >> > > > > Alexander,
> >> > > > > > > > > Thank you for your results. I am going to fix the
> >>problems before end
> >> > > > > of this week.
> >> > > > > > > > > Thank you,
> >> > > > > Maxim
> >> > > > > > > > > Alexander Alexeev writes:
> >> > > > > > Hi Maxim,
> >> > > > > > > > > > > I've started review generic communication
> >>execution framework and submitted
> >> > > > > > several issues already:
> >> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=135
> >> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=136
> >> > > > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=137
> >> > > > > > > > > > > Please review them and provide your comments.
> >> > > > > > > > > > > Thanks,
> >> > > > > > Alexander
> >> > > > > > > > >
> >>---------------------------------------------------------------------
> >> > > > > To unsubscribe, e-mail:
> >>meframework-unsubscribe@cqme.dev.java.net
> >> > > > > For additional commands, e-mail:
> >>meframework-help@cqme.dev.java.net
> >> > > > > > > > > > > >
> >>---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> >> > > For additional commands, e-mail: meframework-help@cqme.dev.java.net
> >> > > >
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> >>For additional commands, e-mail: meframework-help@cqme.dev.java.net
> >>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> >For additional commands, e-mail: meframework-help@cqme.dev.java.net
> >
>
>

> Index: build/filelists.mk
> ===================================================================
> --- build/filelists.mk (revision 953)
> +++ build/filelists.mk (working copy)
> @@ -47,18 +47,7 @@
> com/sun/tck/cldc/javatest/i18n.properties \
> com/sun/tck/midp/policy/i18n.properties \
> com/sun/tck/j2me/javatest/i18n.properties \
> - com/sun/tck/j2me/interview/i18n.properties \
> - com/sun/tck/j2me/interview/vm.properties \
> - com/sun/tck/j2me/interview/cldcbasecomm.properties \
> - com/sun/tck/j2me/interview/cldccustomcomm.properties \
> - com/sun/tck/j2me/interview/cldccommadv.properties \
> - com/sun/tck/j2me/interview/midpcommadv.properties \
> - com/sun/tck/j2me/interview/cdcbasecomm.properties \
> - com/sun/tck/j2me/interview/comm.properties \
> - com/sun/tck/j2me/interview/trusted.properties \
> - com/sun/tck/j2me/interview/ota.properties \
> - com/sun/tck/j2me/interview/export.properties \
> - com/sun/tck/j2me/interview/preverify.properties \
> + com/sun/tck/j2me/interview/*.properties \
> com/sun/tck/javatest/i18n.properties \
> com/sun/cldc/communication/midp/i18n.properties \
> com/sun/tck/midp/lib/i18n.properties \
> Index: src/share/classes/com/sun/tck/j2me/agent/AgentMain.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/agent/AgentMain.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/agent/AgentMain.java (working copy)
> @@ -211,8 +211,9 @@
> return 1;
> } else if (index == args.length - 1) {
> throw new IllegalArgumentException("Unknown argument:" + args[index]);
> - } else if (args[index].equals("CLASSPATH_OPTION")) {
> + } else if (args[index].equals(CLASSPATH_OPTION)) {
> this.classpath = args[++index];
> + return 2;
> } else if (args[index].equalsIgnoreCase(MAP_OPTION)) {
> this.map = args[index + 1];
> return 2;
> Index: src/share/classes/com/sun/tck/j2me/execution/javatest/AgentQueue.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/execution/javatest/AgentQueue.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/execution/javatest/AgentQueue.java (working copy)
> @@ -157,7 +157,7 @@
> }
> }
> URL[] urls = (URL[])buff.toArray(new URL[buff.size()]);
> - return buff.isEmpty() ? parentLoader : new URLClassLoader(urls, parentLoader);
> + return buff.isEmpty() ? parentLoader : new URLClassLoader(urls, null);
> }
>
> private static class ClassLoaderResourceProvider extends Service implements ResourceProvider {
> Index: src/share/classes/com/sun/tck/j2me/interview/cdcbasecomm.properties
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/interview/cdcbasecomm.properties (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/interview/cdcbasecomm.properties (working copy)
> @@ -42,7 +42,5 @@
> CdcBaseCommInterview.dataLength.smry=UDP data length
> CdcBaseCommInterview.dataLength.text=How many bytes of data do you wish to include in a datagram packet?
>
> -CdcBaseCommInterview.agentType.smry=Communication protocol
> -CdcBaseCommInterview.agentType.text=Which protocol is used for communication between the test system and the JavaTest harness?
> -CdcBaseCommInterview.agentType.cdcAgent=Datagram
> -CdcBaseCommInterview.agentType.jtAgent=TCP/IP
> +CdcBaseCommInterview.communicationTypes.smry=Communication types
> +CdcBaseCommInterview.communicationTypes.text=Please choose communication type supported by the device under tests
> Index: src/share/classes/com/sun/tck/j2me/interview/CdcBaseCommInterview.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/interview/CdcBaseCommInterview.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/interview/CdcBaseCommInterview.java (working copy)
> @@ -133,7 +133,14 @@
> "Socket based connection",
> "Datagram Socket connection",
> "Custom connection",
> - });
> + }) {
> +
> + @Override
> + public void export(Map data) {
> + super.export(data);
> + exportCommonData(data, false);
> + }
> + };
> setFirstQuestion(callInterview(iConcurrency, commTypes));
> questions.addQuestion(commTypes, COMMUNICATION_TYPES_TAG);
> questions.addInterview(new CommInterview(this, CommInterview.CDC_MODE, true));
> @@ -202,3 +209,4 @@
> VmInterview parent = null;
> }
>
> +
> Index: src/share/classes/com/sun/tck/j2me/interview/CommInterview.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/interview/CommInterview.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/interview/CommInterview.java (working copy)
> @@ -144,6 +144,7 @@
> commClientArgs += "verbose=$remoteVerbose";
> commServiceServer += " verbose=$remoteVerbose";
> } else if (iTransport == CommInterview.TCP_IP_TRANSPORT) {
> + commUrl = TCP_IP_COMM_URL;
> commServerJar = TCP_IP_COMM_SERVER_JAR;
> commServerClass = TCP_IP_COMM_SERVER_CLASS;
> commServiceServer = commServerClass + " host=$httpHost port=$commService.server.port";
> @@ -211,6 +212,8 @@
> "com.sun.tck.j2me.services.commService.clients.DatagramSocketCommClient";
>
> //TCP/IP
> + static final String TCP_IP_COMM_URL =
> + "$httpHost:$commService.server.port";
> static final String TCP_IP_COMM_SERVER_JAR =
> "$j2meFwLibDir$/j2mefw_jt.jar";
> static final String TCP_IP_COMM_SERVER_CLASS =
> Index: src/share/classes/com/sun/tck/j2me/interview/customcomm.properties
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/interview/customcomm.properties (revision 0)
> +++ src/share/classes/com/sun/tck/j2me/interview/customcomm.properties (revision 0)
> @@ -0,0 +1,38 @@
> +#
> +# $Id$
> +#
> +# Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
> +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License version
> +# 2 only, as published by the Free Software Foundation.
> +#
> +# This program 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
> +# General Public License version 2 for more details (a copy is
> +# included at /legal/license.txt).
> +#
> +# You should have received a copy of the GNU General Public License
> +# version 2 along with this work; if not, write to the Free Software
> +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
> +# 02110-1301 USA
> +#
> +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
> +# Clara, CA 95054 or visit www.sun.com if you need additional
> +# information or have any questions.
> +#
> +
> +
> +CustomCommunicationInterview.intro.smry=Custom communications
> +CustomCommunicationInterview.intro.text=The following questions garther information about custom server implementation
> +
> +CustomCommunicationInterview.commClassPath.smry=Server implementation classpath
> +CustomCommunicationInterview.commClassPath.text=Specify the .jar/.zip files or directories containing server implementation classes
> +
> +CustomCommunicationInterview.commClassName.smry=Communication server implementation
> +CustomCommunicationInterview.commClassName.text=Specify the full qualified name of the class implementing communication server
> +
> +CustomCommunicationInterview.commInitArgs.smry=Server initialization parameters
> +CustomCommunicationInterview.commInitArgs.text=Specify the communication server initialization parameters
> Index: src/share/classes/com/sun/tck/j2me/interview/CustomCommunicationInterview.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/interview/CustomCommunicationInterview.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/interview/CustomCommunicationInterview.java (working copy)
> @@ -30,6 +30,7 @@
> import com.sun.interview.FinalQuestion;
> import com.sun.interview.Interview;
> import com.sun.interview.Question;
> +import com.sun.tck.j2me.interview.lib.Exporter;
> import com.sun.tck.j2me.interview.lib.Exporters;
> import com.sun.tck.j2me.interview.lib.NullQuestion;
> import com.sun.tck.j2me.interview.lib.PathQuestion;
> @@ -56,7 +57,7 @@
> /** Creates a new instance of CustomCommunicationInterview */
> public CustomCommunicationInterview(Interview parent) throws Fault {
> super(parent, "CustomCommunication");
> - setResourceBundle("i18n");
> + setResourceBundle("customcomm");
> setHelpSet("help/vm");
>
> NullQuestion intro = new NullQuestion(this, INTRO_TAG);
> @@ -69,29 +70,18 @@
> path.linkTo(clName);
>
> StringQuestion args = new StringQuestion(this, COMM_INIT_ARGS_TAG);
> - args.setExporter(Exporters.getStringValueExporter(COMM_INIT_ARGS_VARIABLE));
> + args.setExporter(new Exporter() {
> + public void export(Question q, Map data) {
> + data.put(COMM_INIT_ARGS_VARIABLE, q.getStringValue());
> + data.put("commService.j2me.jar", "$j2meFwLibDir$/j2me_communication.jar");
> + data.put("msgService.j2me.jar", "$j2meFwLibDir$/j2me_messaging.jar");
> + data.put("commService.server", "$commService.server.name $commService.server.init.args");
> + }
> + });
> args.setValidator(Validators.ALWAYS_VALID);
> clName.linkTo(args);
>
> args.linkTo(new FinalQuestion(this));
> setFirstQuestion(intro);
> }
> -
> - public static void createSequence(ArrayList questions) {
> - createSequence((Question[])questions.toArray(new Question[questions.size()]));
> - }
> -
> - public static void createSequence(Question... questions) {
> - PathResolver resolver = PathResolvers.getSequentialResolver(questions);
> - for (Question current : questions) {
> - if (current instanceof QuestionExtension) {
> - ((QuestionExtension)current).setResolver(resolver);
> - }
> - }
> - }
> -
> - public void export(Map map) {
> - super.export(map);
> - map.put("commService.server", "$commService.server.name $commService.server.init.args");
> - }
> }
> Index: src/share/classes/com/sun/tck/j2me/interview/i18n.properties
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/interview/i18n.properties (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/interview/i18n.properties (working copy)
> @@ -43,18 +43,3 @@
>
> BasicTckInterview.confDesc.smry=Description
> BasicTckInterview.confDesc.text=Please provide a short description of this configuration.
> -
> -CdcBaseCommInterview.communicationTypes.smry=Communication types
> -CdcBaseCommInterview.communicationTypes.text=Please choose communication type supported by the device under tests
> -
> -CustomCommunicationInterview.intro.smry=Custom communications
> -CustomCommunicationInterview.intro.text=The following questions garther information about custom server implementation
> -
> -CustomCommunicationInterview.commClassPath.smry=Server implementation classpath
> -CustomCommunicationInterview.commClassPath.text=Specify the .jar/.zip files or directories containing server implementation classes
> -
> -CustomCommunicationInterview.commClassName.smry=Communication server implementation
> -CustomCommunicationInterview.commClassName.text=Specify the full qualified name of the class implementing communication server
> -
> -CustomCommunicationInterview.commInitArgs.smry=Server initialization parameters
> -CustomCommunicationInterview.commInitArgs.text=Specify the communication server initialization parameters
> Index: src/share/classes/com/sun/tck/j2me/javatest/DistributedTestSuite.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/javatest/DistributedTestSuite.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/javatest/DistributedTestSuite.java (working copy)
> @@ -181,7 +181,7 @@
> protected void loadParameters(TestEnvironment env) throws Fault {
> super.loadParameters(env);
>
> - if (shouldEnableDistrTests()) {
> + if (shouldEnableDistrTests() && !isCDCMode()) {
> String commClientJar = getJarNameFromEnv(env, COMMSERVICE_CLIENT_JAR);
> String j2meCommunicationJar = getJarNameFromEnv(env, COMMSERVICE_J2ME_JAR);
> String j2meMessagingJar = getJarNameFromEnv(env, MSGSERVICE_J2ME_JAR);
> Index: src/share/classes/com/sun/tck/j2me/services/commService/CommTestSuiteService.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/services/commService/CommTestSuiteService.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/services/commService/CommTestSuiteService.java (working copy)
> @@ -94,15 +94,15 @@
> f1 = Utils.getJarFromEnv(env, COMMSERVICE_JAR);
> list.add(f1.toURI().toURL());
> } catch (TestEnvironment.Fault fault) {
> + throw new TestSuiteServiceFault(i18n, "dts.lookupError", COMMSERVICE_JAR);
> + } catch (IllegalArgumentException e) {
> + throw new TestSuiteServiceFault(i18n, "dts.cannotReadFile", e.getMessage());
> + } catch (NullPointerException e) {
> // COMMSERVICE_JAR is not required if the COMMSERVICE_PATH defines
> // at least one file.
> if (list.size() == 0) {
> - throw new TestSuiteServiceFault(i18n, "dts.lookupError", COMMSERVICE_JAR);
> + throw new TestSuiteServiceFault(i18n, "dts.jarUndefined", COMMSERVICE_JAR);
> }
> - } catch (IllegalArgumentException e) {
> - throw new TestSuiteServiceFault(i18n, "dts.cannotReadFile", e.getMessage());
> - } catch (NullPointerException e) {
> - throw new TestSuiteServiceFault(i18n, "dts.jarUndefined", COMMSERVICE_JAR);
> } catch (MalformedURLException e) {
> throw new TestSuiteServiceFault(i18n, "dts.commService.server.jar.NotFound", f1.getAbsoluteFile());
> }
> Index: src/share/classes/com/sun/tck/j2me/services/messagingService/DistributedTestBase.java
> ===================================================================
> --- src/share/classes/com/sun/tck/j2me/services/messagingService/DistributedTestBase.java (revision 953)
> +++ src/share/classes/com/sun/tck/j2me/services/messagingService/DistributedTestBase.java (working copy)
> @@ -162,19 +162,14 @@
> protected void initCommService() {
> CommServiceConfig commCfg = CommServiceConfig.getInstance();
>
> - if (bundleId != null) {
> - // set configuration in CDC mode
> - commCfg.setConnectionId(bundleId);
> - commCfg.setCommServiceAddress(commServiceAddress);
> - commCfg.setCommClientClass(commClientClass);
> - commCfg.setCommClientArgs(commClientArgs);
> + if (bundleId == null) {
> + CommToJavatestService.getInstance().init(
> + commCfg.getCommServiceAddress(),
> + commCfg.getConnectionId(),
> + commCfg.getCommClientClass(),
> + commCfg.getCommClientArgs());
> }
>
> - CommToJavatestService.getInstance().init(
> - commCfg.getCommServiceAddress(),
> - commCfg.getConnectionId(),
> - commCfg.getCommClientClass(),
> - commCfg.getCommClientArgs());
> }
>
> /**

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Alexander Alexeev

Hi Vladimir,

will do ;-). But I need to put all (and experimental too :-( ) otherwise it will
not work. I think we can correct this afterward (I mean interview changes).

Thanks,
Alexander

Vladimir Sizikov wrote:
> Hi Alexander,
>
> Since Maxim is on vacation until Wednesday, we got his permission to
> modify the sources ourselves. :) Maxim even suggested to modify the
> sources right in his branch. :) So feel free to update the branch with
> your latest changes (excluding those that you feel are expermental or
> not ready).
>
> Thanks,
> --Vladimir
>
> On Mon, May 21, 2007 at 01:17:16PM +0400, Alexander Alexeev wrote:
>> Hi Maxim,
>>
>> several new comments:
>>
>> 1. These strings should be located in cdcbasecomm.properties:
>> CdcBaseCommInterview.communicationTypes.smry=Communication types
>> CdcBaseCommInterview.communicationTypes.text=Please choose communication
>> type supported by the device under tests
>> Also I propose to move CustomCommunicationInterview properties in separate
>> file.
>> Says "customcomm.properties".
>>
>> 2. The "$commService.server.address" environment variable should be
>> correctly
>> exported in case of TCP_IP transport.
>>
>> 3. export() method of CustomCommunicationInterview is never called so
>>
>> "$commService.server" variable is never exported. Also another two
>> variables are
>> needed in order to run distributed tests: "$commService.j2me.jar" and
>> "$msgService.j2me.jar".
>>
>> 4. Why not to move question about communication type in CommInterview and
>> enable
>> it in CDC mode only? Seems this question is very tied to CommInterview and
>> make
>> no sense without it.
>>
>> 5. Since "$commService.client.jar" variable is not exported in case of
>> custom
>> channel, DistributedTestSuite should carefully register extra jars. Ideally
>> they
>> should be registered in CLDC/MIDP mode only.
>>
>> 6. Checking for COMMSERVICE_PATH should be done in NullPointerException
>> catch
>> block instead of TestEnvironment.Fault. Fault occurs in very rare cases when
>> something definitely wrong with the environment. When variable is simple
>> absent
>> in the environment JavaTest returns empty array.
>>
>> 7. Initialization of communication channel should not be done in CDC mode in
>> DistributedTestBase.
>>
>> I've attached patch with changes were done in order to run SATSA TCK 2.0b
>> with
>> new communication channel.
>>
>> Thanks,
>> Alexander
>>
>> Alexander Alexeev wrote:
>>> Maxim,
>>>
>>> no, currently I haven't CDC TCK version. I'm going to implement
>>> something to enable new interviews in CDC. I'm using COP TCKs currently.
>>>
>>> Thanks,
>>> Alexander
>>>
>>> Maxim V. Sokolnikov wrote:
>>>> Alexander,
>>>>
>>>> Thank you for your comments. I will integrate the comments by
>>>> Wednesday.
>>>> Do you have a CDC TCK version that use these new cqme interview and
>>>> testsuites?
>>>>
>>>> Thank you,
>>>> Maxim
>>>>
>>>>
>>>> Alexander Alexeev writes:
>>>>> Hi Maxim,
>>>>> > Now I've started review changes in interview for enabling pluggable
>>>>> communication channel. Below some my comments:
>>>>> > 1. exportCommonData() in CdcBaseCommInterview is never called.
>>>> Therefore
>>>>> test's run fails due to incorrect script.
>>>>> > 2. Does it really need to use static fields for tags? Seems simple
>>>>> string constant looks more readable. In any case it need to be
>>>>> consistent - all questions through interview should use strings or
>>>>> static fields. One more comment - fields should be private as much as
>>>>> possible.
>>>>> > 3. Should be possible to choose http client: MidHTTPCommClient
>>>> (yes, the
>>>>> name is rather confusing but in reality currently it used by
>>>> distributed
>>>>> test when tcp/ip transport is chosen).
>>>>> > Thanks,
>>>>> Alexander
>>>>> > Maxim Sokolnikov wrote:
>>>>>> Alexander,
>>>>>> > > Thank you for your results. It looks like there is a
>>>> performance
>>>>>> problem in DatagramSocketComm(Client|Server).
>>>>>> > > The difference is that datagram_commClient sends packages
>>>> one by one
>>>>>> and expects response from the packet prior sending next packet.
>>>>>> The datagram connection used in the DatagramAgent implements more
>>>>>> complicated tcp/ip like protocol.
>>>>>> > > If in old TCKs the data being sent by
>>>>>> DatagramSocketComm(Client|Server) was not too large, then now,
>>>> the class
>>>>>> loading and sending of the tests results causes that this simple
>>>>>> problem becomes bottle neck.
>>>>>> > > I think that the more efficient implementation of the
>>>>>> DatagramSocketComm(Client|Server) could be implemented.
>>>>>> > > Today I have run CLDC TCK using generic communication agent
>>>> with
>>>>>> SocketComm(Client|Server) and using standard TCK/IP JavaTest agent.
>>>>>> > > I have run the tests with concurrency 5 using 8 separate
>>>> concurrent
>>>>>> agents in both runs.
>>>>>> > > The generic agent executed the tests for 4:55 and standard
>>>> agent
>>>>>> executed the for 4:36.
>>>>>> > > It shown performance degradation 7% or 2 seconds for each
>>>> 1000 tests.
>>>>>> > > I think that the execution framework does not introduce
>>>> performance
>>>>>> problems and new scheme can replace the existing execution agents
>>>>>> after DatagramSocketComm(Client|Server) optimization.
>>>>>> > > > > Thank you,
>>>>>> Maxim
>>>>>> > > > > Alexander Alexeev writes:
>>>>>> > Hi Maxim,
>>>>>> > > > > I've submitted yet another issue:
>>>>>> > https://cqme.dev.java.net/issues/show_bug.cgi?id=140
>>>>>> > > > > Also I've tested new framework with CDC TCK and found
>>>> performance degradation:
>>>>>> > run of api tests get about 73 minutes with new agent in
>>>> opposite to about 31
>>>>>> > minutes with old agent.
>>>>>> > > > > Thanks,
>>>>>> > Alexander
>>>>>> > > > > Maxim Sokolnikov wrote:
>>>>>> > > Alexander,
>>>>>> > > > > > > Thank you for your results. I am going to fix the
>>>> problems before end
>>>>>> > > of this week.
>>>>>> > > > > > > Thank you,
>>>>>> > > Maxim
>>>>>> > > > > > > Alexander Alexeev writes:
>>>>>> > > > Hi Maxim,
>>>>>> > > > > > > > > I've started review generic communication
>>>> execution framework and submitted
>>>>>> > > > several issues already:
>>>>>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=135
>>>>>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=136
>>>>>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=137
>>>>>> > > > > > > > > Please review them and provide your comments.
>>>>>> > > > > > > > > Thanks,
>>>>>> > > > Alexander
>>>>>> > > > > > >
>>>> ---------------------------------------------------------------------
>>>>>> > > To unsubscribe, e-mail:
>>>> meframework-unsubscribe@cqme.dev.java.net
>>>>>> > > For additional commands, e-mail:
>>>> meframework-help@cqme.dev.java.net
>>>>>> > > > > > > > > >
>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>>>>>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>>>>> >
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>>>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Alexander Alexeev

Hi Vladimir, Maxim,

please review changes to the interview. The main goal was to move question about
communication's type to the logical place - to CommInterview where really
communication is set up. The cangeset:
http://fisheye4.cenqua.com/changelog/cqme/?cs=977

As side effect the exportCommonData() method of CdcBaseCommInterview was moved
to VmInterview because of unavailability to export anything from
CdcBaseCommInterview. This interview doesn't have own questions currently and
since JavaTest doesn't call interview's export() methods and final question
export() methods at the same time exportCommonData() could not be called. I'm
wondering why addFinal argument is ignored while calling iteratePath0() for
subinterview in the Interview.iteratePath0()?

Thanks,
Alexander

Alexander Alexeev wrote:
> Hi Vladimir,
>
> will do ;-). But I need to put all (and experimental too :-( ) otherwise
> it will
> not work. I think we can correct this afterward (I mean interview changes).
>
> Thanks,
> Alexander
>
> Vladimir Sizikov wrote:
>> Hi Alexander,
>>
>> Since Maxim is on vacation until Wednesday, we got his permission to
>> modify the sources ourselves. :) Maxim even suggested to modify the
>> sources right in his branch. :) So feel free to update the branch with
>> your latest changes (excluding those that you feel are expermental or
>> not ready).
>>
>> Thanks,
>> --Vladimir
>> On Mon, May 21, 2007 at 01:17:16PM +0400, Alexander Alexeev wrote:
>>> Hi Maxim,
>>>
>>> several new comments:
>>>
>>> 1. These strings should be located in cdcbasecomm.properties:
>>> CdcBaseCommInterview.communicationTypes.smry=Communication types
>>> CdcBaseCommInterview.communicationTypes.text=Please choose communication
>>> type supported by the device under tests
>>> Also I propose to move CustomCommunicationInterview properties in
>>> separate file.
>>> Says "customcomm.properties".
>>>
>>> 2. The "$commService.server.address" environment variable should be
>>> correctly
>>> exported in case of TCP_IP transport.
>>>
>>> 3. export() method of CustomCommunicationInterview is never called so
>>> "$commService.server" variable is never exported. Also another two
>>> variables are
>>> needed in order to run distributed tests: "$commService.j2me.jar" and
>>> "$msgService.j2me.jar".
>>>
>>> 4. Why not to move question about communication type in CommInterview
>>> and enable
>>> it in CDC mode only? Seems this question is very tied to
>>> CommInterview and make
>>> no sense without it.
>>>
>>> 5. Since "$commService.client.jar" variable is not exported in case
>>> of custom
>>> channel, DistributedTestSuite should carefully register extra jars.
>>> Ideally they
>>> should be registered in CLDC/MIDP mode only.
>>>
>>> 6. Checking for COMMSERVICE_PATH should be done in
>>> NullPointerException catch
>>> block instead of TestEnvironment.Fault. Fault occurs in very rare
>>> cases when
>>> something definitely wrong with the environment. When variable is
>>> simple absent
>>> in the environment JavaTest returns empty array.
>>>
>>> 7. Initialization of communication channel should not be done in CDC
>>> mode in
>>> DistributedTestBase.
>>>
>>> I've attached patch with changes were done in order to run SATSA TCK
>>> 2.0b with
>>> new communication channel.
>>>
>>> Thanks,
>>> Alexander
>>>
>>> Alexander Alexeev wrote:
>>>> Maxim,
>>>>
>>>> no, currently I haven't CDC TCK version. I'm going to implement
>>>> something to enable new interviews in CDC. I'm using COP TCKs
>>>> currently.
>>>>
>>>> Thanks,
>>>> Alexander
>>>>
>>>> Maxim V. Sokolnikov wrote:
>>>>> Alexander,
>>>>>
>>>>> Thank you for your comments. I will integrate the comments by
>>>>> Wednesday.
>>>>> Do you have a CDC TCK version that use these new cqme interview and
>>>>> testsuites?
>>>>>
>>>>> Thank you,
>>>>> Maxim
>>>>>
>>>>>
>>>>> Alexander Alexeev writes:
>>>>>> Hi Maxim,
>>>>>> > Now I've started review changes in interview for enabling
>>>>>> pluggable
>>>>>> communication channel. Below some my comments:
>>>>>> > 1. exportCommonData() in CdcBaseCommInterview is never called.
>>>>> Therefore
>>>>>> test's run fails due to incorrect script.
>>>>>> > 2. Does it really need to use static fields for tags? Seems simple
>>>>>> string constant looks more readable. In any case it need to be
>>>>>> consistent - all questions through interview should use strings or
>>>>>> static fields. One more comment - fields should be private as much as
>>>>>> possible.
>>>>>> > 3. Should be possible to choose http client: MidHTTPCommClient
>>>>> (yes, the
>>>>>> name is rather confusing but in reality currently it used by
>>>>> distributed
>>>>>> test when tcp/ip transport is chosen).
>>>>>> > Thanks,
>>>>>> Alexander
>>>>>> > Maxim Sokolnikov wrote:
>>>>>>> Alexander,
>>>>>>> > > Thank you for your results. It looks like there is a
>>>>> performance
>>>>>>> problem in DatagramSocketComm(Client|Server).
>>>>>>> > > The difference is that datagram_commClient sends packages
>>>>> one by one
>>>>>>> and expects response from the packet prior sending next packet.
>>>>>>> The datagram connection used in the DatagramAgent implements more
>>>>>>> complicated tcp/ip like protocol.
>>>>>>> > > If in old TCKs the data being sent by
>>>>>>> DatagramSocketComm(Client|Server) was not too large, then now,
>>>>> the class
>>>>>>> loading and sending of the tests results causes that this simple
>>>>>>> problem becomes bottle neck.
>>>>>>> > > I think that the more efficient implementation of the
>>>>>>> DatagramSocketComm(Client|Server) could be implemented.
>>>>>>> > > Today I have run CLDC TCK using generic communication agent
>>>>> with
>>>>>>> SocketComm(Client|Server) and using standard TCK/IP JavaTest agent.
>>>>>>> > > I have run the tests with concurrency 5 using 8 separate
>>>>> concurrent
>>>>>>> agents in both runs.
>>>>>>> > > The generic agent executed the tests for 4:55 and standard
>>>>> agent
>>>>>>> executed the for 4:36.
>>>>>>> > > It shown performance degradation 7% or 2 seconds for each
>>>>> 1000 tests.
>>>>>>> > > I think that the execution framework does not introduce
>>>>> performance
>>>>>>> problems and new scheme can replace the existing execution agents
>>>>>>> after DatagramSocketComm(Client|Server) optimization.
>>>>>>> > > > > Thank you,
>>>>>>> Maxim
>>>>>>> > > > > Alexander Alexeev writes:
>>>>>>> > Hi Maxim,
>>>>>>> > > > > I've submitted yet another issue:
>>>>>>> > https://cqme.dev.java.net/issues/show_bug.cgi?id=140
>>>>>>> > > > > Also I've tested new framework with CDC TCK and found
>>>>> performance degradation:
>>>>>>> > run of api tests get about 73 minutes with new agent in
>>>>> opposite to about 31
>>>>>>> > minutes with old agent.
>>>>>>> > > > > Thanks,
>>>>>>> > Alexander
>>>>>>> > > > > Maxim Sokolnikov wrote:
>>>>>>> > > Alexander,
>>>>>>> > > > > > > Thank you for your results. I am going to fix the
>>>>> problems before end
>>>>>>> > > of this week.
>>>>>>> > > > > > > Thank you,
>>>>>>> > > Maxim
>>>>>>> > > > > > > Alexander Alexeev writes:
>>>>>>> > > > Hi Maxim,
>>>>>>> > > > > > > > > I've started review generic communication
>>>>> execution framework and submitted
>>>>>>> > > > several issues already:
>>>>>>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=135
>>>>>>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=136
>>>>>>> > > > https://cqme.dev.java.net/issues/show_bug.cgi?id=137
>>>>>>> > > > > > > > > Please review them and provide your comments.
>>>>>>> > > > > > > > > Thanks,
>>>>>>> > > > Alexander
>>>>>>> > > > > > >
>>>>> ---------------------------------------------------------------------
>>>>>>> > > To unsubscribe, e-mail:
>>>>> meframework-unsubscribe@cqme.dev.java.net
>>>>>>> > > For additional commands, e-mail:
>>>>> meframework-help@cqme.dev.java.net
>>>>>>> > > > > > > > > >
>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>>>>>>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>>>>>> >
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>>>>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
>>>> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>>>>
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Vladimir Sizikov

Hi Alexander,

On Wed, May 23, 2007 at 02:35:09PM +0400, Alexander Alexeev wrote:
> please review changes to the interview. The main goal was to move question
> about
> communication's type to the logical place - to CommInterview where really
> communication is set up. The cangeset:
> http://fisheye4.cenqua.com/changelog/cqme/?cs=977

Overall, looks good.

> As side effect the exportCommonData() method of CdcBaseCommInterview was
> moved
> to VmInterview because of unavailability to export anything from
> CdcBaseCommInterview.

But could we still keep the exportCdcData() in CdcBaseCommInterview
(and have it package-protected, so that VmInterview could call it)?
In this case, at least, all the CDC relevant info would be still in
CDCBaseInterview.

Thanks,
--Vladimir

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Alexander Alexeev

Vladimir,

agreed, good idea to keep method in CdcBaseCommInterview. I will fix it and
commit to Maxim's branch. Do you agree?

Thanks,
Alexander

Vladimir Sizikov wrote:
> Hi Alexander,
>
> On Wed, May 23, 2007 at 02:35:09PM +0400, Alexander Alexeev wrote:
>> please review changes to the interview. The main goal was to move question
>> about
>> communication's type to the logical place - to CommInterview where really
>> communication is set up. The cangeset:
>> http://fisheye4.cenqua.com/changelog/cqme/?cs=977
>
> Overall, looks good.
>
>> As side effect the exportCommonData() method of CdcBaseCommInterview was
>> moved
>> to VmInterview because of unavailability to export anything from
>> CdcBaseCommInterview.
>
> But could we still keep the exportCdcData() in CdcBaseCommInterview
> (and have it package-protected, so that VmInterview could call it)?
> In this case, at least, all the CDC relevant info would be still in
> CDCBaseInterview.
>
> Thanks,
> --Vladimir
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
> For additional commands, e-mail: meframework-help@cqme.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net

Vladimir Sizikov

Alexander,

On Wed, May 23, 2007 at 03:32:58PM +0400, Alexander Alexeev wrote:
> agreed, good idea to keep method in CdcBaseCommInterview. I will fix it and
> commit to Maxim's branch. Do you agree?

Yep. Right after your commit, I'll perform mass code clean up, so please wait a
bit before you start new branch (in order to avoid conflicts later),
until I finish the cleanup.

Thanks,
--Vladimir

---------------------------------------------------------------------
To unsubscribe, e-mail: meframework-unsubscribe@cqme.dev.java.net
For additional commands, e-mail: meframework-help@cqme.dev.java.net