Mar
31
2008
0

Tangerine: Grails and Flex Small Business Web Application Suite

So, I am still working on Tangerine. Some of my colleagues have seen some simple demos of what I have done with the Flex/Grails application that I have been working on for a little while now, but it is not ready for public consumption. I am really trying to wrap things up on the first Beta release of Product Manager so I can work on the Account Manager and Sales Manager and get those releases out before summer.

There are a couple of things that I have been fighting with:

First, time. I should be working on some software that helps me create time. Finding time to work on my projects is one of the things that I have been battling each week.

Second, Flex. Flex is great, but I am not a Flex developer, so I guess I really need to break down and buy Flex Builder 3. I am not trying to do anything too crazy, but I think having FB 3 on my side will at least aid me in my quest to build nice RIA Web applications. I have been using TextMate for everything so far. I have 90% of the UI done, but the last 10% is where I need to bring out the big guns.

Everything on the Grails side is going great. There are a few things I need to tweak, but I am still extremely excited about working with Grails. Speaking of working with Grails…I did a search on Dice and found 10 posts for jobs in the US. That number will get bigger, people just need time.

Written by R.J. Salicco in: Projects |
Mar
20
2008
0

GWT Presenation at Sarasota JUG

I had a great time in Sarasota last night presenting Taking a Look at the Google Web Toolkit. It was a nice introductory walk-through of what is in place for Java developers to create AJAX, HTML, and Java applications without having to focus on JavaScript libraries and browser compatibility. The group had a lot of great questions and I was overwhelmed with the amount of IT that is going on in the Sarasota area. I would like thank all that attended and Dave from the Sarasota JUG for having me out.

Written by R.J. Salicco in: Presentations |
Mar
15
2008
2

Create Bugs with Bugzilla’s XMLRPC Web Service and Groovy

The other day I was looking into moving development bugs from one bug system over to Bugzilla. Someone in my group pointed out that Bugzilla had an XMLRPC Web service exposed at:

http://bugzilla-address/xmlrpc.cgi.

The current bug system had a feature that would export the bugs into XML data. I exported the bug data, moved the XML file to my local machine, and opened the Groovy Console. Let’s check out how simple things can be.

Here is sort of what the XML looks like:

...
<issues>
    <issue>
        <product>Product Name</product>
        <component>Component Name</component>
        <summary>Summary</summary>
        <version>1.0</version>
        <description>Description</description>
        <opsys>Operating System</opsys>
        <platform>Platform</platform>
        <priority>High</priority>
        <severity>Low</severity>
        <status>Open</status>
    </issue>
</issues>
...

Here is what we need to import into our Groovy script:

...
import groovy.util.XmlSlurper

import java.util.Map
import java.util.HashMap
import java.net.ServerSocket

import org.apache.commons.httpclient.*
import org.apache.xmlrpc.client.*
...

Here is our class, main method, dependencies, and setup of the XMLRPCClient (I needed the HTTPClient and XMLRpcCommonsTransportFactory because Bugzilla likes to deal with Cookies after logged in):

...
public class BugzillaCreateFromXML {

    // get the xml data of our issues in the .xml file
    def xmlData = new XmlSlurper().parse(new File("C:/issues.xml"))

    def httpClient = new HttpClient()
    def rpcClient = new XmlRpcClient()
    def factory = new XmlRpcCommonsTransportFactory(rpcClient)
    def config = new XmlRpcClientConfigImpl()factory.setHttpClient(httpClient)

    rpcClient.setTransportFactory(factory)
    config.setServerURL(new URL("http://bugzilla-addres/xmlrpc.cgi"))
    rpcClient.setConfig(config)

    public static void main(String[] args) {
        // here is where the work getting done
        // map of the login data
        Map loginMap = new HashMap()
        loginMap.put("login", "admin")
        loginMap.put("password", "admin")
        loginMap.put("rememberlogin", "Bugzilla_remember")

        // login to bugzilla
        def loginResult = rpcClient.execute("User.login", loginMap)
        println loginResult

        // map of the bug data
        Map bugMap = new HashMap()

        // iterate through each issue
        xmlData.issue.each {
            bugMap.put("product", it.product.text())
            bugMap.put("component", it.component.text())
            bugMap.put("summary", it.summary.text())
            bugMap.put("version", it.version.text())
            bugMap.put("description", it.description.text())
            bugMap.put("op_sys", it.opsys.text())
            bugMap.put("platform", it.platform.text())
            bugMap.put("priority", it.priority.text())
            bugMap.put("severity", it.severity.text())
            bugMap.put("status", it.status.text())

            // create bug
            def createResult = rpcClient.execute("Bug.create", bugMap)
            println createResult

            // clear bugMap so we can re-populate it with the next issue
            bugMap.clear()
        }
    }
}
...

That is it. It took me about 30 minutes to parse the XML file and loop through each node with Groovy. I spent about an hour finding out that HTTPClient was also needed, I originally started working with Groovy’s XMLRPC library. You need to have the appropriate Apache XMLRPC Client libraries in place in your Groovy lib directory. I ran this from the Groovy Console and it did exactly what I needed it to do. The Groovy file is available for download .

Written by R.J. Salicco in: Development |
Mar
03
2008
0

Open Source Technologies

I have been doing some proof of concept work and some small demos using the following technologies: Java, Groovy, Grails (Hibernate and Spring under the covers), GWT, Flex, and MySQL. Some of the technologies listed are technologies I have been using for quite some time and some of them are brand new to me. I can honestly say that I am continually impressed and motivated while working with these technologies. My level of satisfaction with these technologies is not based on the cool factor or the cutting edge factor, but my satisfaction is based on the pure fact that I am getting quality work done. It is as simple as that. I know that in the future I will be digging into technologies like Ruby, Rails, Scala, and Python in more detail, but for now I can be certain that I will be less interested in the wow factor and more interested in producing quality results faster.

Written by R.J. Salicco in: Commentary, Development |

Axiomatic IT Incorporated | Aeros Theme | TheBuckmaker.com WordPress Themes