tag:blogger.com,1999:blog-80520118612300540502024-03-19T01:17:40.385-03:00Software is artThe world needs software. Software needs you.Unknownnoreply@blogger.comBlogger23125tag:blogger.com,1999:blog-8052011861230054050.post-7415782762187677672014-01-28T21:19:00.000-02:002015-11-04T10:01:03.875-02:00Blog migrationI will continue doing posts about software in a new domain <a href="http://software.edpichler.com/">http://software.edpichler.com</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-48680530263660211902013-07-27T15:57:00.000-03:002013-07-27T15:57:17.527-03:00All repeatable work have must be automatedThis speech has strong link with software engineering. Everything that is repeatable must be automated. We must be ahead, working on the unknown, in the discovery, what is not repeatable, what we can't automate yet.<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/w5OyrsHmjW0?feature=player_embedded' frameborder='0'></iframe></div>
<div>
<br />
<br />
Last years software people had access to thousands of IDE plugins, and excelent tools like Play framework, Spring Roo, Ruby On Rails, WaveMaker,etc. These made us did a huge step on this field of software repeatable tasks automatizations.<br />
<br />
Over the years, software engineers tried to find the silver bullet. How much years we need yet to do it? Is it possible? I think no, I don't remember any silver bullet, once the world changes and we need to follow it.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-22394351436098284852013-07-25T23:35:00.000-03:002013-07-25T23:35:00.452-03:00Design wants to be simpleOnce doing the excellent online course at hackdesign.org, I found some precious articles. <div>
<br /></div>
<div>
<a href="http://www.twitter.com/bokardo" target="_blank">Joshua Brewer</a>, wrote a very nice short <a href="source: http://52weeksofux.com/post/548149787/simplicity-isnt-that-simple" target="_blank">post</a> about the idea of design being simple. I perfectly agree with Joshua. People (like me and probably you) run away when see complexity, they want simple things, they are full of complexity on their lives so we as software engineers must provide easy and simple human interfaces. </div>
<div>
<br /></div>
<blockquote class="tr_bq">
<h3>
Isn't that simple</h3>
<i>“Simplicity is the ultimate sophistication.” —Leonardo Da Vinci</i></blockquote>
<blockquote class="tr_bq">
Simplicity, by definition, is freedom from complexity; the absence of luxury or pretentiousness. Sophistication, on the other hand, often implies a sense of style, cultivated beauty and refinement. So is Da Vinci contradicting himself here?<br />On the contrary. I believe the ultimate level of sophistication happens when the refining process is so complete that there is truly nothing else to add and nothing else to take away; when the nature of a thing is perfectly represented and understood by its state and appearance. To behold it is to know and understand it. </blockquote>
<blockquote class="tr_bq">
This may seem overly philosophical, but as my co-author, Josh Porter, said recently, “Simplicity is much more than the trite “less is more” we so often hear. Simplicity is… about clarity.” And clarity comes from constant refinement.</blockquote>
<blockquote class="tr_bq">
John Maeda’s First Law of Simplicity states: The simplest way to achieve simplicity is through thoughtful reduction. Refinement that is thoughtful, calculated, and whenever possible and appropriate, based on data is one of the fundamental tools of any designer.</blockquote>
<blockquote class="tr_bq">
Anyone who occupies themselves with the task of creating truly usable products becomes instantly aware that achieving simplicity is not that simple. For any single feature in a product we must take into account the way it looks, the way it functions, its place in the overall system, affordances to help convey context of how and why it is to be used, as well as taking into account the motivation of the user.<br /><br />Designers are in a constant process of weighing each decision against previous ones, against common conventions and against the user’s goals in order to create an interface, a product or a service that is clear in all its meaning and function. There is no denying the difficulty in this process. There is a delicate balance between the simplicity of use and the complexity of usefulness. But it is true the product that is clear in its purpose, elegant in its execution and simple in its use will set itself apart from the competition and endear itself to the user. </blockquote>
<blockquote class="tr_bq">
Designing for simplicity is a process of calculated refinement.</blockquote>
<blockquote class="tr_bq">
Source: http://52weeksofux.com/post/548149787/simplicity-isnt-that-simple</blockquote>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-24942706747504861072013-07-23T22:50:00.000-03:002013-07-24T08:36:39.486-03:00Tracking events in Google Analytics before the HTML Form be submittedI faced a problem in Google Analytics that finally resolved. Thanks to the awesome Stackoverflow.com. This is the original<a href="http://stackoverflow.com/questions/17800465/cant-google-analytics-event-tracking-function-before-submit-a-form/17823810#17823810" target="_blank"> thread</a>.
<br />
<br />
Google Analytics was not tracking my event of downloading document generated dynamically.<br />
When the user click on the "Export to Word" button, the event should be tracked, and after it, the download start. Google Analytics tracks events in asynchronous way (of course) so, when the form was submitted, the event was not tracked because there is not enough time to do it.<br />
<br />
The JSF form with problem:
<script src="https://gist.github.com/edpichler/6067540.js"></script>
After trying some proposals of the guys helped me, I mixed the solutions and got this with jQuery:
<script src="https://gist.github.com/edpichler/6067477.js"></script>
<br />
<br />
I did not like the code, but is the only that worked for me in any browser (Safari, Chrome, Firefox and Opera).<br />
<br />
My solution is done in JSF 2, so, I need to submit the original event, once there are some hidden information in the html generated by the framework that I need to respect to get the right events in the server side. Just submitting the form in javascript, per example, will not call my desired methods on server side, that's why I need to call the event recursively.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-18341565340416301402013-07-09T13:06:00.000-03:002013-07-09T13:14:22.224-03:00Measuring UX user experience when you have a small group of usersEngineering is everything about metrics. You can't improve what you can't measure.<br />
I found this very interesting article on <a href="http://uxmag.com/">uxmag.com</a> about how can you make user interface decisions when you have small group of users interacting with your product. Very useful for startups.<br />
<br />
<br />
<span style="font-size: x-large;">A New Formula for Quantitative UX Decision Making</span><br />
<br />
Imagine a formula that would allow you to take data from a very small pool of users (often as few as 8; possibly as few as 3) and figure out why, for instance, Autodesk customers are calling support, whether Budget.com visitors can rent a car in under a minute, or why cardholders were reluctant to use a mobile payment site.<br />
<div>
Such a formula exists, and it’s not some abstract “formula for success” in management strategy or a design technique. We’re talking about a mathematical formula that’s easy to use but can transform the way you measure and manage the user experience.</div>
<div>
<br /></div>
<div>
The formula is called the Adjusted-Wald Binomial Confidence Interval (“Adjusted-Wald Interval” for short), but its name isn’t as important as what it can do. Its power is in helping estimate the behavior of an entire user population, even when the sample size is small. It does this by taking a simple proportion as input and producing a confidence interval. For example, suppose 10 users have attempted a task and 7 completed it successfully. The simple successful completion rate is 70%. But, given such a small sample size, how can you have any faith in the result? Would it be reasonable to expect to get exactly 7,000 successes if the sample size was 10,000? Probably not, but how far off might it be?</div>
<div>
<br /></div>
<div>
This is when you need the power of a confidence interval, which provides a range of plausible results with a specific level of statistical confidence (typically set to 95%). Working with the range rather than the observed proportion helps to protect decision makers from being fooled by randomness. For the example of 7 out of 10 users successfully completing a task, an adjusted-Wald interval set to 95% confidence ranges from about 39% to 90%. Having a range like this dramatically enhances decision making, especially if there are established benchmarks for comparison. A confidence interval that ranges from 39% to 90% is very wide—over 50 percentage points—but in addition to knowing that the most likely completion rate is around 70%, you also know that it is very unlikely that the completion rate for the population is less than 39% or greater than 90%. If there was a pre-established goal of a completion rate of at least 90%, then this design has clearly failed. On the other hand, if, based on previous designs or field data, the goal was a completion rate greater than 35% this design has clearly succeeded. If the goal was anywhere between 39% and 90%, then it’s necessary to withhold judgment and collect more data.</div>
<div>
<br /></div>
<div>
Sometimes it can be more valuable to think in terms of failure rates rather than success rates. Continuing with the example above, if there were 7 out of 10 successes, then there were 3 out of 10 failures. The 95% adjusted-Wald confidence interval for 3 out of 10 ranges from about 10% to 61%, so there is substantial confidence even with this small sample that the failure rate is unlikely to be lower than 10%. Thus, a key question driving the decision of whether there is a problem with the design is whether a task failure rate of 10% is acceptable. If not, then there is work to do to improve the design and drive down the minimum estimate of the failure rate.</div>
<div>
<br /></div>
<div>
We’ll look at a few case studies next, and, after that, we will explain some of the math behind the <a href="http://www.measuringusability.com/wald.html" target="_blank">online calculator</a> we have set up to make these calculations.<br />
<br /></div>
<h3>
Five Case Studies</h3>
<div>
<div>
The following case studies show real-world applications of the Adjusted-Wald Interval to UX decision making. To check the results of these case studies, enter the data in our online calculator (focusing on the results for the Adjusted-Wald Interval).</div>
</div>
<div>
<br /></div>
<h4>
Case study 1: Why are users getting a bizarre error message and calling support?</h4>
Autodesk noticed an unusually high call volume to their call center. Some users were complaining about a bizarre error message (“ADR Not Empty”) after downloading a trial version of Autodesk’s flagship product, AutoCAD. Studying the web analytics data didn’t provide any insight as to the cause of the problem. The UX team quickly set up a study in which they invited real users to share their screens as they downloaded and installed the software—11 users accepted the invitation.<br />
<br />
<div>
Over a couple days, they watched as 3 out of 11 users (27%) selected the wrong operating system architecture (32-bit vs. 64-bit) and received that inscrutable error message. But the analytics team was concerned that such a small sample size might have yielded misleading results. To address that concern, we used the Adjusted-Wald Interval to determine that we could be 95% confident that between 9% and 57% of users would be likely to encounter the problem. Even with a small sample size, there was statistically significant evidence to conclude that a substantial portion of users (at least 9% but probably closer to 27%) would have the problem. As a result, Autodesk created a new design of the download page, which led to a substantial reduction in calls related to this issue.</div>
<div>
<br /></div>
<h4>
Case study 2: Can users rent a car in less than 60 seconds?</h4>
The Budget Rent A Car website makes a bold promise: “Rent a car in 60 seconds.” But can a typical user really rent a car in under a minute? To find out, we had 12 people, all of whom had previously rented a car online, come to our usability lab and use the website to reserve a car. We recorded task completion times, which were (in seconds) 215, 131, 260, 171, 187, 147, 74, 170, 131, 165, 347, and 90. Only 1 person came within 14 seconds of renting a car in under a minute, so 0 out of 12 users were able to rent the car in 60 seconds. But can we really have faith in such a small sample size? The 95% confidence interval for 0/12 ranges from 0% to 22%, meaning it’s highly unlikely that even with a sample size of 10,000 we’d see more than 22% of users rent a car in under a minute. [Note: If you are a member of Budget’s loyalty program, have your personal details saved, and also knew the airport code of your destination, then you’d likely rent in under 60 seconds.]<br />
<br />
<h4>
Case study 3: Would a printed warning help users avoid mistakes in documentation?</h4>
A major computer manufacturer had discovered a critical error in the documentation for installing a new computer, and had already printed all the copies for distribution. Because it would have been expensive to reprint the installation guide, a usability study was conducted to assess the effectiveness of inserting a printed warning sheet, labeled in large type “DO THIS FIRST,” on the top of the packaging where customers would see it first upon opening the box. Despite its location and prominent label, 6 of 8 participants installing the computer ignored the warning sheet, setting it aside without attempting to use its instructions. Thus, the observed failure rate was 75%, with a 95% confidence interval ranging from 40% to 94%. The lower limit of the confidence interval indicated that it was very unlikely that the true failure rate in the population would be less than 40%. The company was unwilling to accept that level of risk, so they spent the money to update the documentation rather than relying on the warning sheet.<br />
<h4>
</h4>
<h4>
Case study 4: Is fear of stolen data a major inhibitor from paying a bill on a mobile website?<br />
</h4>
In a recent study of department store credit card users, we investigated why so few cardholders were using the card’s mobile payment site. We asked 16 users why they had never paid or viewed their bills on their mobile phones, and 5 out of the 16 (31%) expressed a concern over the security of their credit card and banking data over the cellular network. Using the Adjusted-Wald method, we inferred (with 95% confidence) that between 14% and 56% of all users likely felt this way. These results led the company to focus on improving security messaging and awareness since the data encryption and protection on cellular networks is as good as or better than many home networks.<br />
<h4>
</h4>
<h4>
Case study 5: What percent of users had problems adding GPS to their rental car?</h4>
In another rental car usability test, we asked 45 participants to find out how much it would cost to rent a car with a GPS navigation system on Enterprise.com. This time, the test wasn’t in a lab; it was a remote, unmoderated study using screen recordings of user sessions from around the U.S. We observed 33 out of 45 users (73%) having trouble adding the GPS to their reservation because this option was available only after users entered their credit card details. Based on the adjusted Wald interval, we were 95% confident that between 59% and 84% of users who wanted to add GPS to their reservation would encounter the same problem during the reservation. We suspect that a good portion of these users might think the option isn’t offered and would either rent without the option or, at even greater cost to Enterprise, decide to rent the car elsewhere.<br />
<br />
<br />
<h4>
And Now, the Math</h4>
<div>
As promised, here’s some information about the math behind the online calculator (for more details, see Chapter 3 of our book, Quantifying the User Experience: Practical Statistics for User Research). Don’t worry if this gets a little complicated—in practice just think of it as a black box, or just skip over this and move on to the conclusion.</div>
<div>
<br /></div>
<div>
Most research done with customers and users, such as surveys or usability tests, uses a small subset of the entire population as the sample. Although there are many ways to measure the user experience, it’s possible to measure almost anything using a simple binary metric, e.g.:</div>
<br />
<ul>
<li>Yes/No</li>
<li>Purchase/Didn’t Purchase</li>
<li>Recommended/Didn’t Recommend</li>
<li>Pass/Fail</li>
</ul>
<div>
<br /></div>
<div>
Code each outcome simply as a 1 or 0. The average of those 1s and 0s produces a proportion. To compute a confidence interval using the information in a proportion, it’s necessary to know the numerator (e.g., number of successes, x), the denominator (the sample size, n), and the desired level of statistical confidence (typically, 95%). The range around the observed proportion is the standard error times the standardized (i.e., z) score for the desired confidence level. For binary data, the standard error is the square root of p(1-p)/n, where p is the observed proportion and n is the sample size. The value of z for 95% confidence intervals is 1.96.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Applying this method to the observed proportion produces the well-known (to statisticians) Wald Interval, which does not produce accurate ranges when sample sizes are small. The Adjusted-Wald Interval, a recent innovation, uses adjusted values for x and n to get an adjusted value of p to use for the center of the interval and to use when computing the standard error. The specific adjustment is to add z to x and z2 to n—an adjustment that greatly increases the accuracy of the interval, even when sample sizes are very small. For 95% confidence the value of z (1.96) is close to 2, so a rule of thumb for the Adjusted-Wald adjustment is to add two successes and two failures to the observed data, making padj roughly equal to (x+2)/(n+4).</div>
<div>
<br /></div>
<div>
An important point to keep in mind is that the results of the adjusted-Wald interval, like all statistical methods, generalizes to the population from which the sample came. When samples are not representative of the population (a goal best assured through random sampling from the population of interest), the results will be inaccurate. The amount of inaccuracy depends on the extent to which the sample fails to represent the population, so exercise care in selecting samples. If the entire sample comes from banking customers who live in the same retirement home in Wichita, the confidence interval is valid, but is only generalizable to that limited population.<br />
<br /></div>
<h3>
Conclusion</h3>
As our data and these examples show, you don’t always need fancy metrics or statistics to provide quantitative support for UX decisions. You can do a lot with simple binary data and this powerful formula. Keep in mind that the formula is part of a larger strategy for interpreting the data and using it to guide decision-making. You can never be sure about the accuracy of a simple proportion or percentage, but you can have a precise amount of confidence in the adjusted Wald confidence interval computed from the same data. In this way, the Adjusted-Wald Interval supports confident decision making in UX design.<br />
<br />
Links: <a href="http://www.measuringusability.com/wald.html" target="_blank">Online calculator</a><br />
<br />
Source: http://uxmag.com/articles/a-new-formula-for-quantitative-ux-decision-makingUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-83036755229082608242013-07-04T13:51:00.000-03:002013-07-04T13:51:30.735-03:00The first twitter sketchMade by hand.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJIkabUCgaW57kuhXYdyYjCsXX4h-pjNK7bR2Jn4esIur6018sVcSD-ybVWtR_Xg9ZLVgnSMFjZWaTFEPSnljjaywnBNRpSIhsdh_xP0bFECsoWuGYI9PGzePs3Ce_qjvEVh9wmRrseWEU/s320/Twttr_sketch-Dorsey-2006.jpg" style="margin-left: auto; margin-right: auto;" width="240" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">First Twitter sketch.</td></tr>
</tbody></table>
<br />
Note that in the design process things turns to get simple. The first sketch of <a href="http://www.twitter.com/" target="_blank">Twitter</a>, it had more functions than nowadays and also is more complicated.<br />
<br />
As the site grow in popularity, I'm sure the engineers measure the user behavior, and starting removing features and turning it more simple, till get the <a href="http://www.twitter.com/" target="_blank">Twitter</a> we have today.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-80093590777940969012013-05-23T18:35:00.000-03:002013-05-23T18:35:13.600-03:00Design is more about words than images? <span style="font-family: inherit;">Great <a href="http://37signals.com/svn/posts/3404-reminder-design-is-still-about-words" target="_blank">post </a>by </span><a href="http://twitter.com/migreyes" target="_blank">Mig Reyes</a>! <span style="color: #333333; line-height: 25.59375px;">A different way to see design. </span><br />
<span style="font-family: inherit;">I saw when I was doing the <a href="http://hackdesign.org/" target="_blank">HackDesign </a>course.</span><br />
<span style="font-family: inherit;"><br /></span>
<div style="border: 0px; color: #333333; line-height: 1.6em; margin-left: auto; margin-right: auto; outline: 0px; padding: 0px; vertical-align: baseline; width: 660px;">
How important the words are?</div>
<div style="border: 0px; color: #333333; line-height: 1.6em; margin-left: auto; margin-right: auto; outline: 0px; padding: 0px; vertical-align: baseline; width: 660px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjylZmn9xiV_pR9866Zdajozf405_e43G3aCNvLDa9Sz8a8qVWfVXQDnZk8MSfmzkHMd4MRUJ4L717m5VVQj97DEV2yPL4XVrpL09Lv1vo7YayKGJfIsLwHqtZ7tYeXSGeKW6IXbGG7k0dj/s1600/1142-BCX.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjylZmn9xiV_pR9866Zdajozf405_e43G3aCNvLDa9Sz8a8qVWfVXQDnZk8MSfmzkHMd4MRUJ4L717m5VVQj97DEV2yPL4XVrpL09Lv1vo7YayKGJfIsLwHqtZ7tYeXSGeKW6IXbGG7k0dj/s640/1142-BCX.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9XFgKFPSUeRwjK5XY7RSqdC1ieEgDIyqJ8oT_thvUad7yDFZtg7flkt2VYWLf0gKEXbZnaoopVf1kyGQOM9AZGs0lAPOr6W8DzMerjA07WdnmD-NwlEvSqVlcFeBEqZ_bIR7XVrjTlk0m/s1600/1143-Craigslist.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9XFgKFPSUeRwjK5XY7RSqdC1ieEgDIyqJ8oT_thvUad7yDFZtg7flkt2VYWLf0gKEXbZnaoopVf1kyGQOM9AZGs0lAPOr6W8DzMerjA07WdnmD-NwlEvSqVlcFeBEqZ_bIR7XVrjTlk0m/s640/1143-Craigslist.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyM5379i_X_Pdz4_suH10bKp2lJrv8S1AaRopYLto2Cb3chGKcRffOB9T1CJpVygrP7O23y_JQmth7JXRtRw9k8J0YiOT7Ge8CN4Lut6cErHBhGKwX13S95G6ya5_QkDLRWQctVsOTYl_X/s1600/1144-ESPN.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyM5379i_X_Pdz4_suH10bKp2lJrv8S1AaRopYLto2Cb3chGKcRffOB9T1CJpVygrP7O23y_JQmth7JXRtRw9k8J0YiOT7Ge8CN4Lut6cErHBhGKwX13S95G6ya5_QkDLRWQctVsOTYl_X/s640/1144-ESPN.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTiPg3FcL1wtt8W5OMNnVMg5OW_vQMnlbQKpQ9dVg88JYCPpgk0080JC0lBYMTBA3pZz3-_wEzkyP_gQgr535ht9ZBd3faLVrz__f4DYDkW8zx9QqXYA-9OW8T5IGqUIIa_nQW1J_fXoqj/s1600/1145-Gmail.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTiPg3FcL1wtt8W5OMNnVMg5OW_vQMnlbQKpQ9dVg88JYCPpgk0080JC0lBYMTBA3pZz3-_wEzkyP_gQgr535ht9ZBd3faLVrz__f4DYDkW8zx9QqXYA-9OW8T5IGqUIIa_nQW1J_fXoqj/s640/1145-Gmail.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh63ArcTZdje-bkhsg5L1BdrAx9bIFvAwxB_tpG0WDwDhNYNxYkunWT0Lt1OS4GRa78ZwWNF7IVG7MsJWWz9nTDFyJMH8Rmp4AyoDnYIRc51K41dZaMiwA_jrzvPRQiojFhwrdfWQZw3e0_/s1600/1146-SvN.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh63ArcTZdje-bkhsg5L1BdrAx9bIFvAwxB_tpG0WDwDhNYNxYkunWT0Lt1OS4GRa78ZwWNF7IVG7MsJWWz9nTDFyJMH8Rmp4AyoDnYIRc51K41dZaMiwA_jrzvPRQiojFhwrdfWQZw3e0_/s640/1146-SvN.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJv71thD372dnBMtN92smcYiihC1hFF5VR9DYW1OnGqYoiBxrYRWZXwbxG0VmGRAgaNqtB_c-auLTsKZlgP5_I05PriOzahx014zYpmiwvxuocjYu_3AEoPxlRdmR08xfEXlLNMs5B5DXM/s1600/1147-Twitter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJv71thD372dnBMtN92smcYiihC1hFF5VR9DYW1OnGqYoiBxrYRWZXwbxG0VmGRAgaNqtB_c-auLTsKZlgP5_I05PriOzahx014zYpmiwvxuocjYu_3AEoPxlRdmR08xfEXlLNMs5B5DXM/s640/1147-Twitter.jpg" width="640" /></a></div>
<div style="border: 0px; color: #333333; line-height: 1.6em; margin-left: auto; margin-right: auto; outline: 0px; padding: 0px; vertical-align: baseline; width: 660px;">
<br /></div>
<div style="border: 0px; color: #333333; line-height: 1.6em; margin-left: auto; margin-right: auto; outline: 0px; padding: 0px; vertical-align: baseline; width: 660px;">
<br /></div>
<div style="border: 0px; color: #333333; line-height: 1.6em; margin-left: auto; margin-right: auto; outline: 0px; padding: 0px; vertical-align: baseline; width: 660px;">
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-46170244629341332452013-05-07T13:26:00.004-03:002013-05-07T13:26:33.708-03:00How to get the details about any constraint in Oracle XE?<a href="" name="292" style="font-family: Tahoma; font-size: 13px;"></a><br />
<div style="-webkit-line-break: after-white-space; -webkit-nbsp-mode: space; word-wrap: break-word;">
<div>
<a href="" name="292" style="font-family: Tahoma; font-size: 13px;">When you do some SQL statement in oracle, it throw an exception when your statement violate some constraint. But the error doesn't show about what table the constraint is related, showing just the constraint name.</a></div>
<div>
<a href="" name="292" style="font-family: Tahoma; font-size: 13px;"><br /></a></div>
<div>
<a href="" name="292" style="font-family: Tahoma; font-size: 13px;">To show the constraint details just execute the follow sql statement:</a></div>
<div>
<a href="" name="292" style="font-family: Tahoma; font-size: 13px;"><br /></a></div>
<div>
<a href="" name="292" style="font-family: Tahoma; font-size: 13px;"><b>SELECT CONSTRAINT_NAME, TABLE_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME='FK1_MY_CONSTRAINT_NAME';</b></a></div>
<div>
<a href="" name="292" style="font-family: Tahoma; font-size: 13px;"><br /></a></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-43796365813864350732013-02-26T22:22:00.001-03:002013-07-04T13:53:12.233-03:00What most schools doesn't teach?<br />
<div style="text-align: left;">
Excellent that code.org organization made about <b>coding</b>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="270" src="http://www.youtube.com/embed/nKIu9yen5nc" width="480"></iframe></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Developers must be proud =]</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
*I plan to transcript it and translate to several languages. If you are interested in help, please check <a href="http://www.amara.org/en/videos/ZuVc6mobngWz/info/what-most-schools-dont-teach/" target="_blank">here</a>: </div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-34532557984014395632012-09-18T19:03:00.002-03:002012-09-18T19:03:39.740-03:00This parser does not support specification "null" version "null"<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
If you start Tomcat 7 and got the error:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null"</span><br />
<br />
Just put the parameter below and restart Tomcat:<br />
<span style="font-family: 'Courier New', Courier, monospace;">-Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx96MFxMnZfMZe2Fraitq7X1wISA8r6dxDdoVCUjWHRUrSpJeiWc7jM5eX-tC5BhpzfaNQJTSNaJI4Qmj9cMs-m65tJG2_QUA_C_eugW91snArm1hb_dp5rNsbG-gqMLB2rB1kdA6t__e2/s1600/Run+Configurations.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx96MFxMnZfMZe2Fraitq7X1wISA8r6dxDdoVCUjWHRUrSpJeiWc7jM5eX-tC5BhpzfaNQJTSNaJI4Qmj9cMs-m65tJG2_QUA_C_eugW91snArm1hb_dp5rNsbG-gqMLB2rB1kdA6t__e2/s400/Run+Configurations.png" width="400" /></a></div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span><span style="font-family: Courier New, Courier, monospace;"><br /></span><br />
This happens because you have two parsers in your classpath, and the Tomcat is getting a error loading the wrong version.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
*This happened to me when I use Paypal SDK in Tomcat 7 and MyFaces.<br />
<br />
<br />Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8052011861230054050.post-39880641701077100422012-05-20T15:56:00.000-03:002012-05-20T16:43:08.234-03:00Installing Android 4.0.3 Ice Cream Sandwich on Samsung Galaxy SII GT-i9100 under Mac OS X (tested in Snow Leopard)<div class="separator" style="clear: both; text-align: justify;">
<b>If you lost your phone or your data is totally your responsibility. We do not recommend to upgrade if you feel unexperienced, because you have high risk to lost all your data and the Samsung warranty.</b></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.flickr.com/photos/reo_m/4741892259/" style="margin-left: 1em; margin-right: 1em;" title="Android Robo - Android is always with you - #4 by reo.matsumura, on Flickr"><img alt="Android Robo - Android is always with you - #4" height="212" src="http://farm5.staticflickr.com/4094/4741892259_2204b041b1.jpg" width="320" /></a></div>
<b><br /></b><br />
<b><br /></b><br />
<br />
If you concerned about that:<br />
<ul>
<li>First backup all your important files you have on your phone.</li>
<li>Download the file in this <a href="https://docs.google.com/open?id=0B2M1y_L_Dg4UVFA5b3Fpb3NIQmc" target="_blank">link</a>.</li>
<li>Format (wipe out) your phone.</li>
<li>Unpack it to the folder <b>Android</b> in your pc<b>. </b></li>
<li><b>Install Heimdall.</b></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; line-height: 15px;">Turn on USB debugging mode on your phone: Settings -> Applications -> Development -> USB debugging.</span></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; line-height: 15px;">Reboot turning on download mode by pressing and holding VolumeDown + Home + Power simultaneously.</span></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; line-height: 15px;">Connect the device to your computer using USB.</span></li>
<li>Kies is useless at this point, if you have installed it, run this commands:</li>
</ul>
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">sudo kextunload -b com.devguru.driver.SamsungACMData</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">sudo kextunload -b com.devguru.driver.SamsungComposite</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">sudo kextunload -b com.devguru.driver.SamsungACMControl</span><br />
<br />
<br />
<br />
<ul>
<li>Go to the I9100VJLP7_I9100UHLPF_I9100ZTOLP4_HOME folder you have extracted and run the command:</li>
</ul>
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">heimdall flash --primary-boot boot.bin --cache cache.img --factoryfs factoryfs.img --hidden hidden.img --param param.lfs --secondary-boot Sbl.bin --modem modem.bin --kernel zImage</span><br />
<br />
<ul>
<li>Wait the progress bar finish and the end of the reboot.</li>
</ul>
<br />
Now your phone now have Android 4.0.3<br />
<br />
<b>Notes</b><br />
* Singapore version of android doesn't worked.<br />
* Hemdall 1.3.2 doesn't work. Use 1.3.1 version.<br />
<br />
<br />
References:<br />
<br />
<ul>
<li><span class="Apple-style-span" style="font-size: x-small;">https://github.com/Benjamin-Dobell/Heimdall/issues/21</span></li>
<li><span class="Apple-style-span" style="font-size: x-small;">http://wiki.cyanogenmod.com/wiki/Samsung_Galaxy_S_II</span></li>
<li><span class="Apple-style-span" style="font-size: x-small;">http://www.guanabara.info/2012/03/galaxy-sii-android-atualizado-para-a-versao-4-0-3-launcher-ics/</span></li>
<li><span class="Apple-style-span" style="font-size: x-small;">http://www.smartzone.com.br/2012/03/samsung-galaxy-s2-atualizacao-android-4-0-ice-cream-sandwich.html</span></li>
</ul>
<br />
<br />
<br />Unknownnoreply@blogger.com0Curitiba - Paraná, Brazil-25.4283563 -49.2732515-25.5430798 -49.43118 -25.3136328 -49.115323000000004tag:blogger.com,1999:blog-8052011861230054050.post-90554430107956119672012-04-14T08:26:00.001-03:002012-05-21T23:16:01.407-03:00Tests is part of engineeringLike in software engineering, the auto industry needs to automate the tests. This Brazilian video shows all the Ford Corcel components being tested. Note that the tests don't finish on the labs. They put the car on the different streets putting the lab tests in pratice and, like in software engineering, the tests ends only in the customer environment. The video shows integrated tests and unit tests, in the labs and in the different real environments (even in the water).<br />
<br />
To test a product you need to stress the parts, trying to broke the product, simulating the worst conditions. If you do it, and the product pass it, you had a good job.<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="344" src="http://www.youtube.com/embed/SISz9_vVnWY?fs=1" width="459"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-82745681227899585882012-03-13T21:25:00.001-03:002012-03-13T21:28:59.320-03:00InfoQ: Volte ao Trabalho! (portuguese)<div style="background-color: white; font-size: 13px; line-height: 16px;">
<span style="font-family: inherit;">Agustin Villena tem problema em convencer a gerência aceitar os limites do Kanban. <a href="http://tech.groups.yahoo.com/group/leandevelopment/message/5176" style="color: #0b59b2;">Ele diz</a>:</span><br />
<blockquote style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-origin: initial; background-position: 5px 5px; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Eu estou atualmente atuando como um consultor, e eu estou preso ao gestores que apesar do fato dos quadros de kanban mostrarem claramente a sobrecarga de trabalho extrema de seus funcionários, eles não percebem o fator negativo no rendimento e o stress causado...</span></blockquote>
<span style="font-family: inherit;"><a href="http://tech.groups.yahoo.com/group/leandevelopment/message/5181" style="color: #0b59b2;">He também escreve</a>:</span><br />
<blockquote style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-origin: initial; background-position: 5px 5px; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">O problema agora é limitar a grande quantidade de projetos atribuídos ao time. Mas os gerentes são quem nós não conseguimos convencer a filtrar os projetos que estão entrando.</span></blockquote>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-origin: initial; background-position: 5px 5px; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">E também existe o paradigma que folga é desperdício...</span></blockquote>
<span style="font-family: inherit;">Por que não deveríamos considerar folga como desperdício? <a href="http://www.amazon.com/Slack-Getting-Burnout-Busywork-Efficiency/dp/0767907698" style="color: #0b59b2;">De acordo com Tom DeMarco</a>, folga é "o grau de liberdade necessário para efetuar a mudança." Quando colocamos desta maneira, calmaria pode ser vista como um lubrificante dentro da organização que evita que as partes móveis fiquem presas. De acordo com Mary e Tom Poppendieck no livro <a href="http://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783" style="color: #0b59b2;">Lean Software Development: An Agile Toolkit</a>, folga serve a um propósito ainda mais fundamental quando vista da perspectiva da Teoria das Filas: "Assim como uma auto-estrada não pode fornecer um serviço aceitável sem algumas folgas na sua capacidade, você provavelmente não está fornecendo aos seus clientes o mais alto nível de serviço, se você não tem nenhuma folga na sua empresa." Amir Kolsky propõe <a href="http://tech.groups.yahoo.com/group/leandevelopment/message/5182" style="color: #0b59b2;">esta respota</a> à acusação de que a folga é desperdício:</span><br />
<blockquote style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-origin: initial; background-position: 5px 5px; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Folga não significa que as pessoas ao seu redor estão ociosas.</span></blockquote>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-origin: initial; background-position: 5px 5px; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Folga significa que as pessoas não estão trabalhando em coisas do principal gargalo.</span></blockquote>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: #fafafa; background-origin: initial; background-position: 5px 5px; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Elas podem estar ocupadas fazendo outras coisas importantes.</span></blockquote>
</div>
<div style="background-color: white; font-size: 13px; line-height: 16px;">
<span style="font-family: inherit;">Então, qual pode ser a causa dos problemas em relação aos limites do Kanban? <a href="http://tech.groups.yahoo.com/group/leandevelopment/message/5177" style="color: #0b59b2;">Nader Talai sugere</a> que possivelmente os gerentes resistentes podem ser parcialmente motivados pela maneira como a performance de seus times está sendo medida:</span></div>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://cdn4.infoq.com/styles/br/i/bg-blockquote.gif); background-origin: initial; background-position: 5px 5px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; font-size: 13px; line-height: 16px; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Você sabe o que é que os gerentes valorizam ou estão medindo? O quadro mostra para os valores que eles querem?</span></blockquote>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://cdn4.infoq.com/styles/br/i/bg-blockquote.gif); background-origin: initial; background-position: 5px 5px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; font-size: 13px; line-height: 16px; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;"><em>[...]</em> Por exemplo um gerente pode medir a velocidade de seu time pelo "Desenvolvimento Completo" em vez de "Liberado sem defeitos". Eu trabalhei em uma empresa onde o time de TI era medido pela entrega dos projetos em um tempo baseado em datas que eram estimadas em 12 meses. Nesta empresa o foco era entregar no tempo independentemente do que era entregue ou da qualidade.</span></blockquote>
<div style="background-color: white; font-size: 13px; line-height: 16px;">
<span style="font-family: inherit;"><a href="http://tech.groups.yahoo.com/group/leandevelopment/message/5187" style="color: #0b59b2;">De acordo com Tomo Lennox</a>, mais educação pode ser necessária:</span></div>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://cdn4.infoq.com/styles/br/i/bg-blockquote.gif); background-origin: initial; background-position: 5px 5px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; font-size: 13px; line-height: 16px; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Quando os gerentes tem o simples conceito que você produz mais quanto mais trabalha, eles não vão mudar até que você possa ensinar-lhes algo.</span></blockquote>
<div style="background-color: white; font-size: 13px; line-height: 16px;">
<span style="font-family: inherit;">Mas nunca subestime o poder de uma piada para expor seus pontos: "Pessoas ouvem melhor depois de uma piada" <a href="http://tech.groups.yahoo.com/group/leandevelopment/message/5187" style="color: #0b59b2;">escreve Lennox</a>:</span></div>
<blockquote style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://cdn4.infoq.com/styles/br/i/bg-blockquote.gif); background-origin: initial; background-position: 5px 5px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(239, 239, 239); border-bottom-style: solid; border-bottom-width: 2px; border-image: initial; border-left-color: rgb(239, 239, 239); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(239, 239, 239); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(239, 239, 239); border-top-style: solid; border-top-width: 2px; color: #333333; font-size: 13px; line-height: 16px; margin-left: 20px; margin-right: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;">
<span style="font-family: inherit;">Um policial vê um garoto correndo ao lado de sua bicicleta, então ele encosta para oferecer ajuda. "Você tem um pneu furado?", pergunta o policial. "Não", responde o garoto e ele continua correndo com a bicicleta. O policial dirige até o garoto e tenta novamente. "Então o que está errado com sua bicicleta?" "Nada", diz o garoto e saí correndo. O policial dirige novamente até o garoto e tenta mais uma vez. "Então por que você não está pedalando na sua bicicleta?". "Eu estou muito atrasado para o colégio, por isso eu não tenho tempo para subir na bicicleta." ... e ele saí correndo.</span></blockquote>
<br />
<br />
Fonte: <a href="http://www.infoq.com/br/news/2010/11/get-back-to-work#.T1_lPEPpFvk.blogger">InfoQ: Volte ao Trabalho!</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-29189581004958634162012-01-15T23:53:00.001-02:002012-01-15T23:53:29.141-02:00Making Eclipse Fly on MacAs David Salter <a href="http://www.davidsalter.com/2009/04/making-eclipse-fly.html">posted</a>:<br />
<div><br />
</div><div><span style="font-family: inherit;"><span style="background-color: white; color: #666666; line-height: 18px; text-align: -webkit-auto;">On a Mac, the following procedure allows the JVM settings to be changed:</span></span><br />
<span style="font-family: inherit;"><br style="background-color: white; color: #666666; line-height: 18px; text-align: -webkit-auto;" /></span><br />
<ul style="background-color: white; color: #666666; line-height: 18px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; padding-bottom: 0px; padding-left: 2.5em; padding-right: 2.5em; padding-top: 0px; text-align: -webkit-auto;"><li style="margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="font-family: inherit;">Find Eclipse in the Finder. Right click on Eclipse and choose "Show Package Contents"</span></li>
<li style="margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="font-family: inherit;">Browse to the Contents | MacOS directory and edit the eclipse.ini file</span></li>
<li style="margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="font-family: inherit;">In this file add JVM options, one per line.</span></li>
</ul><span style="font-family: inherit;"><br style="background-color: white; color: #666666; line-height: 18px; text-align: -webkit-auto;" /></span><br />
<span style="font-family: inherit;"><span style="background-color: white; color: #666666; line-height: 18px; text-align: -webkit-auto;">The JVM options that make the biggest difference are the ones that specify how much memory Eclipse can use.</span></span><br />
<br />
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;"><div class="syntaxhighlighter bash" id="highlighter_308630" style="background-color: white !important; font-size: 1em !important; margin-bottom: 1em !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 1em !important; overflow-x: auto !important; overflow-y: auto !important; position: relative !important; width: 636px;"><div class="toolbar" style="background-attachment: initial !important; background-clip: initial !important; background-color: rgb(108, 226, 108) !important; background-image: initial !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-style: none !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial !important; border-image: initial !important; border-left-style: none !important; border-left-width: 0px !important; border-right-style: none !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-style: none !important; border-top-width: 0px !important; border-width: initial !important; bottom: auto !important; box-sizing: content-box !important; color: white !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 10px !important; height: 11px !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; right: 1px !important; text-align: left !important; top: 1px !important; vertical-align: baseline !important; width: 11px !important; z-index: 10 !important;"><a class="toolbar_item command_help help" href="http://www.davidsalter.com/2009/04/making-eclipse-fly.html#" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: white !important; display: block !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 1px !important; position: static !important; right: auto !important; text-align: center !important; text-decoration: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">?</a></div><table border="0" cellpadding="0" cellspacing="0" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 636px;"><tbody style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="gutter" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">1</div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">2</div><div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">3</div><div class="line number4 index3 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">4</div></td><td class="code" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 606px;"><div class="container" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-Xms512m </code></div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-Xmx512m </code></div><div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-XX:PermSize=256m </code></div><div class="line number4 index3 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-XX:MaxPermSize=256m</code></div></div></td></tr>
</tbody></table></div></div><br />
<span style="background-color: white; color: #666666; font-family: inherit; line-height: 18px; text-align: -webkit-auto;">I also tell the JVM not to verify bytecode using the -Xverify switch</span><br />
<br />
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;"><div class="syntaxhighlighter bash" id="highlighter_693752" style="background-color: white !important; font-size: 1em !important; margin-bottom: 1em !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 1em !important; overflow-x: auto !important; overflow-y: auto !important; position: relative !important; width: 636px;"><div class="toolbar" style="background-attachment: initial !important; background-clip: initial !important; background-color: rgb(108, 226, 108) !important; background-image: initial !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-style: none !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial !important; border-image: initial !important; border-left-style: none !important; border-left-width: 0px !important; border-right-style: none !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-style: none !important; border-top-width: 0px !important; border-width: initial !important; bottom: auto !important; box-sizing: content-box !important; color: white !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 10px !important; height: 11px !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; right: 1px !important; text-align: left !important; top: 1px !important; vertical-align: baseline !important; width: 11px !important; z-index: 10 !important;"><a class="toolbar_item command_help help" href="http://www.davidsalter.com/2009/04/making-eclipse-fly.html#" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: white !important; display: block !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 1px !important; position: static !important; right: auto !important; text-align: center !important; text-decoration: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">?</a></div><table border="0" cellpadding="0" cellspacing="0" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 636px;"><tbody style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="gutter" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">1</div></td><td class="code" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 606px;"><div class="container" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-Xverify:none</code></div></div></td></tr>
</tbody></table></div></div><span style="font-family: inherit;"><br style="background-color: white; color: #666666; line-height: 18px; text-align: -webkit-auto;" /></span><br />
<span style="font-family: inherit;"><span style="background-color: white; color: #666666; line-height: 18px; text-align: -webkit-auto;">According to the NetBeans performance tuning tips, changing the garbage collection policies can also make a difference. I’m not sure that these make much of a difference, but I’m running with them at the moment to see if there is any difference.</span></span><br />
<br />
<div style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 13px; line-height: 18px; text-align: -webkit-auto;"><div class="syntaxhighlighter bash" id="highlighter_312550" style="background-color: white !important; font-size: 1em !important; margin-bottom: 1em !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 1em !important; overflow-x: auto !important; overflow-y: auto !important; position: relative !important; width: 636px;"><div class="toolbar" style="background-attachment: initial !important; background-clip: initial !important; background-color: rgb(108, 226, 108) !important; background-image: initial !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-style: none !important; border-bottom-width: 0px !important; border-color: initial !important; border-color: initial !important; border-image: initial !important; border-left-style: none !important; border-left-width: 0px !important; border-right-style: none !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-style: none !important; border-top-width: 0px !important; border-width: initial !important; bottom: auto !important; box-sizing: content-box !important; color: white !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 10px !important; height: 11px !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: absolute !important; right: 1px !important; text-align: left !important; top: 1px !important; vertical-align: baseline !important; width: 11px !important; z-index: 10 !important;"><a class="toolbar_item command_help help" href="http://www.davidsalter.com/2009/04/making-eclipse-fly.html#" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: white !important; display: block !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 1px !important; position: static !important; right: auto !important; text-align: center !important; text-decoration: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">?</a></div><table border="0" cellpadding="0" cellspacing="0" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: left !important; top: auto !important; vertical-align: baseline !important; width: 636px;"><tbody style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="gutter" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">1</div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">2</div><div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-right-width: 3px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 0.5em !important; padding-top: 0px !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">3</div></td><td class="code" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 606px;"><div class="container" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-XX:+UseConcMarkSweepGC </code></div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-XX:+CMSClassUnloadingEnabled </code></div><div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-color: white !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 1em !important; padding-right: 1em !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">-XX:+CMSPermGenSweepingEnabled</code></div><div><code class="bash plain" style="background-attachment: initial !important; background-clip: initial !important; background-color: initial !important; background-image: none !important; background-origin: initial !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-width: 0px !important; border-color: initial !important; border-image: initial !important; border-left-width: 0px !important; border-right-width: 0px !important; border-style: initial !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-top-width: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; min-height: inherit !important; outline-color: initial !important; outline-style: initial !important; outline-width: 0px !important; overflow-x: visible !important; overflow-y: visible !important; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><br />
</code></div></div></td></tr>
</tbody></table></div><div class="syntaxhighlighter bash" id="highlighter_312550" style="background-color: white !important; font-size: 1em !important; margin-bottom: 1em !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 1em !important; overflow-x: auto !important; overflow-y: auto !important; position: relative !important; width: 636px;">See the entire <a href="http://www.davidsalter.com/2009/04/making-eclipse-fly.html">post</a>.</div></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-63483533490913942122011-11-27T13:34:00.001-02:002011-11-27T13:36:32.904-02:00OSGi - Automated, unit and integration tests with JUnit<br />
<div id="knol-section-294uonxs6koor.14" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<div class="knol-content-wrapper" id="knol-content-wrapper-294uonxs6koor.14" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;">
<div class="knol-content knol-content-ltr knol-content-lang-en" id="knol-content-294uonxs6koor.14" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; zoom: 1;">
<div dir="ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; line-height: normal; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-subtitle" id="knol-subtitle" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Article to show how to build automated integration tests with JUnit in a OSGi environment</span></h2>
</div>
<div class="knol-clearer-div" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #54494c; font-size: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; zoom: normal !important;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; line-height: normal; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-abstract" id="knol-abstract" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">OSGi is a brilliant architecture. Amazing softwares with complex architectures and hundred of components, like Eclipse Platform, are possible to build thanks to the OSGi architecture.<br /><br />Test is essencial for software development, and continuos integration is what every profitful enterprise needs, because, when earlier the error is discovered, it's cheaper to fix it.<br /><br />How does we can test the interfaces and behaviors of a encapsulated OSGi component? The answer is on this page.</span></h2>
</div>
</h2>
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Introduction</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">For CBD (Componente Based Development) and SOA, OSGi is a very good choice. In a lot of enterprises, the biggest problem is how to develop a system that fits all needs of all the customers. Some enterprises solve this with a kind of generic application that has hundred of parameters where you can customize the behavior and UI at runtime. So, this is not the best approach, it's a very expensive way. With OSGi, complex applications, like Eclipse, can be made in a cheap and reusable way, and this is what we look for.</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">There are <a href="http://rcpquickstart.wordpress.com/2007/06/20/unit-testing-plug-ins-with-fragments/" style="color: #3366cc;">several</a> ways to test OSGi components, next it'll be demonstrated one of them. To understand what is being discussed, first you must to know these technologies. All used technologies are referenced with links at the bottom of the article. </span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="" name="iPOJO_and_JUnit4OSGi" style="color: #3366cc;"></a></span><h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">iPOJO and JUnit4OSGi</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">As in the <a href="http://felix.apache.org/site/apache-felix-ipojo.html" style="color: #3366cc;">project page</a>: </span></div>
<blockquote>
<i><span class="Apple-style-span" style="font-family: inherit;">iPOJO is a service component runtime aiming to simplify OSGi application development. It natively supports ALL the dynamism of OSGi. Based on the concept of POJO, application logic is developed easily. Non-functional properties are just injected in the component at runtime.</span></i></blockquote>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">iPOJO project is a set of some subprojects. What interest us for now is the <a href="http://felix.apache.org/site/apache-felix-ipojo-junit4osgi.html" style="color: #3366cc;">JUnit4OSGi</a> framework, that allowing the execution of JUnit tests in an OSGi environment.</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><span id="goog_667690901"></span></span><div style="text-align: right;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><span id="goog_667690902"></span>To test your application, just follow these steps:</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZYQE52_7GfsJZO9d1c1ME1YAivTCKF0iftNLLrGi2s8vjWwsxKuh5fbFe-2yNWY50TUbTbH4WBDMKMomEzO7LuCglMgZbjisGwFZ98Ze1gmBaAGi6iLMDpx9FjBB1kQyfp2b-_hXIcuNU/s1600/unit-tests-3.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: inherit;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZYQE52_7GfsJZO9d1c1ME1YAivTCKF0iftNLLrGi2s8vjWwsxKuh5fbFe-2yNWY50TUbTbH4WBDMKMomEzO7LuCglMgZbjisGwFZ98Ze1gmBaAGi6iLMDpx9FjBB1kQyfp2b-_hXIcuNU/s200/unit-tests-3.png" width="200" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">The fragment that will test the host bundle</span></i></td></tr>
</tbody></table>
<ol style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">Prepare the OSGi environment. Put the JUnit4OSGi and JUnit bundles in the right folder ("plugin" folder if equinox, for example). Note that in JUnit4OSGi framework are two test runners, one graphical and other that show the results on the command line, choose one of them. The JUnit 4 is not supported by iPOJO for now, so, we must to use JUnit 3.</span></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">You must to have at least two bundles. One bundle is the normal implementation, that solves a problem. Other bundle, is a fragment bundle that has just the JUnit testes. You need to create a Fragment bundle referencing the bundle you want to test. To do this, just put <span style="line-height: normal; white-space: pre;">Fragment-Host: <host bundle symbolic name></span> in the MANIFEST.MF file of the fragment bundle. The fragment bundle will see all classes of the host bundle, even that are not declarated public in the manifest file.</span></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">In the fragment bundle, create the JUnit Test cases and a normal JUnit Test suite.</span></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><span style="line-height: 19px;">In the host bundle, inform the "</span><span style="line-height: 16px; white-space: pre;">Test-Suite" </span><span style="line-height: 19px;">parameter. Ex.: </span><span style="line-height: 14px;"><span style="line-height: 16px; white-space: pre;">Test-Suite: co</span></span><span style="line-height: 16px; white-space: pre;">m.edpichler.test.MySuite.</span></span></li>
</ol>
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;">To run the tests, start the OSGi environment and go to the GUI of the Test Runner you choosed, and start the tests. If you choosed a command line test runner, the tests will start automatically.</span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">See a example running in this <a href="https://github.com/edpichler/OSGi-Address-Manager" style="color: #3366cc;">example on GitHub</a>.</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="" name="Troubleshooting" style="color: #3366cc;"></a></span><h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Troubleshooting</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">If you are under Mac OS X, maybe have some problems to run the Swing Test Runner. This is because some dead lock problem in SWT/AWT native implementation related <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=181698" style="color: #3366cc;">here</a>.</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Solution: Just put this additional argument to run without problems:<b> <span style="border-collapse: collapse; line-height: normal;">--launcher.secondThread</span></b></span></div>
</div>
</div>
</div>
</div>
<div class="knol-clearer-div" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; zoom: normal !important;">
</div>
<div class="knol-content" id="references" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: left; zoom: 1;">
<h3 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">References</span></h3>
<ol id="knol-references" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">RCP Quick Start Blog. Accessed in 29, november 2010.<br /><a href="http://rcpquickstart.wordpress.com/2007/06/20/unit-testing-plug-ins-with-fragments/" style="color: #3366cc;">RCP Quick Start Blog</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">Apache IPojo Framework. Accessed in 29, november 2010.<br /><a href="http://felix.apache.org/site/apache-felix-ipojo.html" style="color: #3366cc;">Apache IPojo Framework</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">CBD on Wikipedia. Accessed in 29, november 2010.<br /><a href="http://en.wikipedia.org/wiki/Component-based_software_engineering" style="color: #3366cc;">Component Based Development</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">GitHub, Address Service Component project. Accessed in 29, november 2010.<br /><a href="https://github.com/edpichler/OSGi-Address-Manager" style="color: #3366cc;">GitHub, Address Service Component project</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">JUnit Framework. Accessed in 20, november 2010.<br /><a href="http://www.junit.org/" style="color: #3366cc;">JUnit Framework.</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">Apache Felix. Accessed in 29, november 2010.<br /><a href="http://felix.apache.org/" style="color: #3366cc;">Apache Felix</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">OSGi Alliance. Accessed in 23, november 2010.<br /><a href="http://www.osgi.org/About/Technology" style="color: #3366cc;">OSGi Alliance</a></span></li>
</ol>
</div>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-8052011861230054050.post-15874616386316104092011-11-27T13:29:00.001-02:002011-11-27T13:32:57.870-02:00Running Swing OSGi applications under Mac OS X<br />
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; line-height: normal; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-subtitle" id="knol-subtitle" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Circumventing the problem and running Swing OSGi applications on Mac OS X</span></h2>
</div>
<div class="knol-clearer-div" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #54494c; font-size: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; zoom: normal !important;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; line-height: normal; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-abstract" id="knol-abstract" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Some people has faced with problems when trying to run a Java Swing application under Mac OS X. This short article will explain how to solve this.</span></h2>
</div>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;">The community discussed in some sites about the problem of running Swing OSGi app under Mac OS X:</span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=181698" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">https://bugs.eclipse.org/bugs/show_bug.cgi?id=181698</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.eclipsezone.com/eclipse/forums/m92141277.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">http://www.eclipsezone.com/eclipse/forums/m92141277.html</span></a></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><span style="line-height: normal;">After reading the posts of the Eclipse Equinox commiters, and noticed that this doesn't happens in other operation systems, we can conclude this is a problem of the Mac OS X JVM implementation. While we don't have no solution, the work around to this problem seems to be quite simple. Just add the argument </span><span style="border-collapse: collapse; line-height: normal;">"<i>--launcher.secondThread</i>" remove the "<i>ws</i>" </span><span style="border-collapse: collapse; line-height: normal;">argument </span><span style="border-collapse: collapse; line-height: normal;">(if there is) and your Swing application will run perfectly. </span></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="border-collapse: collapse; line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3WFoQXoOkOdyYtj32PCNoOidwmhYZYY3tSwl7P4xA8Vx3vbJILF0YnABHttkWfb8HHD4WSuV7cYUtqYx06WtfEP1t2Zn975Yz6Do-KVCXTbmTsPgx680Dt0WH9Wv_vBr9ZQMpx7JnWmrm/s1600/screenshot2010-10-18at2.29.48pm.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span class="Apple-style-span" style="font-family: inherit;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3WFoQXoOkOdyYtj32PCNoOidwmhYZYY3tSwl7P4xA8Vx3vbJILF0YnABHttkWfb8HHD4WSuV7cYUtqYx06WtfEP1t2Zn975Yz6Do-KVCXTbmTsPgx680Dt0WH9Wv_vBr9ZQMpx7JnWmrm/s400/screenshot2010-10-18at2.29.48pm.png" width="400" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i style="background-color: white; font-size: medium; line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">Example of the arguments configured on the Eclipse IDE</span></i></td></tr>
</tbody></table>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; font-size: small;"><span style="border-collapse: collapse; line-height: normal;"><div class="separator" style="clear: both; text-align: center;">
</div>
</span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><br style="background-color: white; font-size: 13px; line-height: 19px; text-align: left;" /><a class="knol-anchor-headings" href="" name="Versions" style="background-color: white; color: #3366cc; font-size: 13px; line-height: 19px; text-align: left;"></a></span><h3 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;">Versions</span></h3>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">Mac OS X Snow Leopard </span></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;">Eclipse Equinox 3.5</span></span></li>
</ul>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-8280129377076372812011-11-27T13:21:00.001-02:002011-11-27T13:24:23.574-02:00Autenticação com certificados digitais (Portuguese)<br />
<div id="knol-section-294uonxs6koor.19" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<div class="knol-content-wrapper" id="knol-content-wrapper-294uonxs6koor.19" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;">
<div class="knol-content knol-content-ltr knol-content-lang-pt" id="knol-content-294uonxs6koor.19" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; zoom: 1;">
<div dir="ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h1 class="knol-title" id="knol-title" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<br /></h1>
</div>
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-subtitle" id="knol-subtitle" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Um estudo sobre o necessário para fazer autenticações com certificados digitais, em qualquer tecnologia.</span></h2>
</div>
<div class="knol-clearer-div" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #54494c; font-size: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; zoom: normal !important;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div class="knol-inline-editor knol-content-ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-abstract" id="knol-abstract" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Este guia apresenta as configurações necessárias para fazer uma autenticação com certificado digital em aplicações Web.</span></h2>
</div>
</h2>
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Requisitos</b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> </span></span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Para a implementação da funcionalidade, é necessário antes entender como funciona:</span></span><ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Certificados digitais</span></span></li>
</ul>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Secure Socket Layer (SSL)</span></span></li>
</ul>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Configuração do SSL no seu servidor Web.</span></span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="" name="Implementa(C3)(A7)(C3)(A3)o" style="color: #3366cc;"></a></span><h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Implementação</b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> </span></span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><br /></span><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Para que a aplicação web valide o certificado digital do cliente, deve ser feito o seguinte:</span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span><ol style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Configurar o Internet Information Services (IIS) para utilizar conexão segura (SSL) com autenticação do cliente (para ele requisitar certificado digital do browser do usuário).</span></span></li>
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Customizar no IIS as ACs (Autoridades Certificadoras) confiáveis. O certificado digital fornecido pelo cliente deverá ter sido emitido por alguma entidade certificadora confiável que está cadastrada no servidor Web.</span></span></li>
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Criar uma aplicação Web e fazer o deploy no IIS. Ao estabelecer a conexão, o SSL irá requisitar um certificado cliente. A implementação do SSL irá verificar se o certificado digital fornecido é válido perante as ACs confiáveis cadastradas no servidor. Uma vez validadas, a aplicação web poderá consultar os dados do certificado digital da sessão do usuário e cruzar com dados de seu repositório.</span></span></li>
</ol>
<span class="Apple-style-span" style="font-family: inherit;"><br /><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Se o usuário tiver um certificado digital válido instalado no browser, quando acessar a página irá aparecer uma janela para que ele confirme se é dono digitando sua senha. Se o usuário tiver apenas certificados digitais emitidos por CAs que não estão registradas no servidor, ou então, se não tiver nenhum certificado digital, dependendo da configuração, não conseguirá acessar a página.</span><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> </span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><br /></span><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">A configuração da obrigatoriedade do certificado digital na autenticação pode variar. Existem três tipos de comportamentos que podem ser definidos no SSL do servidor:</span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span><ol style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Não exige certificados digitais do cliente.</span></span></li>
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Exige certificados digitais do cliente.</span></span></li>
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: decimal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Informar certificados digitais de forma opcional.</span></span></li>
</ol>
<span class="Apple-style-span" style="font-family: inherit;"><br /><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">No terceiro caso, se o usuário não possuir certificado digital, ou então se possuir mas não quiser usar, irá conseguir acessar a página normalmente. A conexão também continuará sendo segura da mesma forma, pois o browser irá gerar uma chave aleatória, conforme é documentado na especificação do SSL.</span><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> </span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="" name="Documentos_e(2D)CPF_e_e(2D)CNPJ" style="color: #3366cc;"></a></span><h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Documentos e-CPF e e-CNPJ</b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> </span></span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Para ler o número dos documentos do e-CPF e e-CNPJ, basta a aplicação capturar os dados do certificado digital da sessão e ler os valores que estão em hexadecimal nos campos </span><i style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">otherName </i><span style="background-color: transparent; text-decoration: none;"><span style="white-space: pre-wrap;">do certificado digital. </span></span><span style="white-space: pre-wrap;"><br /></span></span></div>
<span id="goog_1402133660"></span><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><span id="goog_1402133661"></span><span id="goog_1402133663"></span><span id="goog_1402133664"></span><span id="goog_1402133654"></span><span id="goog_1402133655"></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimSFrmdlmCQ5VvQ7CE_GoRoVhTunLBFmT9fpvF7vWv_k7xD5Yz84qv5tw0zAlG5EhbdJP86XZMuz-9qJP66k3smC1UWuPyLXKgXS7lfB8jtuMZXC5tYEmp4UhdGhQpnw8Pp_L2eZoprDgc/s1600/ecpf.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimSFrmdlmCQ5VvQ7CE_GoRoVhTunLBFmT9fpvF7vWv_k7xD5Yz84qv5tw0zAlG5EhbdJP86XZMuz-9qJP66k3smC1UWuPyLXKgXS7lfB8jtuMZXC5tYEmp4UhdGhQpnw8Pp_L2eZoprDgc/s1600/ecpf.jpg" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguk7mb1q9N6qbuWr3wvxM8cGG5pmNzFGQtZcK7wuavI2piRATKo_HNyoglSHchU7a4sah2jHTXTGfynfH6DI3ckqqc8keK12v9rf-3e0ruxfjDNZBK7ATMHtlF8cYd2Az5siVIT7xXfvNs/s1600/ecnpj.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguk7mb1q9N6qbuWr3wvxM8cGG5pmNzFGQtZcK7wuavI2piRATKo_HNyoglSHchU7a4sah2jHTXTGfynfH6DI3ckqqc8keK12v9rf-3e0ruxfjDNZBK7ATMHtlF8cYd2Az5siVIT7xXfvNs/s1600/ecnpj.jpg" /></a></div>
<br />
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="background-color: transparent;"><span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; line-height: normal; text-decoration: none; white-space: pre-wrap;">O ICP-Brasil,</span><span style="background-color: transparent; line-height: normal; text-decoration: none; white-space: pre-wrap;"> </span><span style="background-color: transparent;">define <span style="line-height: normal; white-space: pre-wrap;">onde encontra-se os números dos documentos no certificado digital quando: </span></span></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span style="white-space: normal;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></span></b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Pessoa física:</b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> o campo que guarda o número do CPF é o </span><i style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">otherName</i><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> com o identificador </span><i style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">OID</i><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> de valor </span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">2.16.76.1.3.1 </b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">com o valor no formato:</span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Data de nascimento do titular no formato ddmmaa;</span></span></li>
</ul>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Cadastro de Pessoa Física (CPF) do titular;</span></span></li>
</ul>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Número de Identificação Social - NIS (PIS, PASEP ou CI);</span></span></li>
</ul>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Ndo Registro Geral (RG) do titular;</span></span></li>
</ul>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Siglas do órgão expedidor do RG e respectiva UF;</span></span></li>
</ul>
</div>
<span class="Apple-style-span" style="font-family: inherit;"><br /></span><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
Pessoa jurídica</b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">: o campo que guarda o número do CNPJ é o </span><i style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">otherName</i><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> com o identificador </span><i style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">OID</i><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> de valor </span><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">OID 2.16.76.1.3.3.</b></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><br /></b><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;">Para detalhes de outros campos, veja o 'Requisito I.10" na especificação do e-Cpf e e-Cnpj, publicado em</span><a href="http://www.iti.gov.br/twiki/pub/Homologacao/Documentos/MCT6_Vol_I.pdf" style="color: #3366cc;"><u style="background-color: transparent; color: #000099; white-space: pre-wrap;">http://www.iti.gov.br/twiki/pub/Homologacao/Documentos/MCT6_Vol_I.pdf</u></a><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"> sessão "</span><span style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><i>2.1 Requisitos gerais de certificação digital."</i></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></b></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="" name="Veja_tamb(C3)(A9)m" style="color: #3366cc;"></a></span><h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<b style="background-color: transparent; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit;">Veja também</span></b></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="white-space: pre-wrap;"><a href="http://knol.google.com/k/ed-pichler/autentica%C3%A7%C3%A3o-com-certificados-digitais/294uonxs6koor/20" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Autenticação com Certificados Digitais em Java</span></a></span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="knol-clearer-div" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; zoom: normal !important;">
</div>
<div class="knol-content" id="references" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: left; zoom: 1;">
<h3 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">References</span></h3>
<ol id="knol-references" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">SERPRO. Política de Certificação da Autoridade Certificadora do SERPRORFB. Acessado em 07 de junho de 2010.<br /><a href="https://ccd.serpro.gov.br/acserprorfb/docs/pcserprorfbA3_v2.1.pdf" style="color: #3366cc;">https://ccd.serpro.g<wbr></wbr>ov.br/acserprorfb/do<wbr></wbr>cs/pcserprorfbA3_v2.<wbr></wbr>1.pdf</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">APACHE.ORG. Apache Tomcat Configuration Reference. Acessado em 02 de junho de 2010.<br /><a href="http://tomcat.apache.org/tomcat-5.5-doc/config/http.html" style="color: #3366cc;">http://tomcat.apache<wbr></wbr>.org/tomcat-5.5-doc/<wbr></wbr>config/http.html</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">CERTISIGN. Por dentro da certificação digital. Acessado em 01 de junho de 2010.<br /><a href="http://www.certisign.com.br/certificacao-digital/por-dentro-da-certificacao-digital" style="color: #3366cc;">http://www.certisign<wbr></wbr>.com.br/certificacao<wbr></wbr>-digital/por-dentro-<wbr></wbr>da-certificacao-digi<wbr></wbr>tal</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">DEVMEDIA. Autenticação de usuários com Certificado digital. Acessado em 07 de junho de 2010.<br /><a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=9495&hl=" style="color: #3366cc;">http://www.devmedia.<wbr></wbr>com.br/articles/view<wbr></wbr>comp.asp?comp=9495&h<wbr></wbr>l=</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">IBM. Como funciona o SSL. Acessado em 06 de junho de 2010.<br /><a href="http://publib.boulder.ibm.com/tividd/td/TRM/GC32-1323-00/pt_BR/HTML/admin231.htm" style="color: #3366cc;">http://publib.boulde<wbr></wbr>r.ibm.com/tividd/td/<wbr></wbr>TRM/GC32-1323-00/pt_<wbr></wbr>BR/HTML/admin231.htm</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">MICROSOFT. X.509 Technical Supplement. Acessado em 07 de junho de 2010.<br /><a href="http://msdn.microsoft.com/en-us/library/ff647097.aspx" style="color: #3366cc;">http://msdn.microsof<wbr></wbr>t.com/en-us/library/<wbr></wbr>ff647097.aspx</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">MICROSOFT. Brokered Authentication: X.509 PKI. Acessado em 07 de junho de 2010.<br /><a href="http://msdn.microsoft.com/en-us/library/aa480565.aspx" style="color: #3366cc;">http://msdn.microsof<wbr></wbr>t.com/en-us/library/<wbr></wbr>aa480565.aspx</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">CERPRO. Certificação digital. Acessado em: 02 de junho de 2010.<br /><a href="http://www.serpro.gov.br/servicos/certificacao_digital" style="color: #3366cc;">http://www.serpro.go<wbr></wbr>v.br/servicos/certif<wbr></wbr>icacao_digital</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">UNIFESP. Infra-estrutura de Chave Pública (PKI) – O Diferencial da VeriSign. Acessado em 07 de junho de 2010.<br /><a href="http://telemedicina.unifesp.br/pub/Document/Programming/PublicKey/CertiSign/chave_publica_pki/introduction.html" style="color: #3366cc;">http://telemedicina.<wbr></wbr>unifesp.br/pub/Docum<wbr></wbr>ent/Programming/Publ<wbr></wbr>icKey/CertiSign/chav<wbr></wbr>e_publica_pki/introd<wbr></wbr>uction.html</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">UOL. HOW STUFF WORKS. Como funciona o certificado digital. Acessado em Acessado em 07 de junho de 2010.<br /><a href="http://informatica.hsw.uol.com.br/certificado-digital.htm" style="color: #3366cc;">http://informatica.h<wbr></wbr>sw.uol.com.br/certif<wbr></wbr>icado-digital.htm</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">UOL. IMASTERS. TCP/IP Certificados Digitais e segurança. Acessado em 06 de junho de 2010.<br /><a href="http://imasters.uol.com.br/artigo/3174/seguranca/tcpip_parte_19_certificados_digitais_e_seguranca/" style="color: #3366cc;">http://imasters.uol.<wbr></wbr>com.br/artigo/3174/s<wbr></wbr>eguranca/tcpip_parte<wbr></wbr>_19_certificados_dig<wbr></wbr>itais_e_seguranca/</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">VASSILEV, Apostol; HUTCHINSON, Michael. Authentication Framework for Smart Cards. Texas, USA. 2010.</span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">WIKIPEDIA. ICP-BRASIL. Acessado em 08 de junho de 2010.<br /><a href="http://pt.wikipedia.org/wiki/ICP-BRASIL" style="color: #3366cc;">http://pt.wikipedia.<wbr></wbr>org/wiki/ICP-BRASIL</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">WIKIPEDIA. X.509. Acessado em 05 de junho de 2010.<br /><a href="http://en.wikipedia.org/wiki/X.509" style="color: #3366cc;">http://en.wikipedia.<wbr></wbr>org/wiki/X.509</a></span></li>
</ol>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-15928995875443287662011-11-27T13:08:00.000-02:002012-01-04T12:41:35.652-02:00Exporting an Oracle XE Database<div>
<br />
<br />
To export a dump file of the database, you need to use the <b>expdp</b> application. In Oracle XE on Windows, the executable is located in the folder "c:\oraclexe\app\oracle\product\10.2.0\server\BIN".<br />
<br />
Just execute the expdp typing:</div>
<div>
<br /></div>
<div>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">expdp usurname/password@XE directory=my_folder dumpfile=myFile.dmp</span><br />
<br />
Note that XE is the default SID name of Oracle XE. To connect to servers in your network, you need to configure other SID names in the TSNAMES.ORA file.</div>
<div>
<br /></div>
<div>
The directory to export the dump file can be a shared folder.</div>
<div>
<br /></div>
<div>
To import the dump file, there is the <b>impdp</b> application.<br />
<br />
<b><span class="Apple-style-span" style="font-family: inherit;">*Update</span></b><br />
<b><span class="Apple-style-span" style="font-family: inherit;"><br /></span></b><br />
<span class="Apple-style-span" style="font-family: inherit;">When importing, you can remap your table schema to a new user, to do this see about the REMAP_SCHEMA parameter. Ex.:</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">impdp myUser/password@xe dumpfile=banco.dmp REMAP_SCHEMA=(oldUser:myUser</span><br />
<span class="Apple-style-span" style="font-family: inherit;"><br /></span><br />
<span class="Apple-style-span" style="font-family: inherit;">When importing, maybe Oracle throw an error he can't find the <i>Tablespace</i>. Just create one and try importing again.</span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-66321347461872322902011-11-23T20:12:00.001-02:002012-07-04T17:13:03.238-03:00Drag and Drop of complex custom objects in Java<br />
<div id="knol-section-294uonxs6koor.16" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<div class="knol-content-wrapper" id="knol-content-wrapper-294uonxs6koor.16" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;">
<div class="knol-content knol-content-ltr knol-content-lang-en" id="knol-content-294uonxs6koor.16" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; zoom: 1;">
<div dir="ltr" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">There are a lot of ways to accomplish this task. Here I'll show the custom way, that intends to work in any kind of swing component with minimum changes.</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Here we have two JPanels, one of them has a custom JLabel that holds an Animal object. When we drag the JLabel, we want to transfer copying the animal to the other JPanel.</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Basically, to do DnD (drag and drop) we have to create a <i>Drag source, a Drag Target and a Transferable object:</i></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: arial, helvetica, sans-serif; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<i><br /></i><br />
<i><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-style: normal;"></span></i><br />
<div style="border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<i><span class="Apple-style-span" style="font-family: inherit;"><span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;">Acess the example code clicking above on the link.(<a href="https://gist.github.com/840867" style="color: #3366cc;">Gist</a> powered)<i>: </i></span></span></span></i></div>
<i><span class="Apple-style-span" style="font-family: inherit;"><span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;"></span></span><a href="https://gist.github.com/840867" style="color: #3366cc;">https://gist.github.com/840867</a></span></i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></pre>
<pre style="padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="line-height: 19px; white-space: normal;">
</span></span><br />
<span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="line-height: 19px; white-space: normal;">
</span></span></div>
<span style="line-height: 14px;">
</span></pre>
<span style="line-height: 14px;">
</span><br />
<div style="line-height: 1.5em;">
</div>
</div>
<div style="line-height: 1.5em;">
<span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;"></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; display: inline !important; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;"><span class="Apple-style-span" style="font-family: inherit;">Note that, most of the time, you need to do more easy tasks with DnD, like transfering simple Strings between components. There are easier ways to do that with the <a href="http://download.oracle.com/javase/tutorial/uiswing/dnd/defaultsupport.html" style="color: #3366cc;">Java Swing default DnD implementations</a>. See the references.</span></span></span></div>
<span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;">
</span></span><br />
<div style="line-height: 1.5em;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;"></span></span><br />
<div style="border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></span></div>
<span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;">
</span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><span style="line-height: 16px; white-space: pre;"><span style="line-height: 19px; white-space: normal;"></span></span></span><br />
<div style="border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<br /></div>
</div>
</div>
</div>
</div>
</div>
<div class="knol-clearer-div" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; zoom: normal !important;">
</div>
<div class="knol-content" id="references" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em; text-align: left; zoom: 1;">
<h3 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">References</span></h3>
<ol id="knol-references" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">Zet Code. Accessed in 23 February 2011.<br /><a href="http://zetcode.com/tutorials/javaswingtutorial/draganddrop/" style="color: #3366cc;">Zet Code</a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">Java tutorials. Accessed in 23 February 2011.<br /><a href="http://oracle%20corp./" style="color: #3366cc;">http://download.orac<wbr></wbr>le.com/javase/tutori<wbr></wbr>al/uiswing/dnd/intro<wbr></wbr>.html</a></span></li>
</ol>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-78740850435961282842011-11-23T20:06:00.001-02:002011-11-27T13:11:25.842-02:00Inner type methods in multiple classes with Aspect Oriented languages<br />
<div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 5px; margin-left: 0px; margin-right: 5px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<div style="background-color: transparent; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; clear: both; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; word-wrap: break-word;">
</div>
<div class="knol-inline-editor knol-content-ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; line-height: normal; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-subtitle" id="knol-subtitle" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Declaring inner type methods in multiple classes with Aspect Oriented languages</span></h2>
</div>
<div class="knol-clearer-div" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #54494c; font-size: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; zoom: normal !important;">
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</div>
<div class="knol-inline-editor knol-content-ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; line-height: normal; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-abstract" id="knol-abstract" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Aspect Oriented Languages are not made for declare methods, but, we can use this powerful new paradigm to to this, when composite or inheritance aren't the best approach.</span></h2>
</div>
<div class="knol-element-toggle-level-max-6 knol-element-toggle-level-2" id="knol-toc" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-family: arial, helvetica, sans-serif; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: hidden; overflow-y: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; text-overflow: ellipsis; white-space: nowrap; width: 638px;" xmlns="http://www.w3.org/1999/xhtml">
<a href="http://andrewclement.blogspot.com/" style="color: #3366cc; font-family: Times; line-height: 18px; white-space: normal;">Andy Clement</a><span class="Apple-style-span" style="color: black; font-family: Times; line-height: 18px; white-space: normal;">, engaged with the AspectJ project, answer me there is a good way to do this. The follow example is in</span><span class="Apple-style-span" style="color: black; font-family: Times; line-height: 18px; white-space: normal;"> </span><a href="http://www.eclipse.org/aspectj/" style="color: #3366cc; font-family: Times; line-height: 18px; white-space: normal;">AspectJ</a><span class="Apple-style-span" style="color: black; font-family: Times; line-height: 18px; white-space: normal;">.</span></div>
<br />
<div style="background-color: transparent; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; clear: both; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; word-wrap: break-word;">
<span class="Apple-style-span" style="font-family: inherit;">Declare an interface:</span></div>
<pre style="background-color: #eeeeee; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: auto;"><code style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">interface</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Holder</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">{}</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</span></code></pre>
<div style="background-color: transparent; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; clear: both; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; word-wrap: break-word;">
<span class="Apple-style-span" style="font-family: inherit;">Make your intertype declarations on the interface:</span></div>
<pre style="background-color: #eeeeee; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: auto;"><code style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">public</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">int</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Holder</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">.</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">getMeAnInt</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">()</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">{</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">return</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">42</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">;</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">}</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</span></code></pre>
<div style="background-color: transparent; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; clear: both; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; word-wrap: break-word;">
<span class="Apple-style-span" style="font-family: inherit;">Declaring a method on a interface, in aspects, you are providing a 'default implementation'. If you create a class Foo that implements this interface and don't implement the getMeAnInt() method explicitly, for example, the new Foo class will have the implementation declared on this interface.</span></div>
<div style="background-color: transparent; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; clear: both; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; word-wrap: break-word;">
<span class="Apple-style-span" style="font-family: inherit;">The final piece of the puzzle is then to use declare parents to specify which group of types implement your interface:</span></div>
<pre style="background-color: #eeeeee; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: auto;"><code style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">declare parents</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">:</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">@Anno</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">*</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">implements</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"> </span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Holder</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">;</span><span style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
</span></code></pre>
<div style="background-color: transparent; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; clear: both; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; word-wrap: break-word;">
<span class="Apple-style-span" style="font-family: inherit;">So now, any type annotated with @Anno will implement Holder and have the getMeAnInt() method.</span></div>
</div>
<div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 5px; margin-left: 5px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="References" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">References</span></h2>
</div>
<div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 5px; margin-left: 5px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;"><b>StackOverFlow</b>. Available in: http://stackoverflow.com/questions/3738545/aspectj-creating-innter-type-methods-in-multiple-classes Accessed in November of 2010.</span></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;"><b>AspectJ</b>. Available in: http://www.eclipse.org/aspectj/ Accessed in November of 2010.</span></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><span class="Apple-style-span" style="font-family: inherit;"><b>Wikipedia</b>. Available in: http://en.wikipedia.org/wiki/Aspect-oriented_programming Accessed in November of 2010</span></span></li>
</ul>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-63099158944668932022011-11-23T20:04:00.001-02:002011-11-23T20:05:06.060-02:00Changing the line size of a JFreeChart chart<h2 class="knol-abstract" id="knol-abstract" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 1em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; text-align: left;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">This is an example showing how to change the line size of a Java graph builded with JFreeChart library.</span></h2>
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="background-color: white; font-size: 13px; line-height: 19px;">The example is using the version </span><a href="http://www.jfree.org/jfreechart/" style="background-color: white; color: #3366cc; font-size: 13px; line-height: 19px; text-align: left;">JFreeChart </a><span class="Apple-style-span" style="background-color: white; font-size: 13px; line-height: 19px; text-align: left;">1.0.13</span></span><br />
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<br /></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: helvetica, arial, freesans, clean, sans-serif; line-height: 14px;"><pre style="font-family: Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b>...</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">private</b> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">JFreeChart</span> <b style="color: #990000; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">createChart</b><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</b><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">XYDataset</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">dataset</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</b> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">ICarteira</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">car</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">)</b> <b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">{</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// create the chart...</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">final</b> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">JFreeChart</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">chart</span> <b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=</b> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">ChartFactory</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">.</b><span style="color: teal; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">createTimeSeriesChart</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">car</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">.</b><span style="color: teal; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">getNome</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(),</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// title</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="color: #dd1144; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">"Tempo"</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// x axis label</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="color: #dd1144; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">"Valor"</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// y axis label</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">dataset</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// data</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">true</b><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// include legend</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">true</b><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// tooltips</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">true</b> <i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// urls</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">);</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">XYPlot</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">plot</span> <b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=</b> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">chart</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">.</b><span style="color: teal; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">getXYPlot</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">();</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// here we change the line size</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="color: #445588; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">int</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">seriesCount</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">plot</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">.</span><span style="color: teal; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">getSeriesCount</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">();</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">for</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</span><span style="color: #445588; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">int</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">i</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=</span> <span style="color: #009999; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">0</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">;</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">i</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">seriesCount</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">;</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">i</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">++)</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">{</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">plot</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">.</span><span style="color: teal; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">getRenderer</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">().</span><span style="color: teal; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">setSeriesStroke</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">i</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">new</span> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">BasicStroke</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</span><span style="color: #009999; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">2</span><span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">));</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">}</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<i style="color: #999988; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">// line size changed</i></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">return</b> <span style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">chart</span><b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">;</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">}</b></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;">
<b style="line-height: 1.4em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">...</b></div>
</pre>
</span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-31528773029428486072011-11-23T20:01:00.001-02:002011-11-23T20:02:38.127-02:00Catálogo de tecnologias e ferramentas Java (Portuguese)<br />
<div class="knol-inline-editor knol-content-ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; margin-bottom: 0.3em; margin-left: 0px; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: relative; text-align: left; zoom: 1;" xmlns="http://www.w3.org/1999/xhtml">
<h2 class="knol-subtitle" id="knol-subtitle" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Click on the "Edit this knol" button to switch to edit mode and change this field.">
<span class="Apple-style-span" style="font-family: inherit;">Frameworks e ferramentas para construção de sistemas compatíveis com a plataforma Java</span></h2>
</div>
<div class="knol-clearer-div" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #54494c; font-size: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; zoom: normal !important;">
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #54494c; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
</div>
<h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="color: #54494c; font-size: 13px; line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;">A forma mais rápida de desenvolver software com qualidade é através do reuso. Nesse documento é apresentado uma lista de bibliotecas e frameworks estáveis para desenvolvimento de aplicações. Os critérios para o framework estar aqui são: ser grátis para aplicações comerciais, inclusive as não open source; ser amplamente utilizado pelo mundo; ser confiável para uso em produção.</span></span></h2>
<h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></h2>
<h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;">Introdução</span></h2>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;"><a href="http://pt.wikipedia.org/wiki/Engenharia_de_software_baseada_em_componentes" style="color: #3366cc;">Reuso de componentes</a> é uma maneira de criar aplicações de altíssima qualidade em tempo relativamente curto. Porém, deve-se ter muito cuidado com o uso abusivo. Apesar de ser errado reinventar as coisas, à medida que aumenta o uso de componentes, aumenta-se também a complexidade da integração da solução, uma vez que é composta de várias partes integradas. </span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">Mas com uma boa dose de bom senso é possível reaproveitar tudo o que existe sem comprometer o seu software. </span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">A seguir, dividido por categorias, são listados os frameworks, tecnologias, ferramentas e bibliotecas.</span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Acesso_(C3)(A0)_dados" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Acesso à dados</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><span style="color: black;"><a href="http://www.eclipse.org/eclipselink/" style="color: #3366cc;">EclipseLink</a>: </span>Antigo Oracle TopLink que foi doado para a <span style="color: black;"><a href="http://www.eclipse.org/org/" style="color: #3366cc;">Eclipse Foundation</a></span>.</span></div>
</li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://pt.wikipedia.org/wiki/Hibernate" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Hibernate</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/spring-data-tier.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Spring Framework Data Access</span></a></span></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="AOP_(28)Orienta(C3)(A7)(C3)(A3)o_(C3)(A0)_Aspectos(29)" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">AOP (Orientação à Aspectos)</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://www.eclipse.org/aspectj/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">AspectJ</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Spring Framework AOP</span></a></span></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Configura(C3)(A7)(C3)(B5)es_de_sistema" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Configurações de sistema</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://apache%20commons%20configuration/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Apache Commons Configuration</span></a></span></li>
</ul>
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></h2>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Coment(C3)(A1)rios" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Comentários</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="http://disqus.com/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Disqus</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="http://intensedebate.com/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Intense Debate</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.google.com/friendconnect" style="color: #3366cc;">Google Friend Connect</a>. Mais do que simples comentários, traz também características de redes sociais à qualquer site.</span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.google.com/webelements/sidewiki/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Google Sidewiki</span></a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://uservoice.com/" style="color: #3366cc;">UserVoice</a>. Sistema para feedbacks de produtos e sistemas.</span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Documenta(C3)(A7)(C3)(A3)o" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Documentação</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://www.oracle.com/technology/tech/java/help/index.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Oracle Help for Java/Web</span></a></span></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Ferramentas_RAD_(28)Desenvolvimento_r(C3)(A1)pido_de_aplica(C3)(A7)(C3)(B5)es(29)" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Ferramentas RAD (Desenvolvimento rápido de aplicações)</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.springsource.org/roo" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Spring Roo</span></a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.wavemaker.com/" style="color: #3366cc;">WaveMaker</a>: IDE RAD java que roda no browser. Ideal para desenvolvimento de pequenos módulos/aplicações. Possui versão <i>community</i> e na <a href="http://knol.google.com/k/sam-johnston/cloud-computing/1ndljz4ypn6xa/2" style="color: #3366cc;">nuvem</a>.</span></li>
</ul>
</div>
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></h2>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Instaladores" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Instaladores</span></h2>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://launch4j.sourceforge.net/index.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Launch4J</span></a></li>
</ul>
</div>
<div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;">
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></h2>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Javascript" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Javascript</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"></span><br />
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;"><span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://dojotoolkit.org/" style="color: #3366cc;">Dojo Toolkit</a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://code.google.com/intl/pt-BR/apis/libraries/" style="color: #3366cc;">Google Librarires API</a>. Carregue bibliotecas javascript <i>open sources</i> com a rede e tecnologia do Google.</li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://jquery.com/" style="color: #3366cc;">JQuery</a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://mochikit.com/" style="color: #3366cc;">Mochikit</a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://mootools.net/" style="color: #3366cc;">MooTools</a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.prototypejs.org/" style="color: #3366cc;">Prototype</a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://script.aculo.us/" style="color: #3366cc;">Scriptaculous</a> </li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://developer.yahoo.com/yui/" style="color: #3366cc;">YUI - Yahoo Interface Library</a></li>
</span></span></ul>
<span style="line-height: normal;">
</span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Logs" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Logs</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://logging.apache.org/log4j/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Log4j</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.slf4j.org/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Slf4j</span></a></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Multim(C3)(AD)dia" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Multimídia</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.osmf.org/" style="color: #3366cc;">Open Source Media Framework</a>. Customize seu player multimídia para a Web.</span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="OSGi" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">OSGi</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://felix.apache.org/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Apache Felix</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://www.eclipse.org/equinox/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Eclipse Equinox</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://www.knopflerfish.org/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Knopflerfish</span></a></span></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Pagamentos" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Pagamentos</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.pagseguro.com.br/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">PagSeguro</span></a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://www.paypal.com/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">PayPal</span></a></li>
</ul>
</div>
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></h2>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Prototipa(C3)(A7)(C3)(A3)o_de_interfaces" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;">Prototipação de interfaces</span></span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://balsamiq.com/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Balsamiq</span></a></li>
</ul>
</div>
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></h2>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="RSS(2F)Atom" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">RSS/Atom</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="https://rome.dev.java.net/" style="color: #3366cc;">Rome</a>. <span style="color: #333333; line-height: 16px;">Rome é um conjunto de ferramentas open source para parseamento, geração e publicação de<i>feeds</i> com RSS e Atom.</span></span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Redes_Sociais" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Redes Sociais</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.google.com/friendconnect" style="color: #3366cc;">Google Friend Connect</a>. Adicione características de redes sociais em qualquer site.</span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Servidores(2F)Hosting(2F)Cloud_computing" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Servidores/Hosting/Cloud computing</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="http://aws.amazon.com/about-aws/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Amazon WS</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="http://code.google.com/appengine/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Google AppEngine</span></a></span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="SCM_(28)Source_Code_Management(29)" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">SCM (Source Code Management)</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="https://code.google.com/hosting" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Google Project Hosting</span></a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="http://bitbucket.org/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Bitbucket</span></a></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><a href="https://github.com/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Github</span></a></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Teste" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Teste</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://www.junit.org/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">JUnit</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/testing.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Spring Framework Test</span></a></span></li>
</ul>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Util" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Util</span></h2>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://caelum-stella.svn.sourceforge.net/" style="color: #3366cc;">Stella</a>. Biblioteca brasileira para validação de CPF/CNPJ, geração de boletos bancários e outras funções utilitárias.</span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://commons.apache.org/lang/" style="color: #3366cc;">Apache Commons Lang</a>. Uma série de classes utilitárias para realização de pequenas operações em Java.</span></li>
</ul>
</div>
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span></div>
<span class="Apple-style-span" style="font-family: inherit;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Web" style="color: #3366cc;"></a></span><br />
<h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.6em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span class="Apple-style-span" style="font-family: inherit;">Web</span></h2>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="http://code.google.com/intl/pt-BR/webtoolkit/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Google GWT</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 14px;"><a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/spring-web.html" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">Spring Framework MVC</span></a></span></li>
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span style="line-height: 19px;"><a href="http://java.sun.com/javaee/javaserverfaces/" style="color: #3366cc;"><span class="Apple-style-span" style="font-family: inherit;">JavaServer Faces</span></a></span></li>
<ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://knol.google.com/k/ed-pichler/bibliotecas-de-componentes-e-extens%C3%B5es/294uonxs6koor/10" style="color: #3366cc;">Lista de </a><a href="http://knol.google.com/k/ed-pichler/bibliotecas-de-componentes-e-extens%C3%B5es/294uonxs6koor/10" style="color: #3366cc;">Bibliotecas de componentes e extensões JavaServer Faces</a></span></li>
</ul>
</ul>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8052011861230054050.post-5733430978365485122011-11-23T19:57:00.000-02:002013-11-09T20:33:07.998-02:00Autenticação com Certificados Digitais em Java (Portuguese)Como autenticar usuários na Internet usando Java e certificados digitais.<br />
<div>
<br /></div>
<div>
Tutorial mostrando como fazer conexão segura de uma aplicação Web feita em Java com autenticação usando certificados digitais. Como certificado digital será utilizado e-CPF/e-CNPJ emitidos pela estrutura de chaves públicas ICP-Brasil. Como servidor usaremos o Tomcat. O certificado do servidor será auto assinado.<br />
<div style="background-repeat: no-repeat no-repeat; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<h3 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit; font-size: large;"><br /></span></b></h3>
<h3 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: inherit; font-size: large;">Configurar o servidor</span></b></h3>
<h3 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="color: #333333; font-size: x-small;"><span style="font-family: inherit; white-space: pre-wrap;"><br /></span></span></h3>
<span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">Usando a ferramenta </span><a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html" style="background-color: transparent; color: #3366cc;"><u style="background-color: transparent; color: #3966bf; white-space: pre-wrap;">Keytool</u></a><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">, crie uma chave privada RSA para o servidor:</span></span><br />
<br />
<span style="background-color: #f3f3f3; color: #333333; font-family: inherit; text-decoration: none; white-space: pre-wrap;"># keytool -genkey -alias tomcat -keyalg RSA</span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;"><br /></span><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">Informe os parâmetros que o keytool pedirá para criar o certificado. Será necessário informar uma senha. Nesse tutorial sempre será usado a palavra 'password'.</span></span><br />
<br />
<span style="background-color: transparent; color: #333333; font-family: inherit; text-decoration: none; white-space: pre-wrap;">Depois, auto assine o certificado criado:</span><br />
<br />
<span style="background-color: #f3f3f3; color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"># keytool -selfcert -alias tomcat</span><br />
<span style="background-color: transparent; color: #333333; font-family: inherit; text-decoration: none; white-space: pre-wrap;">Liste seu certificado criado executando o comando:</span><br />
<span style="background-color: #f3f3f3; color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"># keytool -list</span><br />
<br />
<br />
<span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">Agora abra o arquivo de configuração, no Tomcat é o </span><i style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">server.xml.</i><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;"> Configure um </span><i style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">Connector </i><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">para usar SSL e requisitar certificados digitais da máquina cliente:</span></span><br />
<br />
<span style="background-color: #f3f3f3;"><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">Service</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">name</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"Catalina"</i><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">></span><br /><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> ...</span><br /><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> <</span><span style="color: #3f7f7f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">Connector</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">acceptCount</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"100"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">connectionTimeout</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"20000"</i><br /><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> executor</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"tomcatThreadPool"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">maxKeepAliveRequests</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"15"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">port</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"8080"</i><br /><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> protocol</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"HTTP/1.1"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">redirectPort</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"8443"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">/></span><br /><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> <</span><span style="color: #3f7f7f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">Connector</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">port</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"8443"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">maxThreads</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"200"</i><br /><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> scheme</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"https"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">secure</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"true"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">SSLEnabled</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"true"</i><br /><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> keystoreFile</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"${user.home}/.keystore"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">keystorePass</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"password"</i><br /><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> clientAuth</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"true"</i><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> </span><span style="color: #7f007f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">sslProtocol</span><span style="color: #333333; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">=</span><i style="color: #2a00ff; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">"TLS"</i><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">/></span><br /><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"> ...</span><br /><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">Service</span><span style="color: teal; font-family: 'Courier New'; text-decoration: none; white-space: pre-wrap;">></span></span><br />
<span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;"><span class="Apple-style-span" style="font-family: Verdana;"><br /></span><span class="Apple-style-span" style="font-family: inherit;">O parâmetro </span></span><span class="Apple-style-span" style="font-family: inherit;"><i style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">clientAuth</i><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;"> é o que faz o SSL requisitar certificados digitais. Conforme mostra na </span><a href="http://tomcat.apache.org/tomcat-5.5-doc/config/http.html" style="background-color: transparent; color: #3366cc;"><u style="background-color: transparent; color: #3966bf; white-space: pre-wrap;">documentação</u></a><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;"> do Tomcat, esse valor pode ser </span><i style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">true</i><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">, </span><i style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">false</i><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;"> ou </span><i style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">want</i><span style="background-color: transparent; color: #333333; text-decoration: none; white-space: pre-wrap;">.</span></span></div>
<div style="background-repeat: no-repeat no-repeat; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="font-family: inherit; text-decoration: none;"></span><br />
<div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<span style="font-family: inherit; text-decoration: none;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Passo_dois(3A)_Instalar_as_autoridades_CA_(28)Certificate_Authorities(29)_confi(C3)(A1)veis(3A)" style="background-color: white; color: #3366cc; font-size: 13px; text-align: left;"></a></span><br />
<h3 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; text-decoration: none;">
<b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;">Passo dois: Instalar as autoridades CA (Certificate Authorities) confiáveis:</b></span></h3>
<br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Instalar no key store utilizado pelo Tomcat as autoridades confiáveis. Para isso, baixe os arquivos das ACs no </span><a href="http://www.iti.gov.br/twiki/bin/view/Certificacao/RepositoriodaACRaiz" style="background-color: transparent; color: black; font-size: 13px; text-align: left;"><u style="background-color: transparent; color: #3966bf; white-space: pre-wrap;">repositório</u></a><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;"> da autoridade raiz brasileira. </span></span><br />
<span style="text-decoration: none;"><span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Execute o comando no </span><i style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">shell:</i></span></span><br />
<br />
<span style="text-decoration: none;"><span style="background-color: #f3f3f3; color: #333333; font-family: 'Courier New'; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;"># keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file certificadoDaAc.cer -alias NOME_DA_CA</span></span><br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">A senha padrão desse repositório é </span><i style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">changeit</i><i style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">.</i></span><br />
<br />
<span style="text-decoration: none;"><span style="background-color: transparent; color: #333333; font-family: inherit; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Após importar os certificados, se fizer:</span></span><br />
<br />
<span style="text-decoration: none;"><span style="background-color: #f3f3f3; color: #333333; font-family: 'Courier New'; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;"># keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts</span></span><br />
<br />
<span style="text-decoration: none;"><span style="background-color: transparent; color: #333333; font-family: inherit; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Será listado os certificados confiáveis de autoridades instalados.</span></span><br />
<br />
<span style="text-decoration: none;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Passo_tr(C3)(AA)s(3A)_Ler_o_certificado_digital_da_sess(C3)(A3)o" style="background-color: white; color: #3366cc; font-family: arial, helvetica, sans-serif; font-size: 13px; text-align: left;"></a></span><br />
<h3 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; text-decoration: none;">
<b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;">Passo três: Ler o certificado digital da sessão</b></span></h3>
<br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Instale seu certificado digital no navegador e teste iniciando o Tomcat e abrindo a página </span><a href="https://localhost:8443/" style="background-color: transparent; color: black; font-size: 13px; text-align: left;"><u style="background-color: transparent; color: #3966bf; white-space: pre-wrap;">https://localhost:8443</u></a><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">. Se você tiver um certificado digital emitido por alguma autoridade confiável cadastrada no keystore do Java, irá aparecer uma janela para que você escolha o certificado digital e digite sua senha.</span></span><br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Note que se você não tiver instalado no navegador nenhum certificado digital válido, ou se tiver instalado algum vencido, ou de uma autoridade certificado não cadastrada, a página nem irá abrir.</span></span><br />
<br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Se tudo estiver correto e você visualizar a página, sua aplicação web já poderá ler os dados desse certificado digital após estabelecer a sessão.</span></span><br />
<br />
<span style="text-decoration: none;"><span style="background-color: transparent; color: #333333; font-family: inherit; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Em Java, isso pode ser feito da seguinte maneira:</span></span><br />
<span style="text-decoration: none;"><span style="background-color: transparent; color: #333333; font-family: Verdana; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;"><br /></span><span style="background-color: #f3f3f3; font-family: arial, helvetica, sans-serif; font-size: 13px; text-align: left;"><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">public</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">class</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> LerCertificado </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">extends</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> HttpServlet {</span><br /><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">protected</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">void</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> doGet(HttpServletRequest request,<br /> HttpServletResponse response) </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">throws</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> ServletException, IOException {<br /> PrintWriter out = response.getWriter();<br /> out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"<html>"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /> out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"<head><title>ServletLerCertificado</title></head>"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /> out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"<body>"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /> out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"<p>Certificado digital:</p>"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /><br /> </span><span style="color: grey; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">//</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"><br /> String cipherSuite = (String) request<br /> .getAttribute(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"javax.servlet.request.cipher_suite"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /><br /> </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">if</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> (cipherSuite != </span><span style="color: #996600; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">null</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">) {<br /> java.security.cert.X509Certificate certChain[] = (java.security.cert.X509Certificate[]) request<br /> .getAttribute(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"javax.servlet.request.X509Certificate"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /> System.out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"Array size: "</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> + certChain.length); <br /> </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">if</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> (certChain != </span><span style="color: #996600; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">null</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">) {<br /> </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">for</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> (</span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">int</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> i = </span><span style="color: #006600; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">0</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">; i < certChain.length; i++) {<br /> String certInfo = </span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"Client Certificate ["</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> + i + </span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"] = "</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"><br /> + certChain[i].toString();<br /> <br /> out.println(certInfo);<br /> }<br /> }<br /> } </span><b style="color: #336699; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">else</b><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"> {<br /> out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"Cliente sem Certificado Digital"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /> }<br /><br /> </span><span style="color: grey; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">//</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;"><br /> out.println(</span><span style="color: #0033cc; font-family: Verdana; text-decoration: none; white-space: pre-wrap;">"</body></html>"</span><span style="font-family: Verdana; text-decoration: none; white-space: pre-wrap;">);<br /> out.close();<br /> }</span></span></span><br />
<br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Uma vez lido o certificado digital da sessão, tem-se acesso ao CPF ou CNPJ do dono do certificado, podendo assim utilizá-lo para validação na autenticação do usuário no sistema. </span></span><br />
<br />
<span style="font-family: inherit; font-size: x-small;"><span style="color: #333333; white-space: pre-wrap;">Projeto de exemplo no GitHub: </span></span><br />
<br />
<ul>
<li><a href="https://github.com/edpichler/Digital_Certificates_with_SSL_on_Tomcat" style="font-size: small;">https://github.com/edpichler/Digital_Certificates_with_SSL_on_Tomcat</a></li>
</ul>
<br />
<span style="color: #333333; font-family: inherit; font-size: 13px; white-space: pre-wrap;"><br /></span>
<span style="color: #333333; font-family: inherit; font-size: 13px; white-space: pre-wrap;">Para facilitar a leitura dos dados certificado digital, foi utilizado a biblioteca </span><a href="http://www.bouncycastle.org/" style="color: black; font-family: inherit; font-size: 13px;"><u style="color: #3966bf; white-space: pre-wrap;">Boncy Castle</u></a><span style="color: #333333; font-family: inherit; font-size: 13px; white-space: pre-wrap;">.</span><br />
<br />
<span style="font-family: inherit; text-decoration: none;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Leitoras_de(C2)(A0)Smart_Card" style="background-color: white; color: #3366cc; font-size: 13px; text-align: left;"></a></span><br />
<h4 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; text-decoration: none;">
<b><span style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;">Leitoras de </span><i style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;">Smart Card</i></b></span></h4>
<br />
<span style="text-decoration: none;"><span class="Apple-style-span" style="font-family: inherit;"><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Para ler o certificado digital do e-CPF/e-CNPJ, ou outro smart card qualquer, o processo é o mesmo. A diferença é que não é necessário instalar certificados digitais no navegador, basta instalar o driver de sua leitora de </span><i style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">smart card</i><span style="background-color: transparent; color: #333333; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">, que caso forneça um certificado válido, irá abrir a mesma tela no browser pedindo que você escolha o certificado que irá usar para estabelecer a conexão.</span></span></span><br />
<br />
<span style="text-decoration: none;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Conclus(C3)(A3)o" style="background-color: white; color: #3366cc; font-family: arial, helvetica, sans-serif; font-size: 13px; text-align: left;"></a></span><br />
<h3 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; text-decoration: none;">
<b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;">Conclusão</b></span></h3>
<br />
<span style="font-family: inherit; text-decoration: none;"><span style="background-color: transparent; font-size: 13px; text-align: left; text-decoration: none; white-space: pre-wrap;">Certificados digitais são maneiras muito seguras e confiáveis de trafegar dados na Web. Facilmente pode ser configurado nas aplicações. O SSL cuida de todo o resto.</span></span><br />
<br />
<span style="font-family: inherit; text-decoration: none;"><a class="knol-anchor-headings" href="http://draft.blogger.com/blogger.g?blogID=8052011861230054050" name="Veja_tamb(C3)(A9)m" style="background-color: white; color: #3366cc; font-size: 13px; text-align: left;"></a></span><br />
<h4 style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; text-decoration: none;">
<b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;">Veja também</b></span></h4>
<div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span style="font-family: inherit; text-decoration: none;"><b style="background-color: transparent; color: #333399; text-decoration: none; white-space: pre-wrap;"><br /></b></span></div>
<ul style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px; text-align: left;"><span style="font-family: inherit; text-decoration: none;"><a href="http://knol.google.com/k/ed-pichler/autentica%C3%A7%C3%A3o-com-certificados-digitais/294uonxs6koor/19" style="color: #3366cc;">
</a>
<li style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"><span style="background-color: transparent; color: #3966bf; text-decoration: none; white-space: pre-wrap;"><a href="http://knol.google.com/k/ed-pichler/autentica%C3%A7%C3%A3o-com-certificados-digitais/294uonxs6koor/19" style="color: #3366cc;">Autenticação com Certificados Digitais</a></span></li>
</span></ul>
</div>
</div>
<span class="Apple-style-span" style="font-family: inherit;"><br /></span>
<span class="Apple-style-span" style="font-family: inherit;"><br /></span>
<br />
<h3 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 1.4em; font-weight: normal; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
<span class="Apple-style-span" style="font-family: inherit;">References</span></h3>
<ol id="knol-references" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2em; padding-right: 0px; padding-top: 0px; text-align: left;">
<li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;">Cristiano Andrade Blog. Acessado em 30 de julho de 2010.<br /><a href="http://cristianosandrade.blogspot.com/2010/03/extrair-dados-de-um-certificado-icp.html" style="color: #3366cc;">http://cristianosand<wbr></wbr>rade.blogspot.com/20<wbr></wbr>10/03/extrair-dados-<wbr></wbr>de-um-certificado-ic<wbr></wbr>p.html</a></span></li>
</ol>
</div>
Unknownnoreply@blogger.com6Curitiba - Paraná, Brazil-25.4283563 -49.2732515-25.5430798 -49.43118 -25.3136328 -49.115323000000004