SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Leveraging ColdFusion to build Java-EE applications
      Mike Nimer| Solution Architect at Universal Mind
      Elishia Dvorak | Solution Consultant at Adobe




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
What is ColdFusion

       High level Java Application
       Both a language (CFML) and a web application platform (server)
       Provides seamless integration with existing Java applications.


       Available since 1995
             Reliable and mature, extensive feature set
             165+ JSP tags
             Hundreds of functions
             CF was ported from C++ to Java between CF5 and CF6

       Provides necessary services
             .Net integration, PDF generation, Image manipulation, etc…

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Using ColdFusion (in Java)

        Use CFCProxy to treat CF like a large library and invoke
         ColdFusion tags and functions inside your java
         classes/servlets. (New in CF10)

        Use ColdFusion as the "View" layer in an existing Java
         Framework, such as Spring MVC.




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ColdFusion Parts

       .CFM Page “is like a” JSP Page
       .CFC File “is like a” Java Class / POJO
       Compiler
       CFMServlet
              Filters
       Extra Servlets
              REST support
              Flex Integration
              RDS (IDE integration)
              etc.
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why ColdFusion (for Java developers)

        PDF Integration                                                         Event Gateways
              CFDOCUMENT
                                                                                     SMS / IM Gateway
                                                                                 Email
              CFPDF
                                                                                     CFMAIL (2million / hr)
        Virtual File System                                                         CFExchange
              In Memory, S3, ZIP, etc.                                              CFPOP/CFIMAP
        Query of Query                                                          CFPresentation
                                                                                 .NET integration
        Encryption
                                                                                 CFDUMP
              RSA B-Safe Crypto-J library                                       and more..
        OEM features




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
CFCProxy

  String cfcPath =
     req.getRealPath("/demos-inf/components/" +
  "cfExample.cfc");


  CFCProxy myCFC = new CFCProxy(cfcPath, false);


  Object[] myArgs = {img};


  Object cfcResult =
             myCFC.invoke("convertImage", myArgs);




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
CFCPROXY Demos

        Query-of-Query

        Html to PDF

        PDF Forms

        Dynamic Presentation Creation

        Excel Integration

        Image Manipulation




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ColdFusion Classloader & CFCProxy

       CFCProxy & the CF ClassLoader


  <servlet>
         <servlet-name>myServlet</servlet-name>
      <servlet-
  class>coldfusion.bootstrap.BootstrapServlet</servlet-class>
         <init-param>
             <param-name>servlet.class</param-name>
             <param-value>com.mikenimer.MyServlet</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
  </servlet>

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
SpringMVC

        MVC Java Framework

        Clear separation of roles - Controllers, models, view helpers,
         filters, Interceptors, validation, etc.

        View Helpers support multiple output formats from the same
         url


        return Web page to browser

        return JSON to IPhone version of site

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
SpringMVC

        Why ColdFusion instead of JSP?
              CFTAGS feel right around HTML

              Raw power available in CF

              JSP Tags work in CF Pages too




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
SpringMVC "palladium" ViewHelper

       Palladium will put the “model” properties into the ColdFusion
        request scope.

       Palladium allows you to pass Spring beans into ColdFusion.
        #request.palladium.beans.<name>#


       Palladium can auto convert java objects into CF Friendly types
        (default is off)

       Collections into CF Array (Vector)

       Convert NULL into default “”
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Demo




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
SpringMVC "palladium" Config

  <bean class="org.springframework.
  web.servlet.view.InternalResourceViewResolver">
  <property
           name="viewClass”
  value="com.mikenimer.palladium.spring.mvc.views.ColdFusionView"
  />


  <property
           name="prefix"
                     value="/kitchensink-inf/views/propertytest-views/" />
  <property
                     name="suffix" value=".cfm" />
  </bean>

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Useful Links

       ColdFusion
              http://www.adobe.com/products/coldfusion-family.html

       Palladium project
              https://github.com/mnimer/palladium


       Blog: "ColdFusion (libraries) for Java Developers"
              http://www.mikenimer.com/?p=857

       Twitter
              @mnimer
              @elishdvorak

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Questions?


© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Más contenido relacionado

Destacado

The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
jaxconf
 

Destacado (9)

Future of the Web - Yehuda Katz
Future of the Web - Yehuda KatzFuture of the Web - Yehuda Katz
Future of the Web - Yehuda Katz
 
The Spring 4 Update - Josh Long
The Spring 4 Update - Josh LongThe Spring 4 Update - Josh Long
The Spring 4 Update - Josh Long
 
Multi Client Development with Spring - Josh Long
Multi Client Development with Spring - Josh Long Multi Client Development with Spring - Josh Long
Multi Client Development with Spring - Josh Long
 
What you need to know about Lambdas - Jamie Allen
What you need to know about Lambdas - Jamie AllenWhat you need to know about Lambdas - Jamie Allen
What you need to know about Lambdas - Jamie Allen
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
 
