Derek,

I was out of town all last week and just tried to rebuild and run with
your
new changes, but got the following error:

ERROR - Failed to Boot
java.lang.NoSuchMethodError: net.liftweb.sitemap.SiteMap.<init>(Lscala/
Seq;)V
        at bootstrap.liftweb.Boot.boot(Boot.scala:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply
(ClassHelpers.scala:408)
        at net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply
(ClassHelpers.scala:406)
        at net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply
(LiftRules.scala:1049)
        at net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply
(LiftRules.scala:1049)
        at net.liftweb.util.Full.map(Box.scala:330)
        at net.liftweb.http.DefaultBootstrap$.boot(LiftRules.scala:1049)
        at net.liftweb.http.LiftFilter.bootLift(LiftServlet.scala:561)
        at net.liftweb.http.LiftFilter.init(LiftServlet.scala:529)
        at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:
97)
        at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.servlet.ServletHandler.initialize
(ServletHandler.java:653)
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
        at org.mortbay.jetty.webapp.WebAppContext.startContext
(WebAppContext.java:1239)
        at org.mortbay.jetty.handler.ContextHandler.doStart
(ContextHandler.java:517)
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
466)
        at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart
(Jetty6PluginWebAppContext.java:124)
        at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerCollection.doStart
(HandlerCollection.java:152)
        at org.mortbay.jetty.handler.ContextHandlerCollection.doStart
(ContextHandlerCollection.java:156)
        at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerCollection.doStart
(HandlerCollection.java:152)
        at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerWrapper.doStart
(HandlerWrapper.java:130)
        at org.mortbay.jetty.Server.doStart(Server.java:222)
        at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.plugin.Jetty6PluginServer.start
(Jetty6PluginServer.java:132)
        at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty
(AbstractJettyMojo.java:441)
        at org.mortbay.jetty.plugin.AbstractJettyMojo.execute
(AbstractJettyMojo.java:383)
        at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute
(AbstractJettyRunMojo.java:210)
        at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:
184)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo
(DefaultPluginManager.java:579)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
(DefaultLifecycleExecutor.java:498)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject
(DefaultLifecycleExecutor.java:265)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments
(DefaultLifecycleExecutor.java:191)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute
(DefaultLifecycleExecutor.java:149)
        at org.apache.maven.DefaultMaven.execute_aroundBody0
(DefaultMaven.java:223)
        at org.apache.maven.DefaultMaven.execute_aroundBody1$advice
(DefaultMaven.java:304)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
        at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2
(MavenEmbedder.java:904)
        at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice
(MavenEmbedder.java:304)
        at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:
1)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:408)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:351)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:31)

When I ran the my app, all the menu links just said "No navigation
defined".
I'm using lift 1.1-SNAPSHOT out of http://scala-tools.org/repo-snapshots.
Is this where you made your changes?

Glenn...

