Java application of old technology integration
Class: Junior
Scott W. Ambler (scott.ambler @ ronin-intl.com), president of Ronin International
November 16, 2000
Described here by following the four public integrated strategy of one or more may be Java, J2EE, EJB-based applications with existing legacy systems to facilitate integration.
Very few projects have to start from scratch team (usually refers to green development) benefits. In the alternative, to the cold and hard in the development of new applications, the majority of Java project team needs to consider the existing old system. Maybe you need access to the existing inventory control system, the old customer databases or mainframe-based access control security services. If this is the case, you will have the old system integration, known as the "Enterprise Application Integration (EAI)". Bring to your team's advantage is that, if the old system designed to be reasonable, then you can use a large number of existing functional. However, if the old system designed to be unreasonable, or simply did not consider the design to integration, then you will find that integration is an important part of the project. When there is not enough documentation or when the owner of the old system are unwilling to work with your team cooperation (Never underestimate the role of policy on the project), this is particularly true.
DS Linthicum in the Enterprise Application Integration recommended four of the old system integration method:
- Data-level integration from a Java application's point of view, this type of integration through the session concentrated in the bean or entity bean access to the old database or documents. It included from the old system, and data access for the newly developed special-purpose data supply visit. XML is usually used for such integration technology, because XML is platform-independent data sharing methods. The advantages of data-level integration, can be quite direct and swift implementation. Shortcomings, including an increase of the data between the application coupling, thereby increasing your maintenance burden can not access important acts, such as data validation and key business rules and the need for the design of the data prepared by the poor important data cleaning / formatting code .
- Application Programming Interface integrates the use of this method, you can use the procedures exposed by the application of the application programming interface (API) to access the old system-in-package data and functions. Application Programming Interface integrates the advantages of this method in a certain standard in the industry; many packages (such as SAP and PeopleSoft) can be included by the Java Native Interface (JNI) code to the C-API. The main disadvantage is that in your organization internally developed software rarely defined API; API may have limited the scope of your needs and can not act (or the way you need it), in fact, is usually oriented API function , and not object-oriented.
- The use of this method-level integration, business logic can be called as the sharing of software or operating methods sharing pool. For example, updating customer data, verify credit card transactions or depositing money in bank accounts and other public can operate in all application programs have access to public resources or the use of reusable framework. Method-level integration advantages is that it usually provides the public the detailed functional business visit a wide range of applications (including Java and non-Java) can access these operations; call is direct. Disadvantage is that, if everyone methods are not effective stent, then the public and meticulous method of characteristics would be difficult to support the public service or technical support services, such as security and access control.
- User interface-level integration technology through the user interface on the visit to the existing applications, such as screen clippings process, in which mimic a user's keystrokes to achieve interaction with the old software. Screen clip is based on the aggregation of Web sites (such as Vertical One) the use of the public, to demonstrate financial or other types of information personalized view. The advantage is, this is the old time-tested and integrated common method, and many user interface test tools (such as Mercury Interactive's WinRunner or Rational Corporation of SQA Suite) are to use it. The main disadvantage is that this method may be very slow: the need for the old application is drawing your clippings screen, but the user interface of the old by any changes need to integrate code changes.
Fortunately, the old simple integration - especially when considering the design of the old system to integrate - can usually be handled by middleware products, such as Tibco Inc ActiveEnterprise middle of the line, IBM MQSeries product family and the iPortal Integration Server Iona. However, when integration than confirmed by the organization based middleware with things more complicated, you will find that you need to prepare their own integration code, commonly known as (wrapper) code. Table 1 shows the Java code in the application of a variety of options, each described how to use Java technology applications with the old system integration.
original English text.
Ronin International, the company is a specialized object-oriented process to provide guidance, architecture modeling and Enterprise JavaBean (EJB) development consulting business. Or his own book and the other people of the several development of the object-oriented books, including the recently published The Object Primer 2nd Edition, the book details outlined in the theme of this paper. Through scott.ambler @ ronin-intl.com contact with him, his website at www.ambysoft.com.
–== I finally drink the ==– alcoholism?? I finally had to drink alcoholic drink to their own fear, afraid to let their own
This Diaoerlangdang on a holiday to have passed under the guise of learning to play in a summer school to learn not what to feel that they posted on 2006-09-01 17:49 ~ ^ Er cAng reading (56) Comments (2) edit their collections quoted Category: Essays mood
Unicode solution
Unicode solution Unicode solution
Unicode: Wide byte character sets (from windows core Programming)
Unicode is Apple and Xerox Corporation in the 1988 establishment of a technology standard. 1991, a group set up a body responsible for the development and promotion of Unicode applications. The group from Apple, Compaq, IBM, Microsoft, Oracle, Silicon? Graphics,? Inc, Sybase, Unisys and Xerox, and other companies. The group responsible for the maintenance of Unicode standard.
Unicode provides a simple and consistent method that string. Unicode strings in all the characters are 16 (2 bytes). It has no specific bytes to specify a byte is the same as an integral part of a character, or a new character. This means that you only need to increase or decrease a guide, we can traverse the various characters in the string, call CharNext no longer need such a function. Since Unicode with a 16 to the value of each character said, a total of 65,000 characters can be, so that it can be for all countries in the world writing in the coding of all characters, far more than a single-byte character sets, 256 The number of characters.
The basic problem we are facing is the world's written language can not simply use 256 8 code. Previous solutions including code page and DBCS has proved to be unable to meet the need, but also stupid. That what is the real solution?
As writers, we experienced such problems. If too many things, with eight values can not be said, then we try a broader value, such as 16-bit values. Besides, this is very interesting, is being developed for Unicode. And the chaotic character code 256 images, as well as containing a number of byte code and the number of 2-byte code different double-byte character sets, Unicode is the reunification of the 16 systems to allow that 65,536 characters. This means that all characters and the use of hieroglyphs of the world's languages, including a series of mathematics, symbols and symbol sets monetary unit is sufficient.
Unicode and DBCS understand the difference between very important. Unicode use (especially in the C programming language environment), "wide Character Set." "The Unicode characters are each 16 rather than 8-bit wide interface." In Unicode, no mere eight numerical significance there. In contrast, in double-byte character set we are still dealing with eight numerical. Some self-byte character definition, and certain needs and bytes showed another common definition of a byte characters.
DBCS string dealing with a very cluttered, but processing Unicode text is like dealing with the order of the text. You may be pleased to know that the former 128 Unicode characters (16 code from 0 x0000 to 0 x007F) is the ASCII characters, and the next 128 Unicode characters (x0080 code from 0 to 0 x00FF) is ISO? 8859-1 on the expansion of ASCII. Unicode in different parts of the same characters are based on existing standards. This is to facilitate the conversion. Greek alphabet x0370 use from 0 to 0 x03FF code, the use of Slavic language x0400 from 0 to 0 x04FF code, the United States use x0530 from 0 to 0 x058F code, the use of Hebrew x0590 from 0 to 0 x05FF code. China, Japan and South Korea hieroglyphs (known as the CJK) occupiers from 0 x3000 to 0 x9FFF code.
Unicode is the greatest benefit here there is only one character set is not ambiguous. Unicode is actually personal computer industry companies in almost every important the result of collaborative work, and it with ISO? 10646-1 standards in the code is that he gathers. Unicode is an important reference, "The? Unicode? Standard, Version 2.0" (Addison-Wesley Publishing, 1996). This is a special book, it has little other documents show that the way the world's written language and the richness of diversity. In addition, the book also provides Unicode development of the basic principles and details.
Unicode shortcomings? Of course there are. Unicode strings occupied memory is twice the ASCII string. (However compressed files contribute greatly reduce the disk space of the paper.), But perhaps the worst shortcomings are as follows: Relatively speaking people not accustomed to using Unicode. As writers, and this is our work
Posted on 2006-03-27 17:49 xnabx Reading (38) Comments (0) edit collections cited
In Java applications statement added tracking technology
Class: Junior
Andrei Malacinski (malacins@us.ibm.com), WebSphere Software Engineer, IBM
January 1, 2001
Now, no matter what projects have strict schedule, and always ask for more features, developers often do not have time or do not take the time to consider debug (or track) strategy. This paper free of charge - Java source code, as well as all the contents - providing developers with a strategy, so they need to realize their own self-designed and tracking strategy, thereby enabling them to concentrate on the main procedures in the application of logic. This paper presents two technologies, one for the development of the track, the other one used to run the track.
Test consider the following situation: Your most loyal, one of the most important customers running the software you have a problem. This report, according to some use when running your application, the application will be terminated accident. Regular customers can reproduce the problem. Customers are not satisfied, and hope that the issue be resolved as soon as possible. Unfortunately, in the development environment or testing environment, you use the same by customers running applications can not return that issue. In all of your normal environment, but the environment, the law has failed to occur. What Next?
In your configuration through the use of run-time tracking technology, such as proposed in this paper, the technique, you can open the client running on the track will be to debug (or track) news output to a file, and then again to re-run an application now, and tracking information sent to you to help you debug their problems. Tracking information will enable you to view proceedings in the customer's environment in the process.
During the discussion before the actual tracking mechanisms, first of all, to see what we will be discussing the two types of tracking.
- Development at the track can be configured your application code, in order to open the application development stage of the output of debugging information as a means of debugging, and deployment of applications will be closed. Your customers will never see the development of tracking information.
To develop a common tracking mechanism is in the building Java source code compiler, set a mark, and this could mark the trigger Java
System.out.println ()call. But you can easily extend this basic model. In the code development, the same embedded run-time tracking you will create tracking function. In addition, it set so that when you close the compiler signs, the development of tracking all calls will be compiled code from the gift.Check. Classbytecode files, documents found in the development of tracking calls does not exist. For the use of this technology for Java source code, as well as instructions, please refer to the "development, tracking mechanisms." - Run-time tracking of your application procedures set up to enable customers to track open source output. If a customer running your application problems, they will be able to open the track, once again running applications, and tracking information sent to you to help you debug their problems.
A simple run-time tracking mechanisms from basic Java
System.out.println ()call composition. But as long as some thought, it can be opened to expand. For example, you can use the run-time customers can be more open-dynamic tracking. In addition, you can also choose to let customers track the output sent to any place, such as console or documents. In achieving these tracking, the creation of a group of you and your partners will be able to enjoy the development of reusable tracking function meaningful. These functions package tracking details, such as where to send output tracking, tracking statements include date / time stamp, and so on. To get a group tracking function and used to illustrate the function of this group tracking Java source code sample, please refer to the "run-time tracking mechanism."
SharedConstants.java, and the final use of the static keyword.) Variables statement that the final (and mandatory) variable values will not change from its initial value of other values.
In the development, DEBUG variables will be set up to the desired output level tracking. In this case, the TRACE_MEDIUM including junior and middle-level tracking, TRACE_HIGH including low, intermediate and advanced tracking, and tracking TRACE_ALL including all levels. TRACE_ALL equivalent TRACE_HIGH. In the deployment of applications, it will be set to TRACE_OFF DEBUG variables. If you use this deployment tracking technology, you may need to define the scope of each level tracking.
Note: When changes either of the above variables, such as the final stage in the development of closed track, you need to be recompiled to use all the variables that Java source code, as well as those who use these variables indirectly code. This step is necessary, because the Java compiler will be passed directly into the values of these variables in the code to use them to optimize your code. Therefore, the compiler will not automatically adopt the necessary checks to determine the need to compile all affected files.
PrintMessage. Packaging support for the development of this class when all the necessary debugging code. Java in your category including PrintMessage such as a category, so that the preparation of the code of each application developers can use the function.
PrintMessage category includes such as following through to the statement, including the development of tracking functions:
Public static final boolean traceMedium = ((SharedConstants.DEBUG & SharedConstants.TRACE_MEDIUM)! = 0)? True: false; public static final boolean traceAll = ((SharedConstants.DEBUG & SharedConstants.TRACE_ALL)! = 0)? True: false;
Note: These variables for the static final statement.
Here is PrintMessage category, it has developed when tracking. Calling them such as printMessageWithDateTime (String msg) and printMessage (String msg), the output of the tracking function to track information on each output.
For the sake of flexibility, in the category of your PrintMessage multiple forms of PrintMessage methods. In the above example:
-
PrintMessage (String msg)Method Invocation, only output target tracking information. -
PrintMessageWithDateTime (String msg)in output tracking information before adding date / time stamp. If you are tracking applications involving database access, network communication, system I / O, or the time stamp will help them to debug complex affairs of the other, then this may be useful. -
PrintMessageNoNewLine (String msg)output without tracking newline trip.
There can be many other forms of methods.
In your source code statements, including tracking, and use your PrintMessage category method. MainApplication.java use of the sample code PrintMessage tracking function to enable the development, debugging.
As a developer, you according to each message in the context of its decision-output tracking.
Note: In order to maintain Java code optimization objectives, the above example direct examination static final variables value. When compiling this code, you can achieve optimization. In this case, the compiler noted that the form of if (Expression) Statement of code, such as expression if (PrintMessage.traceMedium), always come to the same results. The result of the implementation and operation unrelated to the state. Therefore, the compiler can optimize the code. If the compiler notes that if the code block (Expression) conditions always come to some false, it would know the code block will never be part of the implementation of Statement. Therefore, the compiler does not generate Statement block bytecode. Results of this tracking code in the block will not be included in the statement. Class document.
Verify information has been tracking the development of Java compiler removed and therefore not included in the. Class bytecode in the document. To accomplish this step, use a procedure anti-compilation. Class document. Anti-compilation. Class document is compiled from the composition. Class document Java byte code re-created Java source code technology. When the anti-compilation. Class document, check to verify the Java source code tracking information does not exist. Java Development Kit (JDK) provides a javap called anti-assembler. Please click the following ways to implement it:
Javap-c packageName.MyApplication
Note: When you call javap, must be provided. Class packet of documents.
![]()
![]()
![]()
PrintMessage.java example, it implements the technology, a change in form. This class support package running all the necessary debugging code. IsRunTimeDebugOn common method () returns the value of the static variable debugOn, this value is initialized in the class load. Then isRunTimeDebugOn () method calls will not bring too much of the spending, as the only way to return to a variable value.
In your source code statements included in the tracking and the use of PrintMessage category method. For example, see the sample code MainApplication.java a change in form, it uses the tracking function PrintMessage opening runtime debugging.
By the way your customers start your Java application, as follows:
Jre-Ddebug = 1 MainApplication
Or
Java-Ddebug = 1 MainApplication
If your application through from the front of executable programs (such as C / C + + code) or script start to hide on the JVM Java Virtual Machine (JVM) call, you can use slightly different ways of debugging variables show to the customer. In your executable program or script logic, you will be using the above variables debug start-up JVM.
You can use the following methods enhance this basic design:
- Debugging variables customers can track the value of the output location (such as the system console or a fully qualified document). This will enable customers in the collection of output tracking with greater flexibility, tracking output can be sent to you and your application development team to help you debug.
- Variables can also specify output tracking levels (such as low, medium or high). Junior and middle-level tracking could include tracking of application-specific point tracking, and advanced tracking could also include methods of entry and exit notice, or notice iterative cycle. - The definition and meaning of your decision.
- If your application is divided into a number of logical components, debugging variables can be designated to track which application components.
Note: The above information can be included in a single variable, can also use different variables are designated. For example, using a variable output designated location to another level tracking variables specified, and then specify a variable tracking components.
Please refer to PrintMessage.java sample source code form of this change, it will be tracked through a statement in the document output to achieve the technology. In this case, if the designated debugging variables, it is interpreted as the value of fully qualified file name. In practical application, it should be in the file I / O part of the additional error checking and error recovery functions. Also, if you expect there will be a lot of follow-up statement, it can restrict the size of the paper. A strategy is that once reached file size limits, the first document on the removal of the blocks, so as to add a new phrase to space. This technology will be further changed again, you can through the application's user interface will be presented to tracking customers. Your interface will allow users to choose between tracking, tracking the location of the output, file name, file size limitations, the paper Qiduan mechanisms, and so on.
![]()
![]()
![]()
original English text.
- "Implementing Assertions for Java," Dr Dobb's Journal, including one on "Design by Contract," Deputy column.
- Through C / C + + User's Journal can be found several assertions relating to the C + + article.
- "Exceptions in Java," the authors Bill Venners.
- Lesson: Handling Errors with Exceptions, from the Sun Microsystems Java tutorial.
malacins@us.ibm.com and can be linked.
Pagination for ql2000
Pagination enquiries sql2000
Today the Internet to see a few of the tab for solving methods sql2000 written here (not test)
Four Methods of exterior n to m record:
1.
Select top m * into temporary table (or tables variables) from tablename order by columnname - will be inserted into top m T
Set rowcount n
Select * from table variable order by columnname desc
2.
* From select top n
(Select top m * from tablename order by columnname) a
Order by columnname desc
3. Tablename If there are no other identity out, then:
Select identity (int) id0, * # into temp from tablename
N to m admission of the statement:
Select * from # temp where id0> = n and id0 <= m
If you select identity in the implementation of (int) id0, * # temp from tablename into this statement of the error, it is because you select into the middle of DB / bulkcopy attribute not been opened before implementation:
DB exec sp_dboption your name, 'select into / bulkcopy' true
4. If the exterior attributes have identity, then simple:
Select * from tablename where identitycol between n and m
**********************************************
* Sql2000 The following stored procedure under Pagination
**********************************************
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
— Name: paging storage process
— Examples of the use of EXEC sp_PageIndex'*',' FROM StuSources', 2,10
— Note
— Is still not on the importation of the strict parameters of the test
— Default input are valid
ALTER PROC sp_PageIndex
@ SqlSelect varchar (800) - SELECT FROM front of the field after not include SELECT
, @ SqlFrom varchar (800) - behind the field contains FROM FROM
, @ CountPerPage int - data lines per page
, @ ToPage int - to go to the page
AS
BEGIN
— According to data lines per page and the page to go by the data beginning and ending points
Declare start int @
Declare end int @
Set end = @ @ @ * toPage countPerPage
Set @ start = @ countPerPage * (@ toPage - 1) + 1
— Temporary table named names can be random
Declare @ tmpTable varchar (10)
SET @ tmpTable = '# tmp'
Declare @ sqlStr varchar (800)
— Data sources to create temporary table
SELECT @ sqlStr = 'SELECT Identity (int, 1,1) AS RowIndex,'
SELECT @ @ sqlStr sqlStr + = rtrim (@ sqlSelect) + 'INTO' + @ tmpTable
SELECT @ @ sqlStr sqlStr + = rtrim (@ sqlFrom)
— Temporary table for the data needed to be
SqlStr = SELECT @ @ sqlStr + '' + 'SELECT' + rtrim (@ sqlSelect) + 'FROM' + @ tmpTable
SqlStr = SELECT @ @ sqlStr + 'WHERE RowIndex BETWEEN' + Convert (char, @ start) + "AND" + Convert (char, @ end)
— Removing the temporary table
SqlStr = SELECT @ @ sqlStr + '' + 'DROP TABLE' + @ tmpTable
EXEC (@ sqlStr)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Posted on 2007-01-18 10:00 cAng ^ Er reading (136) Comments (1) edit their collections quoted Category: Database
Vnc erver settings (job is reposted)
As customers need to take full advantage of the N spend more money to buy a server, and servers running the Linux AS, the client will not use text mode, it can only use the X-server approach to every user has a graphics terminal This thanks to the design of the X-windows advanced ah.
To simple, I use the onboard vnc-Linux server.
Code::
# Uname-a
Linux server1.linux 2.4.21-4.ELsmp # 1 SMP
# Rpm-q vnc-server
Vnc-server-4.0-0.beta4.1.1
You can use specific account to run your vncserver orders. This can be done at the same time there are a number of graphical user terminals. At the same time a graphic terminal code there can be only one user.
Code::
# Useradd demo
# Passwd-d demo
# Su demo
$ Vncserver
Passwd: / / If this is the first time running account vncserver, will ask you to enter the password link.
Verify:
New 'server1.linux: 4 (demo)' desktop is server1.linux: 4
Starting applications specified in / home / demo / .vnc / xstartup
Log file is / home/demo/.vnc/server1.linux: 4.log
Starting this passage above that of a graphic terminals, No. 4, it is necessary to remember this number, such as the need to provide this login code.
If you want to stop this process, the use of code::
$ Vncserver-kill: 4
Can be, and that the figures behind the graphics terminal code.
Ok, so that x-server has been a starter.
We have to test.
Find another machine, if it is the Linux system, it more convenient to use the following direct orders code::
# Vncviewer xx.xx.xx.xx: 4; connections ip address is: #, # 4 here.
Will pop up a dialog box, asking you to enter your password, if it is correct, this is there will be a graphics terminal.
If the windows of the machine, then download a software vnc it. I use the winVNC.
Connectivity is the same.
But we can see, is that although the graphical interface, but Haochou! Indeed, because of the default graphics terminals used xterm + twm, desktop, there were none. If we can use the default KDE or GNOME or FVWM, such as the X-manager how good?
No problem, the next configuration is to solve the problem.
Whenever a vncserver a running account, will be at home directory creation. Vnc directory.
There are an executable script xstartup. Look at the contents inside will know, the default start-up is twm.
Then we change the document it, remove all the contents inside, and his party into the code below::
Gnome-session
This designated starter gnome.
Can also be written code::
Unset SESSION_MANAGER
Exec / etc/X11/xinit/xinitrc
Starting said that the default graphics manager.
Kept out, and then restart vncserver.
Code::
$ Vncserver-kill: 4
$ Vncserver
Then to the client to link with the X-server, is not to see you become more beautiful.
You may be asked, if I have 1,000 users, it is not every user needs to amend this document ah, ah that much trouble.
Then we find the root causes it to see who is in the end xstartup created.
Find / usr / bin / vncserver, he is a perl script.
Open to look at the 43 line, you will see
$ DefaultXStartup the definition of variables, see the bar.
Do you know how this changed under the bar.
He became like this:
Code::
$ DefaultXStartup
= ("#!/ Bin / shnn. "
"# Uncomment the following two lines for normal desktop: n."
"Unset SESSION_MANAGERn."
"Exec / etc/X11/xinit/xinitrcnn."
"# [-R $ HOME / .Xresources] & & xrdb $ HOME / .Xresourcesn."
"# Xsetroot-solid greyn."
"# & N vncconfig-iconic."
"# Xterm-geometry 80×24 +10 +10-ls-title" $ VNCDESKTOP Desktop "& n."
"# Twm & n");
Actually removed from the top of the two lines of notes, comment out the following few lines. Kept out.
If you create an account, vncserver look at the operation.
Is not the default graphics terminals on the amendment?
My task completed.
The need to interview.
We try it.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=624227
Published in 2007-04-02 10:19 with you-reading (115) Comments (0) edit collections cited
Pursuit of code quality: repeatable test system
Class: Junior
Andrew Glover (aglover@stelligent.com), the president of Stelligent Incorporated
November 2, 2006
Added to the test servlet containers Web applications, the preparation of logical repeatable testing is particularly necessary skills. Andrew Glover in the improvement of the quality of this sequel to the code, he introduced Cargo, which is a common way to automate the management of containers open source framework With this framework, you can be prepared in line with the logic of duplication of system testing.
In essence, like TestNG JUnit and the same testing framework to facilitate the reproducibility of test creation. As a result of these framework of a simple Boolean logic (in the form of methods to assert) the reliability, which makes unmanned test run for the intervention possible. In fact, automated testing framework is one of the main advantages - I can prepare for a specific assertion of a complex test, and if these acts have changed, the report will be a framework everyone can understand mistakes.
Mature framework of the test repeatability framework will bring the advantages of this are obvious. But the logic of repeatability depends on you. For example, consider creating Web applications used to validate the test can be repeated, extended some JUnit framework (such as JWebUnit and HttpUnit) in assisting the automated Web testing is very useful. However, the test can be repeated plumbing is the task of development, and the deployment of Web applications resources difficult.
JWebUnit actual testing process relatively simple structure, as shown in a list:
discussion forums, access to the code prepared by the method of testing the framework of the preparation of high-quality code and help.
Examples from this small parts (ie, widget-id) can be judged from the certification, can safely make the assumption that this application of the database constraints are likely to prevent the creation of an already existing and additional small parts. Due to the lack of a running another test to delete this test case before the goal of the process of small parts, if continuous operation twice this test case is very likely to fail.
Fortunately, as discussed in the previous article, as a help database - Dependence (database-dependent) mechanism repeatability test case - DbUnit.
list in a test case to use DbUnit is very simple. DbUnit need only insert some database data and a corresponding database connection, as shown in the list:
list a list of 2 and defined in the test case known as system testing. Because the system installed integrity of the test run applications, such as Web applications, which usually contain a servlet containers and an associated database. The purpose of these tests is to verify those designed for end-to-end operation of external interfaces (such as a Web application in the Web page).
inventory list and 2 in a display of logic in the pre-operational testing requires the following steps:
- The creation of a war document, the document contains all the relevant Web content, such as JSP documents, servlet, third-party jar files, images, etc..
- Document this war deployment to the target Web container. (If the container has not been activated, the activation of the containers.)
- Launch any relevant databases. (If you need to update the database model, in the pre-update.)
Now, for a negligible small test to do a lot of supplementary work! If it is shown that this process is time-consuming, so you think this test will be running a long interval? To test system in the face of logic can repeat (in a continuous integration environment) of this demand, this step is indeed daunting list.
![]()
![]()
![]()
list in the 4 and 6 list the code together, with two Cargo task Packaging a test objectives: one used to start Tomcat, for another stop Tomcat. Antcall call in the task list in the definition of 8 _run-called system-tests goal.
list of two test cases defined in this directory is located.
7 in the list, complete distribution of the Ant build files, which will test and Cargo System deployment package together. 7 in the list of the code to ensure that the list of 8 test / directory system under test all systems are logically can be repetitive. May at any time on any machine running on these systems testing, continuous integration environment Jia You. The test containers makes no assumptions - do not assume the position, or even whether their operation do not assume! (Of course, these tests are still done a hypothetical, I did not emphasize that the potential good and the configuration database in the operation of the. But that is another topic to be discussed.)
![]()
![]()
![]()
original English text.
Access to products and technologies
- Download Cargo: to re-test the Web easier.
- Download JUnit: View JUnit 4 new features.
- Download TestNG: Another powerful testing framework.
Discuss
- Participate in the discussion forum.
Stelligent Incorporated, the company used to test the development of effective strategies and to our team in the early regular monitoring of code quality continued integration technology to help enterprises solve software quality issues. He is Java Testing Patterns (Wiley, September 2004) co-author of the book.
Go-ForIt diary:: eXtreme DragonSlayers special report on the Part 3
Class: Junior
Jeff K. Wilson (wilsonje@us.ibm.com), and e-commerce architecture designers, IBM
July 10, 2001
DragonSlaying in the Technical Advisory Group on this series of Part 3, Jeff Wilson described GoFor-It.com is how to use session management. This paper describes a conversation object methods, principles and internal working session object defects, and demonstrate how to create your own sense of a conversation servlet. It also allows you to understand through the application of "protecting state" concept on how to let your server for data processing suspend such tedious chores, and rich user experience.
outline.
original English text.
wilsonje@us.ibm.com.
Robocode expert tips: avoid wall factor (factored wall avoidance)
Class: Junior
David McCoy (dsmccoy@velocitus.net)
July 13, 2002
To design an algorithm to make your robot will not trapped in a corner, or too much deviation from the desired direction of movement, but not near the wall, which is a very difficult thing. Factor bullet wall method is a simple solution. In this small skills, David McCoy will show you how to facilitate the realization of this technology.
As long as we are in Tracking your opponents' movement of the robot to be added, we will be able to avoid factor added to the wall of existing or hate mobile algorithm. This approach will be expected under the direction and the wall between the robot and distance determine the direction of the safety factor, as is most likely trying to find the direction.
reference add the technology needed to download the source code) request to change the direction of zero to try to move along the line.
source code.
dsmccoy@velocitus.net with David.
![]()
Crossing borders: Streamlined, Part 1
Level: Intermediate
Bruce Tate (bruce.tate @ j2life.com), the president of J2Life, LLC
October 30, 2006
Ruby on Rails Ruby is a programming language based on the highly efficient Web development environment. Streamlined Ruby on Rails is based on the rapid development of an open-source framework. Streamlined integrated Ajax, meta programming, code generation, as well as Ruby on Rails the power of the Rails productivity to a new level.
I participate in the life of the first marathon training. Marathon training of the most interesting aspects - indeed, is the only area - is to improve continuously the impact brought about by superposition. Sometimes, I carried out in order to improve efficiency and expertise in order to improve physical condition and design of the length of run. Sometimes, in the running process, I learn to avoid small mistakes, avoid duplication of redundant positions (of the single superfluous gestures do not have much impact on the extent, but the whole process of running the 26.2 miles in a waste of energy, or injury to me) . I have a week will be increased, the distinction between a week is not significant. But after a training programme cycle, I will only run from the first four miles increased to runs 26.2 miles. Software development is also similar to this. If sustained minor improvements, eliminate unnecessary duplication, you will continue to accumulate, which in turn leads in each of the items in the future will do a better job.
cross-border series, the authors Bruce Tate made such a point: Today's Java programmers through studying other methods and language will be other ideas. Since Java obvious for all development projects has been the best choice, programming outlook has changed. The framework is affecting other structures Java framework, from the concept to other linguistics can affect your Java programming. You write the Python (Ruby, Smalltalk……) code can be changed with your Java coding approach.
This series introduced with Java developers have fundamentally different but directly applicable programming concepts and techniques. In some cases, the need to integrate these technologies to take advantage of it. In other circumstances, you can direct application of these concepts. Compared to other languages and frameworks can affect the development of the Java community, or even the basic framework of the concept of methods, tools alone is not that important.
This consists of two parts in the article, I focus on Ruby on Rails structures, which is in an early stage of development can reduce duplication of the Rails. Part 1 introduced the restrictions and structures Rails Streamlined, Streamlined is a code generator, the efficient application of technology element programming at the higher levels to eliminate duplication. Part 2 will be further deepened Streamlined meta-programming model and customization features.
cross-border series, I introduced to reduce duplication and improve efficiency to achieve repeated the language and framework:
- Possess such characteristics such as duck typing programming language, through the use of fewer types are defined, simply to reduce the need to support the compiler code number can increase flexibility and reduce duplication.
- Trying to deal with the core framework tasks (such as persistent or Services) to improve efficiency and eliminate duplication, and that no new applications for each process write code.
- Ruby on Rails through the use of public norms eliminate duplication configuration, the framework allows you infer intent, rather than forcing you configure application characteristics (for example, applications to specific database table name and column name).
Like all of the language and efficient framework must be done, these measures are all focused on each of the steps, or low-level duplicate. But once built an effective foundation, we can allow the target high. Rails of the structures to the public through the application type (database support for Web applications) to eliminate duplication.
cross-border: Rails migration.)
All of a sudden there are so many settings. Can now Shenxi anger, summed up the construction of the following date:
- With a database table for the track and another location for the database table.
- With Ruby object model, there Rails relations between objects.
- Model now in place between the track and new Doula relations.
- With the changes in the mode of dealing with the strategy can be recovered so far two major changes in the pattern of any one.
- With the original user interface.
Although some may want to add validation, but object model is suitable for the production of the first-class objects Rails. Many Rails object model is simple, because the properties are used to add dynamic element programming. Now to demonstrate the relationship between the console add some data. Input script / console launch console, and enter 5 in the list of commands:
reference). Switch to preserve. Gem directory and enter the gem install streamlined. All the elements needed are installed automatically. If there are problems, the blog can be streamlined through the excellent support, and commercial support options.
Now is the Streamlined into practice time. First, the input script generate streamlined location trail running Streamlined generator. When suggested that the replacement of locations and trails controller, the answer y.
The browser http://localhost:3000/locations/list Show at the results in Figure 3:
plans to list in a list of comparison. Distinction is staggering:
- The default application procedures, click Edit One can see the link. In the next section will see more about the relationship between the content, in this article, Part 2 will be even more.
- Application procedures make better use of style sheets, and generate more complex style sheet. Streamlined use of various technologies, such as the use of the forms around
<div> s,each page element makes it easier to deal with the pattern. Streamlined alpha version of the style of handling limited, but future versions will be expected to break the limit. - Application procedures are the default in the left side navigation column, in the top menu and headers. These have a more complete menu of default behavior, and to customize.
- Each form will have representatives edit, or delete a row shows that the picture, there are additional applications on behalf of the picture to create new entries, as well as CSV derived table is derived for the entire XML.
This page look more like the default application, andä¸å¤ªåƒincomplete structures. Streamlined This is a bright spot. In-depth prior to the work of the Streamlined way to be a simple description.
references). In this series I have repeatedly discussed RIFE, but JMatter is new. JMatter framework with open-source licenses, but also have a commercial offer. JMatter based on Hibernate and Swing, which allows under element programming model quickly develop very complex applications. Eitan Suez Java laps in the famous spokesman JMatter constructed to help quickly launch a medical practice for the two-tier client / server applications Java. In the nearly two years of UNSCOM, JMatter surprisingly strong, and its properties can be easily Rails and Streamlined confrontation. If Jmatter the pace of change in the Ruby community can catch up with the technological level, then it will continue to exist for the future.
![]()
![]()
![]()
original English text.
scaffolding.rb category.
Access to products and technologies
- Streamlined: Download Streamlined application generator and tested. Streamlined is rapidly developing, I have to download the initial alpha version.
- RIFE: Java-based element programming framework, it adopted a strong element model-based CRUD application provides a very good structures.
- JMatter: download new JMatter framework, which is seen by the author against the Swing and Hibernate based on the two-tier application framework for the best.
- Ruby on Rails: Download open source Ruby on Rails Web framework.
- Ruby: from the project's Web site access to Ruby.
Discuss
- DeveloperWorks bolgs: Add developerWorks community.

Bruce Tate living in the capital of Texas, Austin, he is a father, as well as mountain bike and kayak hand in hand. He is the three best-selling author of books Java, which won the Jolt Awards, including Better, Faster, Lighter Java a book recently published Spring: A Developer's Notebook book. He worked at IBM for 13 years is now J2Life, LLC and the founder of the consultancy. He applied himself to studying the Ruby and Java-based development strategy and lightweight structure.
keep looking »