English 中文(简体)
Is anyone using a ColdFusion framework that has specific path requirements without mapping or locating resources in the server root?
原标题:

Let me first say I am aware of this faq for Mach-II, which discusses using application specific mappings as a third option when:

  1. locating the framework in the server root is not possible and

  2. creating a server wide mapping to the Mach-II framework directory is impossible

Using application specific mappings would also work for other ColdFusion frameworks with similar requirements (ColdSpring). Here is my issue however: my (I should say "their") production servers are all running ColdFusion MX7, and application specific mappings were introduced in ColdFusion 8. I most likely will be unable to do option 1 or 2 because they involve creating server wide changes that could conflict with other applications (I don t have a final word on this but I am preparing for that to be the case).

That said, is there anybody out there who was in similar bind and has done an option 4, in any ColdFusion version, or with any similar framework? The only option 4 I can think of is modifying the entire framework to change this hardcoded path, and even if that worked it would be time consuming and risky. I m fairly sure that if there was a simple modification or other simple solution it would already be included in the framework (maybe it s included in version 1.8 of Mach-II and I don t know about it yet).

Any thoughts on solving this problem or even unorthodox setups with libraries that have specific path requirements would be appreciated. Any thoughts from Team Mach-II would especially appreciated...we re on the same team here Matt! ;-)

EDIT

Apparently, the ColdBox framework includes a refactor.xml ANT task which includes a target that refactors the ColdBox code to use a different absolute path as a base along with several other useful refactoring targets. So problem solved for ColdBox users.

Looking at the build.xml for Mach-II (1.6 and 1.8) I don t see any target in there that would allow me to refactor the code. I thought about creating a feature request ticket for such a task for Mach-II but frankly I don t think creating such an ANT task is a big priority for the MachII team since the need really only relates to either

  • a) users of ColdFusion versions below 8
  • b) someone who wants to use multiple Mach-II versions in the same application, a use I doubt they want to support

The ColdSpring code I have doesn t come with any ANT tasks at all, although I do have unit tests, and I bet if I poked around the SVN I d find a few build scripts.

Using Ant tasks to refactor and retest the code, or the simpler (and sort of cop out) solution of creating a separate ColdFusion instance for the application are the best answers I ve been able to come up with. I don t need this application to exist in the shared scope of other applications, so my first solution is going to be to try and get a dedicated CF instance for this application.

I m also going to look at the ColdBox refactor.xml ANT task however and see if I can modify it to work generically to recognize and refactor CFC references with modified absolute paths. If I complete this task I ll be sure to post the code somewhere and edit create an answer to link to it. If anybody else wants to take a crack at that or help me out with it feel free.

Until then I ll leave this question open and see if someone comes up with a better solution.

最佳回答

Perhaps you could create a symbolic link and let the operating system resolve the issue for you?

问题回答

Fusebox is not so strict, I think.

In XML mode (maybe I call this not 100% correcly, just mean using the Application.cfm) it s just proper include in index.cfm, something like:

<cfinclude template="fusebox5/fusebox5.cfm" />

In non-XML mode it will need proper extending in the root Application.cfc:

<cfcomponent extends="path.to.fusebox5.Application" output="false">

All you need is to know the path.

I ve been playing with FW/1 lately, and while it may look like you need to add a mapping and extend org.corfield.framework, you can actually move the framework.cfc file into your web root and just extend="framework". It s dead simple, and gets you straight into a great framework with no mess and very little overhead.

It should be as simple as dropping the MachII folder at the root of your domain (i.e. example.com/MachII). No mappings are required to use Mach-II if you just deploy at the root of the domain of your website.

Also:

Please file a ticket for the ANT task you mentioned in your question. Team Mach-II would love to have this issue logged:

Enter a new ticket on the Mach-II Trac

If you want to tackle an ANT task for us, we can get stuff like this incorporated into the builds faster than waiting to for a Team member to work on the ticket. Code submissions from the community are welcome and appreciated.

We don t keep an eye on Stack Overflow very often so we invite you to join our official community group at called "Mach-II for ColdFusion" at Google Groups. The Google Group is the best place to ask questions or comments like this if you want feedback from the Team.





相关问题
Matrix to Represent a Triangle in Screen Space

So i have a set of four points in 3D Space. P1 [0, 0, 0] P2 [128, 0, 0] P3 [0, 128, 0] P4 [128, 128, 0] Which I m then projecting orthographically to the screen effectively giving me two ...

Using LINQ To SQL with multiple database tables

I have an employee class with as follows: public class Employee { public string FirstName { get; set; } public string LastName { get; set; } public string UserName { get; set; } ...

Mapping points from Euclician 2-space onto a Poincare disc

For some reason it seems that everyone writing webpages about Poincare discs is only concerned with how to represent lines and measure distances. I d like to morph a collection of 2D points (as ...

Fluent NHibernate, varbinary(max) and SQLite

I have a varbinary field in my sql server database that needs to be varbinary(max). I create my database with NHibernate and I use Fluent Nhibernate for my mappings. I also use SQLite for my unit ...

Javascript redirect

I am working with javascript and here is what I am trying to do: 1. Send a get request which looks like "http://localhost:8080/myapp/verify.htm?verifyId=Agkvhs" My requests reaches my verify.jsp in ...

热门标签