On how to alter a jMaki widget
I've been playing with jMaki recently. Now that I've become more familiar how to write simple applications, I want to be more ambitious and see if I can alter an existing widget to suit my style.
If you are working with Ajax widgets, you would know that each of the widgets has a style sheet associated with it.
In an earlier blog, I talked about creating an application with a menubar. The glue code for this already exists that make life simpler. But this blog is not about glue code, it's about altering the existing widget.
The things I am interested in altering in my jMaki.menu application are:
How can I do this? I need to learn a little bit of CSS. Don't believe me? Here's CSS in Action.
CSS stands for Cascading Style Sheets and is used to control the style and layout of multiple Web pages all at once. Since each widget has a css file associated with it, if we alter the css, it should immediately show up in the widget. With that clear in mind, lets try to alter the font of the menu options.
Look under your webapplication's web->resources-> this has a set of widgets available to the webapplication. Now since we're working with the menu application, we need to go to jmaki->menu directory.
Here we should see the following: component.css, component.html, and component.js.
.jmakiMenuBar {
width: 100%;
font-size:12px;
/* change font to arial */
font-family: arial;
height: 20px;
background:#3399FF;
text-align:bottom;
}
.jmakiDContainer {
}
Want to make more changes? CSS-on....
Posted at 03:48PM May 21, 2007 by Manveen Kaur in Sun | Comments[0]
Why should I look at GlassFish?
In case you missed going to the GlassFish PoD during this year's JavaOne, and have some questions left unanswered, Nazrul has written an excellent blog answering the most popular questions asked.
Take a look.
Posted at 11:58AM May 21, 2007 by Manveen Kaur in Sun | Comments[2]
Installing Roller 3.1.0 on Tomcat
What do I need to install Roller 3.0.1 on Tomcat?
Here's a link to the complete installation guide for your reference.
Stay tuned for my follow up blog on installation on my favorite application server glassFish.
Set the ROLLER environment variable to the location of the roller webapps directory.
For example, for Windows (if you installed Roller in c:), you would set
set %ROLLER% = c:\apache-roller-3.1/webapp/roller
If you're curious why, these are not shipped in Roller due to licensing restrictions. You need-
You'll need to copy the following files from Hibernate into the Roller WEB-INF/lib directory:
hibernate3.jar, asm-attrs.jar, asm.jar, cglib-2.1.3.jar, dom4j.1.6.1.jar , ehcache-1.1.jar, jdbc2_0-stdext.jar, jta.jar
Download the J/Connector JDBC driver from mysql.com and place it in the Tomcat common/lib directory.
Copy activation.jar and mail.jar to Tomcat common/lib.
In this step you use an SQL script to create a new database within your MySQL installation, create a user with all privileges within that database and the tables required to run Roller.
Execute the script in %ROLLER%/WEB-INF/dbscripts/mysql
C> cd %ROLLER%\WEB-INF\dbscripts\mysql C> mysql -u root -p password: ***** mysql> create database roller; mysql> grant all on roller.* to scott@'%' identified by 'tiger'; mysql> grant all on roller.* to scott@'localhost' identified by 'tiger'; mysql> use roller; mysql> source createdb.sql mysql> quit
To deploy Roller you will need to inform Tomcat where to find the Roller installation directory, how to configure the Roller database data-source under the JNDI name jdbc/rollerdb, and how to configure the Roller email session under the JNDI name mail/Session.
For Tomcat you can do this by creating a context configuration file named roller.xml and placing that file in the %CATALINA_HOME%/conf/Catalina/localhost directory.This is what roller.xml looks like. Edit the values for docBase and Resource attributes to point to the ones you're using.
<Context path="/roller" docBase="c:/apache-roller-3.1/webapp/roller" debug="0"> <Resource name="jdbc/rollerdb" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/roller?autoReconnect=true& useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8" username="scott" password="tiger" maxActive="20" maxIdle="3" removeAbandoned="true" maxWait="3000" /> <!-- If you want e-mail features, un-comment the section below --> <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="mailhost.example.com" /> </Context>
Configure your application server and your web server to use UTF-8 encoding because Roller's does I18N by using UTF-8 encoding for everything. Also Check your application server's URI encoding setting!
Make sure that your web application server uses UTF-8 to encode URI's. In Tomcat the URI encoding is specified in the connectors that are configured in the Tomcat configuration file conf/server.xml. Here's a connector with the URI encoding attribute set properly:
<Connector port="8080" maxThreads="150" minSpareThreads="25" ..... URIEncoding="UTF-8" />
Roller stores file uploads, search index files, cache files and log files on disk. Make sure the following directories that Roller expects exist and are writable by the Tomcat process.
Review the WEB-INF/classes/roller.properties file To override the properties, define a roller-custom.properties file and place it in $CATALINA_HOME/common/classes/roller-custom.properties
uploads.dir=/app/roller/roller_data/uploads search.index.dir=/app/roller/roller_data/search-index passwds.encryption.enabled=true # other values you may want to override
Edit %ROLLER%/WEB-INF/security.xml file
For the beans with ids "anonymousAuthenticationProvider" and "anonymousProcessingFilter" change the value field of the property with name="key" to any string value of your choosing. Use the same key
value in these two beans; they must match.
For the beans with ids "rememberMeServices" and "rememberMeAuthenticationProvider" change the
value field of the property with name="key" to be different from the default value of "rollerlovesacegi". You can use any string value of your choosing. It should be a secret specific to your
site. Use the same key value in these two beans. Again, they must match.
Start your Servlet Container, open your web browser, browse to the Roller start page and start using Roller.
C> cd %CATALINA_HOME/%bin
C> startup
Point your browser to the URL: http://localhost:8080/roller. You're all set!
Posted at 12:05PM May 18, 2007 by Manveen Kaur in Sun | Comments[0]
Sun's training offering on developing secure Java Web services
You're back from JavaOne, with buzz words of cool new technologies you heard about still ringing in your ears. Here you are sitting at your desk, thinking about all the cool stuff you wish you could learn.
Well, there is HOPE.
Did you know that Sun Microsystems Inc. offers comprehensive training and certification for several Java technology components and the Java Platform, Enterprise Edition (Java EE)?
What?
To add to the list of courses being offered in the Web Services learning path , is an offering on XML and Web Services security (DWS-4120-EE5) being offered in the Java EE track.
When?
Estimated to be on the training schedule mid June. Stay tuned!
Where?
Watch this space.
What will I learn?
As part of the course, you will learn to :
The students perform the course lab exercises using the NetBeans 5.5 Enterprise Pack Integrated Development Environment (IDE) and using AppServer 9.0 U1.
Cool stuff! Is there anything else you would want to learn?
Posted at 03:01PM May 17, 2007 by Manveen Kaur in Sun | Comments[0]
jMaki series - 2
A couple of days back, we learnt how to install jMaki and get started. Now we're ready to do something more fruitful. Let's say we want to have a menu bar which will bring up different pages based on the option you select.
We create a new Web application. Enable jMaki support from the wizard.
Choose a standard single view and drag and drop the jMaki.Menu under the first div or the main area.
Drag and drop a jMaki.dcontainer on the second div. The reason we are having the dContainer is because all the actions with the Menu will result in changes in the dContainer. The glue code for the two to work together already exists, so we won't have to do anything else, which makes things simpler. Finally we create new jsp's for the associated actions in the same project. They should be at the same level as the main index.jsp. It's easy to do with NetBeans. Just click on the project in the project tree and create New->jsp.
This is what the final code will look like:
<div class="outerBorder">
<div class="header">
<div class="banner">Doing something fruitful</div>
<br>
<div class="subheader">
<div>
<a:ajax name="jmaki.menu"
value="{columns: [
{label: 'Strawberry',
menuItems: [
{label:'ripe', url:'ripe.jsp'},
{label:'unripe', url:'unripe.jsp'}
]},
{label: 'Apples',
menuItems: [
{label:'Red', url:'red.jsp'},
{label:'Green', url:'green.jsp'}
]}
]}" />
</div>
</div> <!-- subheader -->
</div> <!-- header -->
<div class="main">
<a:ajax name="jmaki.dcontainer"/>
</div> <!-- content -->
</div> <!-- main -->
</div> <!-- outerborder -->
Feel free to try and point to some other useful tips as well!
Posted at 12:51PM May 15, 2007 by Manveen Kaur in Sun | Comments[0]