I can’t re build exe “unknownHostException”
No, the jfetmac server is definitely up. The issue is that it’s Luis’ personal laptop
Luis added the API doc generation to the build script yesterday and it includes this new property:
url.api=http://commandbox.jfetmac:8600/apidocs/commandDocs.cfm?
You’ll need to change that to the local URL of a site pointing to the checked out code. We should probably find a way for you to override properites without maintaining your own build.properties that you can’t commit. Perhaps we can have an optional local prop file that gets included first (since properties are immutable) to override that is ignored from the repo.
Thanks!
~Brad
ColdBox Platform Evangelist
Ortus Solutions, Corp
E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com
That’s for our local machine. You need to update to your own for building docs.
Actually, it looks like this is already implemented in the build.xml.
Loading properties from environment: ${environment} Loading base propertiesJust create a build-local.properties file and define url.api in it. This is what mine looks like:
#project properties
url.api=http://commandbox.dev:8080/apidocs/commandDocs.cfm?
Thanks!
~Brad
ColdBox Platform Evangelist
Ortus Solutions, Corp
E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com
Ok, I see that commandbox comes with /apidocs/commandDocs.cfm but I didn’t know that I had to serve apidocs as a website. so I did and it throws an error:
coldfusion.compiler.validation.OptionalArgMismatchException: Parameter validation error for the QUERYADDCOLUMN function.
at coldfusion.compiler.validation.FunctionValidator.checkArgCount(FunctionValidator.java:90)
at coldfusion.compiler.validation.CFMLCodeValidator.visit(CFMLCodeValidator.java:191)
at coldfusion.compiler.ASTruntimeCall.accept(ASTruntimeCall.java:199)
at coldfusion.compiler.ASTcfscriptStatement.accept(ASTcfscriptStatement.java:124)
at coldfusion.compiler.Node.walkChildren(Node.java:349)
at coldfusion.compiler.ASTcfscript.accept(ASTcfscript.java:17)
at coldfusion.compiler.Node.walkChildren(Node.java:349)
at coldfusion.compiler.ASTfunctionDefinition.accept(ASTfunctionDefinition.java:185)
at coldfusion.compiler.Node.walkChildren(Node.java:349)
at coldfusion.compiler.ASTstart.accept(ASTstart.java:119)
at coldfusion.compiler.NeoTranslator.validate(NeoTranslator.java:642)
at coldfusion.compiler.NeoTranslator.parseAndTransform(NeoTranslator.java:440)
at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:370)
at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:147)
at coldfusion.runtime.TemplateClassLoader$TemplateCache$1.fetch(TemplateClassLoader.java:436)
at coldfusion.util.LruCache.get(LruCache.java:180)
at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:362)
at coldfusion.util.AbstractCache.fetch(AbstractCache.java:58)
at coldfusion.util.SoftCache.get_statsOff(SoftCache.java:133)
at coldfusion.util.SoftCache.get(SoftCache.java:81)
at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:609)
at coldfusion.runtime.RuntimeServiceImpl.getFile(RuntimeServiceImpl.java:828)
at coldfusion.runtime.RuntimeServiceImpl.resolveTemplatePath(RuntimeServiceImpl.java:795)
at coldfusion.runtime.TemplateProxyFactory.getResolvedFile(TemplateProxyFactory.java:1263)
at coldfusion.runtime.TemplateProxyFactory.getTemplateFileHelper(TemplateProxyFactory.java:1571)
at coldfusion.cfc.ComponentProxyFactory.getProxy(ComponentProxyFactory.java:51)
at coldfusion.runtime.CFPage.___createObjectInternal(CFPage.java:10362)
at coldfusion.runtime.CFPage._createObject(CFPage.java:10347)
at cfcommandDocs2ecfm335483218.runPage(C:\Users\daniel.mejia\Development\programs\commandbox\apidocs\commandDocs.cfm:7)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.IpFilter.invoke(IpFilter.java:64)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:428)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
ColdDoc is hit through a page which needs to be web accessible. I’ve always had a site set up so I could run the unit tests. Perhaps we’ll eventually move the built over to CommandBox tasks and that will simplify the build requirements.
Are you using Railo or Adobe ColdFusion? There may be something that got added to the ColdDoc code that is Railo-specific.
What happens when you hit that API docs URL directly?
FWIW, cfdistro has a colddoc macrodef that starts a server, sets the
mapping, generates the docs, and then stops the server, so there is no
need to configure an external setup, and you can leave the colddoc code
out of the main project, etc.-- it's all done on the fly.
:Den
Maybe we should move the docgen to the "all" build vs. having it be part
of the default. You'd only really want them for a release, and it's
going to add a good bit of time and potential build fails. I'm a big
fan of being able to "click and go" as it were, vs. having to edit
property files and such first.
:Den
I wouldn’t mind that, but my problem with the “all” build is it can’t be used on Windows because the Linux binaries crap out. (Not supported on Windows)
I honestly rarely run the build locally. I just create a linked directory to my CFML folder in the git repo and simply do a git pull to get the latest version. But when I do run the build, I end up just running the exe part of it since I’m only interested in the Windows binary. I would probably run all though if it worked.
Thanks!
~Brad
ColdBox Platform Evangelist
Ortus Solutions, Corp
E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com
brad, i’m running Adobe cf and the stack trace above is what I get when I hit the url directly.
denstar, the build.properties has this setting “api.url” - what should I set this to so that macrodef kicks instead.
Hmm, must be a Railo/ACF difference. I think Luis, Myself, and the integration server all use Railo by default. If you just need to get the build to run for now, you can just remove that part of the build to get it working. Otherwise, someone will need to dig in and figure out what syntax is wrong.
Denny’s note about cfdistro doesn’t really help you here since we’re not using cfdistro to load the properties file. The build-local.properties file is basicaly the same thing but on a smaller scale. Besides, you have correctly override the API docs URl so there’s nothing to change there. it’s just a matter of why ColdDoc is erroring locally for you on Adobe CF.
...
denstar, the build.properties has this setting "api.url" - what should I
set this to so that macrodef kicks instead.
We'd have to change that part of the build to something like:
<colddoc packagenames="commandbox" sourcepath="${commandbox.src.dir}"
destdir="${dest.dir}/apidoc"
title="CommandBox ${commandbox.version}" />
Upstream. I think you could just set that api.url to 127.0.0.1:8080
(assuming acf is running on 8080).
:Den
Note, we’re using a customized version of ColdDoc with a special CommandBox Commands strategy and a new Bootstrap theme that’s in our fork, so a macrodef based on the original version of ColdDoc is unlikely to work.
Thanks!
~Brad
ColdBox Platform Evangelist
Ortus Solutions, Corp
E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com
no, no. thanks anyway. sorry to bother. i should have listened to you when you told me to just make a symlink to my repo version.
i finished setting that now and its working.
so here is what I did:
-
downloaded http://integration.staging.ortussolutions.com/artifacts/ortussolutions/commandbox/1.0.0/commandbox-jre-win64-1.0.0.zip to ~/Development/programs/commandbox/…
-
ran box.exe, which creates ~/.CommandBox
-
deleted .CommandBox/cfml
-
created sym link “cfml” —> ~/Development/apps/commandbox/src/cfml
-
added ~/Development/programs/commandbox to environment path
-
done.
Which means I can development on the commands(try atleast), reload and test.
Now, if I ever want to catch up to bleeding edge Id have to do all this again. Right? any other shortcuts?
Yep, that’s what I do. If you want the bleeding edge, all you need to do is “git pull” and you’re done! That’s because pretty much all changes are made inside the CFML directory. You can also change any CFML code and just run “reload” to pick up the changes. No build is needed which is much faster for development.
Note, we also have an “upgrade” command (which I just tweaked to point to our integration servers).