Building an Impenetrable ZooKeeper - Kathleen Ting
Building an Impenetrable ZooKeeper - Kathleen TingBuilding an Impenetrable ZooKeeper - Kathleen Ting
Building an Impenetrable ZooKeeper - Kathleen Ting
 
Java PaaS Comparisons - Khanderao Kand
Java PaaS Comparisons - Khanderao KandJava PaaS Comparisons - Khanderao Kand
Java PaaS Comparisons - Khanderao Kand
 
Apache Hadoop and its role in Big Data architecture - Himanshu Bari
Apache Hadoop and its role in Big Data architecture - Himanshu BariApache Hadoop and its role in Big Data architecture - Himanshu Bari
Apache Hadoop and its role in Big Data architecture - Himanshu Bari
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Último (20)

THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 

Leveraging ColdFusion to Build Java-EE Applications: Elishia Dvorak

  • 1. Leveraging ColdFusion to build Java-EE applications Mike Nimer| Solution Architect at Universal Mind Elishia Dvorak | Solution Consultant at Adobe © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 2. What is ColdFusion  High level Java Application  Both a language (CFML) and a web application platform (server)  Provides seamless integration with existing Java applications.  Available since 1995  Reliable and mature, extensive feature set  165+ JSP tags  Hundreds of functions  CF was ported from C++ to Java between CF5 and CF6  Provides necessary services  .Net integration, PDF generation, Image manipulation, etc… © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 3. Using ColdFusion (in Java)  Use CFCProxy to treat CF like a large library and invoke ColdFusion tags and functions inside your java classes/servlets. (New in CF10)  Use ColdFusion as the "View" layer in an existing Java Framework, such as Spring MVC. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 4. ColdFusion Parts  .CFM Page “is like a” JSP Page  .CFC File “is like a” Java Class / POJO  Compiler  CFMServlet  Filters  Extra Servlets  REST support  Flex Integration  RDS (IDE integration)  etc. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 5. Why ColdFusion (for Java developers)  PDF Integration  Event Gateways  CFDOCUMENT  SMS / IM Gateway  Email  CFPDF  CFMAIL (2million / hr)  Virtual File System  CFExchange  In Memory, S3, ZIP, etc.  CFPOP/CFIMAP  Query of Query  CFPresentation  .NET integration  Encryption  CFDUMP  RSA B-Safe Crypto-J library  and more..  OEM features © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 6. CFCProxy String cfcPath = req.getRealPath("/demos-inf/components/" + "cfExample.cfc"); CFCProxy myCFC = new CFCProxy(cfcPath, false); Object[] myArgs = {img}; Object cfcResult = myCFC.invoke("convertImage", myArgs); © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 7. CFCPROXY Demos  Query-of-Query  Html to PDF  PDF Forms  Dynamic Presentation Creation  Excel Integration  Image Manipulation © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 8. ColdFusion Classloader & CFCProxy  CFCProxy & the CF ClassLoader <servlet>    <servlet-name>myServlet</servlet-name>    <servlet- class>coldfusion.bootstrap.BootstrapServlet</servlet-class>    <init-param>        <param-name>servlet.class</param-name>        <param-value>com.mikenimer.MyServlet</param-value>    </init-param>    <load-on-startup>1</load-on-startup> </servlet> © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 9. SpringMVC  MVC Java Framework  Clear separation of roles - Controllers, models, view helpers, filters, Interceptors, validation, etc.  View Helpers support multiple output formats from the same url  return Web page to browser  return JSON to IPhone version of site © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 10. SpringMVC  Why ColdFusion instead of JSP?  CFTAGS feel right around HTML  Raw power available in CF  JSP Tags work in CF Pages too © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 11. SpringMVC "palladium" ViewHelper  Palladium will put the “model” properties into the ColdFusion request scope.  Palladium allows you to pass Spring beans into ColdFusion. #request.palladium.beans.<name>#  Palladium can auto convert java objects into CF Friendly types (default is off)  Collections into CF Array (Vector)  Convert NULL into default “” © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 12. Demo © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 13. SpringMVC "palladium" Config <bean class="org.springframework. web.servlet.view.InternalResourceViewResolver"> <property name="viewClass” value="com.mikenimer.palladium.spring.mvc.views.ColdFusionView" /> <property name="prefix"     value="/kitchensink-inf/views/propertytest-views/" /> <property     name="suffix" value=".cfm" /> </bean> © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 14. Useful Links  ColdFusion  http://www.adobe.com/products/coldfusion-family.html  Palladium project  https://github.com/mnimer/palladium  Blog: "ColdFusion (libraries) for Java Developers"  http://www.mikenimer.com/?p=857  Twitter  @mnimer  @elishdvorak © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 15. Questions? © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.