Hey Malcolm,
So since you guys just have Pedestal set up at the moment, I've started there. *My Repos * You can see my project jig here<https://github.com/stefonweblog/stefon-jig/blob/master/config/config.clj>. It connects to common<https://github.com/stefonweblog/stefon-webui-common/blob/master/src/stefon_webui_common/core.clj> , compojure<https://github.com/stefonweblog/stefon-compojure/blob/master/src/stefon_compojure/core.clj> (not yet configured), and pedestal-service<https://github.com/stefonweblog/stefon-pedestal-service/blob/master/src/stefon_pedestal_service/service.clj> component. I'm trying to get the Pedestal portions working. Now, I haven't yet been able to stitch together routes using the Pedestal ":juxtweb/service" component you have. The ":server" component runs fine, when executing (go). But the handlers don't seem to be attached. Do I need a separate " :jig/projects" entry in my config? { :jig/components { ;; ===> :server {:jig/component jig.web.server/Component :io.pedestal.service.http/port 8000 :io.pedestal.service.http/type :jetty} :juxtweb/web {:jig/component jig.web.app/Component :jig/dependencies [:server] :jig/scheme :http :jig/hostname "localhost" :jig.web/server :server} ;; ===> :stefon-webui-common {:jig/component stefon-webui-common.core/Component :jig/project "../stefon-webui-common/project.clj"} :stefon-compojure {:jig/component stefon-compojure.core/Component :jig/project "../stefon-compojure/project.clj" :jig/dependencies [:server :stefon-webui-common]} :stefon-pedestal {:jig/component stefon-pedestal-service.service/Component :jig/project "../stefon-pedestal-service/project.clj" :jig/dependencies [:juxtweb/web :stefon-webui-common] :jig.web/app-name :juxtweb/web} }} *Juxt's Cloned Repos * So I tried cloning your example repos to see working example code. But there's a few things that went awry. *A)* I had to rename the cloned repo for the referencing in "jig/config/config.clj" to work (:jig/project "../accounting/project.clj"). ~/Projects/trial/*JIG*$ ls -la accounting/ *;; had to `mv juxt-accounting accounting` * jig/ juxtweb/ *B)* Also, you've hard-coded an accounts db file to your hard drive *java.io.FileNotFoundException: /home/malcolm/Dropbox.private/JUXT/accounts.edn* Tim Washington Interruptsoftware.ca / Bkeeping.com On Mon, Oct 21, 2013 at 3:57 AM, Malcolm Sparks <malc...@juxt.pro> wrote: > Hi Tim, > > Good to hear you're finding Jig useful. > > There isn't any explicit support for Ring in Jig yet, it's just Pedestal > services right now. The separation of jig.web.server and jig.web.app into 2 > components is to allow multiple 'virtual hosts' to share the same Jetty > server, if necessary. > > It's a third component, usually your own, that actually adds routes to a > virtual host. See the ReadmeComponent in > examples/docsite/src/examples/docsite/core.clj > here<https://github.com/juxt/jig/blob/master/examples/docsite/src/examples/docsite/core.clj#L75>. > It adds routes in its init phase. > > The idea is that other components can be contribute routes in the same > way, so you have the option of breaking up a website into modules. > > The nice thing about Pedestal services is that hyperlinks can be generated > using the url-for functionality it provides. If you use this feature > consistently, you can treat the jig.web.app as an anchor on which to hook > multiple applications and configure the URL tree accordingly. I'm intrigued > by this url-for feature and wanted to experiment with it with Jig. > > Since Compojure doesn't have this automatic ability to create links from > handler vars, it's likely you'll want to set it up manually. Here's a > suggestion for how to do this: > > 1. Create a Ring server component. > > 2. In the init phase, add an empty vector called :routes. Other components > can depend on this one, and in their init phase, they concat their routes > to this vector. > > 3. Then, in its start phase, the Ring server component composes the routes > together (using Compojure's routes function) and creates and starts the > server, placing the server in the system map so that it can be found and > stopped in its stop phase. > > Remember that you don't need to use any reloading tricks described by > Ring<https://github.com/ring-clojure/ring/wiki/Interactive-Development#iii-manually>, > such as passing a var to run-jetty rather than the handler itself. Nor do > you need :reload and any file status detection. > > What I really like about Stuart's workflow is that it allows you to do > away with these 'dev versus prod' modes, you just code everything in 'prod' > mode (i.e. there is only one mode) and let the reset handle the dev reload. > This makes code simpler and ensures you are developing and testing what the > users get, not a development 'version' that approximates to it. > > Regards, > > Malcolm > > > > > On Monday, October 21, 2013 1:41:43 AM UTC+1, frye wrote: > >> Also, is there a Google Group for Jig? I'm playing around with it, can >> see the potential, and already have some questions. Anyways, in the >> meantime, I'll keep digging. I'm finding jig really useful so far. >> >> >> *A)* As taken from the example, I'm using the Jetty :server >> component<https://github.com/juxt/jig/blob/master/config/config.clj#L6>. >> I'm trying to figure out how to pass in my Compojure route >> handler<https://github.com/weavejester/compojure-example/blob/master/src/compojure/example/routes.clj> >> (also >> see<http://weavejester.github.io/compojure/compojure.handler.html#var-site>) >> to >> jetty. This is how its done >> manually<https://github.com/ring-clojure/ring/wiki/Interactive-Development#iii-manually>. >> But obviously, I need to fit that into the jig framework. >> >> >> >> :server {:jig/component jig.web.server/Component ;; how do I pass in >> my Compojure route handler ? >> >> :io.pedestal.**service.http/port 8000 >> >> >> :io.pedestal.**service.http/type :jetty >> } >> >> >> >> *B)* Same thing with Pedestal. I want to be able to pass in my app's >> routing table. But I don't quite grok how to do that, from the examples ( >> here <https://github.com/juxt/jig/blob/master/config/config.clj#L28> and >> here <https://github.com/juxt/jig/blob/master/src/jig/web/app.clj>). >> >> >> >> :juxtweb/web {:jig/component jig.web.app/Component ;; how do I pass in >> my routing table of handlers ? >> >> :jig/**dependencies [:server] >> >> :jig/scheme :http >> >> >> :jig/hostname "localhost" >> :jig.web/**server :server >> >> } >> >> >> >> Thanks >> >> Tim Washington >> Interruptsoftware.ca / Bkeeping.com >> >> >> >> On Thu, Oct 17, 2013 at 7:30 PM, zcaudate <z...@caudate.me> wrote: >> >>> Would it be possible to put up a video of a typical workflow example >>> with pedestal. It's quite difficult for me to piece everything together >>> just by reading the documentation. >>> >>> Chris >>> >>> -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.