Ok so the include for controller was only meant for the local app.
that said.
I will implement the easiest way for me, which is to modify each app so
I  can define appname-main-decorator in my web.xml, as I originally
proposed.
however I will not burden the trunk with this concept.
save the heavy stuff for when I have more time.
Got a lot on my plate now.


Jonathon -- Improov sent the following on 11/23/2007 4:28 AM:
> BJ,
> 
> I think many things in life are "work-in-progress", even released
> versions of software. (Yeah, I know, I'll be fired if I'm in product
> marketing.)
> 
> That said, I humbly and apologetically put to you (and to myself) that
> the <include> directive in controller.xml is not designed for blindly
> including another webapp's request/view dictionary (controller.xml) and
> have it all work like Object-oriented Java programming. See my analogy
> with ordering a hamburger from a different POS machine in the same
> restaurant. No, the <include> directive can't fix that.
> 
> So what is the <include> directive for? What can it do now?
> 
> To organize a large controller.xml into smaller ones. We could have a
> main controller.xml that includes requests.xml and views.xml, and maybe
> even handlers.xml . (Can this be done? Verify?) Or organize by function,
> rather than by directives (ie, not by <request-map>, <view-map>, etc).
> 
> To clone an original webapp, and to call on its requests and views with
> a mainDecoratorLocation that works with its screen widgets. The
> mainDecoratorLocation can point to a decorator that is either original
> or modified-but-compatible.
> 
> To extend that original webapp with more requests, or with more views
> and screen widgets that can also use the same decorator mentioned above.
> 
> What is it not used for?
> 
> Combining multiple webapps that may need different mainDecoratorLocation
> values.
> 
> In short, I'm sorry to say that the <include> directive is not an
> "object-oriented" mechanism used to call on an entire webapp
> encapsulated in a clean abstraction (using its own mainDecoratorLocation
> without us having to know what that is).
> 
> But I fully support your ambition to expand the <include> directive's
> capabilities, as I had amply indicated in this thread. I had even
> highlighted the areas that need work to fulfill your ambition. I do hope
> you will continue your exploration. I await your findings eagerly, and
> may even jump in at points where I feel I can help out. :)
> 
> Jonathon
> 
> BJ Freeman wrote:
>> let me refocus this conversation.
>> this is about using the include in the controller to access other
>> controllers.
>> This is a feature of ofbiz is it not?
>> In using this feature there is a problem when the included controller
>> accesses a widget in its application.
>>
>> So either remove the feature or make it work correctly.
>>
>>
>> Scott Gray sent the following on 11/22/2007 9:48 PM:
>>> How on earth could this work?  Each main-decorator specifies an
>>> appheaderTemplate which displays the navigation menu for that
>>> application,
>>> how is the user navigating between the various applications that you
>>> have
>>> bundled into one?  Have you replaced/altered the GlobalDecorator to
>>> display
>>> the "sub" applications?
>>>
>>> I really don't think your following best practices here and that is
>>> exactly
>>> why you are having troubles.  If you want to have a single component in
>>> which to maintain your customizations you should follow the ecomclone
>>> example and put a webapp entry for each base app in your
>>> ofbiz-component.xml
>>> .
>>>
>>> Regards
>>> Scott
>>>
>>> On 23/11/2007, Jonathon -- Improov <[EMAIL PROTECTED]> wrote:
>>>> BJ,
>>>>
>>>> Understood. As I had suspected, you wanted a single look, single
>>>> application, one tab.
>>>>
>>>>> I am not moving any code from the trunk or ver 4.0 into my app.
>>>> Yes, you're doing great extending OFBiz cleanly.
>>>>
>>>>> If I changes something like say the order statuses then the code I
>>>> changed,
>>>>> as well as the screens are in my application.
>>>> Sounds right. Extension codes are cleanly separated from original OFBiz
>>>> codes.
>>>>
>>>>> to get back to the original problem I need a way to declare the
>>>>> mainDecoratorLocation that has different paths so it can be read when
>>>> the
>>>>> controller for that component is read.
>>>> As mentioned, you need to change ConfigXMLReader, possibly
>>>> ControlServlet
>>>> and RequestManager. Just
>>>> add a new top-level (below <site-conf>) element called
>>>> "<main-decorator-loc>". The ConfigXMLReader
>>>> will prepend the webapp name to "mainDecoratorLocation", so you get
>>>> something like
>>>> "ordermgr:mainDecoratorLocation".
>>>>
>>>> Or easier, simply change those same classes to read the web.xml file
>>>> instead. Read the web.xml
>>>> file in the same folder as the included (<include>) controller.xml .
>>>>
>>>>> then I will let what ever reads it preappend the component name to
>>>>> mainDecoratorLocation, and track it.
>>>> You need to change ModelScreenWidget, and add some additional
>>>> processing
>>>> for attribute "location".
>>>>
>>>> Whenever ModelScreenWidget sees in attribute "location" a value of
>>>> "${parameters.mainDecoratorLocation}", it will create a
>>>> FlexibleStringExpander with string
>>>> "${parameters.ordermgr:mainDecoratorLocation}" instead.
>>>>
>>>> I too love to cleanly organize code like this, rather than mess up
>>>> OFBiz's
>>>> internals. I wish you
>>>> success in implementing this, which is easy enough. Hope you can get
>>>> this
>>>> into OFBiz SVN so I can
>>>> have it too. :)
>>>>
>>>> Jonathon
>>>> BJ Freeman wrote:
>>>>> Just to clarify, I consider my app an overlay.
>>>>> I am not moving any code from the trunk or ver 4.0 into my app.
>>>>> for instance I am merging two ftl in Ordermgr.
>>>>> I do create a widget but the ftl are till in ordermgr.
>>>>> this saves a lot of re-integration when the trunk or relase base
>>>> changes.
>>>>> so client will see what ever the ordermgr controller serves up once
>>>>> the
>>>>> client does an action.
>>>>>
>>>>> If I changes something like say the order statuses then the code I
>>>>> changed, as well as the screens are in my application.
>>>>>
>>>>> to return to my menu, they click on the only tab visible, which is my
>>>>> application tab.
>>>>>
>>>>> I do have Ecas and services in my app that extends ofbiz, but is
>>>>> unique
>>>>> to Yahoo functions.
>>>>>
>>>>> so to upgrade from the release to the trunk, I just move my app
>>>>> into the
>>>>> trunk copy I made and add the folder to the trunks component-load.xml
>>>>>
>>>>> to get back to the original problem I need a way to declare the
>>>>> mainDecoratorLocation that has different paths so it can be read when
>>>>> the controller for that component is read.
>>>>> then I will let what ever reads it preappend the component name to
>>>>> mainDecoratorLocation, and track it.
>>>>>
>>>>> so time to dig into the code.
>>>>> :)
>>>>>
>>>>>
>>>>> Jonathon -- Improov sent the following on 11/22/2007 3:22 AM:
>>>>>> Your use case seems valid.
>>>>>>
>>>>>> In a nutshell, you're simply cloning a webapp, and then extending it
>>>>>> with your own requests and features.
>>>>>>
>>>>>> That's great. It means you won't have to repeat the scores of request
>>>>>> maps in the webapp you're cloning.
>>>>>>
>>>>>> That said, it's pretty scary to see 6 webapps rolled into 1 (your
>>>> custom
>>>>>> webapp, where you extend original OFBiz codes). Still, it's just a
>>>>>> matter of splitting up those 6 webapps into 6 custom webapps,
>>>>>> something
>>>>>> you may do when you have time.
>>>>>>
>>>>>> I can see where having the mainDecoratorLocation parameter tied to
>>>>>> the
>>>>>> webapp (controller.xml) can be useful. But I find it hard to vote for
>>>>>> making this extension to the OFBiz framework. You can simply extend
>>>>>> webapp "workeffort" with "myworkeffort", and use the same
>>>>>> mainDecoratorLocation that "workeffort" uses. In short, there's a
>>>> simple
>>>>>> and useful workaround now.
>>>>>>
>>>>>> Over time, it will be nice to be able to clone "workeffort" and
>>>>>> let it
>>>>>> use its own mainDecoratorLocation, while my extensions in
>>>> "myworkeffort"
>>>>>> use a different mainDecoratorLocation. No clash.
>>>>>>
>>>>>> I think I've worn myself out trying to explain technical issues in
>>>>>> technical terms. Let me try an analogy. So, for the last time...
>>>>>>
>>>>>> Customer: "I want a hamburger."
>>>>>>
>>>>>> Cashier: "What's the code to activate my POS machine?"
>>>>>>
>>>>>> Customer: "I don't know?"
>>>>>>
>>>>>> Cashier: "Sorry, you need to know, or no hamburger for you."
>>>>>>
>>>>>> Customer: "Don't you know?"
>>>>>>
>>>>>> Cashier: "I know it for that other POS machine, not this one. You're
>>>>>> ordering a hamburger from this one, so I can't serve you unless
>>>>>> you got
>>>>>> the code!"
>>>>>>
>>>>>> Customer: "I want to talk to your manager."
>>>>>>
>>>>>> Cashier: "Alright. He'll probably ask you write some codes to read
>>>>>> the
>>>>>> web.xml file in that other POS machine and retrieve the code
>>>>>> (mainDecoratorLocation) there, so be prepared."
>>>>>>
>>>>>> Jonathon
>>>>>>
>>>>>> BJ Freeman wrote:
>>>>>>> I have some screens I handle differently.
>>>>>>> I have kept from going crazy by calling the ones and let the
>>>> controller
>>>>>>> in that app handle it.
>>>>>>> I have not had any problems so far, except for mainDecoratorLocation
>>>>>>>
>>>>>>> and from what I am reading it should not be where it is to follow
>>>>>>> best
>>>>>>> practices.
>>>>>>>
>>>>>>> question is where to put it.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Chris Howe sent the following on 11/22/2007 12:10 AM:
>>>>>>>> Why are you opposed to running 6 separate webapps under a
>>>>>>>> component?
>>>>>>>> mycomponent/webapp
>>>>>>>>                                    /myworkeffort
>>>>>>>>                                    /mypartymgr
>>>>>>>>                                    /mymarketing
>>>>>>>>                                    /myordermgr
>>>>>>>>                                    /myaccounting
>>>>>>>>
>>>>>>>>                                    /myyahoo
>>>>>>>>
>>>>>>>>
>>>>>>>> I can almost guarantee you'll drive yourself insane with
>>>>>>>> request-maps
>>>>>>>> and view-maps overriding each other and giving unexpected results.
>>>>>>>>
>>>>>>>> ----- Original Message ----
>>>>>>>> From: BJ Freeman <[EMAIL PROTECTED]>
>>>>>>>> To: [email protected]
>>>>>>>> Sent: Thursday, November 22, 2007 1:58:37 AM
>>>>>>>> Subject: Re: mainDecoratorLocation change to
>>>>>>>> [applicationname]mainDecoratorLocation
>>>>>>>>
>>>>>>>> my controller has
>>>>>>>>
>>>>>>>>   <!-- request handler for workeffort specific calls -->
>>>>>>>>     <include
>>>>>>>>
>>>> location="component://workeffort/webapp/workeffort/WEB-INF/controller.xml"/>
>>>>
>>>>>>>>     <!-- request handler for partymgr specific calls -->
>>>>>>>>     <include
>>>>>>>> location="component://party/webapp/partymgr/WEB-INF/controller.xml"/>
>>>>>>>>
>>>>>>>>    <!-- request handler for marketing specific calls -->
>>>>>>>>     <include
>>>>>>>>
>>>> location="component://marketing/webapp/marketing/WEB-INF/controller.xml"/>
>>>>
>>>>>>>>    <!-- request handler for ordermgr specific calls -->
>>>>>>>>     <include
>>>>>>>> location="component://order/webapp/ordermgr/WEB-INF/controller.xml"/>
>>>>>>>>
>>>>>>>>    <!-- request handler for accounting specific calls -->
>>>>>>>>     <include
>>>>>>>>
>>>> location="component://accounting/webapp/accounting/WEB-INF/controller.xml"/>
>>>>
>>>>>>>>     <!-- request handler for yahoo specific calls note this
>>>>>>>> should be
>>>>>>>> the last one loaded -->
>>>>>>>>     <include
>>>>>>>>
>>>> location="component://yahoo/webapp/yahoo/WEB-INF/businessesnetworcontroller.xml"/>
>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> the last one is mine.
>>>>>>>> I have a menu that has a target of
>>>>>>>>         <menu-item name="partymgr"
>>>>>>>> title="${uiLabelMap.YahooPatrymgr}"><link
>>>>>>>>  target="partymgr"/></menu-item>
>>>>>>>>
>>>>>>>> and in my controller I have
>>>>>>>>    <view-map name="partymgr" type="screen"
>>>>>>>> page="component://party/widget/partymgr/PartyScreens.xml#findparty"/>
>>>>>>>>
>>>>>>>>
>>>>>>>> now if I don't have a mainDecoratorLocation defined in my
>>>>>>>> web.xml for
>>>>>>>>   <context-param>
>>>>>>>>     <param-name>mainDecoratorLocation</param-name>
>>>>>>>>
>>>>>>>>
>>>> <param-value>component://party/widget/partymgr/CommonScreens.xml</param-value>
>>>>
>>>>>>>>     <description>The location of the main-decorator screen to
>>>>>>>> use for
>>>>>>>> this webapp; referred to as a context variable in screen def XML
>>>>>>>> files.</description>
>>>>>>>>   </context-param>
>>>>>>>>
>>>>>>>> the screen for PartyScreens complains it can not find it.
>>>>>>>>
>>>>>>>>
>>>>>>>> Chris Howe sent the following on 11/21/2007 10:16 PM:
>>>>>>>>> Making the variable _name webapp specific would break the entire
>>>>>>>>  point of the variable.
>>>>>>>>> The variable is webapp specific (meaning it's defined by the
>>>> webapp),
>>>>>>>>  but the variable _name is not.  There are no
>>>>>>>>  partyMainDecoratorLocation variables, only mainDecoratorLocation.
>>>>>>>>> BJ,  would it be possible for you to explain the webapp your
>>>>>>>>  developing.  Off the top of my head, I'm unable to picture a
>>>>>>>> scenario where
>>>>>>>>  wanting to maintain the decorator for two web applications is
>>>>>>>> beneficial
>>>>>>>>  and would keep one sane.  The only scenario that I can think of
>>>>>>>> that
>>>>>>>>  even comes close is because of two different conventions being
>>>>>>>> used
>>>>>>>> in the
>>>>>>>>  screens of different components.
>>>>>>>>> ----- Original Message ----
>>>>>>>>> From: Jonathon -- Improov <[EMAIL PROTECTED]>
>>>>>>>>> To: [email protected]
>>>>>>>>> Sent: Thursday, November 22, 2007 12:03:18 AM
>>>>>>>>> Subject: Re: mainDecoratorLocation change to
>>>>>>>>  [applicationname]mainDecoratorLocation
>>>>>>>>>  > Making the variable name webapp specific breaks the entire
>>>>>>>>> point
>>>>>>>>  of
>>>>>>>>>  the
>>>>>>>>>  > variable.
>>>>>>>>>
>>>>>>>>> The way the screen widgets are written now, the parameter
>>>>>>>>>  "mainDecoratorLocation" is already webapp-specific.
>>>>>>>>>
>>>>>>>>> The key question is where we want to tie mainDecoratorLocation to.
>>>> If
>>>>>>>>>  it is specific to webapps, we tie it to controller.xml, so that
>>>>>>>>> views defined in a webapp will
>>>>>>>>>  always use the decorator defined for that webapp. But if it is
>>>>>>>>> specific to an OFBiz component,
>>>>>>>>>  then we tie it to a component config, like in
>>>>>>>>> component://party/config/SomeConfigFile.xml
>>>>>>>>  .
>>>>>>>>> Obviously, the screen widgets expect a correct value from
>>>>>>>>>  ${parameters.mainDecoratorLocation}. Where should this be
>>>>>>>>> specified? If it is not webapp-specific, then
>>>>>>>>  does
>>>>>>>>>  that imply screen widgets look for a global OFBiz-wide
>>>>>>>>> ${parameters.mainDecoratorLocation}
>>>>>>>>>  somewhere?
>>>>>>>>>
>>>>>>>>> If the variable name "mainDecoratorLocation" wasn't
>>>>>>>>> webapp-specific,
>>>>>>>>  we
>>>>>>>>>  wouldn't have this thread complaining about clashing or missing
>>>>>>>>> "mainDecoratorLocation"
>>>>>>>>>  parameters when combining controller.xml(s) from multiple
>>>>>>>>> webapps.
>>>>>>>>>
>>>>>>>>>  > For example, do you determine the variable from the included
>>>>>>>>>  controller of
>>>>>>>>>  > the request-map or from the view-map.  You would likely choose
>>>> the
>>>>>>>>>  view.  If
>>>>>>>>>  > it's the view, how do you determine when that component has
>>>>>>>>  multiple
>>>>>>>>>  webapp
>>>>>>>>>  > as in product, etc/.
>>>>>>>>>
>>>>>>>>> I would choose neither the request map nor the view map. I suggest
>>>>>>>>>  tying "mainDecoratorLocation" to controller.xml itself.
>>>>>>>>>
>>>>>>>>> If "mainDecoratorLocation" were view-specific, we would tie it
>>>>>>>>> to a
>>>>>>>>>  view map.
>>>>>>>>>
>>>>>>>>> As the screen widgets are written now, they are webapp-specific.
>>>>>>>>>
>>>>>>>>> Jonathon
>>>>>>>>>
>>>>>>>>> Chris Howe wrote:
>>>>>>>>>> Hi Jonathon,
>>>>>>>>>>
>>>>>>>>>> Making the variable name webapp specific breaks the entire
>>>>>>>>>> point of
>>>>>>>>>  the
>>>>>>>>>> variable.  I'm under the impression that most deployments of
>>>>>>>>>> OFBiz
>>>>>>>>>  use very
>>>>>>>>>> few of the applications as is, OOTB.  Taking away the ability to
>>>>>>>>>  change
>>>>>>>>>> the decoration of the application puts that much more burden on
>>>>>>>>>  custom
>>>>>>>>>> applications to maintain a code base that is already
>>>>>>>>>> maintained by
>>>>>>>>>  the
>>>>>>>>>> community when all they want to do is extend and tweak subtle
>>>> areas.
>>>>>>>>>> The solution of further processing of the web.xml
>>>>>>>>>> context-params in
>>>>>>>>>  order to fill the
>>>>>>>>>> context starts to pull us away from the design of traditional web
>>>>>>>>>> applications.  This has the effect of steepening the learning
>>>> curve.
>>>>>>>>>    In addition, there is too much ambiguity in deciding which
>>>>>>>>>  mainDecoratorLocation would be chosen that I think it really
>>>>>>>>> would
>>>>>>>>  be best to
>>>>>>>>>  determine it through a custom preprocessor so that one would
>>>>>>>>> end up
>>>>>>>>  with
>>>>>>>>>  the desired results.  For example, do you determine the variable
>>>>>>>>  from
>>>>>>>>>  the included controller of the request-map or from the view-map.
>>>>>>>>   You
>>>>>>>>>  would likely choose the view.  If it's the view, how do you
>>>>>>>>  determine
>>>>>>>>>  when that component has multiple webapp as in product, etc/.
>>>>>>>>>> ----- Original Message ----
>>>>>>>>>> From: Jonathon -- Improov <[EMAIL PROTECTED]>
>>>>>>>>>> To: [email protected]
>>>>>>>>>> Sent: Wednesday, November 21, 2007 10:56:14 PM
>>>>>>>>>> Subject: Re: mainDecoratorLocation change to
>>>>>>>>>  [applicationname]mainDecoratorLocation
>>>>>>>>>> I think BJ's method is fine. It's the only way to couple the
>>>>>>>>>>  webapp-specific parameter "mainDecorationLocation" to a
>>>>>>>>>> particular
>>>>>>>>>> webapp, and to decouple it
>>>>>>>>>>  from the single global servlet context (single to a webapp).
>>>>>>>>>>
>>>>>>>>>> Say a parent webapp includes the controller.xml of a child
>>>>>>>>>> webapp,
>>>>>>>>  we
>>>>>>>>>>  use "parent" and "child" so it's easy for me to write here.
>>>>>>>>>>
>>>>>>>>>> When we <include> the child's controller.xml from the parent
>>>> webapp,
>>>>>>>>>>  the servlet context is still the parent's, not a mix of 2
>>>>>>>>>> webapps.
>>>>>>>>>> There will be only one
>>>>>>>>>>  "mainDecoratorLocation" parameter for all the widgets listed in
>>>>>>>>>> both controller.xml(s).
>>>>>>>>>>
>>>>>>>>>> When we need to process the views (or widgets) specified in the
>>>>>>>>>  child's
>>>>>>>>>>  controller.xml, we need to do something extra. Those views
>>>>>>>>>> require
>>>>>>>>>> a specific
>>>>>>>>>>  "mainDecoratorLocation" value in order to work, say
>>>>>>>>>> "component://child/widget/MainDecorScreens.xml". The parent will
>>>>>>>>>>  need to play by those rules, and create "mainDecoratorLocation"
>>>>>>>>>> with that expected value for the
>>>>>>>>>>  child's views to work. Specifically, I mean "for the child's
>>>>>>>>>> views
>>>>>>>>>> to work in the parent's
>>>>>>>>>>  servlet context".
>>>>>>>>>>
>>>>>>>>>> The problem comes when the parent also has its own
>>>>>>>>>>  "mainDecoratorLocation", say
>>>>>>>>>> "component://parent/widget/MainDecorScreens.xml". Then there is a
>>>>>>>>>>  clash. Because the 2 webapps' widgets operate in a single
>>>>>>>>>> servlet
>>>>>>>>>> context, there can only be one
>>>>>>>>>>  parameter "mainDecoratorLocation" for both webapps.
>>>>>>>>>>
>>>>>>>>>> BJ's method is the only quick fix there is. Decouple
>>>>>>>>>>  "mainDecoratorLocation" from the global servlet context, and
>>>>>>>>>> encapsulate that attribute together with the
>>>>>>>>>>  widgets that require that particular attribute with a particular
>>>>>>>>>> value.
>>>>>>>>>>
>>>>>>>>>> That means changing all widgets to point to say
>>>>>>>>>>  "<webapp-name>:mainDecoratorLocation". Another solution could be
>>>>>>>>>> to add a new attribute to <decorator-screen>, like
>>>>>>>>>>  "param-location" which automatically hunts for a parameter named
>>>>>>>>>>  "<webapp-name>:mainDecoratorLocation". So a value of
>>>>>>>>>> "myDecoratorLocation" might prompt the widget engine to look
>>>>>>>>>> for a
>>>>>>>>>>  parameter named "<webapp-name>:myDecoratorLocation".
>>>>>>>>>>
>>>>>>>>>> That is a simple fix.
>>>>>>>>>>
>>>>>>>>>> For a better fix, we need to truly decouple
>>>>>>>>>> "mainDecoratorLocation"
>>>>>>>>>>  from the global servlet context (web.xml), and put it into the
>>>>>>>>>> controller.xml. The widget
>>>>>>>>>>  engine could look in the controller.xml for a variable
>>>>>>>>>> "mainDecoratorLocation" every time it
>>>>>>>>>>  processes a screen widget. That would ensure perfect
>>>>>>>>>> re-usability
>>>>>>>>>> of any included widgets
>>>>>>>>>>  (included with a controller <include>), without the need to
>>>>>>>>>> meddle
>>>>>>>>>> with passing in the expected
>>>>>>>>>>  "mainDecoratorLocation" for those included widgets.
>>>>>>>>>>
>>>>>>>>>> Some changes to ConfigXMLReader, RequestManager and
>>>>>>>>>> ControlServlet
>>>>>>>>>  may
>>>>>>>>>>  be required.
>>>>>>>>>>
>>>>>>>>>> Hope that makes sense.
>>>>>>>>>>
>>>>>>>>>> I love how OFBiz already has many powerful "clean extension"
>>>>>>>>>>  mechanisms, much like object-oriented programming and
>>>>>>>>>> sub-classing. This "mainDecoratorLocation" thing may
>>>>>>>>>  be
>>>>>>>>>>  a good area to work on.
>>>>>>>>>>
>>>>>>>>>> Jonathon
>>>>>>>>>>
>>>>>>>>>> BJ Freeman wrote:
>>>>>>>>>>> so far you and I are on the same page.
>>>>>>>>>>> I thinks the confusion is, I am not defining a
>>>>>>>>  mainDecoratorLocation
>>>>>>>>>>> for my application. So this is not about how to use
>>>>>>>>>>  ainDecoratorLocation
>>>>>>>>>>> in my web.xml for my widgets.
>>>>>>>>>>> the web.xml has been used to provide context for widget's
>>>>>>>>>>> mainDecoratorLocation, which as you point out is a component.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> here are the steps:
>>>>>>>>>>> include another controller in your apps controller.
>>>>>>>>>>> Now the mainDecoratorLocation is defined in the web.xml of the
>>>>>>>>>>  included
>>>>>>>>>>> controller, but not mine.
>>>>>>>>>>> so if I don't delcare a mainDecoratorLocation in my web.xml I
>>>>>>>>>>> get
>>>>>>>>  an
>>>>>>>>>>> error, about the mainDecoratorLocation not being found, when I
>>>>>>>>>  access
>>>>>>>>>>> the included controls widget.
>>>>>>>>>>> If I define a mainDecoratorLocation in my web.xml that has the
>>>> path
>>>>>>>>>>  for
>>>>>>>>>>> one of the application that is included in my controller, it
>>>>>>>>>>> works
>>>>>>>>>>  fine.
>>>>>>>>>>> But just for that application.
>>>>>>>>>>> This lets me only define one mainDecoratorLocation for all
>>>> included
>>>>>>>>>>> controllers.
>>>>>>>>>>> so I can not define a mainDecoratorLocation in my web.xml for
>>>>>>>>>>> each
>>>>>>>>>>> application with the path defined in the application web.xml.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Chris Howe sent the following on 11/21/2007 6:39 PM:
>>>>>>>>>>>> No, the feature of mainDecoratorLocation is the webapp being
>>>>>>>>  called
>>>>>>>>>>  defines the default value of mainDecoratorLocation.  You
>>>>>>>>>> should be
>>>>>>>>>  able
>>>>>>>>>>  to run a pre-processor to override the value that is found in
>>>>>>>>>> the
>>>>>>>>>>  called webapp's web.xml file.
>>>>>>>>>>>> It may help to identify here the difference in terminology that
>>>> is
>>>>>>>>>>  used.  There's a component and a web application.  The web
>>>>>>>>>  application
>>>>>>>>>>  is what is generally under the webapp folder and does not
>>>>>>>>>> include
>>>>>>>>>  the
>>>>>>>>>>  widgets.  The widgets (form, screen, tree, menu) belong to the
>>>>>>>>>  component,
>>>>>>>>>>  not the webapp.
>>>>>>>>>>>> The controller controls the web application along with the
>>>> context
>>>>>>>>>>  provided by the web.xml definitions.  So, if I have webapp:
>>>>>>>>>> myApp,
>>>>>>>>>  the
>>>>>>>>>>  context should be provided by the web.xml file in the web
>>>>>>>>>  application
>>>>>>>>>>  myApp, at least by default.  Simply because you are including
>>>>>>>>>  elements
>>>>>>>>>>  from another document does not mean you should change what
>>>> provides
>>>>>>>>>  the
>>>>>>>>>>  default context.
>>>>>>>>>>>> webapp/myApp
>>>>>>>>>>>>                         /WEB-INF
>>>>>>>>>>>>                                       /controller.xml
>>>>>>>>>>>> <--Controls
>>>>>>>>>>  web application myApp
>>>>>>>>>>>>                                       /web.xml
>>>>>>>>   <--provides
>>>>>>>>>>  context for web application myApp
>>>>>>>>>>>> ----- Original Message ----
>>>>>>>>>>>> From: BJ Freeman <[EMAIL PROTECTED]>
>>>>>>>>>>>> To: [email protected]
>>>>>>>>>>>> Sent: Wednesday, November 21, 2007 7:59:52 PM
>>>>>>>>>>>> Subject: Re: mainDecoratorLocation change to
>>>>>>>>>>  [applicationname]mainDecoratorLocation
>>>>>>>>>>>> If i understand you correctly the path to mainDecoratorLocation
>>>>>>>>>>  should
>>>>>>>>>>>> be the same for all apps.
>>>>>>>>>>>> however if the path is in the application should it not be
>>>>>>>>>>  distinguish
>>>>>>>>>>>> for that application?
>>>>>>>>>>>>
>>>>>>>>>>>> Chris Howe sent the following on 11/21/2007 5:50 PM:
>>>>>>>>>>>>> The "problem" that you're having is the exact feature that is
>>>>>>>>>>  created
>>>>>>>>>>>>  by mainDecoratorLocation.  Appending [applicationname] breaks
>>>>>>>>  that
>>>>>>>>>>>>  feature.   Are you unable to override
>>>>>>>>>>  parameters.mainDecoratorLocation
>>>>>>>>>>>>  through a preprocessor or by another means?
>>>>>>>>>>>>> ----- Original Message ----
>>>>>>>>>>>>> From: BJ Freeman <[EMAIL PROTECTED]>
>>>>>>>>>>>>> To: [email protected]
>>>>>>>>>>>>> Sent: Wednesday, November 21, 2007 7:02:18 PM
>>>>>>>>>>>>> Subject: mainDecoratorLocation change to
>>>>>>>>>>>>  [applicationname]mainDecoratorLocation
>>>>>>>>>>>>> when including other controllers, the context for
>>>>>>>>>>>>  mainDecoratorLocation
>>>>>>>>>>>>> has to be defined in the web.xml of the home controller
>>>> location.
>>>>>>>>>>>>> this causes a problem when all the application use
>>>>>>>>>>>>>  mainDecoratorLocation.
>>>>>>>>>>>>>
>>>>>>>>>>>>> so would like to propose that the mainDecoratorLocation is
>>>>>>>>>>>>> used
>>>>>>>>>  for
>>>>>>>>>>>>  the
>>>>>>>>>>>>> framework/common/webapp/
>>>>>>>>>>>>>
>>>>>>>>>>>>> and preappend the application name to mainDecoratorLocation
>>>>>>>>>>>>> ([applicationname]mainDecoratorLocation)  in the applications
>>>>>>>>>>>>  web.xml.
>>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>
>>
> 
> 
> 
> 

Reply via email to