On Jun 22, 9:37 am, Derek Chen-Becker <[email protected]> wrote:
> Pushed to master.
>
> On Fri, Jun 19, 2009 at 11:54 AM, glenn <[email protected]> wrote:
>
> > Derek,
>
> > It does not appear that these changes have been migrated to the
> > snapshot repository yet.
> > What are you plans?
>
> > thanks,
>
> > Glenn...
>
> > On Jun 19, 8:57 am, Derek Chen-Becker <[email protected]> wrote:
> > > OK, I've committed some new support for groups in the MenuWidget class.
> > > Also, the existing MenuWidget had facilities set up to take a SiteMap
> > > instance as part of the setup params, but those params were never used.
> > In
> > > the interest of simplicity, I've removed those extra params unless
> > someone
> > > has a use case that's not covered by groups or the other new
> > functionality.
> > > If no one has any issues with the new code I'll merge to master later
> > today.
>
> > > Derek
>
> > > On Fri, Jun 12, 2009 at 1:02 PM, Derek Chen-Becker <
> > [email protected]>wrote:
>
> > > > Tied up with work this afternoon, but I'll look at reworking MenuWidget
> > > > with the added functionality.
>
> > > > On Fri, Jun 12, 2009 at 6:40 AM, glenn <[email protected]> wrote:
>
> > > >> Derek,
>
> > > >> Your new Menu snippet works great. I created a superfish-style menu
> > > >> using
> > > >> a list of groups, like so:
>
> > > >> object MenuWidgetEx {
>
> > > >>   def apply(groups:List[String]) = new MenuWidgetEx(groups,
> > > >> MenuStyle.HORIZONTAL, JsObj()) render
>
> > > >>   def apply(groups:List[String], style: MenuStyle.Value) = new
> > > >> MenuWidgetEx(groups, style, JsObj()) render
>
> > > >>   def apply(groups:List[String], jsObj: JsObj) = new MenuWidgetEx
> > > >> (groups, MenuStyle.HORIZONTAL, jsObj) render
>
> > > >>   def apply(groups:List[String], style: MenuStyle.Value, jsObj:
> > > >> JsObj) = new MenuWidgetEx(groups, style, jsObj) render
> > > >> }
>
> > > >> class MenuWidgetEx(groups:List[String], style: MenuStyle.Value, jsObj:
> > > >> JsObj) extends
> > > >>  MenuWidget(LiftRules.siteMap open_!, style: MenuStyle.Value, jsObj:
> > > >> JsObj){
>
> > > >>     override def render :NodeSeq = {
>
> > > >>        def buildMenu(group:String) = <lift:Menu.builder group={group}
> > > >> expandAll="true" top:class={style.toString} />
>
> > > >>         head ++ <div>
> > > >>                {for(group <- groups) yield {buildMenu(group)}}
> > > >>                </div>
>
> > > >>   }
>
> > > >> Someone should redo the MenuWidget snippet to handle your
> > > >> new Menu.builder construct, so it doesn't have to be subclassed.
>
> > > >> Glenn...
>
> > > >> On Jun 12, 4:59 am, glenn <[email protected]> wrote:
> > > >> > My error. Ignore this. I did a mvn clean then mvn install outside
> > > >> > of Eclipse on the parent pom and everything worked fine.
>
> > > >> > Glenn...
>
> > > >> > On Jun 12, 4:45 am, glenn <[email protected]> wrote:
>
> > > >> > > Derek,
>
> > > >> > > I'd love to test the changes you made to Menu, but my build fails
> > when
> > > >> > > I run
> > > >> > > mvn install on the pom in the lift directory of the download from
>
> > > >> > >http://github.com/dpp/liftweb/tree/wip-dcb-menu-addons
>
> > > >> > > Here's what maven reports:
>
> > > >> > > [WARNING] Warning in manifest for net.liftweb:lift-webkit:jar:1.1-
> > > >> > > SNAPSHOT : Did not find matching r
> > > >> > > eferal for org.slf4j.*
> > > >> > > [ERROR] Error in manifest for net.liftweb:lift-webkit:jar:1.1-
> > > >> > > SNAPSHOT : The default package '.' is
> > > >> > > not permitted by the Import-Package syntax.
> > > >> > >  This can be caused by compile errors in Eclipse because Eclipse
> > > >> > > creates
> > > >> > > valid class files regardless of compile errors.
> > > >> > > The following package(s) import from the default package
> > > >> > > [net.liftweb.http, net.liftweb.http.auth, n
> > > >> > > et.liftweb.http.js, net.liftweb.http.js.jquery,
> > net.liftweb.sitemap]
> > > >> > > [ERROR] Error(s) found in manifest configuration
> > > >> > > [INFO]
>
> > ------------------------------------------------------------------------
> > > >> > > [ERROR] BUILD ERROR
> > > >> > > [INFO]
>
> > ------------------------------------------------------------------------
> > > >> > > [INFO] Error(s) found in manifest configuration
>
> > > >> > > It seems like a problem with the construction of the following
> > > >> > > plugin in the pom.
>
> > > >> > > <plugin>
> > > >> > >         <groupId>org.apache.felix</groupId>
> > > >> > >         <artifactId>maven-bundle-plugin</artifactId>
> > > >> > >         <configuration>
> > > >> > >           <instructions>
> > > >> > >             <Export-Package>!
> > > >> > > net.liftweb.util.*,net.liftweb.*;version="${pom.version}"</Export-
> > > >> > > Package>
> > > >> > >             <Import-Package>org.slf4j.*;resolution:="optional",*</
> > > >> > > Import-Package>
> > > >> > >             <DynamicImport-Package>*</DynamicImport-Package>
> > > >> > >           </instructions>
> > > >> > >         </configuration>
> > > >> > >       </plugin>
>
> > > >> > > Either that, or there's something else going on. Any ideas?
>
> > > >> > > Glenn...
>
> > > >> > > On Jun 11, 11:54 am, Derek Chen-Becker <[email protected]>
> > wrote:
>
> > > >> > > > I'm building some code right now that I think should handle all
> > of
> > > >> your
> > > >> > > > cases. Since Menu.builder is already concerned with building a
> > menu
> > > >> tree, I
> > > >> > > > decided that it would be better to allow you to specify a
> > specific
> > > >> item or
> > > >> > > > group to Menu.builder instead of conflating tree building with
> > the
> > > >> current
> > > >> > > > Menu.item and Menu.group snippets. Given a SiteMap like:
>
> > > >> > > >     val menus =
> > > >> > > >       Menu(Loc("Home", List("index"), "Home Page")) ::
> > > >> > > >       Menu(Loc("Viewtest", List("ViewTest", "test"), "View
> > test"))
> > > >> ::
> > > >> > > >       Menu(Loc("InsecureViewtest", List("Insecure", "test"),
> > > >> "Insecure View
> > > >> > > > test")) ::
> > > >> > > >       Menu(Loc("SelectTest", List("select"), "asm select test"))
> > ::
> > > >> > > >       Menu(Loc("Help", List("help", "index"), "Help",
> > > >> LocGroup("help")),
> > > >> > > >        Menu(Loc("About", List("help", "about"), "About",
> > > >> LocGroup("help"))),
> > > >> > > >        Menu(Loc("Version", List("help", "version"), "Version",
> > > >> > > > LocGroup("help")))) :: Nil
>
> > > >> > > > You can render just the Help tree with:
>
> > > >> > > > <lift:Menu.builder item="Help" expandAll="true" />
>
> > > >> > > > Which will render something like:
>
> > > >> > > > <ul><li><a href="/testthis/help/
> > > >> > > > <view-source:http://localhost:9090/testthis/help/
> > > >> >">Help</a><ul><li><a
> > > >> > > > href="/testthis/help/about
> > > >> > > > <view-source:http://localhost:9090/testthis/help/about
> > > >> >">About</a></li><li><a
> > > >> > > > href="/testthis/help/version
> > > >> > > > <view-source:http://localhost:9090/testthis/help/version
> > > >> >">Version</a></li></ul></li></ul>
>
> > > >> > > > Similarly, you can use a group attribute:
>
> > > >> > > > <lift:Menu.builder group="help" expandAll="true" />
>
> > > >> > > > But notice that this won't deduplicate entries, so we would
> > render
> > > >> something
> > > >> > > > like:
>
> > > >> > > > <ul><li><a href="/testthis/help/
> > > >> > > > <view-source:http://localhost:9090/testthis/help/
> > > >> >">Help</a><ul><li><a
> > > >> > > > href="/testthis/help/about
> > > >> > > > <view-source:http://localhost:9090/testthis/help/about
> > > >> >">About</a></li><li><a
> > > >> > > > href="/testthis/help/version
> > > >> > > > <view-source:http://localhost:9090/testthis/help/version
> > > >> >">Version</a></li></ul></li><li><a
> > > >> > > > href="/testthis/help/about
> > > >> > > > <view-source:http://localhost:9090/testthis/help/about
> > > >> >">About</a></li><li><a
> > > >> > > > href="/testthis/help/version
> > > >> > > > <view-source:http://localhost:9090/testthis/help/version
> > > >> >">Version</a></li></ul>
>
> > > >> > > > This is currently checked in on the wip-dcb-menu-addons branch:
>
> > > >> > > >http://github.com/dpp/liftweb/tree/wip-dcb-menu-addons
>
> > > >> > > > Thoughts?
>
> > > >> > > > Derek
>
> > > >> > > > On Mon, Jun 8, 2009 at 5:49 PM, glenn <[email protected]> wrote:
>
> > > >> > > > > Yes,
>
> > > >> > > > > I would like the expandAll behavior to work for groups and for
> > > >> non-
> > > >> > > > > root siteMaps.
> > > >> > > > > Here's a specific use-case. The MenuWidget in the lift-widgets
> > > >> package
> > > >> > > > > just passes everything
> > > >> > > > > through  as
>
> > > >> > > > > def render : NodeSeq = {
> > > >> > > > >    head ++ <lift:Menu.builder expandAll="true" top:class=
> > > >> > > > > {style.toString} />
> > > >> > > > >  }
>
> > > >> > > > > So, even though the MenuWidget object has factory methods
> > > >> > > > > for using a  non-root siteMap, only the root siteMap is ever
> > used.
> > > >> > > > > That's
> > > >> > > > > because Menu.builder calls a private function renderWhat, like
> > so:
>
> > > >> > > > > val toRender = renderWhat(expandAll)
>
> > > >> > > > > which iterates through the root siteMap. There is no way,
> > really,
> > > >> to
> > > >> > > > > subclass that
> > > >> > > > > to use a different siteMap.
>
> > > >> > > > > The problem with the Menu.group snippet is that it just works
> > off
> > > >> the
> > > >> > > > > named group in
> > > >> > > > > the root siteMap, creating a parent node, but not the kids.
>
> > > >> > > > > It would be nice to use MenuWidget, or some subclass, to
> > create a
> > > >> > > > > superfish-style
> > > >> > > > > nav-bar or horizontal menu for groups or non-root siteMaps
> > just as
> > > >> > > > > easily as for the
> > > >> > > > > entire root siteMap.
>
> > > >> > > > > Glenn...
>
> > > >> > > > > On Jun 8, 3:51 pm, Joe Wass <[email protected]> wrote:
> > > >> > > > > > What I really wanted was a menu group. Doing things in
> > groups
> > > >> has
>
> ...
>
> read more »

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to