Dick..
This is known problem when you work with Java Classes, i never got the
configuration right to do *HOTLOAD*.. Sean was going to help out.. but i think
he is busy.
Temp Solution.
Every time, you re-compile the Java File, you have STOP-RESTART CFMX Service.
This will resolve that.
Joe
On Tue, 26 Nov 2002 14:20:56 -0800 Dick Applebaum <[EMAIL PROTECTED]> wrote:
> Joe
>
> I have been modifing with your Java code to
> return tables and columns
> and I ran into a
> weird situation.
>
> for convenience, I put the ,java file in
> WEB-INF/classes
>
> I recompile the program and get a class file
>
> I run the CF template, but get the old version
> of the class file
>
> I even deleted the class file -- something is
> being cached, somewhere
> -- Where?
>
> TIA
>
> Dick
>
>
>
>
> On Tuesday, November 26, 2002, at 01:35 PM, Joe
> Eugene wrote:
>
> > Dick
> >
> > No problem, i got the same solution working
> with MM,MS-SQL and Oracle
> > drivers
> > without any problem.
> >> You, likely, saved me several hours of
> >> frustration.
> > Now the ideal solution would be to return
> Complex
> > Objects/Types(Structs,ResultSets) back to
> CFMX. Havent had a chance to
> > play
> > with Structs(CFMX-Java) compatibility.
> >
> >> Is there value to the Java developer (new or
> >> experienced) to inline
> >> code -- Yes,
> >
> > I understand your need. A while ago, we
> looked at the generated Java
> > code(Real
> > Ugly!) from a *.cfm page. A lot of ugly
> wrappers coverting loose *.cfm
> > TYPES
> > to strong Java Types..(Result..Slow
> pages)(Topic Jsp vs Cfm).
> >
> > InLine Java Code.
> > If this ever happens, ideally.. CFMX complier
> should create a helper
> > class
> > file and let Java Complier, compile it like a
> Jsp page.. this would be
> > excellent.. but again IS'nt CfObject doing
> the same thing?(seperating
> > the
> > helper/model class from presentation)...Am
> trying to relate to "Inline
> > Java"..
> > So what overall advantage do we get with
> Inline Java? Any
> > Performance...?
> > other than coding between CF/Java in
> templates?
> >
> > I am not against InLine Java.. just trying to
> understand the Mechanics.
> >
> > Joe
> >
> > On Tue, 26 Nov 2002 07:10:11 -0800 Dick
> Applebaum
> > wrote:
> >
> >> Joe
> >>
> >> Your example, does, in fact work.
> >>
> >> Of course, I needed to modify the Java code
> to
> >> specify a different
> >> database --
> >> none of the MS databases appear to work on
> Mac
> >> OS X (or and non-win
> >> platform) :)
> >>
> >> This is enough to get me started -- I will
> add
> >> the flexibility to the
> >> interface so it
> >> will work with any JDBC driver, and any
> >> MetaData request.
> >>
> >> Thanks
> >>
> >> I have never written a wrapper for a Java
> >> program & it helps to start
> >> with a
> >> working example, and concise instructions.
> >>
> >> You, likely, saved me several hours of
> >> frustration.
> >>
> >> I think that implementing and deploying this
> >> example is a good
> >> illustration of the
> >> value of inline Java.
> >>
> >> Someone new to Java, like myself, could take
> >> your example and drop it
> >> into a simpleCF template,
> >> between tags. Then they could add the CFML
> >> portion in the
> >> same template. More likely,
> >> you would have provided a complete,
> standalone
> >> CF Template with the
> >> Java code, inline.
> >>
> >> Then they could save and test the template
> >> without concern for:
> >>
> >> 1) Separating your file into its Java
> and
> >> CFML component parts.
> >>
> >> 2) Where to put the Java source
> >>
> >> 3) How to compile the Java class
> >>
> >> 4) Which Java compiler options to use
> and
> >> their proper settings --
> >> things such as:
> >>
> >> Usage: javac
> >> where possible options include:
> >> -g
> Generate
> >> all debugging info
> >> -g:none
> Generate
> >> no debugging info
> >> -g:{lines,vars,source}
> Generate
> >> only some debugging info
> >> -O
> Optimize;
> >> may hinder debugging or
> >> enlarge class file
> >> -nowarn
> Generate
> >> no warnings
> >> -verbose Output
> >> messages about what the
> >> compiler is doing
> >> -deprecation Output
> >> source locations where
> >> deprecated APIs are used
> >> -classpath Specify where
> to
> >> find user class
> >> files
> >> -sourcepath Specify where
> to
> >> find input source
> >> files
> >> -bootclasspath Override
> >> location of bootstrap
> >> class files
> >> -extdirs Override
> >> location of installed
> >> extensions
> >> -d Specify where to
> >> place generated
> >> class files
> >> -encoding Specify character
> >> encoding used by
> >> source files
> >> -target Generate class
> >> files for specific
> >> VM version
> >>
> >> 5) Figuring out the command line
> interface
> >> or some Java IDE, just to
> >> be able to compile the Java program.
> >>
> >> 6) Where to put the Java class
> >>
> >> 7) Where to get a Java compiler if one
> >> isn't installed on their
> >> platform (Mac OS X comes,
> >> standard, with a JDK, but many
> >> platforms do not).
> >>
> >> Sure, these are things that the new Java
> person
> >> will need to learn
> >> eventually. But, is it necessary to
> >> overload the new Java user with all this
> >> minutiae, just to try a simple
> >> Java example -- I think not!
> >>
> >> Is there value to the Java developer (new or
> >> experienced) to inline
> >> code -- Yes, I've noted some
> >> advantages to the lay person. But, Joe, who
> is
> >> experienced with Java,
> >> could have benefitted from
> >> inline Java too. I suspect he would have
> saved
> >> time preparing/testing
> >> his example and the instructions
> >> how to deploy it :
> >>
> >> 1) He, simply, could have provided a
> single
> >> CF template with the
> >> Java inline; rather than a Java
> >> program and a separate CF template.
> >>
> >> 2) He could have avoided typing the
> >> instructions to compile and
> >> deploy the Java program
> >>
> >> 3) The flow of the example, likely,
> would
> >> be better, better
> >> understood, and easier
> >> to explain and document within the
> >> code (both CF and Java
> >> Comments)
> >>
> >> 4) He'd have a single file, a complete
> >> example, with no special
> >> instructions --
> >> Just "Save it and Run it" as you
> would
> >> any other CF template.
> >>
> >>
> >> Is there significant [enough] value, that MM
> >> should consider
> >> implementing inline Java --
> >> I think so -- what it boils down to is this:
> >> inline Java is an
> >> improved interface to
> >> many Java programs -- much the way that
> (and
> >> the associated
> >> , , etc.) tags
> >> are an improvement to many SQL databases.
> >> Here are some advantages to
> >> MM.
> >>
> >> 1) The CFMX product could have another
> >> productivity advantage for
> >> developers, and
> >> resellers... hmm... I wonder if IBM
> >> could use this feature....
> >>
> >> 2) Macromedia could more easily, and more
> >> effectively include many
> >> Java examples
> >> in the code they distribute,
> >>
> >> 3) Inline Java could facilitate writing,
> >> testing and documenting
> >> wrappers for many
> >> Java programs (whether deployed
> inline
> >> or not).
> >>
> >> 4) It could be easier to reconcile Java
> >> constructs of strong typing,
> >> nulls, etc, with the absence
> >> these constructs in CFML. In fact.
> >> inline Java, could provide a
> >> very nice means to help
> >> pass data between CFML and Java --
> >> something like
> >> where you could
> >> specify typing, nulls, etc. in a way
> >> meaningful to both CFML and
> >> Java.
> >>
> >> 5) If MM were to implement , they could
> >> delay (or
> >> postpone indefinitly) the
> >> request to add these features to CF
> >> (requiring major
> >> reengineering of CF, according to some).
> >> this could be a placeholder,
> preserving
> >> MM's options, while
> >> deferring revision of CFML!
> >>
> >> 6) If MM did decide to add typing, nulls,
> >> etc to a later version
> >> CFML, they would have an existing standard
> >> (the cfjavaparam placeholder) that
> >> would make it easier to
> >> implement compatibility.
> >>
> >> OK, I was careful to use words like "many,
> >> could, etc.". Do the
> >> benefits of inline Java apply to all -- Nah!
> >>
> >> But, here is a feature that "could" be of
> use
> >> to "many" -- Macromedia,
> >> Resellers, Developers, end users,
> >>
> >> As Phil Costa said at the beginning of this
> >> thread, MM did consider it,
> >> and it wasn't a "cut and dried" decision.
> >>
> >> It may be worth reconsidering!
> >>
> >> Dick
> >>
> >> P.S. Thanks, again, Joe!
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Monday, November 25, 2002, at 02:32 PM,
> Joe
> >> Eugene wrote:
> >>
> >>> Dick,
> >>> Here is an Example that works with CFMX.
> The
> >> Java file should be
> >>> compiled
> >>> under WEB-INF/classes/
> >>> and you can invoke it with CFObject. Note i
> >> am using Macromedia
> >>> drivers to
> >>> connect to Sql-Server.
> >>> This is rough sketch..if you want.. i can
> >> improvise this later..to be
> >>> generic.
> >>> Dont forget to substitute your Database
> >> Name,server name, userid and
> >>> password.
> >>> The method call returns a list of table
> >> names.
> >>>
> >>> /*Java File*/
> >>>
> >>> import java.sql.*;
> >>> import java.util.*;
> >>>
> >>> public class MetaData{
> >>>
> >>> String
> >>
> driverName="macromedia.jdbc.MacromediaDriver";
> >>> String
> >>
> url="jdbc:macromedia:sqlserver://SqlServer:1433";
> >>> String userid="YourUserid";
> >>> String pwd="YourPassword";
> >>> private String cat,schPattern,tblNPattern;
> >>> private String tblTypes[];
> >>>
> >>> public void setParms(String c,String s,
> >> String t){
> >>> if(c.equalsIgnoreCase("null")) cat=null;
> >> else cat=c;
> >>> if(s.equalsIgnoreCase("null"))
> >> schPattern=null; else schPattern=s;
> >>> if(t.equalsIgnoreCase("null"))
> >> tblNPattern=null; else tblNPattern=t;
> >>> tblTypes=null;
> >>> }
> >>> /*String
> >>
> driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
> >>> //String
> >>
> url="jdbc:microsoft:sqlserver://SqlServer:1433";
> >>> */
> >>>
> >>> public String getTablesOnly(){
> >>> StringBuffer sb = new StringBuffer();
> >>> try{
> >>> Class.forName(driverName);
> >>> Connection con =
> >> DriverManager.getConnection(url,userid,pwd);
> >>> DatabaseMetaData md = con.getMetaData();
> >>>
> >>
> //System.out.println(md.getSQLKeywords()+"\n\n");
> >>>
> >>
> //System.out.println(md.getNumericFunctions());
> >>>
> >>> //String tbTypes[]={"TABLE","User"};
> >>> ResultSet rs =
> >>
> md.getTables(cat,schPattern,tblNPattern,tblTypes);
> >>>
> >>> while(rs.next()){
> >>>
> sb.append(rs.getString("TABLE_NAME")+',');
> >>> }
> >>> rs.close();
> >>> con.close();
> >>> return sb.toString();
> >>> }catch(Exception e){
> >>> return e.toString();
> >>> }
> >>>
> >>> }//end getTablesOnly
> >>>
> >>> /*
> >>> public static void main(String argv[]){
> >>> MetaData m = new MetaData();
> >>> System.out.println(m.getTablesOnly());
> >>> }
> >>> */
> >>> }
> >>>
> >>>
> >>>
> >>> Parm1:Catalog
> >>> Parm2:SchemaPattern
> >>> Parm3:tblNPattern
> >>> I am not currently passsing any types.. but
> u
> >> can add them
> >>> --->
> >>>
> >>>
> >>>
> >>> Hope this gives you an idea.
> >>> Joe
> >>>
> >>>
> >>>
> >>> On Mon, 25 Nov 2002 10:56:57 -0800 Dick
> >> Applebaum
> >>> wrote:
> >>>
> >>>> Joe
> >>>>
> >>>> Below is the Java source, originally
> caalled
> >>>> DBViewer.
> >>>>
> >>>> This is working code that I modified to
> use
> >> the
> >>>> CFMX cfsnippets db (The
> >>>> PointBase
> >>>> database shipped with the Linux distro).
> >>>>
> >>>> I want to accomplish the same thing within
> >>>> CFMX, and generalize it a
> >>>> bit so it will
> >>>> work with any JDBC driver and database,
> >>>> remote or local, on any platform.
> >>>>
> >>>> For remote dbs, there will be a stub
> program
> >>>> that determines the
> >>>> platform, CF
> >>>> version, etc. and Uses COM objects or the
> >> Java
> >>>> interface as needed.
> >>>> Requests and data are exchanged via WDDX
> >>>> packets.
> >>>>
> >>>> For local dbs the function could be
> included
> >>>> inline (for performance)
> >>>> or via the
> >>>> stub (for convenience)
> >>>>
> >>>> The problem statements are shown at: 30,
> >> 38,
> >>>> and 45.
> >>>>
> >>>> It is fairly easy to program equivalent CF
> >>>> code, but you can't pass
> >>>> nulls from CF.
> >>>>
> >>>> Given more time, I would probably do this:
> >>>>
> >>>> Use a Java program (similar to this) to
> >> do
> >>>> the actual manipulation
> >>>> of the JDBC driver.
> >>>>
> >>>> Use a CF routine to interface the Java
> >>>> program: providing input
> >>>> paramaters for the desired db request;
> >> and
> >>>> presentation of the
> >>>> results
> >>>>
> >>>> Use an alias (such as 'MyNull'), to
> >> exchange
> >>>> psuedo nulls between
> >>>> CF and Java, as necessary
> >>>>
> >>>> Any help will be greatly appreciated.
> >>>>
> >>>> TIA
> >>>>
> >>>> Dick
> >>>>
> >>>>
> >>>>
> >>>> 1 // public abstract ResultSet
> >>>> getIndexInfo(String catalog, String
> >>>> schema, String table, boolean
> unique,
> >>>> boolean approximate)
> >>>> throws SQLException;
> >>>> 2 // public abstract ResultSet
> >>>> getColumns(String catalog, String
> >>>> schemaPattern, String tableNamePattern,
> >> String
> >>>> columnNamePattern)
> >>>> throws SQLException;
> >>>>
> >>>> 3
> >>>> 4 import java.sql.*;
> >>>> 5 import java.util.StringTokenizer;
> >>>>
> >>>> 6 public class DBViewerPB {
> >>>>
> >>>> 7 final static String jdbcURL =
> >>>>
> >>
> "jdbc:pointbase:cfsnippets,database.home=/opt/coldfusionmx/db";
> >>>> 8 final static String jdbcDriver =
> >>>> "com.pointbase.jdbc.jdbcUniversalDriver";
> >>>> 9 final static String username =
> >> "PBPUBLIC";
> >>>> 10 final static String password =
> >> "PBPUBLIC";
> >>>>
> >>>> 11 public static void
> >> main(java.lang.String[]
> >>>> args) {
> >>>>
> >>>> 12 System.out.println("--- Database
> >> Viewer
> >>>> ---");
> >>>> 13
> >>>> 14 try {
> >>>> 15 Class.forName(jdbcDriver);
> >>>> 16 Connection con =
> >>>> DriverManager.getConnection(jdbcURL,
> >>>> username, password);
> >>>>
> >>>> 17 DatabaseMetaData dbmd =
> >>>> con.getMetaData( );
> >>>>
> >>>> 18 System.out.println("Driver Name:
> "
> >> +
> >>>> dbmd.getDriverName( ));
> >>>> 19 System.out.println("Database
> >> Product:
> >>>> " +
> >>>> dbmd.getDatabaseProductName( ));
> >>>> 20 System.out.println("Database
> >> Version:
> >>>> " +
> >>>> dbmd.getDatabaseProductVersion( ));
> >>>> 21 System.out.println("SQL Keywords
> >>>> Supported:");
> >>>> 22 //StringTokenizer st = new
> >>>> StringTokenizer(dbmd.getSQLKeywords( ),
> >> ",");
> >>>> 23 //while(st.hasMoreTokens( ))
> >>>> 24 // System.out.println(" " +
> >>>> st.nextToken( ));
> >>>> 25
> >>>> 26 // Get a ResultSet that contains
> >> all
> >>>> of the tables in this
> >>>> database
> >>>> 27 // We specify a table_type of
> >> "TABLE"
> >>>> to prevent seeing system
> >>>> tables,
> >>>> 28 // views and so forth
> >>>> 29 String[] tableTypes = { "TABLE"
> };
> >>>> 30 ResultSet allTables =
> >>>> dbmd.getTables(null,null,null,tableTypes);
> >>>> 31 while(allTables.next( )) {
> >>>> 32 String table_name =
> >>>> allTables.getString("TABLE_NAME");
> >>>> 33 System.out.println("Table Name:
> "
> >> +
> >>>> table_name);
> >>>> 34 System.out.println("Table Type:
> >> " +
> >>>>
> >>>> allTables.getString("TABLE_TYPE"));
> >>>> 35 System.out.println("Indexes:
> ");
> >>>>
> >>>> 36 // Get a list of all the
> columns
> >> for
> >>>> this table
> >>>> 37 ResultSet columnList =
> >>>> 38
> >>>>
> dbmd.getColumns(null,null,table_name,null);
> >>>> 39 while(columnList.next( )) {
> >>>> 40 System.out.println(" Column
> >> Name:
> >>>>
> >>>> "+columnList.getString("COLUMN_NAME"));
> >>>> 41 }
> >>>> 42 columnList.close( );
> >>>>
> >>>> 43 // Get a list of all the
> indexes
> >> for
> >>>> this table
> >>>> 44 ResultSet indexList =
> >>>> 45
> >>>>
> >>
> dbmd.getIndexInfo(null,null,table_name,false,false);
> >>>> 46 while(indexList.next( )) {
> >>>> 47 System.out.println(" Index
> >> Name:
> >>>> "+indexList.getString("INDEX_NAME"));
> >>>> 48 System.out.println(" Column
> >> Name:
> >>>>
> >>>> "+indexList.getString("COLUMN_NAME"));
> >>>> 49 }
> >>>> 50 indexList.close( );
> >>>> 51 }
> >>>>
> >>>> 52 allTables.close( );
> >>>> 53 con.close( );
> >>>> 54 }
> >>>> 55 catch (ClassNotFoundException e) {
> >>>> 56 System.out.println("Unable to
> load
> >>>> database driver class");
> >>>> 57 }
> >>>> 58 catch (SQLException e) {
> >>>> 59 System.out.println("SQL
> Exception:
> >> " +
> >>>> e.getMessage( ));
> >>>> 60 }
> >>>> 61 }
> >>>> 62 }
> >>>>
> >>>>
> >>>> On Monday, November 25, 2002, at 08:42 AM,
> >> Joe
> >>>> Eugene wrote:
> >>>>
> >>>>> Dick,
> >>>>> Can we see your code? Cant you have a
> >> method
> >>>> that converts CF String
> >>>>> "null" to
> >>>>> Java String=null?
> >>>>>
> >>>>>> tried to invoke it with cfobject. We
> >> could
> >>>> not
> >>>>>> make the interface work
> >>>>>> because we could not pass Nulls between
> CF
> >>>> and
> >>>>>> Java.
> >>>>>
> >>>>> Here is an example
> >>>>>
> >>>>> public class StringType{
> >>>>> private String str;
> >>>>> public String getString(String s){
> >>>>> String val="";
> >>>>> str=s;
> >>>>> if(str.equals("null")){
> >>>>> val="Your String was null, setting to
> >> null
> >>>> now";
> >>>>> str = null;
> >>>>> val= val+ " " +"Now Java value is : "+
> >> str
> >>>> +"";
> >>>>> }
> >>>>> return val;
> >>>>> }
> >>>>> }
> >>>>>
> >>>>> You can invoke it with
> >>>>> type="JAVA">
> >>>>>
> >>>>> #chkNull.getString("null")#
> >>>>>
> >>>>>
> >>>>> if you can post your code, we can try
> >> figure
> >>>> it out. Let me know.
> >>>>>
> >>>>> Joe
> >>>>>
> >>>>> On Mon, 25 Nov 2002 06:54:03 -0800 Dick
> >>>> Applebaum
> >>>>> wrote:
> >>>>>
> >>>>>> On Monday, November 25, 2002, at 01:43
> AM,
> >>>>>> Jochem van Dieten wrote:
> >>>>>>
> >>>>>>> Quoting Dave Carabetta :
> >>>>>>>>
> >>>>>>>> While I understand this isn't a
> feature
> >>>> that
> >>>>>> everybody would use, I
> >>>>>>>> would personally like to see MM focus
> on
> >>>>>> encapsulating some more Java
> >>>>>>>> features into easy-to-use black-box CF
> >>>> tags
> >>>>>> rather than having to code
> >>>>>>>> my own Java.
> >>>>>>>
> >>>>>>> I agree. For instance, it would be far
> >>>> better
> >>>>>> if CF had a tag to get at
> >>>>>>> the DatabaseMetaData interface instead
> of
> >>>>>> making it marginally easier
> >>>>>>> to
> >>>>>>> write it yourself by allowing inline
> >> Java.
> >>>>>>
> >>>>>> This is an excellent example & I expect
> >> that
> >>>>>> this will be one of the
> >>>>>> most-requested capabilities -- to be
> able
> >> to
> >>>>>> get DatabaseMetaData into
> >>>>>> CF. I tried to do this, with help from
> >> Sean
> >>>>>> Corfield -- without
> >>>>>> success. I found a working Java program
> >> that
> >>>>>> extracts metadata, and
> >>>>>> tried to invoke it with cfobject. We
> >> could
> >>>> not
> >>>>>> make the interface work
> >>>>>> because we could not pass Nulls between
> CF
> >>>> and
> >>>>>> Java.
> >>>>>>
> >>>>>> This is for a general-purpose developer
> >>>> utility
> >>>>>> that I use to
> >>>>>> manipulate databases. It is especially
> >>>> useful
> >>>>>> on remote (shared) sites
> >>>>>> where you don't have administrative
> >>>>>> privileges.
> >>>>>>
> >>>>>> I have been doing this a long time with
> CF
> >>>> 4.5
> >>>>>> and CF 5 on win
> >>>>>> platforms using cfobject to manipulate
> COM
> >>>>>> objects.
> >>>>>>
> >>>>>> But, I would like to be able to do the
> >> same
> >>>>>> thing with CFMX on
> >>>>>> non-windows platforms.
> >>>>>>
> >>>>>> Here's the difficulty:
> >>>>>>
> >>>>>> With CFMX:
> >>>>>>
> >>>>>> I can get at the equivalent of
> >>>> DatabaseMetaData
> >>>>>> on a remote windows
> >>>>>> box, using cfobject and COM objects.
> >>>>>>
> >>>>>> But, I can't get at the DatabaseMetaData
> >> on
> >>>> my
> >>>>>> local Unix (Mac OS X)
> >>>>>> developer machine -- you can't use COM
> >>>> objects
> >>>>>> and can't pass the Nulls
> >>>>>> to the Java program that gets the
> >>>>>> DatabaseMetaData.
> >>>>>>
> >>>>>> I suppose there is a way to circumvent
> the
> >>>> need
> >>>>>> to pass Nulls between
> >>>>>> CF and Java, but I have not had time to
> >>>>>> investigate this.
> >>>>>>
> >>>>>>> And especially from the point of view
> of
> >>>>>> security built-in tags are
> >>>>>>> better. All those JSP tags and Java
> >> classes
> >>>>>> are nice, but on a shared
> >>>>>>> server you need to disable them anyway
> >>>>>> because the same mechanism that
> >>>>>>> is used to access them can be used to
> >> break
> >>>>>> out of the sandbox.
> >>>>>>>
> >>>>>>
> >>>>>> Is this true for CFMXJ2ee on JRun,
> >> Websphere
> >>>> or
> >>>>>> whatever?
> >>>>>>
> >>>>>> I thought that one of the advantages of
> >>>>>> CFMXJ2ee on a J2ee-compliant
> >>>>>> app server, is the ability to
> interoperate
> >>>>>> between CF and Java programs.
> >>>>>>
> >>>>>> Will this be possible with Java access
> >>>>>> disabled?
> >>>>>>
> >>>>>> For the DatabaseMetaData example, I
> would
> >>>>>> prefer the CF tag approach.
> >>>>>>
> >>>>>> But, I still think it is valid to use
> >> Java,
> >>>>>> where warranted, on a
> >>>>>> developer machine.
> >>>>>>
> >>>>>>
> >>>>>> Dick
> >>>>>>
> >>>>>>
> >>>>>>> Jochem
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Signup for the Fusion Authority news alert and keep up with the latest news in
ColdFusion and related topics. http://www.fusionauthority.com/signup.cfm