Yeah, that would need changes to ERFoundation. A little sucky.

Cheers,
- hugi

> On 11 Nov 2025, at 13:24, Ricardo Parada <[email protected]> wrote:
> 
> 
> Hi Hugi,
> 
> What you propose seems reasonable to me. :-)
> 
> That would require changing ERFoundation for which there is no source right? 
> only ERFoundation.jar. 
> 
> Thanks
> 
> 
>> On Nov 11, 2025, at 2:39 AM, Hugi Thordarson <[email protected]> wrote:
>> 
>> 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