Glad it worked for you :).

Not so great about differentiating between Fluffy Bunny and 
NSMavenProjectBundle in general though… Still pondering that.

https://github.com/wocommunity/wonder/issues/1030

- hugi



> On 10 Nov 2025, at 18:27, Ricardo Parada <[email protected]> wrote:
> 
> Yes, I see NSStandardProjectBundle which resides in the ERFoundation.jar that 
> was patched is now correctly using the latest nature for maven. 
> 
> Therefore, now the mavenProject variable gets set to true now. 
> 
> Then in the lines below it uses that to decide whether to create a  
> NSMavenProjectBundle instance otherwise it creates an 
> NSFluffyBunnyProjectBundle instance.  
> 
> So yes, going back to ERFoundation 1.0 now creates fluffy bundle instances 
> and now it works!!!
> 
> So it appears I’m now running bundleless fluffy bunny successfully!!!
> 
> Thank you
> Ricardo Parada
> 
> 
> 
>> 
>> On Nov 10, 2025, at 12:57 PM, Hugi <[email protected]> wrote:
>> 
>> Ah, that’s an interesting one. If you’ve upgraded to ERFoundation-1.1, it 
>> will now properly identify your project as a maven project and assume you’re 
>> using the maven project layout (creating an NSMavenProjectBundle). But as 
>> you point out, project layouts and build systems are separate things.
>> 
>> I’m away from the computer for a couple of hours, but I’ll have to think on 
>> that. In the meantime, I bet if you go back to ERFoundation-1.0, your 
>> project will work.
>> 
>> - hugi
>> 
>> 
>>> On 10 Nov 2025, at 17:35, Ricardo Parada <[email protected]> wrote:
>>> 
>>> Hi Hugi
>>> 
>>> I added all commits to our fork of Wonder. I turned off the Generate 
>>> bundles option. I made sure the there is no build folder.
>>> 
>>> When I run with a new plain java launch config I get the same 
>>> NullPointerException.
>>> 
>>> So I started debugging inside collectMainProps() method and the first line 
>>> gets the mainBundle().
>>> 
>>> The main bundle name is correct but the class is NSMavenProjectBundle. I 
>>> believe when it was working the class was specific to fluffy bunny. I 
>>> assumed the bundle class has knowledge of where things are to be found.
>>> 
>>> So it seems the next couple of lines to read Properties file does not find 
>>> the Properties which should have been found under Resources. Then it enters 
>>> the more complicated search which is where the NullPointerException occurs.
>>> 
>>> Anyways, if you can think of something that may be causing the app to use 
>>> the maven bundle class as opposed to the fluffy bunny one please let me 
>>> know.
>>> 
>>> Thank you
>>> Ricardo Parada
>>> 
>>>> 
>>>>> On Nov 10, 2025, at 11:29 AM, Hugi Thordarson <[email protected]> wrote:
>>>> 
>>>> Hi Ricardo,
>>>> 
>>>> yeah, all of this has become a little muddled over the years :).
>>>> 
>>>> -- wolifecycle-maven-plugin --
>>>> 
>>>> Doesn't do any work at all during development, it's only there for you to 
>>>> invoke manually to build a product. WO, Wonder and WOLips don't care if 
>>>> it's in your pom or not.
>>>> 
>>>> -- "woproject" folder --
>>>> 
>>>> Used by WOLips and wolifecycle-maven-plugin to locate resources when 
>>>> building.
>>>> However, if you're in bundleless mode (i.e. "generate bundles" is off) no 
>>>> building of bundles needs to happen during development, since bundle 
>>>> resources are loaded directly from the application project (and any 
>>>> related framework projects in the workspace).
>>>> So; you don't need a "woproject" folder in bundleless mode since no 
>>>> WO-specific building needs to happen.
>>>> 
>>>> These are the basics, really quite simple, but Wonder and ERFoundation 
>>>> have muddled the picture by mixing Eclipse's .project file into the 
>>>> picture…
>>>> 
>>>> -- .project --
>>>> 
>>>> ERFoundation still checks Eclipse's ".project" to determine if a project 
>>>> is a maven project. I think that should be changed to just check for a 
>>>> pom.xml file instead. That would eliminate the final reliance of WO/Wonder 
>>>> on the .project file, meaning you're fine in any IDE (without faking a 
>>>> .project file) ( https://github.com/wocommunity/wonder/issues/1030 ).
>>>> 
>>>> -- More? --
>>>> 
>>>> The only remaining issue then is WOLips itself. As you discovered. It's 
>>>> currently "activated" in a project by adding a <nature> to the .project 
>>>> file. I played around last week, changing that to be activated in the 
>>>> presence of a build.properties file containing a "project.name" property 
>>>> instead. Works remarkably well and for instance, that modified WOLips is 
>>>> fully functional in the simple project I created in the YouTube video :). 
>>>> It would be nice if the only "custom" thing needed for a WO project to 
>>>> function was a build.properties file (and of course a "woproject" folder, 
>>>> if you're building with wolifecycle-maven-plugin). But yeah, that needs 
>>>> more work, discussions, and consensus.
>>>> 
>>>> https://github.com/wocommunity/wolips/issues/198
>>>> https://github.com/hugithordarson/wolips/compare/fc75fd5...c796508
>>>> 
>>>> Cheers,
>>>> - hugi
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>>>> On 10 Nov 2025, at 15:15, Ricardo Parada <[email protected]> wrote:
>>>>> 
>>>>> Hi Hugi, good morning.
>>>>> 
>>>>> I just followed your steps in the video to create the bundleless WOnder 
>>>>> app.
>>>>> 
>>>>> I also added a Session.java and a Main.wo in src/main/components and a 
>>>>> Main.java.
>>>>> 
>>>>> It runs and displays the page!!
>>>>> 
>>>>> I’m still trying to understand what just happened. :-)
>>>>> 
>>>>> How did it build the application without wolifecycle-maven-plugin?
>>>>> 
>>>>> I can edit the Main.wo component in WOLips component editor. I was not 
>>>>> able to create it with WOLips though. I added it by hand.
>>>>> 
>>>>> Also, I noticed that there is no woproject folder. What uses that folder 
>>>>> by the way?
>>>>> 
>>>>> I’m reviewing your commits in to Wonder 7.5 and I’m trying to incorporate 
>>>>> them into our fork of Wonder and see if I can get bundleless to work with 
>>>>> our application.
>>>>> 
>>>>> Thank you
>>>>> Ricardo Parada
>>>>> 
>>>>> 
>>>>> 
>>>>>> 
>>>>>>> On Nov 9, 2025, at 6:16 AM, Hugi Thordarson <[email protected]> wrote:
>>>>>> 
>>>>>> Just committed all of the stuff I've been doing to Wonder's main 
>>>>>> branch, less confusing than having all of those separate PRs.
>>>>>> 
>>>>>> I also deployed ERFoundation-1.1 to maven.wocommunity.org, which fixes 
>>>>>> that check for the project's <nature>.
>>>>>> 
>>>>>> It's my birthday so I do what I want to :).
>>>>>> 
>>>>>> Here's a 2 minute video that shows how little "formalities" should now 
>>>>>> be required for WO/Wonder to work,
>>>>>> we start with an absolutely plain java project, no WOLips, no bundle 
>>>>>> generation or /build folder, just plain WO and Wonder.
>>>>>> 
>>>>>> https://www.youtube.com/watch?v=iDQcMVRUhyk
>>>>>> 
>>>>>> Cheers,
>>>>>> - hugi
>>>>>> 
>>>>>> 
>>>>>>> On 9 Nov 2025, at 07:40, Hugi Thordarson <[email protected]> wrote:
>>>>>>> 
>>>>>>> Thanks for trying this out Ricardo. Sorry, one thing I should have 
>>>>>>> mentioned, for bundleless to work (generate bundles off and no build 
>>>>>>> folder),
>>>>>>> you need to have the old maven nature in the .project file ( 
>>>>>>> <nature>org.maven.ide.eclipse.maven2Nature</nature> ).
>>>>>>> 
>>>>>>> Fixed in a different PR: 
>>>>>>> https://github.com/wocommunity/wonder/issues/1029 .
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> - hugi
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>>> On 9 Nov 2025, at 03:39, Ricardo Parada <[email protected]> wrote:
>>>>>>>> 
>>>>>>>> Hugi,
>>>>>>>> 
>>>>>>>> If I turn off the “Generate bundles” in WOLips : Build, and delete the 
>>>>>>>> build folder then I get back the exception when I run the application. 
>>>>>>>> I’m using the java launch configuration.
>>>>>>>> 
>>>>>>>> It does not matter if I set the Working directory as you suggested 
>>>>>>>> with ${working_dir_loc_WOLips:MyApp} and even if I add 
>>>>>>>> -DNSProjectBundleEnabled=true in the VM arguments.
>>>>>>>> 
>>>>>>>> However, if I turn the “Generate bundles” option back on and make sure 
>>>>>>>> it generates the build folder by doing clean and build automatically, 
>>>>>>>> set the Working directory to ${working_dir_loc_WOLips:MyApp} then it 
>>>>>>>> works. No need to set -DNSProjectBundleEnabled=true in the VM 
>>>>>>>> arguments. It does not seem to have an effect.
>>>>>>>> 
>>>>>>>> Then if I remove your ERXApplication changes then the exception comes 
>>>>>>>> back.
>>>>>>>> 
>>>>>>>> Then I put your changes back and everything works again.
>>>>>>>> 
>>>>>>>> So your commits definitely fix the problem but I can’t say that 
>>>>>>>> bundleless works.
>>>>>>>> 
>>>>>>>> Were your commits supposed to make bundleless work? Where bundleless 
>>>>>>>> means no build folder and the Generate bundles option turned off.
>>>>>>>> 
>>>>>>>> Thank you very much,
>>>>>>>> Ricardo
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Nov 8, 2025, at 9:43 PM, Ricardo Parada <[email protected]> wrote:
>>>>>>>>> 
>>>>>>>>> I’ll do more testing and then comment on the pull request.
>>>>>>>>> 
>>>>>>>>> :-)
>>>>>>>>> 
>>>>>>>>> Thank you
>>>>>>>>>> 
>>>>>>>>>> On Nov 8, 2025, at 5:58 PM, Hugi Thordarson <[email protected]> wrote:
>>>>>>>>>> 
>>>>>>>>>> The project layout looks fine at first sight, so I can't think of 
>>>>>>>>>> what's causing your application to fail in WOApplication 
>>>>>>>>>> launch/bundle-mode.
>>>>>>>>>> 
>>>>>>>>>> But glad to hear that you're up and running! And that the fixes to 
>>>>>>>>>> bundleless development work. I might just count that as a review and 
>>>>>>>>>> merge into main :).
>>>>>>>>>> 
>>>>>>>>>> - hugi
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On 8 Nov 2025, at 22:07, Ricardo Parada <[email protected]> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> I’m gonna summarize here.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> On Nov 8, 2025, at 3:03 AM, Hugi Thordarson <[email protected]> 
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> - Does your ".project" file contain 
>>>>>>>>>>>> <nature>org.maven.ide.eclipse.maven2Nature</nature> — and a WOLips 
>>>>>>>>>>>> builder?
>>>>>>>>>>>> - Does your application project contain a "build" folder on disk? 
>>>>>>>>>>>> (should be getting generated by WOLips). And does it look pretty 
>>>>>>>>>>>> much like an application bundle or do you see something missing?
>>>>>>>>>>> 
>>>>>>>>>>> Yes, it has a build folder as shown below:
>>>>>>>>>>> 
>>>>>>>>>>> % ls build
>>>>>>>>>>> Phynance.woa
>>>>>>>>>>> % ls build/Phynance.woa
>>>>>>>>>>> Contents
>>>>>>>>>>> % ls build/Phynance.woa/Contents
>>>>>>>>>>> Info.plist Resources WebServerResources
>>>>>>>>>>> 
>>>>>>>>>>>> - Does woproject/resources.include.patternset properly define your 
>>>>>>>>>>>> resources? (kind of pointless to ask since your build works with 
>>>>>>>>>>>> maven so it should be fine — but can't hurt to ask)
>>>>>>>>>>> 
>>>>>>>>>>> It is as follows:
>>>>>>>>>>> 
>>>>>>>>>>> % cat woproject/resources.include.patternset
>>>>>>>>>>> Components/**/*.wo/**/*
>>>>>>>>>>> Components/**/*.api
>>>>>>>>>>> Resources/**/*%     
>>>>>>>>>>> also In my build.properties I have classes.dir=target/classes. It 
>>>>>>>>>>> used to be set to “bin”. Do you think it hay has any effect on this?
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Launching as a WOApplication should work if you have "generate 
>>>>>>>>>>>> bundles" enabled. But if you launch as a "java application" (not a 
>>>>>>>>>>>> WOApplication), you will see the error you described unless you:
>>>>>>>>>>>> 1. Set the working directory for the Debug/Run configuration to 
>>>>>>>>>>>> ${working_dir_loc_WOLips:SW} and
>>>>>>>>>>>> 2. Pass in the VM argument -DNSProjectBundleEnabled=true
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> This worked for my java launch configuration. And I think that is 
>>>>>>>>>>> what I had when things used to work. When I started from scratch I 
>>>>>>>>>>> recreated the launch configurations from zero and forgot I was 
>>>>>>>>>>> using this.
>>>>>>>>>>> 
>>>>>>>>>>> In my case I set working directory to:
>>>>>>>>>>> 
>>>>>>>>>>> ${working_dir_loc_WOLips:MyApp
>>>>>>>>>>> 
>>>>>>>>>>> This works!!!
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> 
>>>>>>>>>>>> "Generate bundles" does pretty much what it says on the tin. It 
>>>>>>>>>>>> activates the WOLips builder, which generates that "build" folder 
>>>>>>>>>>>> in the root of your project, containing a bundle that WOLips will 
>>>>>>>>>>>> constantly keep "built" as you make changes. Your WO application 
>>>>>>>>>>>> will then locate everything from there.
>>>>>>>>>>>> 
>>>>>>>>>>>> The nicer alternative is bundleless development, meaning no 
>>>>>>>>>>>> generated build-folder/bundles and resources get located directly 
>>>>>>>>>>>> in the project rather than from the fake bundle in the "build" 
>>>>>>>>>>>> folder.
>>>>>>>>>>>> 
>>>>>>>>>>>> Bundleles is faster, simpler and better. But there's a bug in 
>>>>>>>>>>>> project Wonder which prevents you from using bundleless with it 
>>>>>>>>>>>> when using maven ( 
>>>>>>>>>>>> https://github.com/wocommunity/wonder/issues/1025 ).
>>>>>>>>>>>> It's fixed by one of the patches I submitted yesterday, those 
>>>>>>>>>>>> patches exactly being meant to ease life for those migrating to 
>>>>>>>>>>>> maven (everyone hits these problems in the first steps, and I 
>>>>>>>>>>>> think we should really fix those).
>>>>>>>>>>> 
>>>>>>>>>>> I incorporated those two commits into our fork of Wonder.
>>>>>>>>>>> 
>>>>>>>>>>> We are using Wonder 7.3 which we converted a while ago to use slf4j 
>>>>>>>>>>> throughout. That was a significant effort.
>>>>>>>>>>> 
>>>>>>>>>>> And we also upgraded jar files in it that had been flagged by the 
>>>>>>>>>>> security scanning software as having vulnerabilities.
>>>>>>>>>>> 
>>>>>>>>>>> Anyways, I just added your two commits to that version and it fixes 
>>>>>>>>>>> the problem.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> - hugi
>>>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>> 

Reply via email to