tag:blogger.com,1999:blog-334946582024-02-18T19:30:04.300-08:00Angry MarshmellowsGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.comBlogger46125tag:blogger.com,1999:blog-33494658.post-77230953433285777632008-12-09T14:53:00.001-08:002008-12-09T14:53:46.245-08:00http://weblogs.sqlteam.com/jeffs/archive/2004/03/22/1085.aspx<br /><br />CREATE PROCEDURE ReturnPage(@Select varchar(1000), @OrderBy varchar(1000),<br /><br /> @StartRow int, @EndRow int)<br /><br />AS<br /><br />BEGIN<br /><br /> <br /><br />declare @ColList varchar(2000);<br /><br />declare @Where varchar(2000);<br /><br />declare @i int; <br /><br />declare @i2 int;<br /><br />declare @tmp varchar(1000);<br /><br />declare @dec varchar(1000);<br /><br />declare @f varchar(100);<br /><br />declare @d varchar(100);<br /><br />declare @Symbol char(2);<br /><br />declare @SQL varchar(5000);<br /><br />declare @Sort varchar(1000);<br /><br /> <br /><br />set @Sort = @OrderBy + ', '<br /><br />set @dec = ''<br /><br />set @Where = ''<br /><br />set @SQL = ''<br /><br /> <br /><br />set @i = charindex(',' , @Sort)<br /><br />while @i != 0<br /><br /> begin<br /><br /> set @tmp = left(@Sort,@i-1)<br /><br /> set @i2 = charindex(' ', @tmp)<br /><br /> set @f = ltrim(rtrim(left(@tmp,@i2-1)))<br /><br /> set @d = ltrim(rtrim(substring(@tmp,@i2+1,100)))<br /><br /> set @Sort = rtrim(ltrim(substring(@Sort,@i+1,100)))<br /><br /> set @i = charindex(',', @Sort)<br /><br /> set @symbol = case when @d = 'ASC' then '>' else '<' end +<br /><br /> case when @i=0 then '=' else '' end<br /><br /> <br /><br /> set @dec = @dec + 'declare @' + @f + ' sql_variant; '<br /><br /> set @ColList = isnull(replace(replace(@colList,'>','='),'<','=') + ' and ','') +<br /><br /> @f + @Symbol + ' @' + @f<br /><br /> set @Where = @Where + ' OR (' + @ColList + ') '<br /><br /> set @SQL = @SQL + ', @' + @f + '= ' + @f<br /><br /> end<br /><br /> <br /><br />set @SQL = @dec + ' ' +<br /><br /> 'SET ROWCOUNT ' + convert(varchar(10), @StartRow) + '; ' +<br /><br /> 'SELECT ' + substring(@SQL,3,7000) + ' from (' + @Select + ') a ORDER BY ' +<br /><br /> @OrderBy + '; ' + 'SET ROWCOUNT ' +<br /><br /> convert(varchar(10), 1 + @EndRow - @StartRow) + '; ' +<br /><br /> 'select * from (' + @Select + ') a WHERE ' +<br /><br /> substring(@Where,4,7000) + ' ORDER BY ' + @OrderBy + '; SET ROWCOUNT 0;'<br /><br /> <br /><br />exec(@SQL)<br /><br />ENDGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-49017438002587293682008-12-08T12:39:00.000-08:002008-12-08T12:40:19.965-08:00SQL Server Paging and Sorting<br /><br />SELECT * FROM (<br /> SELECT TOP x * FROM (<br /> SELECT TOP y fields<br /> FROM table<br /> WHERE conditions<br /> ORDER BY table.field ASC) as foo<br /> ORDER by field DESC) as bar<br />ORDER by field ASC<br /><br />x is the number of rows you want returned and y is x+offsetGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-43668151121688430412008-10-30T08:01:00.001-07:002008-10-30T08:01:50.064-07:00http://www.etsy.com/shop.php?user_id=5553118Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-87411670609343352382008-09-30T09:20:00.001-07:002008-09-30T09:20:48.439-07:00tutorial on js<br />http://developers.sun.com/scripting/javascript/ajaxinaction/Ajax_in_Action_ApB.htmlGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-25241214391565938552008-09-26T07:24:00.001-07:002008-09-26T07:25:37.690-07:00quacl.style.left=width/2.25;<br /> quacl.style.top=height/2.5;<br /> quacl.position="fixed"; <br /> <br /> Element.show('quacl'); <br /><br />function getScreenMiddleHeight(){<br /> var screenW = 640, screenH = 480;<br /> if (parseInt(navigator.appVersion)>3) {<br /> screenH = screen.height;<br /> }<br /> else if (navigator.appName == "Netscape" <br /> && parseInt(navigator.appVersion)==3<br /> && navigator.javaEnabled()<br /> ) <br /> {<br /> var jToolkit = java.awt.Toolkit.getDefaultToolkit();<br /> var jScreenSize = jToolkit.getScreenSize();<br /> screenH = jScreenSize.height;<br /> }<br /> return screenH/2; <br />}<br /><br />function getScreenMiddleWidth(){<br /> var screenW = 640;<br /> if (parseInt(navigator.appVersion)>3) {<br /> screenW = screen.width;<br /> }<br /> else if (navigator.appName == "Netscape" <br /> && parseInt(navigator.appVersion)==3<br /> && navigator.javaEnabled()<br /> ) <br /> {<br /> var jToolkit = java.awt.Toolkit.getDefaultToolkit();<br /> var jScreenSize = jToolkit.getScreenSize();<br /> screenW = jScreenSize.width;<br /> }<br /> return screenW/2;<br />}Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-90653219835147250172008-09-25T13:09:00.001-07:002008-09-25T13:09:48.220-07:00http://bluerobot.com/web/css/center1.html<br /><br />body {<br /> margin:50px 0px; padding:0px;<br /> text-align:center;<br /> }<br /> <br />#Content {<br /> width:500px;<br /> margin:0px auto;<br /> text-align:left;<br /> padding:15px;<br /> border:1px dashed #333;<br /> background-color:#eee;<br /> }Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-55325509125960861852008-09-23T09:56:00.000-07:002008-09-23T09:58:46.511-07:00Tomcat datasource connection pooling<br />http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#Non%20DBCP%20Solutions<br /><br /><pre><br />private static void initializeDataSource(String whichOne) throws NamingException, SQLException{<br /> logger.debug("entering initializeDataSource("+whichOne+")");<br /> <br /> try{<br /> InitialContext ic = new InitialContext();<br /> <br /> if(whichOne.equals(AppHelper.SC_DEFAULT_DS_CON)){ <br /> //if (dataSource == null)<br /> dataSource = (DataSource) ic.lookup(whichOne); <br /> }<br /> }catch (NamingException ne){<br /> throw new NamingException("NamingException while looking" +<br /> " up DataSource Connection " + whichOne<br /> + ": \n" + ne.getMessage());<br /> }<br /> logger.debug("leaving initializeDataSource()"); <br /> } <br /></pre>Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-40314935541642475942008-09-22T15:48:00.000-07:002008-09-22T15:49:08.790-07:00http://www.servletsuite.com/servlets.htmGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-33699488220906281492008-09-19T11:43:00.000-07:002008-09-19T11:45:06.081-07:00<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNx0iCWjekoMAvrpqvZVNuIntroMRJNWCEkyPthcLCEKETxx5761qJurS-lZIiZOzBqNJHrq3DawsmGgxB5c0WSA4Q_xaYn1fzi3A-4vSm2-xlIytevzGqEfiLEuWzCsACZixtiw/s1600-h/indicator.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNx0iCWjekoMAvrpqvZVNuIntroMRJNWCEkyPthcLCEKETxx5761qJurS-lZIiZOzBqNJHrq3DawsmGgxB5c0WSA4Q_xaYn1fzi3A-4vSm2-xlIytevzGqEfiLEuWzCsACZixtiw/s320/indicator.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5247805215656307090" /></a><br />in progress...Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-81006586971223544072008-09-12T13:45:00.000-07:002008-09-12T13:46:14.495-07:00obfuscate or minimize javascript:<br />C:\projects\registration\WebContent\include\js>java -jar C:\java\yuicompressor-2.3.5\build\yuicompressor-2.3.5.jar combined.js -o combined-min-2008-04-21.jsGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-61277101437589376372008-09-12T10:40:00.000-07:002008-09-12T10:53:33.439-07:00creating a tld<br /><br />public class myTag extends TagSupport{<br />}<br /><br />mytag.tld<br /><pre><br />< taglib xmlns="http://java.sun.com/xml/ns/j2ee"<br /> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br /> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"<br /> version="2.0" --><br /> <br /> <-- description -->my excelent tag<--/ description --><br /> <-- display-name -->company taglib<--/ display-name --><br /> <-- tlib-version -->1.1<--/ tlib-version --><br /> <-- short-name -->mytag<--/ short-name --><br /> <-- uri -->http://java.sun.com/jsp/jstl/core<--/ uri --><br /> <-- tag --><br /> <-- description --><br /> my great tag<br /> <--/ description --><br /> <-- name -->calendar<--/ name --><br /> <-- tag-class -->com.mypackage.Calendar<--/ tag-class --><br /> <-- body-content -->JSP<--/ body-content --><br /> <-- attribute --><br /> <-- description --> <br /> the calendar obj<br /> <--/ description --><br /> <-- name -->objname<--/ name --><br /> <-- required -->true<--/ required --><br /> <-- rtexprvalue -->true<--/ rtexprvalue --><br /> <--/ attribute --><br /> <--/ tag --><br /><--/ taglib --><br /></pre><br /><br />accessing in .jsp<br /><pre><br /><%@ taglib uri="/WEB-INF/mytag.tld" prefix="mytag" %><br />< mytag:calendar objname="myCalendar" /><br /></pre>Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-19147464715392101562008-09-12T08:36:00.001-07:002008-09-12T08:36:28.053-07:00http://technet.microsoft.com/en-us/sysinternals/default.aspxGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-70718051129040955832008-09-05T09:40:00.000-07:002008-09-05T09:44:05.165-07:00http bot crawler<br /><br /><pre><br />import org.htmlparser.Node;<br />import org.htmlparser.NodeFilter;<br />import org.htmlparser.Parser;<br />import org.htmlparser.filters.TagNameFilter;<br />import org.htmlparser.util.NodeList;<br /><br /> private void runCrawl(String url, String file)throws Exception{<br /> URL crawlURL = new URL(url);<br /> URLConnection yc = crawlURL.openConnection();<br /><br /> //sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();<br /> //String encodedUserPwd = encoder.encode("kg_b05"+":"+"*****");<br /> //yc.setRequestProperty("Proxy-Authorization", "Basic " +encodedUserPwd);<br /><br /> InputStream i = yc.getInputStream();<br /> FileOutputStream fos = new FileOutputStream(file);<br /> int in=i.read();<br /> while(in!=-1){<br /> fos.write(in);<br /> in=i.read();<br /> }<br /> fos.flush();<br /> fos.close();<br /> }<br /><br /> private String readFile(String file) throws Exception{<br /> String str = "", html = "";<br /> try {<br /> BufferedReader in = new BufferedReader(new FileReader(file));<br /> <br /> while ((str = in.readLine()) != null) {<br /> html += str; <br /> }<br /> in.close();<br /> } catch (IOException e) {<br /> throw e;<br /> }<br /> <br /> return html;<br /> } <br /><br />public MegaVO doMegaTask() throws Exception{<br /> <br /> <br /> runCrawl(SC_MEGA_URL, SC_MEGA_FILE);<br /> String html = readFile(SC_MEGA_FILE);<br /> Parser parser = new Parser();<br /> parser.setInputHTML(html); <br /> <br /> NodeFilter nf = new TagNameFilter("span");<br /> NodeList spans = parser.parse (nf); // here is your two node list<br /> <br /> Node span = null;<br /> Node child = null;<br /> String num = "", date = "", d1 = "", d2 = "", d3 = "", d4 = "", d5 = "", mm = "";<br /> for(int i=0; i < spans.size(); i++){<br /> span = spans.elementAt(i);<br /> //if(span.getText().equals("span id=\"DrawResults2_lblMMNum1\"")){<br /> String text = span.getText();<br /> <br /> if(text.length() > 27){<br /> if(text.substring(0,27).equals("span id=\"DrawResults2_lblMM")){ // 27 characters deep<br /> String id = text.substring(27,text.length()-1);<br /> child = span.getFirstChild(); <br /> <br /> if(id.equals("DrawNum")){<br /> logger.info(child.getText());<br /> num = child.getText();<br /> }else if(id.equals("DrawDate")){<br /> logger.info(child.getText());<br /> date = child.getText();<br /> }else if(id.equals("Mega")){<br /> logger.info(child.getText());<br /> mm = child.getText();<br /> }else{<br /> String n = id.substring(id.length()-1);<br /> switch((new Integer(n)).intValue()){<br /> case 1:<br /> d1 = child.getText();<br /> break;<br /> case 2:<br /> d2 = child.getText();<br /> break;<br /> case 3:<br /> d3 = child.getText();<br /> break;<br /> case 4:<br /> d4 = child.getText();<br /> break;<br /> case 5:<br /> d5 = child.getText();<br /> break;<br /> }<br /> logger.info(id); <br /> logger.info(child.getText()); <br /> }<br /> }<br /> }<br /> }<br /> <br /> MegaVO vo = new MegaVO(num,date,d1,d2,d3,d4,d5,mm);<br /> logger.info(vo.toString());<br /> return vo;<br /> }<br /></pre>Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-12717342005717815072008-04-30T09:22:00.001-07:002008-04-30T10:05:10.082-07:00Compression and Caching Filters<br /><br />Found a plugin for FireFox which grades the performance of a web sites actions: https://addons.mozilla.org/en-US/firefox/addon/5369 it’s from Yahoo.<br /><br />The main issues I found where:<br /><br />* Too many javascript and css files resulting in multiple http get requests <br />* Not caching the javascript and css files <br />* Not caching images <br />* The javascript files were too big not minimized or obfuscated <br />* Not compressing the requests response back to the browser <br /><br />I’ve been able to resolve these issues by using two Filters: <br /><br />* Caching Filter – CacheFilter.zip also has the web.xml entries <br />* Compression Filter – got from http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html (CompressionFilter.zip) <br /> <br />I combined as many js files into one file and then did the minimizing using a tool from Yahoo: yuicompressor-2.3.5.zipGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com1tag:blogger.com,1999:blog-33494658.post-40288507140031044042008-04-22T23:35:00.000-07:002008-04-22T23:42:54.653-07:00Need to make a priority list of future development.<br /><br />Put Tina's request for page renew first, however, try and push for a test/sponsor search page next.<br /><br />The ideal search page would allow for a registration agent to search for a test by test code, test name or even sponsor. As well, based on these search requests, the program would auto fill fields in the test select page in order to progress further through the application.<br /><br />Knowing that ACT is in the process of updating their authorization system we may have to halt future development in order to accomplish our web service registration implementation.<br /><br />Alert Dennis of the problem regarding internet access via web services.Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-44819012474819792292008-04-21T17:01:00.000-07:002008-04-21T17:02:34.940-07:00Performance tuning with Servlet Filter by adding a header to cache the content<br /><br />http://developer.yahoo.net/blog/archives/2007/05/high_performanc_2.html<br /><br />http://www.jguru.com/faq/view.jsp?EID=1311010Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-70799041773506365302008-04-08T15:56:00.001-07:002008-04-08T15:56:55.156-07:00usable log4j.properties<br /><br /><br /><br /># Set root category priority to DEBUG and its only appender to A1.<br />#log4j.rootCategory=DEBUG, A1<br />#log4j.rootCategory=DEBUG<br /> <br /># A1 is set to be a ConsoleAppender. <br />#log4j.appender.A1=org.apache.log4j.ConsoleAppender<br />#log4j.appender.A1=<br /> <br /># A1 uses PatternLayout.<br />#log4j.appender.A1.layout=org.apache.log4j.PatternLayout<br />#log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n<br /><br />## New Trial Stuff<br />log4j.rootLogger=debug, stdout, R<br /><br />log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br /><br /># Pattern to output the caller's file name and line number.<br />log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n<br /><br />log4j.appender.R=org.apache.log4j.RollingFileAppender<br />log4j.appender.R.File=clockin.log<br /><br />log4j.appender.R.MaxFileSize=100KB<br /># Keep one backup file<br />log4j.appender.R.MaxBackupIndex=1<br /><br />log4j.appender.R.layout=org.apache.log4j.PatternLayout<br />log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-87504253114753826812008-04-08T10:17:00.001-07:002008-04-08T15:57:56.447-07:00call java exe<br /><br />http://www.csie.ntu.edu.tw/~b90008/jniexe.html<br />http://java.sun.com/developer/JDCTechTips/2005/tt0727.html<br /><br />pass parameters to an exe:<br />try {<br /> Robot robot = new Robot();<br /> robot.delay(1000);<br /> // Simulate a mouse click<br />// robot.mousePress(InputEvent.BUTTON1_MASK);<br />// robot.mouseRelease(InputEvent.BUTTON1_MASK);<br /><br /> // Simulate a key press<br /> robot.keyPress(KeyEvent.VK_G);<br /> robot.keyRelease(KeyEvent.VK_G);<br /> robot.keyPress(KeyEvent.VK_K);<br /> robot.keyRelease(KeyEvent.VK_K);<br /> robot.keyPress(KeyEvent.VK_3);<br /> robot.keyRelease(KeyEvent.VK_3);<br /> robot.keyPress(KeyEvent.VK_6);<br /> robot.keyRelease(KeyEvent.VK_6);<br /> robot.delay(1000);<br /> robot.keyPress(KeyEvent.VK_ENTER);<br /> robot.keyRelease(KeyEvent.VK_ENTER);<br /> robot.delay(1000);<br /> robot.keyPress(KeyEvent.VK_ENTER);<br /> robot.keyRelease(KeyEvent.VK_ENTER);<br /> } catch (AWTException e) {<br /> e.printStackTrace();<br /> }Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-9383129954237194002008-02-12T16:40:00.001-08:002008-02-12T16:40:56.355-08:00Build a multimedia home control center<br /><br />http://electronicdesign.com/Articles/Index.cfm?AD=1&ArticleID=13330Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-49449494160195204002008-02-12T14:44:00.000-08:002008-02-12T14:45:31.186-08:00Flashblock 1.5.5 for FireFox will get rid of all the annoying blinky little flash objects.Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-46303463978605095602008-02-11T16:21:00.001-08:002008-02-11T16:21:48.902-08:00chxn pot pie:<br />http://happygreevers.blogspot.com/2008/02/yummy-chicken-pot-pie.htmlGraham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-16064036304167021382008-01-29T16:17:00.000-08:002008-01-29T16:18:17.637-08:00A good AJAX tag library... easy to use!<br /><br />http://ajaxtags.sourceforge.net/Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-32611519091123926242008-01-17T15:40:00.001-08:002008-01-17T16:06:54.373-08:00<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9QnIz2tNzLov4QCWFNFrX8nH0LbNkSvsNh2QnZs19vJNjie-1P7J_VIUKW88696X3HQzn4IRaCNnkQ01mgZKpzTGTFYIom12FMRw8oM6cyw-NAJPGhP8TXEVyOep356BIFIX64g/s1600-h/current-calendar-view.gif"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9QnIz2tNzLov4QCWFNFrX8nH0LbNkSvsNh2QnZs19vJNjie-1P7J_VIUKW88696X3HQzn4IRaCNnkQ01mgZKpzTGTFYIom12FMRw8oM6cyw-NAJPGhP8TXEVyOep356BIFIX64g/s320/current-calendar-view.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5156601341612283106" /></a><br /><br />added weather to the calendar...Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-23359719002124923172007-11-27T11:11:00.000-08:002007-11-27T11:16:37.682-08:00java cvs functions<br />Checkout from CVS<br /><br><br /><pre><br />public void checkoutFromCVS(String userName, String password, String hostName, String repository) throws ExecutionException{<br /> PServerConnection c = null;<br /> try {<br /> logger.info("entering checkOutImages");<br /> <br /> String encryptedPassword = StandardScrambler.getInstance().scramble(password);<br /> <br /> CVSRoot root = CVSRoot.parse(":pserver:"+userName+"@"+hostName+":"+SC_PORT+repository);<br /> c = (PServerConnection)ConnectionFactory.getConnection(root);<br /> <br /> c.setEncodedPassword(encryptedPassword); <br /> <br /> logger.info("open connection....");<br /> c.open(); <br /> logger.info("after open connection");<br /> <br /> Client client = new Client(c, new StandardAdminHandler()); <br /> GlobalOptions options = new GlobalOptions();<br /> options.setCVSRoot(":pserver:"+userName+"@"+hostName+":"+SC_PORT+repository);<br /> <br /> client.ensureConnection();<br /> <br /> CheckoutCommand checkout = new CheckoutCommand(true,SC_MODULE);<br /> checkout.setPruneDirectories(true);<br /> File f = new File(SC_CVS_HOME);<br /> if(!f.exists())<br /> f.mkdirs();<br /> <br /> client.setLocalPath(SC_CVS_HOME);<br /> client.getEventManager().addCVSListener(new LogCVSListener());<br /> <br /> boolean success = client.executeCommand(checkout,options);<br /> logger.info("cmd checkout execute success:"+success);<br /> //client.executeCommand(uc, options);<br /> } catch (CommandAbortedException e) {<br /> logger.error("command aborted ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> } catch (AuthenticationException e) {<br /> logger.error("authenticate ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> }catch (CommandException e) {<br /> logger.error("command ex:"+e.getCause());<br /> throw new ExecutionException(e.getMessage());<br /> } finally {<br /> if(null != c) {<br /> try {<br /> c.close();<br /> } catch (IOException e) {<br /> logger.error(e.getMessage());<br /> }<br /> }<br /> }<br /> } <br /> <br /></pre><br /><br>Add to CVS<br><br /><pre><br />public void addToCVS(List filesToAdd, File fileToAdd, String userName, String password, String hostName, String repository)throws ExecutionException{<br /> logger.info("entering addToCVS");<br /> PServerConnection c = null;<br /> try {<br /> String[] children;<br /> // It is also possible to filter the list of returned files.<br /> // This example does not return any files that end with `.txt'.<br /> FilenameFilter filter = new FilenameFilter() {<br /> public boolean accept(File dir, String name) {<br /> if(dir.getName().equals("CVS")){ <br /> return false;<br /> }<br /><br /> return true;<br /> }<br /> };<br /> children = fileToAdd.list(filter); <br /> File f = null;<br /> <br /> for (int i=0; i < children.length; i++) {<br /> <br /> f = new File(fileToAdd.getAbsoluteFile()+"/"+children[i]);<br /> <br /> try {<br /> logger.info("file:"+f.getCanonicalFile());<br /> logger.info("is file:"+f.isFile()+" is dir:"+f.isDirectory());<br /> if(f.isDirectory() ) {<br /> if(!f.getName().equals("CVS")){<br /> logger.info("recursive..."); <br /> filesToAdd.add(f);<br /> addToCVS(filesToAdd, f, userName, password, hostName, repository); <br /> }<br /> }else {<br /> filesToAdd.add(f);<br /> }<br /> }catch(IOException e) {<br /> throw new ExecutionException(e.getMessage());<br /> }<br /> }<br /> <br /> if(filesToAdd.size() == 0) {<br /> logger.info("nothing to add....");<br /> return;<br /> }<br /> <br /> String encryptedPassword = StandardScrambler.getInstance().scramble(password);<br /> <br /> CVSRoot root = CVSRoot.parse(":pserver:"+userName+"@"+hostName+":"+SC_PORT+repository);<br /> c = (PServerConnection)ConnectionFactory.getConnection(root);<br /> <br /> c.setEncodedPassword(encryptedPassword); <br /> <br /> logger.info("open connection....");<br /> c.open(); <br /> logger.info("after open connection");<br /> <br /> Client client = new Client(c, new StandardAdminHandler()); <br /> <br /> GlobalOptions options = new GlobalOptions();<br /> options.setCVSRoot(":pserver:"+userName+"@"+hostName+":"+SC_PORT+repository); <br /> <br /> <br /> AddCommand add = new AddCommand(); <br /> add.setMessage("adding images for site portal...");<br /> add.setKeywordSubst(KeywordSubstitutionOptions.BINARY);<br /> logger.info("file path:"+fileToAdd.getPath());<br /> logger.info("file parent:"+fileToAdd.getParent());<br /> client.setLocalPath(SC_DIR_TO_SAVE);<br /> client.ensureConnection();<br /> <br /> add.setFiles((File[])filesToAdd.toArray(new File[filesToAdd.size()]));<br /> client.getEventManager().addCVSListener(new LogCVSListener());<br /> <br /> logger.info("executing command..."); <br /> boolean success = client.executeCommand(add,options);<br /> logger.info("cmd add execute success:"+success);<br /> <br /> } catch (CommandAbortedException e) {<br /> logger.error("command aborted ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> } catch (AuthenticationException e) {<br /> logger.error("authenticate ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> }catch (CommandException e) {<br /> logger.error("command ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> <br /> }finally {<br /> <br /> if(null != c) {<br /> try {<br /> c.close();<br /> } catch (IOException e) {<br /> logger.error(e.getMessage());<br /> }<br /> }<br /> }<br /> logger.info("leaving addToCVS");<br /> }<br /> <br /></pre><br /><br>Commit to CVS<br><br /><pre><br /> public void commitToCVS(File fileToCommit, String userName, String password, String hostName, String repository) throws ExecutionException{<br /> PServerConnection c = null;<br /> try {<br /> logger.info("entering commitToCVS");<br /> <br /> String encryptedPassword = StandardScrambler.getInstance().scramble(password);<br /> <br /> CVSRoot root = CVSRoot.parse(":pserver:"+userName+"@"+hostName+":"+SC_PORT+repository);<br /> c = (PServerConnection)ConnectionFactory.getConnection(root);<br /> <br /> c.setEncodedPassword(encryptedPassword); <br /> <br /> logger.info("open connection....");<br /> c.open(); <br /> logger.info("after open connection");<br /> <br /> Client client = new Client(c, new StandardAdminHandler()); <br /> GlobalOptions options = new GlobalOptions();<br /> options.setCVSRoot(":pserver:"+userName+"@"+hostName+":"+SC_PORT+repository);<br /> <br /> <br /> client.ensureConnection();<br /> <br /> client.getEventManager().addCVSListener(new BasicListener());<br /> <br /> //File file = new File(SC_CVS_HOME+"\\"+SC_MODULE+"\\resize_needed\\"+SC_TESTER);<br /> File afile[] = new File[] { fileToCommit };<br /> <br /> CommitCommand commit = new CommitCommand(); <br /> commit.setMessage("auto commit adding to cvs...");<br /> commit.setFiles(afile);<br /> <br /> <br /> commit.setForceCommit(true);<br /> <br /> client.getEventManager().addCVSListener(new LogCVSListener());<br /> client.setLocalPath(SC_DIR_TO_SAVE);<br /> <br /> logger.info("executing command...");<br /> boolean success = client.executeCommand(commit,options);<br /> logger.info("cmd commit execute success:"+success);<br /><br /> //client.executeCommand(uc, options);<br /> }catch (CommandAbortedException e) {<br /> logger.error("command aborted ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> }catch (AuthenticationException e) {<br /> logger.error("authenticate ex:"+e.getMessage());<br /> throw new ExecutionException(e.getMessage());<br /> }catch (CommandException e) {<br /> logger.error("command ex:"+e.getCause());<br /> throw new ExecutionException(e.getMessage());<br /> } finally {<br /> if(null != c) {<br /> try {<br /> c.close();<br /> } catch (IOException e) {<br /> logger.error(e.getMessage());<br /> }<br /> }<br /> }<br /> logger.info("leaving commitToCVS");<br /> }<br /></pre><br /><br>InnerClass LogCVSListener<br><br /><pre><br />static public class LogCVSListener implements CVSListener {<br /> protected CVSCommandResult result = new CVSCommandResult();<br /> protected Logger logger = Logger.getLogger(LogCVSListener.class.getName());<br /> public LogCVSListener() {<br /> } <br /> <br /> /***<br /> * @return Returns the result.<br /> */<br /> public CVSCommandResult getResult() {<br /> return this.result;<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#messageSent(org.netbeans.lib.cvsclient.event.MessageEvent)<br /> */<br /> public void messageSent(MessageEvent e) {<br /> if (e.isError()) {<br /> logger.error(e.getMessage());<br /> // permet de stocker les traces<br /> result.getTrace().append(e.getMessage() + "\n");<br /> } else {<br /> logger.info(e.getMessage());<br /> }<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#messageSent(org.netbeans.lib.cvsclient.event.BinaryMessageEvent)<br /> */<br /> public void messageSent(BinaryMessageEvent e) {<br /> logger.info(e.getMessage());<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#fileAdded(org.netbeans.lib.cvsclient.event.FileAddedEvent)<br /> */<br /> public void fileAdded(FileAddedEvent e) {<br /> logger.debug("File has been added.");<br /> result.getFileAdded().add(e.getFilePath());<br /> }<br /> <br /> /* (non-Javadoc)<br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#fileToRemove(org.netbeans.lib.cvsclient.event.FileToRemoveEvent)<br /> */<br /> public void fileToRemove(FileToRemoveEvent e) {<br /> logger.debug("File to remove: " + e.getFilePath());<br /> //result.getFileToRemove().add(e.getFilePath());<br /> <br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#fileRemoved(org.netbeans.lib.cvsclient.event.FileRemovedEvent)<br /> */<br /> public void fileRemoved(FileRemovedEvent e) {<br /> logger.debug("File is removed: " + e.getFilePath());<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#fileUpdated(org.netbeans.lib.cvsclient.event.FileUpdatedEvent)<br /> */<br /> public void fileUpdated(FileUpdatedEvent e) {<br /> logger.debug("File has been updated");<br /> result.getFileUpdated().add(e.getFilePath());<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#fileInfoGenerated(org.netbeans.lib.cvsclient.event.FileInfoEvent)<br /> */<br /> public void fileInfoGenerated(FileInfoEvent fileInfoEvent) {<br /> logger.debug("File status information has been received");<br /> // Avec le diffInfo, possibilité de gestion plus fine des différences.<br /> // DiffInformation diffInfo =<br /> // ((SimpleDiffBuilder)fileInfoEvent.getSource()).createDiffInformation();<br /> result.getFileInfo().add(fileInfoEvent.getInfoContainer());<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#commandTerminated(org.netbeans.lib.cvsclient.event.TerminationEvent)<br /> */<br /> public void commandTerminated(TerminationEvent e) {<br /> if (e.isError()) {<br /> logger.error("Server responses has error");<br /> result.setError(true);<br /> } else {<br /> logger.debug("Server responses has OK");<br /> }<br /> }<br /> <br /> /*<br /> * (non-Javadoc)<br /> * <br /> * @see org.netbeans.lib.cvsclient.event.CVSListener#moduleExpanded(org.netbeans.lib.cvsclient.event.ModuleExpansionEvent)<br /> */<br /> public void moduleExpanded(ModuleExpansionEvent e) {<br /> // ne fait rien<br /> }<br /> <br /> } <br /></pre>Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0tag:blogger.com,1999:blog-33494658.post-61626512778563730022007-11-27T10:24:00.000-08:002007-11-27T10:27:08.087-08:00typical keytool implementation<br /><br><br /><pre><br />C:\jboss-4.0.3SP1\server\default\conf>keytool -genkey -dname "cn=actwskey, ou=Comira, o=CatsTest, c=US" -alias actwskey -keypass ###### -keystore d:\jboss-4.0.3SP1\server\default\conf\keys\actwskey.keystore -storepass ###### validity 180 -keysize 1024 -keyalg RSA<br /></pre><br /><br><br />view the contents of a keystore<br /><br><br /><pre><br />keytool -list -v -keystore keys\actwskey.keystore<br /></pre>Graham Kinghttp://www.blogger.com/profile/09382025532946419514noreply@blogger.com0