<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Pet Catalog - Java EE 6 Sample Application</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <meta name="description" content="A complete Java EE 6 sample application that demonstrates the usage of
        JavaServer Faces 2.0 and the Java Persistence API.">
        <link rel="stylesheet" type="text/css" href="../../netbeans.css" media="screen">
        <link rel="stylesheet" type="text/css" href="../netbeans_sample.css" media="screen">
    </head>
    <body>
        <h1>Get Inspired. Get Started.</h1>

        <table class="b-none" width="100%">
            <tr class="valign-top">
                <td>

                    <!-- +++++ Add Sample Description and Image +++++ -->
                    <div id="sampledesc">
                        <h2>Pet Catalog - Java EE 6 Sample Application</h2>

                        <div id="samplethumb">
                            <img src="../../images_www/sample-catalog/pet-catalog-thumb.gif" alt="Pet Catalog logo" align="top">
                        </div>

                        <p>The Pet Catalog application is a Java EE 6 sample that demonstrates usage of
                            JavaServer Faces 2.0 and the Java Persistence API. It also demonstrates
                            interoperability between GlassFish and MySQL.</p>

                        <p>The Java EE 6 Pet Catalog tutorial can be found at:
                            <br>
                            <a href="http://weblogs.java.net/blog/caroljmcdonald/archive/2009/08/java_ee_6_pet_c.html">http://weblogs.java.net/blog/caroljmcdonald/archive/2009/08/java_ee_6_pet_c.html</a>.</p>

                        <p>Detailed setup instructions are provided at:
                            <br>
                            <a href="pet-catalog-setup.html">https://netbeans.org/kb/samples/pet-catalog-setup.html</a>.</p>
                    </div>

                    <br style="clear:both;">

                    <div style="float:left;width:45%;">
                        <h3><b>Get NetBeans IDE</b></h3>
                        <br>
                        <a href="../../downloads/index.html">
                            <img src="../../images_www/v5/download-nb-button3.gif" alt="Download NetBeans" class="align-left b-none" height="27" width="165" style="margin:4px 10px 4px 0;clear:right;">
                        </a>
                        <br style="clear:both;">
                        <br>
                        <p class="orange font-13">NetBeans IDE 6.9, 7.0, 7.1, 7.2, Java EE bundle</p>
                    </div>

                    <!-- +++++  Add Sample Location Here +++++ -->
                    <div style="float:right;width:45%;">
                        <h3><b>Get the Sample</b></h3>

                        <br style="clear:both;">
                        <p><img src="../../images_www/v4/arr_r3.gif" alt="arrow"> This sample is included in the Java EE bundle of the NetBeans IDE</p>
                        <p><img src="../../images_www/v4/arr_r3.gif" alt="arrow"> Choose: File &gt; New Project &gt; Samples &gt; Java Web &gt; Pet Catalog (Java EE 6)</p>
                    </div>
                    <br style="clear:both;">

                    <div class="b-top"><br>
                        <img src="../../images_www/sample-catalog/update-center.png" alt="Download NetBeans" class="align-left b-none"  height="32" width="32">

                        <h3><b>NetBeans Update Center</b></h3>

                        <br>
                        <p>The Update Center is your source for accessing the latest samples
                            highlighting emerging technologies, plug-ins from NetBeans and our
                            partners, and patches to make sure your IDE is running smoothly. As
                            fast as we make it, we'll ship it to you via the Update Center.</p>

                        <p><b>Start now by having the latest Top 5 samples delivered directly to your IDE.</b></p>

                        <br>
                        <div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Scrum%20Toys%20-%20JSF%202.0%20Sample">Send Feedback on This Tutorial</a></div>
                    </div>
                </td>
                <td style="padding: 25px 0px 0px 20px;" width="170" class="b-left">
                    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="400" width="154">
                        <script type="text/javascript">
                            document.write('<param name="movie" value="../../images_www/sample-catalog/menu.swf'+window.location.search+'" />');
                        </script>
                        <param name="quality" value="best" />
                        <param name="play" value="true" />
                        <script type="text/javascript">
                            document.write('<embed height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="../../images_www/sample-catalog/menu.swf'+window.location.search+'" type="application/x-shockwave-flash" width="154" quality="best" play="true">');
                        </script>
<!--                        </embed>-->
                    </object>
                    <p class="align-center"><small><a href="master-index.html">View all samples</a></small></p>
                </td>
            </tr>

        </table>
    </body>
</html>