<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3471045611424691939</id><updated>2011-11-27T18:00:59.969-07:00</updated><title type='text'>Gesker's SysAdmin and Java Blog</title><subtitle type='html'>System Administration, Java &amp;amp; Misc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-8270267644181118357</id><published>2011-04-18T09:03:00.000-06:00</published><updated>2011-04-18T09:03:22.954-06:00</updated><title type='text'>DD-WRT and StrongVPN</title><content type='html'>&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;In February of 2011 I was assigned by the &lt;a href="http://www.state.gov/"&gt;Department of State&lt;/a&gt; to serve at the &lt;a href="http://italy.usembassy.gov/"&gt;U.S. Embassy in Rome Italy&lt;/a&gt;. Transitioning from the US to Italy was a big step for me and my family. I learned quickly that moving to a city abroad is very different from visiting a city. Everything, even brands to which one is accustomed, seems just a little bit different. And, while Rome is certainly a beautiful and historic city it wasn’t long before we yearned for familiar items from home. My hope had been that once we had our internet service installed that at least we would be able to easily access websites (banking, entertainment, etc.) with which we were familiar.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;This, however, wasn’t the case. Many of the sites we wished to access were denied to us because our IP address was identified as being located outside of the US. This was a disappointment when we tried to access websites like &lt;a href="http://www.netflix.com/"&gt;Netflix&lt;/a&gt; or &lt;a href="http://www.hulu.com/"&gt;Hulu&lt;/a&gt; and truly frustrating when trying to access financial sites which house our bank and retirement accounts.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;The solution was to make use of a VPN service. We chose &lt;a href="http://www.strongvpn.com/"&gt;StrongVPN&lt;/a&gt;’s PPTP service. &lt;a href="http://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol"&gt;PPTP stands for point to point tunneling protocol.&lt;/a&gt; Essentially this service allows us to connect and send all of our incoming and outgoing traffic via StrongVPN’s servers which are located in the US. For all practical purposes even though we are physically located and connected to the Internet in Europe we appear on the Internet “AS-IF” we were directly connected to the internet at a physical location in New York.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;The tunnel service worked great and we were soon able to connect to the US based websites and services we desired. We were banking again! Surprisingly, even sites that streamed video worked well. We had low hopes for sites that streamed lots of video and graphical content especially sites that hosted games enjoyed by our children. We anticipated latency with these sites but experienced very little trouble.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;So while we were a one computer family all was well. Then, our things arrived from the US. We now had several laptops and gaming consoles all of which were much more useful and capable when identified as being connected directly to the Internet in the US. On most of these devices it wasn’t practical (the PCs) to use the same StrongVPN account. One would have to drop off of the VPN service/tunnel on one PC so that another PC could connect. On some of our devices (game consoles) it didn’t appear as if they could be configured to use the PPTP protocol/service. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Fortunately, one of the devices that arrived from the US was our Cisco/Linksys wireless router. The idea was simple… connect the router to our local ISP and configure it to connect to StrongVPN’s service. In turn connect all of our local devices to the router.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt; text-align: justify;"&gt;&lt;span style="font-family: Calibri;"&gt;House Hold Devices &lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;ß&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;à&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt; Cisco/Linksys Router &lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;ß&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;à&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;ISP (PPTP) &lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;ß&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt; &lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;à&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt; StrongVPN’s Servers&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;(Even without the use of StrongVPN’s PPTP service this was desired as the power output of the Wi-Fi router supplied by the local ISP wasn’t powerful enough to cover the entirety of our apartment.)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;This plan quickly came to a halt as the Cisco/Linksys router (model wrt320n) was not able to be configured in a fashion as to be able to use the PPTP protocol. Also, the router didn’t seem to be able to bridge the devices I connected to the network required and pre-configured by the modem/router provided by the ISP. I could connect devices to the router, of course, but was unable to route traffic from the private IP address block of the router across the SAME private IP address block enforced by the ISP’s modem/router. StrongVPN’s support site pointed to a solution.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;The solution offered was to upgrade the firmware on my router to a firmware package other than that preinstalled on the router by the manufacturer!&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;At first thought I was weary of this solution. I was concerned that I would be unable to restore the unit to factory condition if the non-OEM software didn’t work at expected. Or, even worse, that I would damage the router hardware and would be stuck with a dead piece of electronics.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Before going this route I decided to&amp;nbsp;check the manufacturer’s website and upgrade the firmware to their latest release in the hope that the latest version of the firmware (1.0.0.4 in this case) would have included in it a feature set that would allow me to configure my network to take advantage of the PPTP protocol and StrongVPN’s service. The router upgrade to the latest OEM firmware went fine but the feature set of the software was pretty much the same as the software that came preinstalled on the router. So, I decided to take a calculated risk and install the non-OEM software.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;The non-OEM software was &lt;a href="http://en.wikipedia.org/wiki/DD-WRT"&gt;dd-wrt&lt;/a&gt; found at &lt;/span&gt;&lt;a href="http://www.dd-wrt.com/"&gt;&lt;span style="color: purple; font-family: Calibri;"&gt;http://www.dd-wrt.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri;"&gt;. Dd-wrt is a Linux based open source firmware package that was written to run on a number of different router hardware devices. The package seems mature and seems to provide a great deal of functionality. I downloaded the most recent copy of the software from &lt;/span&gt;&lt;a href="ftp://ftp.dd-wrt.com/"&gt;&lt;span style="color: purple; font-family: Calibri;"&gt;ftp://ftp.dd-wrt.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri;"&gt; and loaded the image for my particular model router into my router device. A few minutes and a reboot of the router and I had a brand new and much more capable software package&amp;nbsp;along with a neww&amp;nbsp;user interface on my old router.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;From the main setup screen I was able to setup PPTP as the main WAN connection and enter all the information needed to successfully connect to StrongVPN’s servers in New York. All of my house hold devices were able to connect to the router using its new software without a hitch. Now, by way of this router, all of my devices are using StrongVPN’s service at the same time without any extra configuration.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;StrongVPN’s website offered good documentation on getting a dd-wrt router working with their service. There was also good general documentation on the dd-wrt software found at &lt;a href="http://www.dd-wrt.com/"&gt;dd-wrt.com&lt;/a&gt;. &lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;The hour or two it took to get this solution working has been well worth it. And, having access to our favorite US based websites help to make Rome seem a little bit more like home.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;In conclusion, if you are living and working as an expatriate and need access to otherwise blocked US based websites and services give the StrongVPN&amp;nbsp;(along with the&amp;nbsp;dd-wrt router software)&amp;nbsp;solution some serious consideration. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-8270267644181118357?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.dd-wrt.com' title='DD-WRT and StrongVPN'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/8270267644181118357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=8270267644181118357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8270267644181118357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8270267644181118357'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2011/04/dd-wrt-and-strongvpn.html' title='DD-WRT and StrongVPN'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-7597916795063178598</id><published>2010-06-22T11:18:00.001-06:00</published><updated>2010-06-22T11:21:55.207-06:00</updated><title type='text'>"Glassfish Security" by Masoud Kalali</title><content type='html'>"GlassFish Security" by Masoud Kalali lives up to the motto printed on its cover -- “Community Experience Distilled.”&lt;br /&gt;&lt;br /&gt;The book is efficient, has a clean layout and contains a logical progression of current JAVA EE and GlassFish Specific security topics.&amp;nbsp; Mercifully, the author avoids the conversational “filler” found in many books which cover IT related topics resulting in heavy tomes where one must hunt for information that is relevant.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first chapter is useful in that it quickly defines the terms and describes the concepts that either a developer or administrator will require in understanding how to secure an application that is targeted toward the GlassFish application server. Also, the author made a good choice in using a jdbc realm as his first realm example. Directory Services are becoming more popular but there are many of us who are still developing applications where our authentication schemes will be supported by groups and roles already defined in our company’s or customer’s existing database systems. That being said Mr. Kalali furnishes us with a fine chapter on the OpenDS directory server for those of us that would like to get started with an LDAP v3 directory server often used to store this kind of hierarchical user/role information. The book also covers more advanced topics relevant to larger organizations and applications including Single Source Sign.&lt;br /&gt;&lt;br /&gt;The work produced by Mr. Kalali has benefited by the time and attention of the editors at Packet publishing. “GlassFish Security” is a pleasant physical product. The book is well formatted, well bound and its use of fonts and screen shots is clear and consistent. Formatting that is "easy on the eyes" is, for someone who spends many hours looking and computer screens and reading programming and systems manuals, something that is appreciated in a book of this kind. Packt has done a nice job on this aspect of the product. Excellent layout and formatting appears to be a signature of several recent Packt titles. Keep up the good work Packt!&lt;br /&gt;&lt;br /&gt;Long gone are the days when developers can generate software applications without consideration of the application’s security. If you are developing Java EE 6 applications, or are responsible for the administration of applications that resides in the GlassFish application server, “GlassFish Security” should be included in your project reference material.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-7597916795063178598?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://www.packtpub.com/glassfish-security-with-java-ee/book' title='&quot;Glassfish Security&quot; by Masoud Kalali'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/7597916795063178598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=7597916795063178598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7597916795063178598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7597916795063178598'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2010/06/glassfish-security-by-masoud-kalali.html' title='&quot;Glassfish Security&quot; by Masoud Kalali'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-3010288795318588826</id><published>2010-02-12T20:43:00.000-07:00</published><updated>2010-02-12T20:43:03.982-07:00</updated><title type='text'>PostgreSQL 8.4 on Ubuntu 9.10 (Karmic)</title><content type='html'>Getting PostgreSQL installed on Ubuntu is pretty straight forward as standard .deb packages already exist for the db in Ubuntu's repository system. However beyond getting the package installed there are a couple of configuration steps that are required to complete the basic configuration of the PostgreSQL Db System.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install the DB and associated packages&lt;/li&gt;&lt;li&gt;Reset the default postgres db password&lt;/li&gt;&lt;li&gt;Reset the default postgres system password&lt;/li&gt;&lt;li&gt;Backup/Edit the postgresql.conf file&lt;/li&gt;&lt;li&gt;Backup/Edit the pg_hba.conf file&lt;/li&gt;&lt;li&gt;Restart the Db &lt;/li&gt;&lt;li&gt;Create a new db user and new database&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Install the DB and associated packages&lt;/b&gt;&lt;br /&gt;The database and any prerequisite packages:&lt;br /&gt;&lt;br /&gt;aptitude update&lt;br /&gt;aptitude install postgresql postgresql-doc pgadmin3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reset the default postgres db password&lt;/b&gt;&lt;br /&gt;Reset the default password for DATABASE ACCOUNT postgres:&lt;br /&gt;&lt;br /&gt;sudo su postgres -c psql template1&lt;br /&gt;postgres=# ALTER USER postgres WITH PASSWORD 'YourNewPasswordForTheDb';&lt;br /&gt;postgres=# \q&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reset the default postgres system password&lt;/b&gt;&lt;br /&gt;Reset the default password for SYSTEM ACCOUNT postgres:&lt;br /&gt;&lt;br /&gt;sudo passwd -d postgres&lt;br /&gt;sudo su postgres -c passwd&lt;br /&gt;When prompted enter YourNewPasswordForTheDb as the password for the SYSTEM account postgress&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Backup/Edit the postgresql.conf file&lt;/b&gt;&lt;br /&gt;cd /etc/postgresql/8.4/main&lt;br /&gt;cp postgresql.conf postgresql.conf.orig (back up this file -- just in case)&lt;br /&gt;vi postgresql.conf (edit this file)&lt;br /&gt;&lt;br /&gt;Find the line that reads:&lt;br /&gt;#listen_addresses = ‘localhost’&lt;br /&gt;Change to:&lt;br /&gt;listen_addresses = ‘*’&lt;br /&gt;&lt;br /&gt;Find the line that reads:&lt;br /&gt;#password_encryption = on&lt;br /&gt;Change to:&lt;br /&gt;password_encryption = on&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Backup/Edit the pg_hba.conf file&lt;/b&gt;&lt;br /&gt;cp pg_hba.conf pg_hba.conf.orig (back up this file -- just in case)&lt;br /&gt;vi pg_hba.conf (edit this file)&lt;br /&gt;&lt;br /&gt;Find the line that reads:&lt;br /&gt;local&amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;ident&lt;br /&gt;Change to:&lt;br /&gt;local&amp;nbsp;&amp;nbsp; all&amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;md5&lt;br /&gt;&lt;br /&gt;Confirm that there is a line that reads:&lt;br /&gt;host&amp;nbsp;&amp;nbsp;&amp;nbsp; all&amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;127.0.0.1/32&amp;nbsp;&amp;nbsp; &amp;nbsp;md5&lt;br /&gt;&lt;br /&gt;Confirm that there is a line that reads:&lt;br /&gt;host&amp;nbsp;&amp;nbsp;&amp;nbsp; all&amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;::1/128&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;md5&lt;br /&gt;&lt;br /&gt;Add the line:&lt;br /&gt;host &amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;all&amp;nbsp;&amp;nbsp; &amp;nbsp;192.168.1.0/24&amp;nbsp;&amp;nbsp; &amp;nbsp;md5&lt;br /&gt;(Adjust the above line you have a different ip scheme on your LAN)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Restart the Db&lt;/b&gt;&lt;br /&gt;/etc/init.d/postgresql-8.4 restart&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Create a new db user and new database&lt;/b&gt;&lt;br /&gt;sudo -u postgres createuser -D -A -P newdbuser&lt;br /&gt;sudo -u postgres createdb -O newdbuser newdb&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-3010288795318588826?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.postgresql.org/' title='PostgreSQL 8.4 on Ubuntu 9.10 (Karmic)'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/3010288795318588826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=3010288795318588826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3010288795318588826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3010288795318588826'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2010/02/postgresql-84-on-ubuntu-910-karmic.html' title='PostgreSQL 8.4 on Ubuntu 9.10 (Karmic)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-456408596336867017</id><published>2010-02-12T16:45:00.001-07:00</published><updated>2010-02-12T16:49:29.906-07:00</updated><title type='text'>Glassfish V3 on Ubuntu 9.10 (Karmic)</title><content type='html'>&lt;div style="font-family: inherit;"&gt;&lt;code&gt; &lt;/code&gt; &lt;/div&gt;&lt;div style="font-family: inherit;"&gt;A quick recipe for installing Glassfish V3 into /opt on Ubuntu:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# sudo -s&lt;br /&gt;# aptitude update&lt;br /&gt;# aptitude install sun-java6-jdk wget unzip&lt;br /&gt;# cd /opt&lt;br /&gt;# wget http://download.java.net/glassfish/v3/release/glassfish-v3.zip&lt;br /&gt;# unzip glassfish-v3.zip&lt;br /&gt;# useradd --system glassfish -d /opt/glassfishv3&lt;br /&gt;# sudo chgrp -R admin /opt/glassfishv3-prelude&amp;nbsp; &lt;br /&gt;# sudo chown -R glassfish /opt/glassfishv3-prelude&lt;br /&gt;# sudo chmod -R +x /opt/glassfishv3/bin/ &lt;br /&gt;# sudo chmod -R +x /opt/glassfishv3/glassfish/bin/&lt;br /&gt;# /opt/glassfishv3/bin/asadmin start-domain domain1&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;There doesn't seem to be an init script included within the distribution zip.... so:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# vi /etc/init.d/glassfish&lt;/span&gt;&lt;/li&gt;&lt;li&gt;past the following into the file:&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#! /bin/sh &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GLASSFISHHOME=/opt/glassfishv3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case "$1" in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; start)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ${GLASSFISHHOME}/bin/asadmin start-domain domain1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ${GLASSFISHHOME}/bin/asadmin stop-domain domain1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; restart)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ${GLASSFISHHOME}/bin/asadmin stop-domain domain1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ${GLASSFISHHOME}/bin/asadmin start-domain domain1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $"usage: $0 {start|stop|restart}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; esac&lt;/span&gt; &lt;/blockquote&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;edit the file to suit and save&lt;/li&gt;&lt;li&gt;set permissions and use update-rc.d to ensure its run at system start/stop: &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;# chmod a+x /etc/init.d/glassfish&lt;br /&gt;# update-rc.d /etc/init.d/glassfish defaults &lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-456408596336867017?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://glassfish.dev.java.net' title='Glassfish V3 on Ubuntu 9.10 (Karmic)'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/456408596336867017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=456408596336867017' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/456408596336867017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/456408596336867017'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2010/02/glassfish-v3-on-ubuntu-910-karmic.html' title='Glassfish V3 on Ubuntu 9.10 (Karmic)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-4903378876351021810</id><published>2010-01-18T10:14:00.000-07:00</published><updated>2010-01-18T10:14:41.629-07:00</updated><title type='text'>"Glassfish Administration" by Xuekun Kou</title><content type='html'>"Glassfish Administration" by Xuekun Kou is accurate, concise and useful.&lt;br /&gt;&lt;br /&gt;Computer manuals comprise an odd segment of the publishing industry.&amp;nbsp; I suppose that this is because the books published in this segment generally have both a narrowly defined audience and scope and a short window of usefulness driven by the speed of evolution of the products they seek to address. This, sadly, seems to result in books of this kind falling into two general categories: Sparse works that cover little more than what the end user could have found in the product's install documentation or its included "readme" files and at the other extreme heavy tomes of dense material that make it difficult for the product end user to zero in on the essential information they require to address their immediate administration needs.&lt;br /&gt;&lt;br /&gt;So, when I had been invited to review "GlassFish Administration" from Packt I was predisposed to believe that Mr. Kou's book would suffer from the same flaws as so many other system administration books: too short to be of use to anyone but those who are brand new to the product or of use to someone interested in becoming an expert in all nuances of the product. "Glassfish Administration" deviates from this pattern. I was pleased to find that Mr. Kou had written a well balanced handbook for Glassfish that addressed much of what is essential for making good use of what I consider to be an excellent product.&lt;br /&gt;&lt;br /&gt;The book may also serve as a "bridge" manual for Glassfish development and production teams. This is to say that the book could be a useful tool to quickly get both your development teams and production teams to understand the platform and its capabilities from the same perspective with a minimum of fuss, regardless of where you project is in its development cycle. Many of us that use Glassfish are first exposed to the product as it is bundled with an IDE, typically Netbeans. What we find in Glassfish is a platform that, along with its associated development tools, is an excellent development platform that is &lt;span class="misspell" suggestions="Prue,pare,pore,prey,pure"&gt;pre&lt;/span&gt;-configured for a workstation environment in order to meet the needs of the developer. This is certainly a plus for the developer trying to get their code running but less than optimal for the administrator who will be responsible for the day to day "care and feeding" of the application as its deployed in the server stack. &lt;br /&gt;&lt;br /&gt;For example, Kou's discussion of the alternate releases (pure open source release vs. the commercially supported release ) of the application server along with illustrations their different abilities and behaviors in a production environment along with chapters like "Configuring Clusters and High Availability" are useful for both the developer and administrator alike. If you are a project lead for a Glassfish application this material should be considered a prerequisite for all team members as your project enters its systems planning and &lt;span class="misspell" suggestions="Prue,pare,pore,prey,pure"&gt;pre&lt;/span&gt;-production phases. Misunderstandings and mis-communications at these stages can have the potential to drive expensive re-design changes back to developer which can be expensive. Use of Mr. Kou's book&amp;nbsp; as "team support materials" or "bridge materials" at these stages may help mitigate this kind of risk.&lt;br /&gt;&lt;br /&gt;"Glassfish Administration" also presents a pleasant physical product. The book is well formatted, topics flow logically and its use of fonts and screen shots is clear and consistent. Formatting that is "easy on the eyes" is, for someone who spends many hours looking and computer screens and reading programming and systems manuals, something that is appreciated in a book of this kind. Packt has done a nice job on this aspect of the product.&lt;br /&gt;&lt;br /&gt;If you are looking for well written and balanced handbook in support of your Glassfish installation or application development project Xuekun Kou's "Glassfish Administration" needs to be on your short list of titles to consider.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-4903378876351021810?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.packtpub.com/glassfish-v2-application-server-administration/book' title='&quot;Glassfish Administration&quot; by Xuekun Kou'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/4903378876351021810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=4903378876351021810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4903378876351021810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4903378876351021810'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2010/01/glassfish-administration-by-xuekun-kou.html' title='&quot;Glassfish Administration&quot; by Xuekun Kou'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-3581034598779772273</id><published>2009-09-18T10:31:00.001-06:00</published><updated>2009-09-18T10:43:24.081-06:00</updated><title type='text'>Unique or Null:  MS-Sql Trick</title><content type='html'>MS-SqlServer, by default, doesn't appear to handle the "UNIQUE" constraint in the fashion prescribed by ANSI. The ANSI approach to the "UNIQUE" seems to allow for multiple null values while enforcing that non-null values are unique. MS-SqlServer's implementation of the "UNIQUE" constraint does enforce that non-null values are unique but also will allow only one null entry in the constrained column.&lt;br /&gt;&lt;br /&gt;There are scenario's where it is useful for a column (or pair of columns) to be allowed to be either "NULL" or "UNIQUE." For instance, my organization had experienced a scenario where we were required to collect GPS information with each work activity performed for a customer in the field. On several occasions the employees collecting the work could not get a GPS fix. This did not happen often but did happen often enough that MS implementation of the "UNIQUE" constraint, and its approach to "NULL" values, became an issue.&lt;br /&gt;&lt;br /&gt;We were able to work around the MS constraint approach with the use of a calculated column. Essentially, the calculated column assists in enforcing the "UNIQUE" constraint by examining two columns that we wish to be unique or null.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;create table multipleNullOK(&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id int NOT NULL IDENTITY PRIMARY KEY,&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; longitude int,&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; latitude int,&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --gpsLatAndLongCalcCol is my calculated field&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpsLatAndLongCalcCol as (&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CASE&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN longitude IS NULL AND latitude IS NULL THEN id&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE 0&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --The UNIQUE constraint now incorporates the calculated column&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONSTRAINT UNQ_GPS_LatAndLong_NULL_OK UNIQUE (longitude, latitude, gpsLatAndLongCalcCol)&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--Examing the empty table&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;select * from multipleNullOk&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;--Test the constraint&lt;br /&gt;insert into multipleNullOK (longitude, latitude) values (1, 1) --OK&lt;br /&gt;insert into multipleNullOK (longitude, latitude) values (1, 1) --Fail&lt;br /&gt;insert into multipleNullOK (longitude, latitude) values (1, 2) --OK&lt;br /&gt;insert into multipleNullOK (longitude, latitude) values (null, null) --OK&lt;br /&gt;insert into multipleNullOK (longitude, latitude) values (null, null) --OK&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;insert into multipleNullOK (longitude, latitude) values (null, null) --OK&lt;br /&gt;&lt;/span&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;insert into multipleNullOK (longitude, latitude) values (1, 1) --Fail&lt;br /&gt;insert into multipleNullOK (longitude, latitude) values (1, 2) --Fail&lt;/span&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;insert into multipleNullOK (longitude, latitude) values (null, null) --OK&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: orange;"&gt;&lt;span style="font-size: x-small;"&gt;--Examine the table &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="background-color: orange; font-size: x-small;"&gt;select * from multipleNullOk&lt;/span&gt; &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;If you have run into this issue with MS-SqlServer this approach may be useful to you as well!&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-3581034598779772273?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/3581034598779772273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=3581034598779772273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3581034598779772273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3581034598779772273'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2009/09/unique-or-null-ms-sql-trick.html' title='Unique or Null:  MS-Sql Trick'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-7175310241795539819</id><published>2009-05-14T13:56:00.003-06:00</published><updated>2009-05-14T14:03:46.978-06:00</updated><title type='text'>Great Copy Utility</title><content type='html'>Today I gave &lt;a href="http://www.codesector.com/teracopy.php"&gt;TeraCopy&lt;/a&gt; from Code Sector Inc. a try.&lt;br /&gt;&lt;br /&gt;I found this utility while looking for a solution to an issue with reliably copying large files over my local area network from a Vista SP1 PC to a Windows 2008 server. In short Vista would hang when copying files over a few Gigs in size.&lt;br /&gt;&lt;br /&gt;TeraCopy did the trick! TeraCopy is a drop in replacement for the copy functionality provided by Vista. Not only does this utility perform well its progress indicators are also superior to those provided in Vista. &lt;br /&gt;&lt;br /&gt;If you need to move a lot large files this utility is a 'must consider' product.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-7175310241795539819?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codesector.com/teracopy.php' title='Great Copy Utility'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/7175310241795539819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=7175310241795539819' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7175310241795539819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7175310241795539819'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2009/05/great-copy-utility.html' title='Great Copy Utility'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-7573545882077805812</id><published>2009-04-20T13:13:00.017-06:00</published><updated>2009-07-19T14:12:31.445-06:00</updated><title type='text'>World Record Cullen Mega Prime</title><content type='html'>This item is off topic but &lt;span style="font-weight: bold; font-style: italic;"&gt;WAY&lt;/span&gt; too cool not to post...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://primes.utm.edu/bios/page.php?id=1764"&gt;I&lt;/a&gt; just received notice from &lt;a href="http://primes.utm.edu/bios/page.php?id=961"&gt;John Michael Blazek&lt;/a&gt; of the &lt;a href="http://www.primegrid.com/"&gt;PrimeGrid&lt;/a&gt; project that one of my systems -- running &lt;a href="http://boinc.berkeley.edu/"&gt;BOINC &lt;/a&gt;software and participating in the &lt;a href="http://www.primegrid.com/"&gt;PrimeGrid&lt;/a&gt; project -- has discovered a &lt;a href="http://mathworld.wolfram.com/CullenNumber.html"&gt;Cullen&lt;/a&gt; &lt;a href="http://primes.utm.edu/glossary/page.php?sort=Cullens"&gt;Mega Prime Number&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The number is 1905090 digits long and is recorded on &lt;a href="http://primes.utm.edu/primes/"&gt;Chris Caldwell's The Largest Known Primes Databas&lt;/a&gt;e website as: &lt;a href="http://primes.utm.edu/primes/page.php?id=87775"&gt;1582173 * 2^632858+1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As of the date of this posting [2009-Apr-20] this finding is the &lt;a href="http://primes.utm.edu/top20/page.php?id=6"&gt;largest&lt;/a&gt; &lt;a href="http://primes.utm.edu/glossary/page.php?sort=Cullens"&gt;Cullen Prime Number&lt;/a&gt; and ranks at number &lt;a href="http://primes.utm.edu/bios/top20.php"&gt;15 on the Top 20 prime numbers&lt;/a&gt; list. The number is 1905090 digits long.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Congratulations to the &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.primegrid.com/"&gt;PrimeGrid&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; team on this success!&lt;/span&gt; And, thank you for allowing me to participate in your innovative project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Preliminary information from the &lt;a href="http://www.primegrid.com/"&gt;PrimeGrid&lt;/a&gt; website is as follows...&lt;br /&gt;&lt;br /&gt;World Record Cullen Mega Prime found&lt;br /&gt;2009-04-20 19:00 UTC&lt;br /&gt;A PrimeGrid participant has discovered a World Record Cullen Mega Prime in the Cullen Prime Search. This is a very special and rare find. It is only the 15th Cullen prime known. It is also a top 15 prime and the largest found by LLR. Additionally, it is PrimeGrid's largest prime to date. Stay tuned for more details.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-7573545882077805812?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.primegrid.com' title='World Record Cullen Mega Prime'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/7573545882077805812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=7573545882077805812' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7573545882077805812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7573545882077805812'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2009/04/world-record-cullen-mega-prime.html' title='World Record Cullen Mega Prime'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-7945960594202041521</id><published>2008-03-17T08:30:00.003-06:00</published><updated>2008-03-17T08:54:10.857-06:00</updated><title type='text'>The 7 Year (and counting) Bug</title><content type='html'>Mozilla is the organization that is responsible for the Firefox browser. It is also responsible for a product called &lt;a href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt;, which is a very good email client which support both POP and IMAP.&lt;br /&gt;&lt;br /&gt;One draw back of &lt;a href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird &lt;/a&gt;is that it does not support the opening of TNEF formatted mail. TNEF is the format generated by MS-Outlook when the user composes a message in Rich Text Format (RTF) -- which is a common occurrence.&lt;br /&gt;&lt;br /&gt;It seems that the &lt;a href="http://www.mozilla.com"&gt;Mozilla&lt;/a&gt; &lt;a href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt; developers &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=77811"&gt;have know about this deficiency for quite a long time&lt;/a&gt; but have decided ignore the issue because TNEF, despite being a defacto standard due to the large number of outlook users, is a proprietary format.&lt;br /&gt;&lt;br /&gt;This is clearly a situation where the Mozilla organization has chosen to curse the darkness rather than light a candle.&lt;br /&gt;&lt;br /&gt;Fortunately, Aron Rubin has &lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/4433"&gt;developed an add-on&lt;/a&gt; that will address this issue. It works well and it appears that Aron will continue to maintain it. So if you use Thunderbird and are tired of receiving windmail.dat files please give his add-on a try.&lt;br /&gt;&lt;br /&gt;Hopefully, the capabilities of &lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/4433"&gt;Aron's plugin&lt;/a&gt; will become part of the core &lt;a href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt; product, soon. But, since its been almost 7 years since this bug was reported, completely hassle free interchange of messages between Thunderbird and Outlook users may still be a way off.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-7945960594202041521?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://bugzilla.mozilla.org/show_bug.cgi?id=77811' title='The 7 Year (and counting) Bug'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/7945960594202041521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=7945960594202041521' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7945960594202041521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/7945960594202041521'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2008/03/7-year-and-counting-bug.html' title='The 7 Year (and counting) Bug'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-1477671918728618274</id><published>2008-02-15T14:47:00.004-07:00</published><updated>2008-02-15T14:52:32.814-07:00</updated><title type='text'>Digtital TV Coupon</title><content type='html'>Broadcast stations will begin transmitting digital only signals in 2009. If you are still using an antenna to receive an analog signal you will need new equipment to in order to receive the new digital signal.&lt;br /&gt;&lt;br /&gt;There is a federal program in place to help with the cost of this new equipment. Coupons to defray the cost of upgrading can be obtained from https://www.dtv2009.gov/&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-1477671918728618274?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://www.dtv2009.gov/' title='Digtital TV Coupon'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/1477671918728618274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=1477671918728618274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/1477671918728618274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/1477671918728618274'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2008/02/digtital-tv-coupon.html' title='Digtital TV Coupon'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-3431571275676573838</id><published>2007-10-03T18:13:00.000-06:00</published><updated>2007-10-03T18:14:36.943-06:00</updated><title type='text'>Speed up Vista</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Warning&lt;/span&gt;: Use these directions are at you own risk and your mileage may vary.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below is a list of Vista services (programs that run in the background) that when stopped seem to make Vista more responsive.  There is a services icon in the control panel that will let you view, start, stop and change the default run behaviors for these and other services to manual or disabled. I recommend changing the load/run status of these services from automatic to manual instead of disabled.&lt;br /&gt;&lt;br /&gt;DFS Replication&lt;br /&gt;Computer Browser&lt;br /&gt;Distributed Link Tracking Client&lt;br /&gt;IKE and AuthIP IPsec Keying Modules&lt;br /&gt;IP Helper&lt;br /&gt;IPSec Policy Agent&lt;br /&gt;KtmRm for Distributed Transaction Coordinator&lt;br /&gt;Offline Files&lt;br /&gt;Remote Registry&lt;br /&gt;Secondary Logon&lt;br /&gt;SSDP Discovery&lt;br /&gt;Tablet PC Input Services&lt;br /&gt;Terminal Services&lt;br /&gt;Windows Error Reporting  Service&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-3431571275676573838?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com' title='Speed up Vista'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/3431571275676573838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=3431571275676573838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3431571275676573838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3431571275676573838'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/10/speed-up-vista.html' title='Speed up Vista'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-6898388253265910959</id><published>2007-09-27T15:15:00.000-06:00</published><updated>2007-09-27T15:50:33.802-06:00</updated><title type='text'>Ubuntu - No X required</title><content type='html'>Ubuntu Linux is a fine Linux distribution. Its pretty user friendly and is geared toward the desktop user.&lt;br /&gt;&lt;br /&gt;However, you may find that you are really using your &lt;a href="http://wwww.ubuntu.com"&gt;Ubuntu Linux&lt;/a&gt; box as a server (web server, file server, etc) and that the services you are providing to your users does not require the general graphical user interface software installed. Turning off&lt;a href="http://www.x.org"&gt; X&lt;/a&gt; and all the &lt;a href="http://www.gnome.org"&gt;GUI goodies&lt;/a&gt; in Ubuntu might be a good choice for you.&lt;br /&gt;&lt;br /&gt;Turning off all the graphical tools and interfaces can free up resources so that these services you are providing can have more elbow room (RAM and Processor availability)&lt;br /&gt;&lt;br /&gt;You can prevent Ubuntu's GUI from starting when the server starts by issuing the following commands:&lt;br /&gt;&lt;br /&gt;# sudo -s  {Enter password if prompted}&lt;br /&gt;# cd /etc/init.d&lt;br /&gt;# update-rc.d -f gdm remove&lt;br /&gt;&lt;br /&gt;When the machine is rebooted the&lt;a href="http://www.x.org"&gt; X.org&lt;/a&gt; system and all things graphical will not load. You will still be able to access and administer the machine from the command line.&lt;br /&gt;&lt;br /&gt;If you need to get X running just for a bit you can still launch X from the command line with the command:&lt;br /&gt;&lt;br /&gt;# startx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, If you change your mind you can always configure the machine to go back to its previous behavior of starting X and Ubuntu's related GUI by issuing the following commands and rebooting the machine:&lt;br /&gt;&lt;br /&gt;# sudo -s  {Enter password if prompted}&lt;br /&gt;# cd /etc/init.d&lt;br /&gt;# sudo update-rc.d -f gdm defaults&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-6898388253265910959?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ubuntu.com' title='Ubuntu - No X required'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/6898388253265910959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=6898388253265910959' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6898388253265910959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6898388253265910959'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/09/ubuntu-no-x-required.html' title='Ubuntu - No X required'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5402831964034517922</id><published>2007-09-17T10:55:00.000-06:00</published><updated>2007-09-14T13:37:01.032-06:00</updated><title type='text'>Really Good Cheap Storage Enclosure</title><content type='html'>Over a month ago I had a file server go down. This file server provided backup space for my primary file servers and there was some urgency to restore the lost storage capacity provided by the damaged server.&lt;br /&gt;&lt;br /&gt;The crash was pretty ugly. The processor no longer functioned and the motherboard had a large scorch burn. It was an older server and I had certainly gotten my money's worth out of it. However, the capacity it provided for my disk-to-disk backup solution (while not sophisticated) was still important for the reliable operation of my small network. There was a bright spot with regard to this outage; none of he large capacity IDE drives installed in the server were damaged. There were 6 drives in total.&lt;br /&gt;&lt;br /&gt;Now, the storage capacity offered by this server was important but since my back-ups run over night speed was not a significant issue.  Replacing the server could have been expensive but I found a cheaper solution for restoring the capacity offered by the salvaged the drives from the burnt out server...&lt;br /&gt;&lt;br /&gt;I placed the salvaged drives into two &lt;a href="http://american-media.com/product/external/ts/ts.html"&gt;AMS Venus T4U&lt;/a&gt; hard drive enclosures that I purchased from an on-line parts dealer. Each unit cost about $115 plus shipping.&lt;br /&gt;&lt;br /&gt;These T4U hard drive enclosures will hold up to 4 IDE drives. (I understand that there is also an eSATA model.) After placing the drives into the enclosures I plugged the enclosures into another server on my network using the provided USB 2.0 connector and the USB 2.0 ports on the server. Tada, (and with a few mapping changes), the lost capacity was back on line.&lt;br /&gt;&lt;br /&gt;In short these &lt;a href="http://american-media.com/product/external/ts/ts.html"&gt;AMS Venus T4U &lt;/a&gt;units are very handy and after about 45 days they have performed well. The &lt;a href="http://american-media.com/product/external/ts/ts.html"&gt;AMS Venus T4U&lt;/a&gt; is a nice unit and a nice solution if you need to quickly add drive capacity to your network or perhaps you just happen to have a few older drives sitting around that could be put to better use.&lt;br /&gt;&lt;br /&gt;Additionally, the unit runs quietly and coolly, with the internal fan turned on, and offers many dip-switch options for configuring how the drives it contains appear to the host operating system. For instance, even though you may install 4 separate drives in the unit you can configure the unit so that all 4 separate drives appear as one drive  (or some other combinations of drives) to the host operating system. The until also seems to work well with both Linux and Windows as I've had the unit attached to servers of each type with with no issues.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5402831964034517922?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://american-media.com/product/external/ts/ts.html' title='Really Good Cheap Storage Enclosure'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5402831964034517922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5402831964034517922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5402831964034517922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5402831964034517922'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/09/really-cheap-storage-enclosure.html' title='Really Good Cheap Storage Enclosure'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-2299451120729589192</id><published>2007-09-13T11:06:00.000-06:00</published><updated>2007-09-13T11:33:37.929-06:00</updated><title type='text'>JSPWiki &amp; Google Analytics</title><content type='html'>I am a user of &lt;a href="http://analytics.google.com/"&gt;Google's Analytics&lt;/a&gt; service. This Google service allows a website administrator to track and analyze web usage traffic for a website. For instance one can learn what pages are being viewed and when the pages are being viewed.&lt;br /&gt;&lt;br /&gt;I am user and fan of &lt;a href="http://www.jspwiki.org/"&gt;JspWiki&lt;/a&gt; which is a &lt;a href="http://en.wikipedia.org/wiki/Wiki"&gt;wiki&lt;/a&gt; that can be run in side of a &lt;a href="http://glassfish.dev.java.net/"&gt;Java EE application server&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Google Analytics creates a script segment for the web administrator to add to each of the pages he/she would like tracked by the Google Analytics service. &lt;a href="http://en.wikipedia.org/wiki/Wiki"&gt;Wikis &lt;/a&gt;by nature hold dynamic user generated content so I was looking for the best practice of how to add the Google Analytics code snippet to JspWiki so that all the pages would be properly tracked.&lt;br /&gt;&lt;br /&gt;A couple of members of the&lt;a href="http://jspwiki.org/wiki/JSPWikiMailingList"&gt; JspWiki mailing list&lt;/a&gt; offered solutions to my issue of how to best integrate Google Analytics with JspWiki. Janne offered a very good synopsis regarding how to integrate the Google Analytics service with different versions of JspWiki. To paraphrase Janne:&lt;br /&gt;&lt;br /&gt;In version 2.5.x, put the code segment from Google Analytics in localheader.jsp.&lt;br /&gt;In version 2.4.x  would put it in the code segment from Google Analytics in commonheader.jsp OR ViewTemplate.jsp&lt;br /&gt;&lt;br /&gt;If you click on this &lt;a href="http://www.ecyrd.com/pipermail/jspwiki-users/2007-September/005009.html"&gt;link&lt;/a&gt; you will be taken to the list archive where you can see my &lt;a href="http://www.ecyrd.com/pipermail/jspwiki-users/2007-September/005009.html"&gt;original question&lt;/a&gt; and a few different responses, including &lt;a href="http://www.ecyrd.com/pipermail/jspwiki-users/2007-September/005015.html"&gt;Janne's&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The solutions offered by the list members are working great for me.  I added my Google Analytics code snippet to ViewTemplate.jsp just before the closing body tag.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-2299451120729589192?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/2299451120729589192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=2299451120729589192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/2299451120729589192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/2299451120729589192'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/09/jspwiki-google-analytics.html' title='JSPWiki &amp; Google Analytics'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-412643424757908565</id><published>2007-05-04T17:05:00.000-06:00</published><updated>2007-05-04T17:06:04.756-06:00</updated><title type='text'>Converting Music: m4a files to mp3</title><content type='html'>Today I was trying to help a friend with some audio files. Her collection was quite large and needed to be converted from MPEG-4 format (.m4a) to MPEG-3 format (.mp3). &lt;br /&gt;&lt;br /&gt;I wanted to maintain wanted preserve directory structure of her collection and make sure that I did not damage the original m4a file.  In my friend's collection each artist had its own directory and each album had its own directory within the artist directory. I suspect this is a typical layout for a digital music collection.&lt;br /&gt;&lt;br /&gt;I could not find a Linux utility that would let me convert directly from m4a to mp3. But, I did find a couple of utilities that together would do the trick; faad and lame.&lt;br /&gt;&lt;br /&gt;Using these utilities together I could convert the files from first from m4a to wav and then from wav to mp3.&lt;br /&gt;&lt;br /&gt;A note of caution is the collection is large make sure you have enough room as this procedure will triple (or more) the amount of space used by the collection you are trying to convert.&lt;br /&gt;&lt;br /&gt;1. Install faad and lame using apt-get:&lt;br /&gt;&lt;br /&gt;apt-get install faad lame&lt;br /&gt;&lt;br /&gt;2. Copy the collection to a directory on your Linux computer (e.g. /tmp/MusicCollection)&lt;br /&gt;&lt;br /&gt;3. Create a 2 line bash script:&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;faad -o - "$1" | lame -h -b 192 - "${1%m4a}mp3"&lt;br /&gt;&lt;br /&gt;My script is in a file called cvrt. After entering these two lines into this file save the file in your /tmp/MusicCollection directory and make the file executable:&lt;br /&gt;&lt;br /&gt;chmod +x cvrt&lt;br /&gt;&lt;br /&gt;What the script does is reads the name of a file, converts it to wav format useing 'faad' and feed this stream of data into the 'lame' program which converts the file to mp3 format. The file also creates the new file with the same file name except it changes the extention to mp3.&lt;br /&gt;&lt;br /&gt;4. Use the cvrt script we just created in combination with the find command:&lt;br /&gt;&lt;br /&gt;find /tmp/MusicCollection -name *.m4a -exec /tmp/MusicCollection/cvrt '{}' ';'&lt;br /&gt;&lt;br /&gt;This command will search the MusicCollection directory and all its sub-directories and feed each m4a file it finds into the cvrt script we just created, which will do all the conversion for us.&lt;br /&gt;&lt;br /&gt;My friends collection was quite large and this process did take some time. However, the machine used to perform the conversion was not very fast. Your mileage may vary.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-412643424757908565?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/412643424757908565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=412643424757908565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/412643424757908565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/412643424757908565'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/05/converting-music-m4a-files-to-mp3.html' title='Converting Music: m4a files to mp3'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-3847347153029930160</id><published>2007-04-01T13:35:00.000-06:00</published><updated>2007-04-01T13:42:11.318-06:00</updated><title type='text'>Google Apps -- Integration</title><content type='html'>I am a big fan of &lt;a href="http://www.google.com/a"&gt;Google Apps for your Domain&lt;/a&gt;. However, there is one area where this Google product falters; integration with other Google apps.&lt;br /&gt;&lt;br /&gt;One hope I had after migrating my own domain to Google apps was that I would be able to abandon my regular gmail account and use my primary email address (&lt;a href="mailto:dennis@gesker.com"&gt;dennis@gesker.com&lt;/a&gt;) login with all of the applications provided by Google.&lt;br /&gt;&lt;br /&gt;Google Apps for your Domain doesn't seem to integrate with finance, rss, blogger, picasa or any of the rest. Hopefully, this will happen soon.&lt;br /&gt;&lt;br /&gt;In the mean time I have all the mail delivered to my primary address forwarding to my gmail address which is the opposite of my original plan.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-3847347153029930160?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/3847347153029930160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=3847347153029930160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3847347153029930160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3847347153029930160'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/04/google-apps-integration.html' title='Google Apps -- Integration'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-2534093153054171525</id><published>2007-04-01T13:24:00.000-06:00</published><updated>2007-04-01T13:35:10.156-06:00</updated><title type='text'>Google Apps for your Domain</title><content type='html'>If you've been considering setting up your own domain but have been hesitating because it can seem like too much of a hassle '&lt;a href="http://www.google.com/a/help/intl/en/admins/case_studies/asu.html"&gt;Google Apps for your Domain&lt;/a&gt;' may be a solution for you. It lets you quickly setup a website, email, calendar and common address book for your organization. It also provides some basic collaboration tools in the form of a web based word process and spreadsheet.&lt;br /&gt;&lt;br /&gt;If your a small organization (family, club, etc.) or you're an educational institution the service is free. If your a larger organization you can setup up to a more robust package for $50 per user per year. As with most Google applications its seems designed from the ground up to &lt;a href="http://www.google.com/a/help/intl/en/admins/case_studies/asu.html"&gt;scale&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-2534093153054171525?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/a/' title='Google Apps for your Domain'/><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/2534093153054171525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=2534093153054171525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/2534093153054171525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/2534093153054171525'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/04/google-apps-for-your-domain.html' title='Google Apps for your Domain'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5892446149753541845</id><published>2007-03-20T15:22:00.000-06:00</published><updated>2007-03-20T15:18:56.746-06:00</updated><title type='text'>Enable RSS in JSPWiki</title><content type='html'>Real Simple Synidication is one of the useful features of JSPWiki. When your users subscribe to the RSS feed using an RSS reader they will be updated automatically on any new additions or changes made to the Wiki's content.&lt;br /&gt;&lt;br /&gt;Its an easy way to keep eveyone up to date.&lt;br /&gt;&lt;br /&gt;To enable RSS on your JSPWiki uncomment and edit the properties file and set the following variables:&lt;br /&gt;&lt;br /&gt;jspwiki.applicationName = Example Wiki&lt;br /&gt;jspwiki.baseURL = &lt;a href="http://wiki.example.com/JSPWiki/"&gt;http://wiki.example.com/JSPWiki/&lt;/a&gt;&lt;br /&gt;jspwiki.referenceStyle=relative&lt;br /&gt;jspwiki.rss.generate = true&lt;br /&gt;jspwiki.rss.fileName = rss.rdf&lt;br /&gt;jspwiki.rss.interval = 1800&lt;br /&gt;jspwiki.rss.channelDescription = Example Wiki Channel&lt;br /&gt;jspwiki.rss.channelLanguage = en-us&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Redeploy JSPWiki and you will see the orange RSS icon on the main page!&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5892446149753541845?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5892446149753541845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5892446149753541845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5892446149753541845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5892446149753541845'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/enable-rss-in-jspwiki.html' title='Enable RSS in JSPWiki'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5797564261235952273</id><published>2007-03-19T16:48:00.000-06:00</published><updated>2007-03-19T17:01:45.777-06:00</updated><title type='text'>JSPWiki End User Confusion</title><content type='html'>My instructions in earlier blog entries for setting JSPWiki on Glassfish results in an installation that only allows access to the wiki based on a pre-defined list of users entered into a database. Users, in my configuration, can't add themselves to the JSPWiki system or reset their passwords.&lt;br /&gt;&lt;br /&gt;However, the login page of the wiki had led some of my users to believe that they could add themselves and even reset password.&lt;br /&gt;&lt;br /&gt;To avoid this confusion edit the JSPWiki\templates\default\LoginContent.jsp file and comment out these files located near the end of this file. (JSP comments look like this &lt;em&gt;&amp;lt;%-- --%&amp;gt;&lt;/em&gt; ):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%--&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="instructions"&amp;gt; Don't have a password? &amp;lt;a href="UserPreferences.jsp?tab=profile"&amp;gt;Join &amp;lt;wiki:Variable var="applicationname" /&amp;gt;&amp;lt;/a&amp;gt; now! &amp;lt;/div&amp;gt; &amp;lt;div class="instructions"&amp;gt; Lost your password? &amp;lt;a href="LostPassword.jsp"&amp;gt;Get a new one&amp;lt;/a&amp;gt;. &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;--%&amp;gt;&lt;br /&gt;&lt;br /&gt;You will, of course, have to re-create the war file and re-deploy the wiki application on Glassfish for the changes to be made apparent.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5797564261235952273?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5797564261235952273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5797564261235952273' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5797564261235952273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5797564261235952273'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwiki-end-user-confusion.html' title='JSPWiki End User Confusion'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-3312534201013645026</id><published>2007-03-08T14:59:00.000-07:00</published><updated>2007-03-08T14:53:56.229-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 18 of 18: Discussion)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Glassfish over SJSAS?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One question you may have is "Why use Glassfish and not SJSAS?" Well, for this project I needed to use a JDBC realm. This doesn't seem to be an option in the current release of SJSAS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How am I setup in Production?&lt;/span&gt;&lt;br /&gt;In my production environment I'm not sure I would use MS-Windows. I don't have anything against Windows but I found that when I started using Linux a few years back, after a bit of a learning curve, it seemed to be put together pretty well. On my own network I'm running my JSPWiki on &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu Linux&lt;/a&gt;, Java JDK6 and Glassfish.  My hope is that eventually the Java JDK and Glassfish will be native packages on Ubuntu and part of the regular Ubuntu distribution. But for now I run Microsoft Specific stuff on my Windows server and everything else on Linux.&lt;br /&gt;&lt;br /&gt;Also, I understand that there is a group out there working on making Solaris "Ubuntuish" which, I think, is centered around integrating Solaris and the apt package manager. I really like this idea as it would lower the hurdle for getting Solaris into my company.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Being as I like Ubuntu so much why base my article around and install on Windows?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The learning curve in administering and grasping the concepts around Java EE is a bit steep. My target for the article was the small or single person IT shop. A lot of small organizations run Windows and I figured that getting to familiar with the Java EE server was enough to swallow in walk through.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Now what?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First, of course, put your JSPWiki to good use. Now that you've got Glassfish installed maybe you will find another useful application to deploy into your Glassfish server. Or, maybe you could download a copy of &lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt; and take a shot at writing your own application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anything else?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes. A quick word about motivation. Beyond what I wrote in my &lt;a href="http://gesker.blogspot.com/2007/02/initial-entry.html"&gt;Initial Post&lt;/a&gt;, I do believe the Java Opensource Community to be a very worth while community. I do code in Java but it is. more often than not, "scratch an itch" business programs; I'm not a systems programmer. I felt that if I could not contribute code maybe I could summarize what I've learned, the hard way, about these tools.&lt;br /&gt;&lt;br /&gt;Perhaps, because these instructions are here someone (in a small organization) who might not have considered employing a Java EE solution due to the learning curve might give it a shot; growing the user community.&lt;br /&gt;&lt;br /&gt;In short, I saw an opportunity to give back!&lt;br /&gt;&lt;br /&gt;I hope you found this series of posts helpful and I encourage you to post and comment as you work your way through its various sections.&lt;br /&gt;&lt;br /&gt;--drg&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-3312534201013645026?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/3312534201013645026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=3312534201013645026' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3312534201013645026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3312534201013645026'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-18-of-18.html' title='JSPWiki/Glassfish Install (Part 18 of 18: Discussion)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-654391929998913684</id><published>2007-03-08T14:58:00.000-07:00</published><updated>2007-03-08T14:52:58.223-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 17 of 18:  Graceful Reboot)</title><content type='html'>Its useful to have Glassfish run as a Windows service. A Windows service can be configured to run automatically when the server reboots.  On Windows there is a program called sc.exe that can configure this behavior for us by entering this ridiculous command:&lt;br /&gt;&lt;br /&gt;c:\sc.exe create glassfish binPath= "C:\java\glassfish-v2-b33e\lib\appservService.exe \"C:\java\glassfish-v2-b33e\bin\asadmin.bat start-domain --user admin --passwordfile c:\java\glassfish-v2-b33e\password.txt domain1\" \"c:\java\glassfish-v2-\bin\asadmin.bat stop-domain domain1\"" start=auto DisplayName="Glassfish"&lt;br /&gt;&lt;br /&gt;By the way, when Glassfish becomes SJSAS installing as a server will be just an option when you first install the server but for now we're stuck with using the sc.exe command built into MS-Windows.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-654391929998913684?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/654391929998913684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=654391929998913684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/654391929998913684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/654391929998913684'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-17-of-18.html' title='JSPWiki/Glassfish Install (Part 17 of 18:  Graceful Reboot)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-4367880332723809077</id><published>2007-03-08T14:57:00.000-07:00</published><updated>2007-03-08T14:51:39.334-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 16 of 18: Integrate with Apache2)</title><content type='html'>&lt;b&gt;Configure Glassfish&lt;/b&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  In order to have both a nice URL and grant access to the outside world (password protection will still be intact) we need to “hide” our glassfish installation and the JSPWiki application behind our existing web server. To pull off this trick we'll need to add some additional “jars” to Glassfish. &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  The first couple of “jars” we'll borrow from the Tomcat application we downloaded earlier. Find this zip file and decompress it.&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Navigate to apache-tomcat-5.5.20\server\lib&lt;/li&gt;&lt;li&gt;   COPY "tomcat-ajp.jar" and "commons-modeler.jar" to c:\java\glassfish-v2-b33e\lib &lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;The second “jar” we'll need is from the “commons-logging-1-1.zip” archive.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Decompress this archive&lt;/li&gt;&lt;li&gt;Find all the commons-logging*jar and COPY these files to c:\java\glassfish-v2-b33e\lib &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   In your command window cd to c:\java\glassfish-v2-b33e\bin then issue the command:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009 &lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;  OR, if you like the web interface to Glassfish, login and navigate to: &lt;/p&gt;   &lt;ul&gt;&lt;li&gt;   Application Server --&gt; JVM Settings --&gt; JVM Options&lt;/li&gt;&lt;li&gt;Once there click on Add JVM Options and enter “-Dcom.sun.enterprise.web.connector.enableJK=8009” &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Restart Glassfish. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;Configure Apache&lt;/b&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   We'll use and configure two Apache modules: &lt;/p&gt; &lt;ol&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       “rewrite” to clean up our incoming URL     &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         “jk” to coordinate/integrate/connect traffic to our Glassfish/JSPWiki application       &lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt; The rewrite module is already probably already installed but you will probably have to install the jk module. On Ubuntu Linux (and Debian) as root you issue this command:&lt;br /&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;   apt-get update; apt-get install libapache2-mod-jk&lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;   and the package magically installs! But we still have to do some configuration. Issue the following commands as root...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   cd /etc/apache2/mods-enabled &lt;/li&gt;&lt;li&gt;   ln -s /etc/apache2/mods-available/jk.load jk.load &lt;/li&gt;&lt;li&gt;   ln -s /etc/apache2/mods-available/rewrite.load rewrite.load &lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   While you're still in /etc/apache2/mods-enabled create a new file "jk.conf"and enter these contents: &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;        &lt;p style="margin-bottom: 0in;"&gt;   JkWorkersFile /etc/apache2/workers.properties&lt;br /&gt;JkMountFile /etc/apache2/uriworkermap.properties&lt;br /&gt;JkShmFile /var/log/apache/jk.shm&lt;br /&gt;JkLogFile /var/log/apache2/jk.log&lt;br /&gt;JkLogLevel debug&lt;br /&gt;JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"&lt;br /&gt;JkRequestLogFormat "%w %V %T"&lt;br /&gt;JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   &lt;virtualhost&gt; &lt;/virtualhost&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0in;"&gt;    &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   &lt;virtualhost&gt; &lt;/virtualhost&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;  ServerName wiki.example.com&lt;br /&gt;RewriteEngine on&lt;br /&gt;RewriteRule ^/$ http://wiki.example.com/JSPWiki&lt;br /&gt;ServerName www.wiki.example.com&lt;br /&gt;RewriteEngine on&lt;br /&gt;RewriteRule ^/$ http://wiki.example.com/JSPWiki &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;    &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; Don't forget to adjust the domain names above to meet your needs. What this basically does is use the rewrite module to take the nice URL -- wiki.example.com (entered by either the LAN users or Internet users) and change it to wiki.example.com/JSPWiki where the jk module will be waiting to feed this traffic back to Glassfish running on your LAN. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Pretty neat, huh! &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   cd /etc/apache2 &lt;/li&gt;&lt;li&gt;   create/edit a new file uriworkermap.properties and add: &lt;/li&gt;&lt;li&gt;   /JSPWiki=wiki &lt;/li&gt;&lt;li&gt;   /JSPWiki/*=wiki &lt;/li&gt;&lt;/ul&gt;    &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;create/edit a new file worker.properties and add:   &lt;p style="margin-bottom: 0in;"&gt;   worker.list=loadbalancer,status&lt;br /&gt;&lt;/p&gt;     &lt;p style="margin-bottom: 0in;"&gt;   # Define node1&lt;br /&gt;worker.node1.port=8009&lt;br /&gt;worker.node1.host=192.168.0.5&lt;br /&gt;worker.node1.type=ajp13&lt;br /&gt;worker.node1.lbfactor=1 &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   #worker.node1.local_worker=1&lt;br /&gt;worker.node1.cachesize=10 &lt;/p&gt;      &lt;p style="margin-bottom: 0in;"&gt;   # Define node2&lt;br /&gt;worker.node2.port=8009&lt;br /&gt;worker.node2.host=192.168.0.5&lt;br /&gt;worker.node2.type=ajp13&lt;br /&gt;worker.node2.lbfactor=1 &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   ##worker.node2.local_worker=1&lt;br /&gt;worker.node2.cachesize=10 &lt;/p&gt;     &lt;p style="margin-bottom: 0in;"&gt;   # Load-balancing behaviour&lt;br /&gt;worker.loadbalancer.type=lb&lt;br /&gt;worker.loadbalancer.balance_workers=node1,node2&lt;br /&gt;worker.loadbalancer.sticky_session=1 &lt;/p&gt;&lt;br /&gt;#Status worker for managing load balancer&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;worker.status.type=status &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Restart Apache:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   /etc/init.d/apache2 restart &lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Now, Apache should be “talking” to Glassfish.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   To test this go to one of the PC's on your LAN and put &lt;a href="http://wiki.example.com/"&gt;http://wiki.example.com&lt;/a&gt; or &lt;a href="http://www.wiki.example.com/"&gt;http://www.wiki.example.com&lt;/a&gt; into the web browser. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   You should be presented with the login for you wiki! And, this will be the same behavior for you Internet users. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-4367880332723809077?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/4367880332723809077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=4367880332723809077' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4367880332723809077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4367880332723809077'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-16-of-18.html' title='JSPWiki/Glassfish Install (Part 16 of 18: Integrate with Apache2)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-4974438594593483071</id><published>2007-03-08T14:56:00.000-07:00</published><updated>2007-03-08T14:50:44.355-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 15 of 18: Deploy JSPWiki)</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;    &lt;p style="margin-bottom: 0in;"&gt;  First use 7-zip to add the contents (not the folder itself) of the JSPWiki folder we've been working in to a NEW zip file named “JSPWiki.war” -- not JSPWiki.zip.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Login to Glassfish. &lt;/li&gt;&lt;li&gt;   On the “Common Tasks” click on “Deploy Web Application” &lt;/li&gt;&lt;li&gt;   Click the “Browse” button and find the new “JSPWiki.war” you created. &lt;/li&gt;&lt;li&gt;   Click OK &lt;/li&gt;&lt;/ul&gt;     &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Your application is now deployed! &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;   Open a web browser and give you new Wiki a try. You can connect to the application at this address:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://localhost:8080/JSPWiki"&gt;http://localhost:8080/JSPWiki&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;OR if you want to connect to your JSPWiki from another machine on your LAN:  &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;     &lt;ul&gt;&lt;li&gt;   &lt;a href="http://glassfish.example.com:8080/JSPWiki"&gt;http://glassfish.example.com:8080/JSPWiki&lt;/a&gt; or &lt;/li&gt;&lt;li&gt;&lt;a href="http://192.168.0.5:8080/JSPWiki"&gt;http://192.168.0.5:8080/JSPWiki&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;    &lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Consider JSPWiki Successfully Deployed! &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; However, we're still not done...&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt; First, the URL is not something that will be easy for your LAN users to remember. Second, those Internet users whom you wish to grant Wiki access still can't reach it. We'll resolve this in the next step.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-4974438594593483071?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/4974438594593483071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=4974438594593483071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4974438594593483071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4974438594593483071'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-15-of-18.html' title='JSPWiki/Glassfish Install (Part 15 of 18: Deploy JSPWiki)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-1787858278748404890</id><published>2007-03-08T14:55:00.000-07:00</published><updated>2007-03-08T14:50:16.450-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 14 of 18: Configure Glassfish for JSPWiki)</title><content type='html'>For this part of our walk through we will need to COPY some content from our JSPWiki folder to the config directory of our Glassfish Installation.  &lt;p style="margin-bottom: 0in;"&gt;   Navigate into our working JSPWiki WEB-INF folder and leave it open.&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   jspwiki-2.4.100-bin\JSPWiki\JSPWiki\WEB-INF&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;   Navigate into the domain config folder of our Glassfish install and leave it open.&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   C:\java\glassfish-v2-b33e\domains\domain1\config &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;Key File&lt;/b&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       COPY the jspwiki.jks file to C:\java\glassfish-v2-b33e\domains\domain1\config     &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;Login File&lt;/b&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt; Append the entire contents of jspwiki.jaas to login.conf&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       In the WEB-INF folder     &lt;/p&gt;     &lt;ul&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           OPEN the jspwiki.jaas file.         &lt;/p&gt;         &lt;/li&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             Select All and Copy           &lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         Open the folder C:\java\glassfish-v2-b33e\domains\domain1\config       &lt;/p&gt;       &lt;ul&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             OPEN the file login.conf           &lt;/p&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               PASTE the entire contents of what you copied from the jspwiki.jaas file to the very end of this file.             &lt;/p&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Save and Close the login.conf file               &lt;/p&gt;       &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;Policy File&lt;/b&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt; Append the contents of jspwiki.policy to server.policy&lt;/b&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       In the WEB-INF folder     &lt;/p&gt;     &lt;ul&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           OPEN the jspwiki.policy file.         &lt;/p&gt;         &lt;/li&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             Select All and Copy           &lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         Open the folder C:\java\glassfish-v2-b33e\domains\domain1\config       &lt;/p&gt;       &lt;ul&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             OPEN the file server.policy file           &lt;/p&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               PASTE the entire contents of what you copied from the jspwiki.policy file to the very end of this file.             &lt;/p&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Save and Close the server.policy file               &lt;/p&gt;       &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Note: In the JSPWiki jspwiki.properties file there seem to be configuration entries that would let one point to the location of the jspwiki.policy and jspwiki.jaas files. I had hoped to just copy these 2 files under C:\java\jspwiki\security and then set the appropriate variable values, but I could not get this to work. If anyone could shed some light I'd appreciate it and will post your insights here. Or better yet just leave a comment below. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-1787858278748404890?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/1787858278748404890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=1787858278748404890' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/1787858278748404890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/1787858278748404890'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-14-of-18.html' title='JSPWiki/Glassfish Install (Part 14 of 18: Configure Glassfish for JSPWiki)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-3343255018920117716</id><published>2007-03-08T14:54:00.000-07:00</published><updated>2007-03-08T14:49:47.429-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 13 of 18: Configure JSPWiki)</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt;  As with everything in this walk through I recommend poking around to gain an understanding of what is happening but to speed things along I will provide some blocks of configuration to include in certain files. Some if the items I provide may already exist in a give file but maybe commented out. It is your decision with regard to appending my configuration or editing/uncommenting those settings which already exist in the given file. &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  In the new folder that was created, “jspwiki-2.4.100-bin” locate the “war” file named “JSPWiki.war.”&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use 7-zip to decompress this file. &lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;i&gt;Important Note: &lt;/i&gt;Move the original “JSPWiki.war” file to a safe place just in case one of the configuration files gets scrambled when we make changes. &lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Navigate into the new folder and locate the WEB-INF folder. Most of our significant configuration changes will be performed on files within this folder:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   jspwiki-2.4.100-bin\JSPWiki\JSPWiki\WEB-INF &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;web.xml File&lt;/b&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; The web.xml contains settings that determine what Glassfish understands about the JSPWiki application and much of how Glassfish and the JSPWiki application will interact. The settings in which we are most interested relate to: &lt;/p&gt; &lt;ol&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       How JSPWiki will reference the JDBC data source we setup earlier     &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         The directives of when and how Glassfish will authenticate users       &lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Open/Edit the web.xml file. &lt;/li&gt;&lt;li&gt;   Append the following lines to the end of the web.xml file but before the ending  entry: &lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[START web.xml snippet]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;resource-ref&amp;gt;&lt;br /&gt;      &amp;lt;description&amp;gt;&lt;br /&gt;          Resource reference to JNDI factory for the JDBCUserDatabase.&lt;br /&gt;      &amp;lt;/description&amp;gt;&lt;br /&gt;      &amp;lt;res-ref-name&amp;gt;&lt;br /&gt;          jdbc/WikiSource&lt;br /&gt;      &amp;lt;/res-ref-name&amp;gt;&lt;br /&gt;      &amp;lt;res-type&amp;gt;&lt;br /&gt;          javax.sql.DataSource&lt;br /&gt;      &amp;lt;/res-type&amp;gt;&lt;br /&gt;      &amp;lt;res-auth&amp;gt;&lt;br /&gt;          Container&lt;br /&gt;      &amp;lt;/res-auth&amp;gt;&lt;br /&gt;  &amp;lt;/resource-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;security-constraint&amp;gt;&lt;br /&gt;       &amp;lt;display-name&amp;gt;Force Login&amp;lt;/display-name&amp;gt;&lt;br /&gt;       &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;           &amp;lt;web-resource-name&amp;gt;Force Login&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;           &amp;lt;description/&amp;gt;&lt;br /&gt;           &amp;lt;url-pattern&amp;gt;/Wiki.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;           &amp;lt;http-method&amp;gt;GET&amp;lt;/http-method&amp;gt;&lt;br /&gt;           &amp;lt;http-method&amp;gt;PUT&amp;lt;/http-method&amp;gt;&lt;br /&gt;           &amp;lt;http-method&amp;gt;HEAD&amp;lt;/http-method&amp;gt;&lt;br /&gt;           &amp;lt;http-method&amp;gt;POST&amp;lt;/http-method&amp;gt;&lt;br /&gt;           &amp;lt;http-method&amp;gt;DELETE&amp;lt;/http-method&amp;gt;&lt;br /&gt;           &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;       &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;           &amp;lt;role-name&amp;gt;Admin&amp;lt;/role-name&amp;gt;&lt;br /&gt;           &amp;lt;role-name&amp;gt;Authenticated&amp;lt;/role-name&amp;gt;&lt;br /&gt;       &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;       &amp;lt;/security-constraint&amp;gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;  &amp;lt;security-constraint&amp;gt;&lt;br /&gt;      &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;          &amp;lt;web-resource-name&amp;gt;Administrative Area&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/Delete.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;      &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;      &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;          &amp;lt;role-name&amp;gt;Admin&amp;lt;/role-name&amp;gt;&lt;br /&gt;      &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;      &amp;lt;user-data-constraint&amp;gt;&lt;br /&gt;          &amp;lt;transport-guarantee&amp;gt;CONFIDENTIAL&amp;lt;/transport-guarantee&amp;gt;&lt;br /&gt;      &amp;lt;/user-data-constraint&amp;gt;&lt;br /&gt;  &amp;lt;/security-constraint&amp;gt;&lt;br /&gt;   &lt;br /&gt;  &amp;lt;security-constraint&amp;gt;&lt;br /&gt;      &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;          &amp;lt;web-resource-name&amp;gt;Authenticated area&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/Edit.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/Comment.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/Login.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/NewGroup.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/Rename.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/Upload.jsp&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;DELETE&amp;lt;/http-method&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;GET&amp;lt;/http-method&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;HEAD&amp;lt;/http-method&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;POST&amp;lt;/http-method&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;PUT&amp;lt;/http-method&amp;gt;&lt;br /&gt;      &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;          &amp;lt;web-resource-name&amp;gt;Read-only Area&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;          &amp;lt;url-pattern&amp;gt;/attach&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;DELETE&amp;lt;/http-method&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;POST&amp;lt;/http-method&amp;gt;&lt;br /&gt;          &amp;lt;http-method&amp;gt;PUT&amp;lt;/http-method&amp;gt;&lt;br /&gt;      &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;          &amp;lt;role-name&amp;gt;Admin&amp;lt;/role-name&amp;gt;&lt;br /&gt;          &amp;lt;role-name&amp;gt;Authenticated&amp;lt;/role-name&amp;gt;&lt;br /&gt;      &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;user-data-constraint&amp;gt;&lt;br /&gt;          &amp;lt;transport-guarantee&amp;gt;CONFIDENTIAL&amp;lt;/transport-guarantee&amp;gt;&lt;br /&gt;      &amp;lt;/user-data-constraint&amp;gt;&lt;br /&gt;  &amp;lt;/security-constraint&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;login-config&amp;gt;&lt;br /&gt;      &amp;lt;auth-method&amp;gt;FORM&amp;lt;/auth-method&amp;gt;&lt;br /&gt;      &amp;lt;realm-name&amp;gt;jdbc-realm&amp;lt;/realm-name&amp;gt;&lt;br /&gt;      &amp;lt;form-login-config&amp;gt;&lt;br /&gt;          &amp;lt;form-login-page&amp;gt;/LoginForm.jsp&amp;lt;/form-login-page&amp;gt;&lt;br /&gt;          &amp;lt;form-error-page&amp;gt;/LoginForm.jsp&amp;lt;/form-error-page&amp;gt;&lt;br /&gt;      &amp;lt;/form-login-config&amp;gt;&lt;br /&gt;  &amp;lt;/login-config&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;security-role&amp;gt;&lt;br /&gt;      &amp;lt;description&amp;gt;&lt;br /&gt;          This logical role includes all authenticated users&lt;br /&gt;      &amp;lt;/description&amp;gt;&lt;br /&gt;      &amp;lt;role-name&amp;gt;Authenticated&amp;lt;/role-name&amp;gt;&lt;br /&gt;  &amp;lt;/security-role&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;security-role&amp;gt;&lt;br /&gt;      &amp;lt;description&amp;gt;&lt;br /&gt;          This logical role includes all administrative users&lt;br /&gt;      &amp;lt;/description&amp;gt;&lt;br /&gt;      &amp;lt;role-name&amp;gt;Admin&amp;lt;/role-name&amp;gt;&lt;br /&gt;  &amp;lt;/security-role&amp;gt;&lt;br /&gt;&lt;br /&gt;[END web.xml snippet]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   The biggest changes from those that exist in the file but are commented out are: &lt;/p&gt; &lt;ol&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       Setting the reference to jdbc/WikiSource     &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         Adding the “Force Login” security-constraint section       &lt;/p&gt;       &lt;/li&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           Adding the “jdbc-realm” realm-name to the login-config section         &lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;jspwiki.properties File&lt;/b&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; Open/Edit the jspwiki.properties file. Most of the items will remain at their default values but we need to alter a few. Remember to uncomment (remove the # before the setting if there is one) for each of these items: &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;jspwiki.pageProvider = VersioningFileProvider&lt;br /&gt;jspwiki.usePageCache = true&lt;br /&gt;jspwiki.fileSystemProvider.pageDir = C:\\java\\jspwiki\\pages&lt;br /&gt;jspwiki.workDir = C:\\java\\jspwiki\\work&lt;br /&gt;jspwiki.attachmentProvider = BasicAttachmentProvider&lt;br /&gt;jspwiki.basicAttachmentProvider.storageDir = C:\\java\\jspwiki\\attachments&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;jspwiki.authorizer = com.ecyrd.jspwiki.auth.authorize.WebContainerAuthorizer&lt;br /&gt;jspwiki.userdatabase = com.ecyrd.jspwiki.auth.user.JDBCUserDatabase&lt;br /&gt;jspwiki.userdatabase.isSharedWithContainer = false&lt;br /&gt;&lt;br /&gt;jspwiki.userdatabase.datasource=jdbc/WikiSource&lt;br /&gt;jspwiki.userdatabase.table=auth&lt;br /&gt;jspwiki.userdatabase.email=email&lt;br /&gt;jspwiki.userdatabase.fullName=fullname&lt;br /&gt;jspwiki.userdatabase.loginName=password&lt;br /&gt;jspwiki.userdatabase.password=password&lt;br /&gt;jspwiki.userdatabase.wikiName=wikiname&lt;br /&gt;jspwiki.userdatabase.created=created&lt;br /&gt;jspwiki.userdatabase.modified=modified&lt;br /&gt;jspwiki.userdatabase.roleTable=authrole&lt;br /&gt;jspwiki.userdatabase.role=role&lt;br /&gt;&lt;br /&gt;log4j.appender.FileLog = org.apache.log4j.RollingFileAppender&lt;br /&gt;log4j.appender.FileLog.MaxFileSize    = 10MB&lt;br /&gt;log4j.appender.FileLog.MaxBackupIndex = 14&lt;br /&gt;##log4j.appender.FileLog.File = /tmp/jspwiki.log&lt;br /&gt;log4j.appender.FileLog.File = C:\\java\\jspwiki\\logs\\jspwiki.log&lt;br /&gt;log4j.appender.FileLog.layout = org.apache.log4j.PatternLayout&lt;br /&gt;log4j.appender.FileLog.layout.ConversionPattern=%d [%t] %p %c %x - %m%n&lt;br /&gt;log4j.rootCategory=INFO,FileLog&lt;br /&gt;log4j.logger.SecurityLog=INFO, SecurityAppender&lt;br /&gt;log4j.appender.SecurityAppender = org.apache.log4j.RollingFileAppender&lt;br /&gt;log4j.appender.SecurityAppender.MaxFileSize    = 10MB&lt;br /&gt;log4j.appender.SecurityAppender.MaxBackupIndex = 14&lt;br /&gt;log4j.appender.SecurityAppender.File = @securitylog@&lt;br /&gt;log4j.appender.SecurityAppender.layout = org.apache.log4j.PatternLayout&lt;br /&gt;log4j.appender.SecurityAppender.layout.ConversionPattern=%d %p - %m%n&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;     &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Notice that the jspwiki.userdatabase reflect the name of the JDBC DataSource we setup earlier and the jspwiki.userdatabase fields reflect the columns of our database tables.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-3343255018920117716?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/3343255018920117716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=3343255018920117716' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3343255018920117716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/3343255018920117716'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-13-of-18.html' title='JSPWiki/Glassfish Install (Part 13 of 18: Configure JSPWiki)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5303515404741726814</id><published>2007-03-08T14:53:00.000-07:00</published><updated>2007-03-08T14:49:14.394-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 12 of 18: Wiki Storage)</title><content type='html'>Before we actually being modifying JSPWiki's configuration files the first thing we want to do is create and organize a directory to house the content created by JSPWiki activity.  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Add the following sub-folders to our &lt;a href="http://docs.google.com/C:/java"&gt;C:\java&lt;/a&gt; directory:&lt;br /&gt;&lt;/p&gt;     &lt;p style="margin-bottom: 0in;"&gt;   jspwiki&lt;br /&gt;     \--attachments&lt;br /&gt;     \--logs&lt;br /&gt;     \--pages&lt;br /&gt;     \--work &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Our “java” folder now looks like this: &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;          &lt;p style="margin-bottom: 0in;"&gt;   C: java&lt;br /&gt;\--apache-ant-1.7.0&lt;br /&gt;\--glassfish-v2-b33e&lt;br /&gt;\--jdk1.6.0&lt;br /&gt;\--jre1.6.0&lt;br /&gt;\--jspwiki&lt;br /&gt;..........\--attachments&lt;br /&gt;..........\--logs&lt;br /&gt;..........\--pages&lt;br /&gt;..........\--work &lt;/p&gt;      &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Locate the JSPWiki archive you downloaded earlier. This file should be named “jspwiki-2.4.100-bin.zip.”&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Decompress this file. &lt;/li&gt;&lt;ul&gt;&lt;li&gt; In the new folder that was created, “jspwiki-2.4.100-bin”, you will find several other zip archives. Find the file named “JSPWiki-corepages.zip.”&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;   &lt;ul&gt;&lt;li&gt;   Decompress this file &lt;/li&gt;&lt;ul&gt;&lt;li&gt;   Copy the contents (not the folder) of the “JSPWiki-corepages” to C:\java\jspwiki\pages &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5303515404741726814?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5303515404741726814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5303515404741726814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5303515404741726814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5303515404741726814'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-12-of-18.html' title='JSPWiki/Glassfish Install (Part 12 of 18: Wiki Storage)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-8397185531706075683</id><published>2007-03-08T14:52:00.000-07:00</published><updated>2007-03-08T14:48:36.963-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 11 of 18: JDBC Stuff)</title><content type='html'>&lt;b&gt;Install the Driver&lt;/b&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;Glassfish ships with many JDBC drivers already included. However, I'm not going to use any of those drivers. There are two reasons I have chosen not to do this:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       I already have a JDBC driver I use else ware that I really like     &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt; Your driver may not be included and I wanted to show you how to add “jars” to Glassfish so that the driver's functionality will be available to the application server and applications that run in the application server like JSPWiki. That being said if your driver is already installed into Glassfish you might as well use the pre-installed version.&lt;br /&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;    &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Locate the jTDS zip file you downloaded earlier. This file should be named jtds-1.2-dist.zip.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       Decompress this file using 7-zip.     &lt;/p&gt;     &lt;ul&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           A new jtds-1.2-dist folder will be created         &lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         Open the jtds-1.2-dist folder       &lt;/p&gt;       &lt;/li&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           Locate the file named jtds-1.2.jar         &lt;/p&gt;         &lt;ul&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               Copy this file to the directory C:\java\glassfish-v2-b33e\lib             &lt;/p&gt;         &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   The jTDS JDBC driver is now installed!   Now, we have to configure it.&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;Configure the Driver (Connection Pool)&lt;/b&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Start Glassfish as described in previously.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Login to Glassfish at &lt;a href="http://localhost:4848/"&gt;http://localhost:4848&lt;/a&gt; as described previously &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  When you first log in you are presented with a “Common Tasks” screen. Click on “Create New JDBC Connection Pool.” &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  Enter the following values to describe our JDBC Connection Pool: &lt;/p&gt;  &lt;ul&gt;&lt;li&gt;  Name: WikiPool &lt;/li&gt;&lt;li&gt;   Resource Type: java.sql.DataSource &lt;/li&gt;&lt;li&gt;   Database Vendor: &lt;leave&gt; &lt;leave&gt; &lt;/leave&gt;&lt;/leave&gt;&lt;/li&gt;&lt;/ul&gt;     &lt;p style="margin-bottom: 0in;"&gt;  You will presented with a new screen, enter this value to tell the server how to call the jTDS driver we installed earlier:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Datasource Classname: net.sourceforge.jtds.jdbcx.JtdsDataSource &lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Scroll down this screen and click on the Add Properties button. Add the appropriate name – value pairs as needed by your database as setup in an earlier step. Remember that these name -value pairs are case sensitive. For this example using MS-SQL server and the jTDS driver my Connection Pool properties are as follows: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Name -- Value &lt;/li&gt;&lt;li&gt;   port -- 1433 &lt;/li&gt;&lt;li&gt;   appName -- GlassfishAppServer &lt;/li&gt;&lt;li&gt;   databaseName -- dbwiki &lt;/li&gt;&lt;li&gt;   selectMethod -- cursor &lt;/li&gt;&lt;li&gt;   serverName -- mssql.example.com (or just use the database server ip number directly 192.168.0.6) &lt;/li&gt;&lt;li&gt;   user --  dbuser &lt;/li&gt;&lt;li&gt;   password -- dbpassword &lt;/li&gt;&lt;/ul&gt;          &lt;p style="margin-bottom: 0in;"&gt;  Click "Finish" when you're done entering your values. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; You will be presented with a list of Connection Pools running on the server. Find WikiPool that we just setup and click on it to open up its setup screen. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   On this screen click the “Ping” button. You'll get a nice ping succeeded message with a re-assuring green check mark.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  &lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;   &lt;b&gt;Setup a DataSource&lt;/b&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  Using the frame on the left hand side of the screen navigate to: &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Resources --&gt; JDBC --&gt; JDBC Resources &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   In the right frame click the “New” button&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   JNDI Name: jdbc/WikiSource &lt;/li&gt;&lt;li&gt;   Pool Name: WikiPool &lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;  Click "OK." &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;b&gt;Setup a JDBC Realm&lt;/b&gt;&lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;  Using the frame on the left hand side of the screen navigate to: &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Configuration --&gt; Security --&gt; Realms&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Double click on the “Realms” folder &lt;/li&gt;&lt;li&gt;   Using the frame on the right hand side of the screen: &lt;/li&gt;&lt;li&gt;   Click the “New” button.&lt;/li&gt;&lt;/ul&gt;     &lt;p style="margin-bottom: 0in;"&gt;   Enter the following values...&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Name: jdbc-realm &lt;/li&gt;&lt;li&gt;   Classname: com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;   &lt;p style="margin-bottom: 0in;"&gt;   Click the “Add Property” and add each of the following name-value pairs &lt;/p&gt; &lt;ul&gt;&lt;li&gt;   user-table -- auth &lt;/li&gt;&lt;li&gt;   password-column -- password &lt;/li&gt;&lt;li&gt;   jaas-context -- jdbcRealm &lt;/li&gt;&lt;li&gt;   group-name-column -- role &lt;/li&gt;&lt;li&gt;   datasource-jndi -- jdbc/WikiSource &lt;/li&gt;&lt;li&gt;   digest-algorithm -- none &lt;/li&gt;&lt;li&gt;   group-table -- authrole &lt;/li&gt;&lt;li&gt;   user-name-column -- username &lt;/li&gt;&lt;/ul&gt;          &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Finally, navigate to Configuration --&gt; Security &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   In the right hand window ...&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Check the box labeled “Default Principal to Role Mapping.” &lt;/li&gt;&lt;li&gt;   Click “Save” &lt;/li&gt;&lt;/ul&gt;     &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;This in a nut shell is how these parts together (sort of): &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   database &lt;-&gt; driver &lt;-&gt; connection pool &lt;--&gt; data source &lt;–&gt; application&lt;br /&gt;                                                                                                                  \ &lt;--&gt; jdbc-realm &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt;      &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;The driver deals directly with the database. The connection pool configures and controls the driver. The data source is how the applications and, in our case, the jdbc-realm, get their hands on the pool. You will see later that we will configure our JSPWiki to make use of the jdbc-realm to control all the user login activity. Basically, the application also determines HOW to use the jdbc-realm.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Its a good idea to &lt;span style="font-style: italic;"&gt;restart the application server&lt;/span&gt; at this point to make sure the addition of the jdbc-realm to the application server takes hold. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-8397185531706075683?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/8397185531706075683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=8397185531706075683' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8397185531706075683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8397185531706075683'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-11-of-18.html' title='JSPWiki/Glassfish Install (Part 11 of 18: JDBC Stuff)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5598868704272037045</id><published>2007-03-08T14:51:00.000-07:00</published><updated>2007-03-08T14:48:09.393-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 10 of 18: DB Tables)</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt;  One of the goals of this walk through is to be able to limit access to our Wiki based on a list of predefined users.&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt; This list of predefined users will be stored in a relational database system. In our case we'll be using Microsoft Sql Server.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;However, you do not have to use the Microsoft product. You can use just about any database you would like for your project. The only limitation is that the database server you will want to use must have an available JDBC driver.&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Also, you must have the ability to create a database on your database server and the ability to create and update the tables that you will store in the database. Glassfish already has a bunch of JDBC drivers pre-installed so its likely that you won't need to add a JDBC driver for your specific setup, but you will still need to configure it.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;If you don't have database server software installed on your network, consider &lt;a href="http://www.postgresql.org/"&gt;&lt;/a&gt;&lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt;. &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt; is a free and open source RDBMS solution that is very good, has a solid JDBC driver which also happens to be already included in Glassfish. Another big plus for &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt; is the quality of its on-line documentation and its friendly community of users especially those found on its mailing lists. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Here are the nuts and bolts of the database setup of this example:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   database static ip address: 192.168.0.6 (mssql.example.com entry in my LAN DNS) &lt;/li&gt;&lt;li&gt;   database name: dbwiki &lt;/li&gt;&lt;li&gt;   database user: dbuser &lt;/li&gt;&lt;li&gt;   database password: dbpassword &lt;/li&gt;&lt;/ul&gt;       &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Again, your LAN/DB setup can be anything you like. But, you need will need to know what its configuration is as  we will need to use these value sto configure our JDBC driver in Glassfish in a later step.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;After you have setup your database system, created a database on that system and created a user (with password) that can create/update/modify/delete tables in the database you will need to login to the database and create a couple of tables to hold our list of wiki users and their role information.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;On my MS-SQL server I issued the following commands to create my user tables:&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;create table auth(&lt;br /&gt;         id int NOT NULL IDENTITY PRIMARY KEY,&lt;br /&gt;         username varchar(20) NOT NULL UNIQUE,&lt;br /&gt;         password varchar(20) NOT NULL,&lt;br /&gt;         email varchar(64),&lt;br /&gt;         firstname varchar(20),&lt;br /&gt;         middlenam varchar(20),&lt;br /&gt;         lastname varchar(20),&lt;br /&gt;         wikiname varchar(40),&lt;br /&gt;         created datetime,&lt;br /&gt;         modified datetime,&lt;br /&gt;         dialupaccess bit,&lt;br /&gt;         disabled bit,&lt;br /&gt;         disableddate datetime&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; &lt;/p&gt; &lt;span style="font-size:85%;"&gt;&lt;blockquote&gt;create table authrole(&lt;br /&gt;         id int NOT NULL IDENTITY PRIMARY KEY,&lt;br /&gt;         username varchar(20) REFERENCES auth(username) ON UPDATE CASCADE ON DELETE CASCADE,&lt;br /&gt;         role varchar(20) NOT NULL,&lt;br /&gt;         rolecode varchar(20)&lt;br /&gt;)&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;Issue INSERT statements to populate your tables. Add a couple of users to the "auth" table. For now enter everything as plain text but later on you will want to store you password encoded.&lt;br /&gt;&lt;br /&gt;Add the same users to the authrole tables but when you enter a value for "role" make this value equal "Authenticated"&lt;br /&gt;&lt;br /&gt;When you add your self to the authrole table enter "Admin" as the value for "role." As the administrator for the wiki this will grant you extra capabilites like being able to delete pages.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5598868704272037045?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5598868704272037045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5598868704272037045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5598868704272037045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5598868704272037045'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-10-of-18.html' title='JSPWiki/Glassfish Install (Part 10 of 18: DB Tables)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-4414348584105258559</id><published>2007-03-08T14:50:00.000-07:00</published><updated>2007-03-08T14:47:37.124-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 9 of 18: Install Glassfish)</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt;Locate the Glassfish jar file you downloaded earlier. This file should be named glassfish-installer-v2-b33e.jar. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0in;"&gt;   Copy this jar file to your &lt;a href="http://docs.google.com/C:/java"&gt;C:\java&lt;/a&gt; directory. With the jar moved to the correct location you can now ready Glassfish for use... &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Click on the “Start&lt;/li&gt;&lt;li&gt;In the “Open:” box enter “cmd” and click “OK”&lt;/li&gt;&lt;ol&gt;&lt;li&gt;A command window will open&lt;/li&gt;&lt;li&gt;Type “cd \java” in the command window and hit enter.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Type “java -jar glassfish-installer-v2-b33e.jar”&lt;/li&gt;&lt;ol&gt;&lt;li&gt;A license agreement window will open. Rea&lt;/li&gt;&lt;li&gt;You will see the “jar” file decompress&lt;/li&gt;&lt;li&gt;A new “glassfish” folder will be created under C:\java&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Delete (or move for the safe keeping) the “glassfish-installer-v2-b33e.jar” file&lt;/li&gt;&lt;li&gt;Rename the “glassfish” folder "glassfish-v2-b33e"&lt;/li&gt;&lt;li&gt;Type “cd glassfish-v2-b33e”&lt;/li&gt;&lt;li&gt;You are now in the glassfish home directory&lt;/li&gt;&lt;li&gt;Type “ant -f setup.xml”&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Apache Ant will execute the command in the setup.xml file that will render Glassfish ready for use&lt;/li&gt;&lt;li&gt;The setup will finish with “BUILD SUCCESSFUL” and some information regarding how long it took for the ant script to run&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt; Now is a good time to play with your fresh install of Glassfish. In the command window which should still be open from the preceding steps type “cd bin” which will put you in the directory “C:\java\glassfish-v2-b33e\bin.”    Once in this directory type “asadmin start-domain –verbose.”   The Glassfish Java EE 5 application server will start. You will see all kinds of output in your command window and once you see a message indicating that the application server has indeed started you will be able to log into the application server using a web browser.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Lets login to Glassfish now!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Open you web browser &lt;/li&gt;&lt;li&gt;   Enter “&lt;a href="http://localhost:4848/"&gt;http://localhost:4848&lt;/a&gt;” into the address bar and hit enter. &lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;   {Take care to be sure that you are entering this URL into you address bar and not some kind of search box.} &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt; Don't be alarmed when your browser displays a login screen that is branded with logo's from Sun Microsystems. Sun is the “big muscle” behind the Glassfish open source project and, as indicated in previous steps, Glassfish will eventually become the next version of Sun's Java System Application Server product line. &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Go ahead and enter the default login information: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;   Default User Name: admin &lt;/li&gt;&lt;li&gt;   Default Password: adminadmin &lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; When you're done poking around the web interface of Glassfish go back to your command window and type the “ctlrl-c” keyboard combination to stop the server output. Then type “asadmin stop-domain” to stop the server itself. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Consider Glassfish installed!&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Our “java” folder now looks like this:&lt;br /&gt;&lt;/p&gt;     &lt;p style="margin-bottom: 0in;"&gt;   C: java&lt;br /&gt;       \--apache-ant-1.7.0&lt;br /&gt;       \--glassfish-v2-b33e&lt;br /&gt;       \--jdk1.6.0&lt;br /&gt;       \--jre1.6.0 &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-4414348584105258559?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/4414348584105258559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=4414348584105258559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4414348584105258559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/4414348584105258559'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-9-of-18.html' title='JSPWiki/Glassfish Install (Part 9 of 18: Install Glassfish)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-1163773965168253118</id><published>2007-03-08T14:49:00.000-07:00</published><updated>2007-03-08T14:47:02.014-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 8 of 18: Install Apache Ant)</title><content type='html'>Locate the Apache Ant zip file you downloaded in Part 4. This file should be named "apache-ant-1.7.0-bin.zip."&lt;br /&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;  Decompress the archive... &lt;/p&gt; &lt;ol&gt;&lt;li&gt;   Right click on the file --&gt; 7-zip --&gt; Extract Files... &lt;/li&gt;&lt;li&gt;   You will now have a new folder with the name “apache-ant-1.7.0-bin” &lt;/li&gt;&lt;li&gt;   Double click on the “apache-ant-1.7.0-bin” folder to open it. &lt;/li&gt;&lt;li&gt;   You will see a folder named “apache-ant-1.7.0” &lt;/li&gt;&lt;li&gt;   Copy this inner folder to your &lt;a href="http://docs.google.com/C:/java"&gt;C:\java&lt;/a&gt; folder&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;        &lt;p style="margin-bottom: 0in;"&gt;   Now we need to set up the environment variables for ant:&lt;br /&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;   Right click on your “My Computer” icon and choose properties. &lt;/li&gt;&lt;li&gt;   Click the “Advanced Tab” &lt;/li&gt;&lt;li&gt;   Click the “Environment Variables” button &lt;/li&gt;&lt;li&gt;   Under the “System Variables” section of the window click “New” &lt;/li&gt;&lt;li&gt;   Enter the “Variable Name” -- ANT_HOME &lt;/li&gt;&lt;li&gt;   Enter the “Variable Value” -- C:\java\apache-ant-1.7.0 &lt;/li&gt;&lt;li&gt;   Click OK. &lt;/li&gt;&lt;li&gt;   Under the “System Variables” find the system variable with then name “Path” &lt;/li&gt;&lt;li&gt;   Click “Edit” &lt;/li&gt;&lt;li&gt;   Add “;%ANT_HOME%\bin” to the very end of the “Variable Value” field &lt;/li&gt;&lt;li&gt;   Click OK. &lt;/li&gt;&lt;li&gt;   Click OK to close the “Environment Variables” window &lt;/li&gt;&lt;li&gt;   Click OK to close the “System Properties” window. &lt;/li&gt;&lt;/ol&gt;             &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;Note: We could have also setup a “CLASSPATH” environment variable but we're going to leave that out for now. Just be aware of it in case you find, for some other project, that you have a need to alter or set your “CLASSPATH.”&lt;br /&gt;&lt;br /&gt;Verify that you can run ant commands... &lt;ol&gt;&lt;li&gt;   Click on the “Start” Button &lt;/li&gt;&lt;li&gt;   Click on “Run...” &lt;/li&gt;&lt;li&gt;   In the “Open:” box enter “cmd” and click “OK” &lt;/li&gt;&lt;li&gt;   A command window will open &lt;/li&gt;&lt;li&gt;   Type “ant -version” in the command window &lt;/li&gt;&lt;li&gt;   You will get a response indicating that you are running “Apache Ant version 1.7.0 compiled on December 13 2006” &lt;/li&gt;&lt;/ol&gt;       &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0in;"&gt;  Consider Apache Ant installed!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;   Our “java” folder now looks like this:&lt;/p&gt;    &lt;p style="margin-bottom: 0in;"&gt;   C: java&lt;br /&gt;    \--apache-ant-1.7.0&lt;br /&gt;    \--jdk1.6.0&lt;br /&gt;    \--jre1.6.0 &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-1163773965168253118?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/1163773965168253118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=1163773965168253118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/1163773965168253118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/1163773965168253118'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-8-of-18.html' title='JSPWiki/Glassfish Install (Part 8 of 18: Install Apache Ant)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-6535220174810525748</id><published>2007-03-08T14:47:00.000-07:00</published><updated>2007-03-08T14:46:10.280-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 7 of 18: Install Java SE JDK)</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt; Locate the JDK you downloaded in Step 4. This file will be named “jdk-6-windows-i586.exe.” &lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;Double click on the file to begin the install procedure &lt;/p&gt;    &lt;ol&gt;&lt;li&gt;   Accept the license agreement.&lt;/li&gt;&lt;li&gt;Change the install location for the JDK&lt;/li&gt;&lt;ul&gt;&lt;li&gt;From: &lt;a href="http://docs.google.com/C:/Program"&gt;C:\Program&lt;/a&gt; Files\Java\jdk1.6.0&lt;/li&gt;&lt;li&gt;To: C:\java\jdk1.6.0 &lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;   and click "Next" to continue. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; Eventually the install process will attempt to install a public Java Runtime Environment (JRE). Change the install location for the JRE &lt;/p&gt; &lt;ul&gt;&lt;li&gt;   From: &lt;a href="http://docs.google.com/C:/Program"&gt;C:\Program&lt;/a&gt; Files\Java\jre1.6.0 &lt;/li&gt;&lt;li&gt;   To: C:\java\jre1.6.0 &lt;/li&gt;&lt;/ul&gt;  &lt;p style="margin-bottom: 0in;"&gt;   and click to "Next". &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Let the install procedure continue and accept any screens presented. &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt; After the install completes you can verify that you installed to the correct (for this example anyway) location. Look on your “C:” drive for the “java” folder. Inside it should be two folders: jdk1.6.0 and jre1.6.0 &lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;After checking the location verify that you can run java commands... &lt;/p&gt; &lt;ol&gt;&lt;li&gt;   Click on the “Start” Button &lt;/li&gt;&lt;li&gt;   Click on “Run...” &lt;/li&gt;&lt;li&gt;   In the “Open:” box enter “cmd” and click “OK” &lt;/li&gt;&lt;li&gt;   A command window will open &lt;/li&gt;&lt;li&gt;   Type “java -version” in the command window &lt;/li&gt;&lt;li&gt;   You will get a response indicating that you are running “Java version “1.6.0”” &lt;/li&gt;&lt;/ol&gt;      &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   We now have our JDK installed and access to a working JRE which we will need in future steps. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   But we're not finished yet. We will want to setup a few environment variables which may serve to keep us out of trouble later. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Right click on your “My Computer” icon and choose properties. &lt;/p&gt; &lt;ol&gt;&lt;li&gt;   Click the “Advanced Tab” &lt;/li&gt;&lt;li&gt;   Click the “Environment Variables” button &lt;/li&gt;&lt;li&gt;   Under the “System Variables” section of the window click “New” &lt;/li&gt;&lt;li&gt;   Enter the “Variable Name” -- JAVA_HOME &lt;/li&gt;&lt;li&gt;   Enter the “Variable Value” -- C:\java\jdk1.6.0 &lt;/li&gt;&lt;li&gt;   Click OK.&lt;/li&gt;&lt;/ol&gt;     &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Again, under the “System Variables” section of the window click “New” &lt;/p&gt; &lt;ol&gt;&lt;li&gt;   Enter the “Variable Name” -- JDK_HOME &lt;/li&gt;&lt;li&gt;   Enter the “Variable Value” -- C:\java\jdk1.6.0 &lt;/li&gt;&lt;li&gt;   Click OK. &lt;/li&gt;&lt;li&gt;   Under the “System Variables” find the system variable with then name “Path” &lt;/li&gt;&lt;li&gt;   Click “Edit” &lt;/li&gt;&lt;li&gt;   Add “;%JAVA_HOME%\bin” to the very end of the “Variable Value” field &lt;/li&gt;&lt;li&gt;   Click OK. &lt;/li&gt;&lt;li&gt;   Click OK to close the “Environment Variables” window &lt;/li&gt;&lt;li&gt;   Click OK to close the “System Properties” window. &lt;/li&gt;&lt;/ol&gt;         &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt; Consider the JDK installed! &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt; Our “java” folder now looks like this:&lt;br /&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0in;"&gt;   C: java&lt;br /&gt;     \--jdk1.6.0&lt;br /&gt;     \--jre1.6.0 &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-6535220174810525748?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/6535220174810525748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=6535220174810525748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6535220174810525748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6535220174810525748'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-7-of-18.html' title='JSPWiki/Glassfish Install (Part 7 of 18: Install Java SE JDK)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-6240612472887470677</id><published>2007-03-08T14:46:00.000-07:00</published><updated>2007-03-08T14:45:42.869-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 6 of 18: Preliminary Directory)</title><content type='html'>Some of the packages downloaded in an earlier step do not have installers. We will have to manually copy (drop and drag) some of the files contained there in to their proper locations. Some of the packages will need to be decompressed and perhaps even renamed.&lt;br /&gt;&lt;br /&gt;Some of these packages will have installers but the installers will have pre-established default locations. Where this happens we will likely override the default install locations.&lt;br /&gt;&lt;br /&gt;As we progress I will write a “part” that pertains to installing each of the packages we will be using. Ultimately, each of these packages will end or be installed into a sub-directory of C:\java [all lower case]. For the most part any new sub-directory (a.k.a sub-folder) we create will be in LOWERCASE letters and will contain NO SPACES.&lt;br /&gt;&lt;br /&gt;My desire is to have all the software we will install in one location with a clean and easy to understand directory structure. The benefit I anticipate from taking a little extra time during the install is that when we attempt to troubleshoot or expand the use of our Glassfish installation at a later time we'll quickly be able to navigate to any location of interest.&lt;br /&gt;&lt;br /&gt;When completed our install directory will look something like:  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;        &lt;p style="margin-bottom: 0in;"&gt;   C: java&lt;br /&gt;  \--ant-version&lt;br /&gt;  \--glassfish-version&lt;br /&gt;  \--jdk-version&lt;br /&gt;  \--jre-version&lt;br /&gt;  \--jspwiki-storage&lt;br /&gt;  \--other-stuff-version&lt;br /&gt;  \--and-so-on-version &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Go ahead and create the initial “java” directory now. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;Double click on the “My Computer” icon&lt;/li&gt;&lt;li&gt;Double click on the “C:” drive icon&lt;/li&gt;&lt;li&gt;Right click in the “C:” drive window and choose New --&gt; Folder&lt;/li&gt;&lt;li&gt;Name this folder: “java” -- all lower case &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;       &lt;p style="margin-bottom: 0in;"&gt; As we install packages you will want to adjust your path/folder names to compensate for the specific versions you are actually installing. However, I wouldn't recommend installing any versions of the packages discussed here if they are older than the versions I'm using for this walk through. Sun, and Apache for that matter, seems to put a lot of effort into ensuring backward compatibility so chances are you'll be OK with newer versions of these packages as they are released.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-6240612472887470677?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/6240612472887470677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=6240612472887470677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6240612472887470677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6240612472887470677'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-6-of-18.html' title='JSPWiki/Glassfish Install (Part 6 of 18: Preliminary Directory)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5342337632731512820</id><published>2007-03-08T14:45:00.000-07:00</published><updated>2007-03-08T14:43:46.508-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 5 of 18: Install Optional Stuff)</title><content type='html'>In Part 4 of this recipe we downloaded several packages from around the Internet and saved them either to our Desktop or other easy to find location. Two of these packages, gVim and 7-zip, were labeled as optional.&lt;br /&gt;&lt;br /&gt;I strongly recommend that you install these packages now and use them instead of the text editing and compression tools built into MS-Windows.&lt;br /&gt; &lt;p style="margin-bottom: 0in;"&gt; You will install these packages by finding them and double clicking on their icons. Follow the instructions presented to you by their install programs and accept their default settings.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;These programs will make life much easier for you even if the programs themselves seem a bit odd at first. After installing these programs play with them a bit. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; gVim: Create a new file, save it, open it again, change it and save it again. Try opening the file by dropping the file you created on the gVim icon that was created on the Desktop. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt; 7-zip: Find an existing zip filed (a.k.a compressed folder) right click on it and choose 7-zip --&gt; Extract files... Rename the new folder that appears after the compression and choose 7-zip --&gt; Add to archive. &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;       &lt;p style="margin-bottom: 0in;"&gt; I am recommending these tools because they are the best tools I know of for cleanly editing simple text files and managing compressed folders. The functionality built into Windows is OK but not great. If you know of some better utilities which supply a better solution for performing these tasks please share your recommendation as a comment!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5342337632731512820?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5342337632731512820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5342337632731512820' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5342337632731512820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5342337632731512820'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-5-of-18.html' title='JSPWiki/Glassfish Install (Part 5 of 18: Install Optional Stuff)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-8911432266492329575</id><published>2007-03-08T10:17:00.000-07:00</published><updated>2007-03-08T15:20:05.122-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 4 of 18: Gather Components)</title><content type='html'>For our project there are several pieces of software you will need to obtain from various locations on the Internet. This software will not cost you anything. However, if you need commercial support down the road chances you will be able to get it, at least for the JDK and Java EE Container.  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;   Collect all of these items and save them to your desktop or a location where you are sure you will be able to find them: &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       Java SE Development Kit (JDK)     &lt;/p&gt;     &lt;ol type="a"&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           The Glassfish container requires a JDK to run         &lt;/p&gt;         &lt;/li&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             Download JDK Version 6 from Sun Microsystems           &lt;/p&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;             &lt;/p&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 There are several versions on the download page               &lt;/p&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   You want “jdk-6-windows-i586.exe”                 &lt;/p&gt;     &lt;/li&gt;&lt;/ol&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         Java EE Container       &lt;/p&gt;       &lt;ol type="a"&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             JSPWiki need to run within a container. We're going to use Glassfish           &lt;/p&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               Download Glassfish from Java.net             &lt;/p&gt;             &lt;ol type="i"&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt; Note: Glassfish is the development version of what will eventually become the next version of Sun's Java System Application Server (SJSAS) but the release of that product is a little bit down the road. So, for now, we're going to download Glassfish-V2. &lt;/p&gt;                 &lt;ol type="A"&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt; You'll notice that when you login to Glassfish you will see that it already has a lot of Sun's branding an logos on the interface &lt;/p&gt;                 &lt;/li&gt;&lt;/ol&gt;             &lt;/li&gt;&lt;/ol&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 &lt;a href="https://glassfish.dev.java.net/public/downloadsindex.html"&gt;https://glassfish.dev.java.net/public/downloadsindex.html&lt;/a&gt;               &lt;/p&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   There are several version on the download page                 &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     You want “Build 33e 21-February-07” or newer from the Glassfish v2 Beta Branch&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;       &lt;/li&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           Ant         &lt;/p&gt;         &lt;ol type="a"&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               Ant if a build tool that we will need to complete our install of Glassfish.             &lt;/p&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Download Ant               &lt;/p&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   &lt;a href="http://ant.apache.org/"&gt;http://ant.apache.org&lt;/a&gt;                 &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     You want version 1.7.0                   &lt;/p&gt;         &lt;/li&gt;&lt;/ol&gt;         &lt;/li&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             JDBC driver           &lt;/p&gt;           &lt;ol type="a"&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt; Glassfish will need to be able to communicate with MS-SQL server. JDBC is the method used by the Java platform to communicate with relational database systems &lt;/p&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt; Note: You by no means need to use MS-SQL. It just so happens that my user tables are already setup in a database that resides on my MS-SQL server for use by another application. For me, in this instance, using MS-SQL is the path of least resistance. If you already have a database from another vendor installed chances are you'll be able to find a JDBC driver for your existing database system. If you don't have any database system installed you may want to consider PostgreSQL, its reliable and the JDBC drivers are solid. &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Download jTDS                   &lt;/p&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       &lt;a href="http://jtds.sourceforge.net/"&gt;http://jtds.sourceforge.net/&lt;/a&gt;                     &lt;/p&gt;                     &lt;ol type="i"&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           Click on the “Downloads” link                         &lt;/p&gt;                     &lt;/li&gt;&lt;/ol&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         You want version “jtds-1.2-dist.zip”                       &lt;/p&gt;           &lt;/li&gt;&lt;/ol&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               Tomcat (or a couple of pieces of it anyway)             &lt;/p&gt;             &lt;ol type="a"&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt; Even though all of this software will be running on our re-purposed server we are going to want our Apache web server to coordinate all of the web activity. For this to work we're going to need to borrow specific “jars” (a jar is a zip file that holds Java stuff) from the Tomcat project. The setup we're building together, Apache in the front and a Java container behind, is pretty common. Who knows, maybe in the future the folks who write Glassfish/SJSAS will just include the necessary jars to allow this configuration in Glassfish by default. But for now we'll need to track down these extra parts ourselves. &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Download Tomcat                   &lt;/p&gt;                   &lt;ol type="i"&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         &lt;a href="http://tomcat.apache.org/"&gt;http://tomcat.apache.org&lt;/a&gt;                       &lt;/p&gt;                       &lt;/li&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           You want version 5.5.20                         &lt;/p&gt;                   &lt;/li&gt;&lt;/ol&gt;             &lt;/li&gt;&lt;/ol&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Commons-Logging               &lt;/p&gt;               &lt;ol type="a"&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Again this is another “jar” that will be needed in order to get Apache and Glassfish to work together                   &lt;/p&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       &lt;a href="http://jakarta.apache.org/commons/logging"&gt;http://jakarta.apache.org/commons/logging&lt;/a&gt;                     &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         You want version 1.1                       &lt;/p&gt;               &lt;/li&gt;&lt;/ol&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   Text Editor (Optional but Recomended)                 &lt;/p&gt;                 &lt;ol type="a"&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt; We're installing our software on the Windows platform. However, most of this software was probably developed on some kind of Unix platform. This isn't a problem for us as most Java software runs in pretty much the same on any platform. There is one rub which is the format of the configuration files. Unix and Windows handle plain text files differently. If we try to edit these files using Notepad on Windows the files look funny and it makes it easier to make mistakes when editing. I strongly recommend installing gVim to get around this problem. &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         Download gVim                       &lt;/p&gt;                       &lt;/li&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           &lt;a href="http://www.vim.org/download.php"&gt;http://www.vim.org/download.php&lt;/a&gt;                         &lt;/p&gt;                         &lt;/li&gt;&lt;li&gt;                           &lt;p style="margin-bottom: 0in;"&gt;                             You want “gvim70.exe”                           &lt;/p&gt;                           &lt;/li&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt; Note: After you install gvim you will have a gVim icon on you desktop. You can drag and drop the configuration files you need to edit onto this icon/shortcut to open and edit the file in question. &lt;/p&gt;                 &lt;/li&gt;&lt;/ol&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Compression Software (Optional but Recomended)                   &lt;/p&gt;                   &lt;ol type="a"&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt; Sometimes the compression software built into Windows creates a strange internal layout of newly compressed files. 7-zip is also significantly faster at both decompressing/compression operations and will give you a bit more control over how the internals of the compressed files are handled. I strongly recommend you use 7-zip for this exercise. &lt;/p&gt;                       &lt;/li&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           Download 7-zip                         &lt;/p&gt;                         &lt;/li&gt;&lt;li&gt;                           &lt;p style="margin-bottom: 0in;"&gt;                             &lt;a href="http://www.7-zip.org/"&gt;http://www.7-zip.org&lt;/a&gt;                           &lt;/p&gt;                           &lt;/li&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt;                               You want the most recent stable version 4.22                             &lt;/p&gt;                   &lt;/li&gt;&lt;/ol&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       JSPWiki                     &lt;/p&gt;                     &lt;ol type="a"&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           Download JSPWiki                         &lt;/p&gt;                         &lt;/li&gt;&lt;li&gt;                           &lt;p style="margin-bottom: 0in;"&gt;                             &lt;a href="http://www.jspwiki.org/wiki/JSPWikiDownload"&gt;http://www.jspwiki.org/wiki/JSPWikiDownload&lt;/a&gt;                           &lt;/p&gt;                           &lt;/li&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt;                               You want the STABLE version 2.4.100                             &lt;/p&gt;                     &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;       &lt;p style="margin-bottom: 0in;"&gt; Whew! That was a lot of hunting and finding. The good news is this is just about everything we need. There will be an additional component that we will need to install on our Apache server but we will rely on the package tools built in to our Linux distribution to handle that bit of work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-8911432266492329575?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/8911432266492329575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=8911432266492329575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8911432266492329575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8911432266492329575'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-4-of-18.html' title='JSPWiki/Glassfish Install (Part 4 of 18: Gather Components)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-6072746026391782280</id><published>2007-03-08T10:16:00.000-07:00</published><updated>2007-03-08T15:19:50.144-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 3 of 18: Prep Windows)</title><content type='html'>Before going any further you may find its a good idea to perform some basic maintenance on our re-purposed server. Even if you are using a machine with a fresh install of Windows you will still want to perform this preparation procedure.  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;     &lt;p style="margin-bottom: 0in;"&gt;       Update virus definitions and scan for viruses     &lt;/p&gt;     &lt;ol type="a"&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           Use what ever software you already have installed         &lt;/p&gt;         &lt;/li&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             Take whatever steps to remove the viruses, if any are indeed found, as recommended by your anti-virus vendor           &lt;/p&gt;     &lt;/li&gt;&lt;/ol&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p style="margin-bottom: 0in;"&gt;         Run a disk clean-up. On Windows XP this is the procedure       &lt;/p&gt;       &lt;ol type="a"&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             Double click on the “My Computer” icon.           &lt;/p&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               Right click the “C” drive.             &lt;/p&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Click on the “General” tab               &lt;/p&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   Click on the “Disk Cleanup” button                 &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     A new window will open presenting you with a list of check boxes.                   &lt;/p&gt;                   &lt;ol type="i"&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt; Choose the items that you feel are appropriate for windows to clean up. Since, in this case, the server will be a learning area I'm going to check all the items. &lt;/p&gt;                   &lt;/li&gt;&lt;/ol&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       Click “OK”                     &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         The Cleanup process will run                       &lt;/p&gt;       &lt;/li&gt;&lt;/ol&gt;       &lt;/li&gt;&lt;li&gt;         &lt;p style="margin-bottom: 0in;"&gt;           Remove any programs that won't be needed by our application         &lt;/p&gt;         &lt;ol type="a"&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt; The test server is slow enough as it is on its own with Windows running alone so I will remove almost everything except that's not related to operating the hardware or protecting the operating system &lt;/p&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Make sure to remove any previously installed Java Development Kits and Java Runtime Environments               &lt;/p&gt;               &lt;ol type="i"&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     We'll be installing these later!                   &lt;/p&gt;               &lt;/li&gt;&lt;/ol&gt;         &lt;/li&gt;&lt;/ol&gt;         &lt;/li&gt;&lt;li&gt;           &lt;p style="margin-bottom: 0in;"&gt;             Defrag the hard drive           &lt;/p&gt;           &lt;ol type="a"&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Double click on the “My Computer” icon.               &lt;/p&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   Right click the “C” drive.                 &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Click on the “Tools” tab                   &lt;/p&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       Click the “Defragment Now...” button                     &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         A new window will open                       &lt;/p&gt;                       &lt;/li&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           Click the “Defragment” button                         &lt;/p&gt;                         &lt;ol type="i"&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt;                               You may want to hit the “Defragment” button a few times so you get a good defrag result                             &lt;/p&gt;                         &lt;/li&gt;&lt;/ol&gt;           &lt;/li&gt;&lt;/ol&gt;           &lt;/li&gt;&lt;li&gt;             &lt;p style="margin-bottom: 0in;"&gt;               Error check the hard drive             &lt;/p&gt;             &lt;ol type="a"&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   Double click on the “My Computer” icon.                 &lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Right click the “C” drive.                   &lt;/p&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       Click on the “Tools” tab                     &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         Click the “Check Now...” button                       &lt;/p&gt;                       &lt;/li&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           A new window will open                         &lt;/p&gt;                         &lt;/li&gt;&lt;li&gt;                           &lt;p style="margin-bottom: 0in;"&gt;                             Click both check boxes on this window                           &lt;/p&gt;                           &lt;/li&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt;                               Click “Start”                             &lt;/p&gt;                             &lt;ol type="i"&gt;&lt;li&gt;                                 &lt;p style="margin-bottom: 0in;"&gt; You will get a message indicating that C is in use and the scan will occour the next time you restart the machine &lt;/p&gt;                                 &lt;ol type="A"&gt;&lt;li&gt;                                     &lt;p style="margin-bottom: 0in;"&gt;                                       Click “Yes”                                     &lt;/p&gt;                                 &lt;/li&gt;&lt;/ol&gt;                             &lt;/li&gt;&lt;/ol&gt;                             &lt;/li&gt;&lt;li&gt;                               &lt;p style="margin-bottom: 0in;"&gt;                                 Restart the machine                               &lt;/p&gt;             &lt;/li&gt;&lt;/ol&gt;             &lt;/li&gt;&lt;li&gt;               &lt;p style="margin-bottom: 0in;"&gt;                 Update Windows               &lt;/p&gt;               &lt;ol type="a"&gt;&lt;li&gt;                   &lt;p style="margin-bottom: 0in;"&gt;                     Open Internet Explorer                   &lt;/p&gt;                   &lt;/li&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       Go to &lt;a href="http://update.microsoft.com/"&gt;http://update.microsoft.com&lt;/a&gt;                     &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         Follow all the instructions to make sure the operating system gets fully patched                       &lt;/p&gt;                       &lt;ol type="i"&gt;&lt;li&gt;                           &lt;p style="margin-bottom: 0in;"&gt; You may have to navigate to the site and use the “Custom” option several times to be sure you got all the available updates &lt;/p&gt;                       &lt;/li&gt;&lt;/ol&gt;               &lt;/li&gt;&lt;/ol&gt;               &lt;/li&gt;&lt;li&gt;                 &lt;p style="margin-bottom: 0in;"&gt;                   Ensure that you can see and change file extensions                 &lt;/p&gt;                 &lt;ol type="a"&gt;&lt;li&gt;                     &lt;p style="margin-bottom: 0in;"&gt;                       Double click on your “My Computer” icon                     &lt;/p&gt;                     &lt;/li&gt;&lt;li&gt;                       &lt;p style="margin-bottom: 0in;"&gt;                         Double click on your “C:” drive                       &lt;/p&gt;                       &lt;/li&gt;&lt;li&gt;                         &lt;p style="margin-bottom: 0in;"&gt;                           On the menu click View --&gt; Details                         &lt;/p&gt;                         &lt;ol type="i"&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt;                               View should change to a list showing for each file it's Name, Size and Type                             &lt;/p&gt;                         &lt;/li&gt;&lt;/ol&gt;                         &lt;/li&gt;&lt;li&gt;                           &lt;p style="margin-bottom: 0in;"&gt;                             On the menu click Tools --&gt; Folder Options...                           &lt;/p&gt;                           &lt;ol type="i"&gt;&lt;li&gt;                               &lt;p style="margin-bottom: 0in;"&gt;                                 A new window will open                               &lt;/p&gt;                           &lt;/li&gt;&lt;/ol&gt;                           &lt;/li&gt;&lt;li&gt;                             &lt;p style="margin-bottom: 0in;"&gt;                               Click the “View” tab                             &lt;/p&gt;                             &lt;/li&gt;&lt;li&gt;                               &lt;p style="margin-bottom: 0in;"&gt;                                 Click the radio button next to “Show hidden files and folders”                               &lt;/p&gt;                               &lt;/li&gt;&lt;li&gt;                                 &lt;p style="margin-bottom: 0in;"&gt;                                   Uncheck the box next to “Hide extensions for known file types”                                 &lt;/p&gt;                                 &lt;/li&gt;&lt;li&gt;                                   &lt;p style="margin-bottom: 0in;"&gt;                                     Click the “Apply to All Folders” button                                   &lt;/p&gt;                                   &lt;/li&gt;&lt;li&gt;                                     &lt;p style="margin-bottom: 0in;"&gt;                                       Click the “OK” button                                     &lt;/p&gt;                 &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-6072746026391782280?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/6072746026391782280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=6072746026391782280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6072746026391782280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/6072746026391782280'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-3-of-18.html' title='JSPWiki/Glassfish Install (Part 3 of 18: Prep Windows)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-8692418587936090728</id><published>2007-03-08T10:15:00.000-07:00</published><updated>2007-03-08T15:19:34.289-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 2 of 18: LAN Layout)</title><content type='html'>&lt;p style="margin-bottom: 0.2in;"&gt;Following a frugal strategy we're going to try to make good use of what we already have in place. Many of these elements are common to most LAN configurations.&lt;/p&gt;&lt;p style="margin-bottom: 0.2in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;We have a LAN with its own DNS and  DHCP server.   &lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;All the clients on the LAN are   configured by DHCP running on this server. The clients can reach   the Internet via our gateway (192.168.0.1) but do not send their   DNS requests directly to the DNS servers operated by our ISP&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Clients send all their DNS   requests to the LAN DNS server.    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;The LAN DNS server only has   entries describing a few servers on the LAN.    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;The LAN DNS server forwards most   requests to the DNS servers run by the ISP.    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;We have some control over our LAN   DNS entries &amp; our public DNS Entries    &lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;We have a web server (Apache 2  running on Ubuntu Linux) with two interfaces and two static IP  addresses.   &lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;LAN Interface with &lt;u&gt;static&lt;/u&gt;  IP address (e.g. 192.168.0.4 but you pick the number you want)   &lt;/p&gt;  &lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Our LAN DNS server will call    this LAN interface wiki.example.com     &lt;/p&gt;    &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;When the clients on our LAN     type wiki.example.com into their web browser their web browser     looks up this name in the LAN DNS server and the LAN DNS server     returns 192.168.0.4 to the browser which then connects to     192.168.0.4      &lt;/p&gt;    &lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Public Interface (DSL) with   &lt;u&gt;static&lt;/u&gt; IP address (this number is assigned by your ISP e.g.   x.x.x.x it doesn't matter what the number is you just need to know   what it is)    &lt;/p&gt;   &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Our ISP's DNS will call this    public interface wiki.example.com     &lt;/p&gt;    &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;When the clients on the     Internet type wiki.example.com into their web browser their web     browser looks up this name on their own ISP's DNS server     ultimately it will reference your ISP's DNS and return x.x.x.x to     the browser and then their browser connects to x.x.x.x.      &lt;/p&gt;     &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;If your ISP isn't      accommodating in making changes to the DNS entry for your      registered domain think about using a DNS hosting service like      EasyDNS so that you have control over how the outside world      resolves your static IP addresses.       &lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;We have a MS-SQL server that is  used by other applications on our LAN but the load on this server is  small so we can use it to keep a list users who will be allowed to  login to our Wiki.   &lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;If MS-SQL wasn't already   installed we could add PostgreSQL or some other database pretty   easily    &lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;We have an older Pentium 111  machine with 512MB of RAM that we can re-purpose for this project.   &lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;This machine is running Windows   XP    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;This machine will assigned a   static IP address 192.168.0.5, again pick the number you want    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;This machine may be good for   testing this assemblage of software components but is underpowered   for regular use!    &lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;For the purpose of this exercise our network looks like this:  &lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_da4-SMSAjxk/Re76nNQJL7I/AAAAAAAAAAk/lO9v_gNe7JE/s1600-h/LANDrawingForJSPWikiProject.png"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_da4-SMSAjxk/Re76nNQJL7I/AAAAAAAAAAk/lO9v_gNe7JE/s400/LANDrawingForJSPWikiProject.png" alt="" id="BLOGGER_PHOTO_ID_5039240584553377714" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-8692418587936090728?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/8692418587936090728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=8692418587936090728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8692418587936090728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/8692418587936090728'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-2-of-18.html' title='JSPWiki/Glassfish Install (Part 2 of 18: LAN Layout)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_da4-SMSAjxk/Re76nNQJL7I/AAAAAAAAAAk/lO9v_gNe7JE/s72-c/LANDrawingForJSPWikiProject.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-5537151311420945470</id><published>2007-03-08T10:14:00.000-07:00</published><updated>2007-03-08T15:18:48.937-07:00</updated><title type='text'>JSPWiki/Glassfish Install (Part 1 of 18: Description)</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt;My organization has developed a need for some basic collaboration tools. Some of the activities that will be supported by these tools include the maintenance of job logs and manuals. The job logs require time stamps. The manuals require revision tracking. The site must be reasonably secure and accessible not only by users on the LAN but also by select users in the field.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Basically this means that we have a couple of business activities that require some level of tracking and organization.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;First, our procedure manuals are maintained in MS-Word. The formatting of these documents in terms of style (fonts, etc.) is pretty basic. However, the documents are pretty long and we seem to have trouble recalling who changed what and when changes were made. Storing these documents in word and distributing them via e-mail and web sometimes leads to a situation where our field personnel are using outdated material.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Secondly, we have some field personnel who perform activities on customer sites. These folks do fill out time sheets but the detail on their specific activities that can be gleaned from a time sheet is generally pretty vague. Sometimes, its useful to be able retrace the order of events, when an activity took place and who performed that activity, and provide some basic reporting to customers.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Like many organizations we tend to be frugal with regard to our IT spending. So the question becomes how can we bring some technology to bear on these business processes in a cost effective fashion. Combining open source software (OSS) with commercial off the shelf (COTS) systems that are already in place can be an effective approach.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;We can benefit from utilizing OSS in two primary ways: 1) If our solution isn't useful or is rejected by the users we can remove or tear down our solution and remove the software of which it is comprised with out suffering the sunk costs associated with a large investment. 2) If the users like the solution and get a taste for the technology deployed we want to make sure that the pieces are robust enough to handle growth and ideally retain the ability to get commercial support.  Often there are companies who will provide paid support for the OSS software packages utilized, though this is not always the case.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Wikis,which are web sites that allows users to add new content and modify existing content, have grown popular because they are useful in addressing the needs described above. Wikipedia is the best known example of utilizing Wiki technology. The same methods and technologies used by Wikipedia can be used by much smaller organizations in order to address their collaboration needs.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;This and subsequent entries will outline my recipe for establishing a Wiki web site that can be used by an organization to service some of the basic collaboration needs of its internal and external users. With regard to our specific business needs a password protected Wiki that can display some revision information should do the trick.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;The Wiki that I've chosen to use for this recipe is JSPWiki. JSPWiki runs inside a Java EE “Container” which for the purposes of this article will be the Glassfish product sponsored heavily by Sun Microsystems. A Java EE container, and Java in general, can be beneficial to a cost conscience organization because it has many application programming interfaces (APIs) which can be used to interact with existing IT infrastructures. Also, Java enjoys a large open source community which supports many related projects that are able to co-exist and interact with Java and Java EE technologies.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;In contrast to Wikipedia I will want to limit access to the content of my “corporate Wiki.” Access will be limited to a list of users and group that are already maintained in a database table inside a database stored on a MS-SQL server. This is indicative of how Java EE can “plug” into existing corporate or organizational IT resources.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;What will follow in future posts is my "recipe" for setting up a Wiki to address the needs detailed above. I will break this "recipe" into parts which I hope will make it easy for a someone who is a Glassfish/Java novice but relatively comfortable navigating MS-Windows to follow along.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;My "recipe" will cover what items you will need and where to find them, prepping windows, installing the Java JDK, installing Glassfish, configuring Glassfish for JDBC, configuring JSPWiki, configuring Glassfish for JSPWiki, getting Glassfish and Apache to work together, and making sure that your Glassfish server can survive a reboot.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;As we proceed I do encourage feed back, clarifications or alternative approaches. So, please do comment.&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-5537151311420945470?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/5537151311420945470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=5537151311420945470' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5537151311420945470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/5537151311420945470'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/03/jspwikiglassfish-install-part-1.html' title='JSPWiki/Glassfish Install (Part 1 of 18: Description)'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3471045611424691939.post-9103930719239316813</id><published>2007-02-28T17:30:00.000-07:00</published><updated>2007-02-28T20:07:48.276-07:00</updated><title type='text'>Initial Entry</title><content type='html'>Welcome to my new blog. My hope is to publish, from time to time, items and observations related to system administration and java.&lt;br /&gt;&lt;br /&gt;Presently, I am the Special Projects manager for a small telecommunications labor contractor. Included in my list of responsibilities is the care and feeding of our IT infrastructure. This includes but is not limited to maintenance of our Windows and Linux servers as well as the services these systems provide (i.e. email, web, print, firewall, reporting, etc. ) I also do quite a bit of in house development using Java.&lt;br /&gt;&lt;br /&gt;Often I find that I can utilize open source software in conjunction with off the shelf commercial software to the benefit of my organization.  However, being a one man IT department, I find that the learning curve in utilizing some of these technologies can be a little steep. This can be particularly challenging when trying to synthesize an understanding from various sources of (sometimes incomplete) documentation and mailing list postings. I expect that there are others out there in the same situation facing the same challenges.&lt;br /&gt;&lt;br /&gt;As I encounter new tools and utilities or perhaps  determine my own composite solution for situations that encounter I will post these experiences here.&lt;br /&gt;&lt;br /&gt;In any event, I'm glad your visiting my blog and I encourage you to post your own comments as I populate these pages in the future.&lt;div class="blogger-post-footer"&gt;Gesker's Blog -- SysAdmin, Java, Etc.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3471045611424691939-9103930719239316813?l=gesker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gesker.blogspot.com/feeds/9103930719239316813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3471045611424691939&amp;postID=9103930719239316813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/9103930719239316813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3471045611424691939/posts/default/9103930719239316813'/><link rel='alternate' type='text/html' href='http://gesker.blogspot.com/2007/02/initial-entry.html' title='Initial Entry'/><author><name>Dennis Gesker</name><uri>http://www.blogger.com/profile/01740351178684744772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/-T0OYkrafUuc/TXYihXedtvI/AAAAAAAAA-I/BeScUunhcSY/s220/Sponsor.JPG'/></author><thr:total>0</thr:total></entry></feed>
