Right. I had to fully-qualify them in my java code. I didn't need
to do anything with them in the .wod file.
I overrode Application.pageWithName to expand any non-qualified pages
with the fully-qualified package where I kept all of my pages and
components. I think to make it work for Components, I had to extend
a non-documented Application method.
public WOComponentDefinition _componentDefinition(String string,
NSArray nsarray)
{
return super._componentDefinition(fullyQualifiedPageName(string),
nsarray);
}
public WOComponent pageWithName(String pageName, WOContext context)
{
return super.pageWithName(fullyQualifiedPageName(pageName), context);
}
private String fullyQualifiedPageName(String pageName)
{
if (null == pageName)
{
pageName = "Main";
}
if (-1 != pageName.indexOf('.'))
{
return pageName;
}
String className = PACKAGE_PREFIX_FOR_PAGES_AND_COMPONENTS + pageName;
try
{
pageName = Class.forName(className).getName();
}
catch (ClassNotFoundException exception)
{
}
return pageName;
}
On 4/3/07, Jean Pierre Malrieu <jp.malrie..ree.fr> wrote:
> I have tried to use the fully qualified name. I have written in my .wod
>
> TDComponent1 : educlab.tdcomps.TDComponent {
> bindings...
> }
>
> instead of
>
> TDComponent1 : TDComponent {
> bindings...
> }
>
> But it does not work either.
>
> Thanks for the idea, though...
>
> JPM
>
> Le 3 avr. 07 à 04:14, Mike Kienenberger a écrit :
>
> > I can tell you that NSBundle will ONLY find partially-qualified
> > resources inside the bundle itself and not in your general classpath.
> > I didn't speak up before because I wasn't (and still am not) sure it
> > is relevent to your situation.
> >
> > I had to fully-qualify my own Pages and Components in order to use
> > them on my non-NSBundled WEB-INF/classes classpath.
> >
> > On 4/2/07, Fabian Peters <lists.fabia..-lumo.com> wrote:
> >> Hi Chuck,
> >>
> >> >>> I _never_ have my components in the project root and I don't see
> >> >>> this problem.
> >> >>
> >> >> Well, do you have localized components? Maybe it's related to the
> >> >> localization part?
> >> >
> >> > I have a few, I don't use them much but I don't recall it causing
> >> > problems.
> >>
> >> As I wrote before, the problem appeared from the start with an app
> >> that is wholly localized and allows browsing w/o session creation. I
> >> was unable to reproduce this with an app that creates a session
> >> straight away.
> >>
> >> >> I did not find very much info on "Folder References", which are
> >> >> required by WOResourceManager, according to the API, to locate
> >> >> resources in rapid turnaround mode. Maybe Ulrich can shed some
> >> >> light on this, but it's been quite a while I've seen a post from
> >> >> him...
> >> >
> >> > "Folder References" is an Xcode term, nothing to do with WO. The
> >> > groups shown in Xcode don't necessarily correspond to actual
> >> > folders on the file system. If you don't use/make "Folder
> >> > References" in Xcode, you end up with
> >> >
> >> > Resources/
> >> > TDComponent.api
> >> > TDComponent.wod
> >> > TDComponent.html
> >> >
> >> > Instead of the correct
> >> > Resources/
> >> > TDComponent.api
> >> > TDComponent.wo/
> >> > TDComponent.wod
> >> > TDComponent.html
> >>
> >> Mhh, I came up with this due to the WOResourceManager API, which
> >> states:
> >>
> >> "Note that if you use Project Builder (rather than ProjectBuilderWO)
> >> and you add a folder of resources, they must be added as Folder
> >> References. This allows WOResourceManager to find them in rapid
> >> turnaround mode." <http://developer.apple.com/documentation/
> >> WebObjects/Reference/API/com/webobjects/appserver/
> >> WOResourceManager.html>
> >>
> >> This may be totally outdated or have nothing to do with the problem
> >> whatsoever. But it's all I came up with before I just reverted to my
> >> previous setup. Maybe you or somebody else more knowledgeable about
> >> the inner workings of NSBundle and WOResourceManager and/or the role
> >> of the IDE in rapid turnaround can shed some light.
> >>
> >> Fabian
> >>
> >> >>> On Apr 2, 2007, at 10:20 AM, Fabian Peters wrote:
> >> >>>
> >> >>>> Hi Jean-Pierre,
> >> >>>>
> >> >>>> Am 02.04.2007 um 12:38 schrieb Jean Pierre Malrieu:
> >> >>>>
> >> >>>>> Everything happens to me...
> >> >>>>
> >> >>>> But not exclusively to you...
> >> >>>>
> >> >>>>> In development mode, I get the following error:
> >> >>>>> <com.webobjects.appserver._private.WOComponentDefinition> No
> >> >>>>> template found for component TDComponent at "file:/Users/jpm/
> >> >>>>> Documents/EclipseTemp/workspace/TDBase/build/TDBase.woa".
> >> >>>>>
> >> >>>>> TDComponent is in a framework (called TDComps) that an app
> >> >>>>> called TDBase depends upon.
> >> >>>>>
> >> >>>>> In order to organize my Frameworks with Project Wonder
> >> >>>>> structure (and be capable to use the last build.xml), I have
> >> >>>>> created a "Component" folder in the TDComps project (the
> >> >>>>> framework), and put my components in there. Then, in
> >> >>>>> development mode, TDBase (the app) won't see those components,
> >> >>>>> hence the no template found error. If I move the components to
> >> >>>>> the root of the framework project, everything is fine in
> >> >>>>> development, but not in deployment (they don't get copied due
> >> >>>>> to the recent build.xml).
> >> >>>>>
> >> >>>>> How would you tell the app that the components are not at the
> >> >>>>> root of the framework?
> >> >>>>>
> >> >>>>> What puzzles me most is that the build folder (for the
> >> >>>>> framework) has the following structure:
> >> >>>>>
> >> >>>>> TDComps.Framework
> >> >>>>> Resources
> >> >>>>> French.lproj
> >> >>>>> my .wo files
> >> >>>>> .....
> >> >>>>> Java
> >> >>>>> my api. files
> >> >>>>> ......
> >> >>>>> WebServerResources
> >> >>>>>
> >> >>>>> I don't see any difference in the build: whether or not my
> >> >>>>> components are in a "Components" folder, the incremental build
> >> >>>>> is the same (yes I cleaned the framework to be sure). And yet,
> >> >>>>> the app sees the components in one case and not in the other.
> >> >>>>
> >> >>>> I ran into the same problem a few days ago. I figure that the
> >> >>>> problem is due to the way the WOResourceManager resolves
> >> >>>> localized components in rapid turnaround mode. See my previous
> >> >>>> messages on this: <http://objectstyle.org/woproject-old/lists/
> >> >>>> woproject-dev/2007/03/0125.html>
> >> >>>>
> >> >>>>> I would appreciate your help again.
> >> >>>>
> >> >>>> I'm afraid I can't really help. I reverted back to keeping all
> >> >>>> the components in the project root.
> >> >>>>
> >> >>>> cheers
> >> >>>>
> >> >>>> Fabian
> >> >>>>
> >> >>>
> >> >>> --
> >> >>>
> >> >>> Practical WebObjects - for developers who want to increase their
> >> >>> overall knowledge of WebObjects or who are trying to solve
> >> >>> specific problems.
> >> >>> http://www.global-village.net/products/practical_webobjects
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>
> >> >>
> >> >
> >> > --
> >> >
> >> > Practical WebObjects - for developers who want to increase their
> >> > overall knowledge of WebObjects or who are trying to solve specific
> >> > problems.
> >> > http://www.global-village.net/products/practical_webobjects
> >> >
> >> >
> >> >
> >> >
> >> >
> >>
> >>
> >
>
>
This archive was generated by hypermail 2.0.0 : Tue Apr 03 2007 - 12:31:57 EDT