[otj-users] OTJ-Issues
Oliver Neumann
1beast at web.de
Tue Jul 25 15:49:35 CEST 2006
Hi Carsten,
Problem 1:
>do you use team-inheritance somewhere? If yes, are the class files for all
>roles generated properly at all times or are they missing as well when you
>hit this bug?
Yeah, my inheritance goes like this:
org.objectteams.Team
|- CompiereTeam (doesnt have roles, only methods and plain classes)
|- CompiereMonitor
|- CompiereFormMonitor
|- CompiereWindowMonitor
|- CompiereWorkflow (doesnt have roles, only methods)
|- CompiereWorkflowMonitor
The roles within each of the teams may also inherit from a class (not role,
plain class) within CompiereTeam.
I apply two txt-files with the directory listing after i ran my builder. The
success one shows the directory where all went fine - the failed one, have a
guess, shows the uncomplete building. Hope that helps...
Are there maybe debug-flags to get more informations from the compiler-class
?
Problem 2 - Team activation
>This approach seems a bit.. let me say unusual :-) Is there no other means
to
>(de)activate your teams? Is your whole program controlled by the timer?
Isn't
>it possible to (de)activate your teams based on some "events" in the
>application, captured e.g. by a callin?
I dont know what you mean by asking "Is there no other means to (de)activate
your teams?". I want to deactive a team so all bindings are deactivated
regardless of their guard-conditions (which they also have). I guess thats
what you meant with the second question. Guards on roles might be a way but
i'd prefer the timer-way.
Guards would be just a workaround-solution if we dont make it working.
>It's not easy to judge with just that information. Can you provide some
more
>details? I.e. is it always the same teams that are not activated? Is this
>always reproduceable? What does isActive() return?
Yeah i know its not this simple - but i give you some output-lines of my
TeamActivator.
After starting he begin instanciating the teamclasses which results in this
output:
Creating teamclass <class CompiereTeam>
Creating teamclass <class CompiereMonitor>
Creating teamclass <class CompiereFormMonitor>
Creating teamclass <class CompiereWindowMonitor>
Creating teamclass <class CompiereWorkflow>
Creating teamclass <class CompiereWorkflowMonitor>
So, all my teams were instanciated. After that he creates the timer to let
him check the activity regulary.
On the first run all teams are active as they just were instantiated:
class CompiereWindowMonitor isActive: true
class CompiereFormMonitor isActive: true
class CompiereMonitor isActive: true
class CompiereTeam isActive: true
class CompiereWorkflowMonitor isActive: true
class CompiereWorkflow isActive: true
The last output is made by : System.out.println(theTeam.getClass() + "
isActive: " + theTeam.isActive());
So there you have the output of the team-activity.
Ok...now to the issue. The problem is one role (at least thats the obvious
one. Hadnt tried other yet) which works when i start by config-file but not
by teamactivator. Its inside the CompiereWorkflowMonitor-team. There are 2
roles in this team and the second role DOES work. The role who does work
doesnt inhertit from a CompiereTeam-class. Maybe thats the point. (see
Inheritance-structure from Problem 1)
The weird thing is, that if i use the TeamActivator AND start with the
config-file the CompiereWorkflowMonitor gets instantiated twice for sure
(once by config-file and then by the activator) and then BOTH of these teams
are active and working. So each role works twice and each binding is working
twice. Thus maybe its something the ObjectTeams-Activator (which uses the
cfg-file) does which my TeamActivator doesnt. But then i dont understand why
other roles works which also does inherit from a class (even its another one
then the problem role-one) within the CompiereTeam.
Well if you want to have more details about the inheritance and the class
within CompiereTeam just tell me.
Btw Carsten, we also could meet once so i can show you the behaviour and the
code if you're interested.
thanks and best regards,
oliver
-------------- nächster Teil --------------
CompiereFormMonitor$OT_FormFrame.class
CompiereFormMonitor$RoFi__OT__.class
CompiereFormMonitor$TSuper__OT__CompiereTeam.class
CompiereFormMonitor$__OT__OT_FormFrame.class
CompiereFormMonitor.class
CompiereFormMonitor.java
CompiereMonitor$OT_AEnv.class
CompiereMonitor$OT_AMenu.class
CompiereMonitor$OT_AMenuStartItem.class
CompiereMonitor$OT_ProcessCtl.class
CompiereMonitor$OT_ProcessDialog.class
CompiereMonitor$RoFi__OT__.class
CompiereMonitor$TSuper__OT__CompiereTeam.class
CompiereMonitor$__OT__OT_AEnv.class
CompiereMonitor$__OT__OT_AMenu.class
CompiereMonitor$__OT__OT_AMenuStartItem.class
CompiereMonitor$__OT__OT_ProcessCtl.class
CompiereMonitor$__OT__OT_ProcessDialog.class
CompiereMonitor.class
CompiereMonitor.java
CompiereTeam$RoFi__OT__.class
CompiereTeam$TSuper__OT__Team.class
CompiereTeam$WFNodeItem.class
CompiereTeam$WFNodeItemForm.class
CompiereTeam$WFNodeItemProcess.class
CompiereTeam$WFNodeItemTask.class
CompiereTeam$WFNodeItemWindow.class
CompiereTeam$WFNodeItemWorkflow.class
CompiereTeam$__OT__WFNodeItem.class
CompiereTeam$__OT__WFNodeItemForm.class
CompiereTeam$__OT__WFNodeItemProcess.class
CompiereTeam$__OT__WFNodeItemTask.class
CompiereTeam$__OT__WFNodeItemWindow.class
CompiereTeam$__OT__WFNodeItemWorkflow.class
CompiereTeam.class
CompiereTeam.java
CompiereWindowMonitor$OT_APanel.class
CompiereWindowMonitor$OT_GridController.class
CompiereWindowMonitor$RoFi__OT__.class
CompiereWindowMonitor$TSuper__OT__CompiereTeam.class
CompiereWindowMonitor$__OT__OT_APanel.class
CompiereWindowMonitor$__OT__OT_GridController.class
CompiereWindowMonitor.class
CompiereWindowMonitor.java
CompiereWorkflow$RoFi__OT__.class
CompiereWorkflow$TSuper__OT__CompiereTeam.class
CompiereWorkflow.class
CompiereWorkflow.java
CompiereWorkflowMonitor$OT_AMenu.class
CompiereWorkflowMonitor$OT_WFPanel.class
CompiereWorkflowMonitor$RoFi__OT__.class
CompiereWorkflowMonitor$TSuper__OT__CompiereWorkflow.class
CompiereWorkflowMonitor$__OT__OT_AMenu.class
CompiereWorkflowMonitor$__OT__OT_WFPanel.class
CompiereWorkflowMonitor.class
CompiereWorkflowMonitor.java
-------------- nächster Teil --------------
CompiereFormMonitor$Confined.class
CompiereFormMonitor$IConfined.class
CompiereFormMonitor$ILowerable.class
CompiereFormMonitor$OT_FormFrame.class
CompiereFormMonitor$RoFi__OT__.class
CompiereFormMonitor$TSuper__OT__CompiereTeam.class
CompiereFormMonitor$WFNodeItem.class
CompiereFormMonitor$WFNodeItemForm.class
CompiereFormMonitor$WFNodeItemProcess.class
CompiereFormMonitor$WFNodeItemTask.class
CompiereFormMonitor$WFNodeItemWindow.class
CompiereFormMonitor$WFNodeItemWorkflow.class
CompiereFormMonitor$__OT__Confined.class
CompiereFormMonitor$__OT__OT_FormFrame.class
CompiereFormMonitor$__OT__WFNodeItem.class
CompiereFormMonitor$__OT__WFNodeItemForm.class
CompiereFormMonitor$__OT__WFNodeItemProcess.class
CompiereFormMonitor$__OT__WFNodeItemTask.class
CompiereFormMonitor$__OT__WFNodeItemWindow.class
CompiereFormMonitor$__OT__WFNodeItemWorkflow.class
CompiereFormMonitor.class
CompiereFormMonitor.java
CompiereMonitor$Confined.class
CompiereMonitor$IConfined.class
CompiereMonitor$ILowerable.class
CompiereMonitor$OT_AEnv.class
CompiereMonitor$OT_AMenu.class
CompiereMonitor$OT_AMenuStartItem.class
CompiereMonitor$OT_ProcessCtl.class
CompiereMonitor$OT_ProcessDialog.class
CompiereMonitor$RoFi__OT__.class
CompiereMonitor$TSuper__OT__CompiereTeam.class
CompiereMonitor$WFNodeItem.class
CompiereMonitor$WFNodeItemForm.class
CompiereMonitor$WFNodeItemProcess.class
CompiereMonitor$WFNodeItemTask.class
CompiereMonitor$WFNodeItemWindow.class
CompiereMonitor$WFNodeItemWorkflow.class
CompiereMonitor$__OT__Confined.class
CompiereMonitor$__OT__OT_AEnv.class
CompiereMonitor$__OT__OT_AMenu.class
CompiereMonitor$__OT__OT_AMenuStartItem.class
CompiereMonitor$__OT__OT_ProcessCtl.class
CompiereMonitor$__OT__OT_ProcessDialog.class
CompiereMonitor$__OT__WFNodeItem.class
CompiereMonitor$__OT__WFNodeItemForm.class
CompiereMonitor$__OT__WFNodeItemProcess.class
CompiereMonitor$__OT__WFNodeItemTask.class
CompiereMonitor$__OT__WFNodeItemWindow.class
CompiereMonitor$__OT__WFNodeItemWorkflow.class
CompiereMonitor.class
CompiereMonitor.java
CompiereTeam$Confined.class
CompiereTeam$IConfined.class
CompiereTeam$ILowerable.class
CompiereTeam$RoFi__OT__.class
CompiereTeam$TSuper__OT__Team.class
CompiereTeam$WFNodeItem.class
CompiereTeam$WFNodeItemForm.class
CompiereTeam$WFNodeItemProcess.class
CompiereTeam$WFNodeItemTask.class
CompiereTeam$WFNodeItemWindow.class
CompiereTeam$WFNodeItemWorkflow.class
CompiereTeam$__OT__Confined.class
CompiereTeam$__OT__WFNodeItem.class
CompiereTeam$__OT__WFNodeItemForm.class
CompiereTeam$__OT__WFNodeItemProcess.class
CompiereTeam$__OT__WFNodeItemTask.class
CompiereTeam$__OT__WFNodeItemWindow.class
CompiereTeam$__OT__WFNodeItemWorkflow.class
CompiereTeam.class
CompiereTeam.java
CompiereWindowMonitor$Confined.class
CompiereWindowMonitor$IConfined.class
CompiereWindowMonitor$ILowerable.class
CompiereWindowMonitor$OT_APanel.class
CompiereWindowMonitor$OT_GridController.class
CompiereWindowMonitor$RoFi__OT__.class
CompiereWindowMonitor$TSuper__OT__CompiereTeam.class
CompiereWindowMonitor$WFNodeItem.class
CompiereWindowMonitor$WFNodeItemForm.class
CompiereWindowMonitor$WFNodeItemProcess.class
CompiereWindowMonitor$WFNodeItemTask.class
CompiereWindowMonitor$WFNodeItemWindow.class
CompiereWindowMonitor$WFNodeItemWorkflow.class
CompiereWindowMonitor$__OT__Confined.class
CompiereWindowMonitor$__OT__OT_APanel.class
CompiereWindowMonitor$__OT__OT_GridController.class
CompiereWindowMonitor$__OT__WFNodeItem.class
CompiereWindowMonitor$__OT__WFNodeItemForm.class
CompiereWindowMonitor$__OT__WFNodeItemProcess.class
CompiereWindowMonitor$__OT__WFNodeItemTask.class
CompiereWindowMonitor$__OT__WFNodeItemWindow.class
CompiereWindowMonitor$__OT__WFNodeItemWorkflow.class
CompiereWindowMonitor.class
CompiereWindowMonitor.java
CompiereWorkflow$Confined.class
CompiereWorkflow$IConfined.class
CompiereWorkflow$ILowerable.class
CompiereWorkflow$RoFi__OT__.class
CompiereWorkflow$TSuper__OT__CompiereTeam.class
CompiereWorkflow$WFNodeItem.class
CompiereWorkflow$WFNodeItemForm.class
CompiereWorkflow$WFNodeItemProcess.class
CompiereWorkflow$WFNodeItemTask.class
CompiereWorkflow$WFNodeItemWindow.class
CompiereWorkflow$WFNodeItemWorkflow.class
CompiereWorkflow$__OT__Confined.class
CompiereWorkflow$__OT__WFNodeItem.class
CompiereWorkflow$__OT__WFNodeItemForm.class
CompiereWorkflow$__OT__WFNodeItemProcess.class
CompiereWorkflow$__OT__WFNodeItemTask.class
CompiereWorkflow$__OT__WFNodeItemWindow.class
CompiereWorkflow$__OT__WFNodeItemWorkflow.class
CompiereWorkflow.class
CompiereWorkflow.java
CompiereWorkflowMonitor$Confined.class
CompiereWorkflowMonitor$IConfined.class
CompiereWorkflowMonitor$ILowerable.class
CompiereWorkflowMonitor$OT_AMenu.class
CompiereWorkflowMonitor$OT_WFPanel.class
CompiereWorkflowMonitor$RoFi__OT__.class
CompiereWorkflowMonitor$TSuper__OT__CompiereWorkflow.class
CompiereWorkflowMonitor$WFNodeItem.class
CompiereWorkflowMonitor$WFNodeItemForm.class
CompiereWorkflowMonitor$WFNodeItemProcess.class
CompiereWorkflowMonitor$WFNodeItemTask.class
CompiereWorkflowMonitor$WFNodeItemWindow.class
CompiereWorkflowMonitor$WFNodeItemWorkflow.class
CompiereWorkflowMonitor$__OT__Confined.class
CompiereWorkflowMonitor$__OT__OT_AMenu.class
CompiereWorkflowMonitor$__OT__OT_WFPanel.class
CompiereWorkflowMonitor$__OT__WFNodeItem.class
CompiereWorkflowMonitor$__OT__WFNodeItemForm.class
CompiereWorkflowMonitor$__OT__WFNodeItemProcess.class
CompiereWorkflowMonitor$__OT__WFNodeItemTask.class
CompiereWorkflowMonitor$__OT__WFNodeItemWindow.class
CompiereWorkflowMonitor$__OT__WFNodeItemWorkflow.class
CompiereWorkflowMonitor.class
CompiereWorkflowMonitor.java
More information about the otj-users
mailing list