Skip to content

Commit ab7c961

Browse files
committed
Merge branch 'junit-lambda-website'
2 parents 3681aa3 + 3435998 commit ab7c961

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+567
-9
lines changed

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*.GIF binary
44
*.jar binary
55
*.png binary
6+
*.jpg binary
67
*.svg text eol=lf
78

89
# These files do not have unix line endings. Do not normalize them for now.

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ MaxCore.max
1010
*.iws
1111
out
1212
java.hprof.txt
13+
.DS_Store

src/site/resources/css/carousel.css

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.carousel-content {
2+
height: 20em;
3+
}
4+
.carousel-caption a {
5+
color: #ffffff;
6+
}
7+
#junit-lambda-teaser {
8+
background: url(../images/junit-lambda/background.png);
9+
text-align: center;
10+
}
11+
#junit-lambda-teaser p {
12+
padding-top: 25px;
13+
}
+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
ul.inline {
2+
margin-left: 0;
3+
list-style: none;
4+
}
5+
.inline li {
6+
display: inline-block;
7+
margin-right: 10px;
8+
margin-bottom: 10px;
9+
}
10+
11+
.sponsors li {
12+
border: 1px solid #e3e3e3;
13+
-webkit-border-radius: 4px;
14+
-moz-border-radius: 4px;
15+
border-radius: 4px;
16+
}
17+
.sponsors li:hover {
18+
border-color: #c5c5c5;
19+
}
20+
.sponsors li {
21+
text-align: center;
22+
padding: 0;
23+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
24+
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
25+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
26+
}
27+
.sponsors li a {
28+
display: block;
29+
padding: 0 10px !important;
30+
}
31+
32+
.sponsors-small li a img {
33+
max-height: 100px;
34+
max-width: 200px;
35+
}
36+
37+
.sponsors-small li a {
38+
width: 200px;
39+
height: 120px;
40+
line-height: 120px;
41+
}
42+
.sponsors-medium li a {
43+
width: 278px;
44+
height: 141px;
45+
line-height: 141px;
46+
}
47+
.sponsors-large li a {
48+
width: 435px;
49+
height: 237px;
50+
line-height: 237px;
51+
}
52+
53+
ul.people {
54+
margin-left: 7px;
55+
margin-right: 7px;
56+
}
57+
.people li {
58+
display: block;
59+
width: 170px;
60+
margin: 0;
61+
padding: 0 15px 0 0;
62+
float: left;
63+
text-align: center;
64+
}
65+
.people img.avatar {
66+
display: block;
67+
width: 100%;
68+
margin: 0 0 10px 0;
69+
}
21.8 KB

src/site/resources/scripts/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
$(document).ready(function(){
22
$('#main-carousel').carousel({
3-
interval:5000
3+
interval:10000
44
});
55

66
$('#main-carousel-prev').on("click", function () {

src/site/site.xml

+6-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
44
<bannerLeft>
55
<name>${project.name}</name>
6-
<src>http://junit.org/images/junit-logo.png</src>
6+
<src>./images/junit-logo.png</src>
77
<href>http://junit.org/</href>
88
</bannerLeft>
99

@@ -23,18 +23,20 @@
2323
<body>
2424
<head>
2525
<link rel="stylesheet" href="@relativePath@/css/plain-links.css" />
26+
<link rel="stylesheet" href="@relativePath@/css/carousel.css" />
27+
<link rel="stylesheet" href="@relativePath@/css/junit-lambda.css" />
2628
</head>
2729
<breadcrumbs>
28-
<item name="JUnit" href="http://junit.org/" />
30+
<item name="JUnit 4" href="http://junit.org/" />
2931
</breadcrumbs>
3032

31-
<menu name="Overview">
33+
<menu name="JUnit 4">
3234
<item name="Introduction" href="index.html"/>
3335
<item name="Frequently asked questions" href="faq.html"/>
3436
<item name="Cookbook" href="cookbook.html"/>
3537
</menu>
3638

37-
<menu ref="reports" inherit="bottom" />
39+
<menu name="Project Documentation" ref="reports" inherit="bottom" />
3840

3941
</body>
4042

src/site/xdoc/index.xml

+13-4
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,17 @@
1414
<div id="carousel-main">
1515
<div id="main-carousel" class="carousel slide">
1616
<div class="carousel-inner">
17-
<div class="item active">
18-
<div style="height:20em" >
17+
<div class="item active">
18+
<div class="carousel-content" id="junit-lambda-teaser">
19+
<p><a href="http://junit.org/junit5/"><img src="images/junit5-banner.png" alt="JUnit 5" style="height:120px; margin-top:20px" /></a></p>
20+
</div>
21+
<div class="carousel-caption">
22+
<p><strong><a href="http://junit.org/junit5/">JUnit 5 is released:</a></strong></p>
23+
<p><a href="http://junit.org/junit5/">Explore the new release!</a></p>
24+
</div>
25+
</div>
26+
<div class="item">
27+
<div class="carousel-content">
1928
<pre class="prettyprint">
2029
@Test
2130
public void newArrayListsHaveNoElements() {
@@ -38,12 +47,12 @@
3847
</div>
3948
</div>
4049
<div class="item">
41-
<div style="height:20em">
50+
<div class="carousel-content">
4251
<pre class="prettyprint lang-java">
4352
@Test
4453
public void lookupEmailAddresses() {
4554
assertThat(new CartoonCharacterEmailLookupService().getResults("looney"), allOf(
46-
not(empty()),
55+
not(empty()),
4756
containsInAnyOrder(
4857
allOf(instanceOf(Map.class), hasEntry("id", "56"), hasEntry("email", "[email protected]")),
4958
allOf(instanceOf(Map.class), hasEntry("id", "76"), hasEntry("email", "[email protected]"))
+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<html>
2+
<head>
3+
<title>JUnit Lambda Crowdfunding Campaign</title>
4+
</head>
5+
<body>
6+
<h1>Crowdfunding JUnit Lambda <small>#fundJUnit</small></h1>
7+
<div>
8+
<iframe style="display:block; margin: 0 auto;" width="940" height="529" src="https://www.youtube-nocookie.com/embed/Ai6M5G90Mlg?rel=0" frameborder="0" allowfullscreen="true"></iframe>
9+
</div>
10+
<hr />
11+
<h2 align="center" class="muted">The crowdfunding campaign has successfully ended.<br/> Thank you all!</h2>
12+
<p align="center" style="font-size:150%">
13+
<a class="btn btn-large btn-success" href="https://www.indiegogo.com/projects/junit-lambda" role="button" style="font-size:100%">Campaign page on Indiegogo</a>
14+
<a class="btn btn-large btn-default" href="junit-lambda-contributors.html" role="button" style="font-size:100%">Campaign Contributors</a>
15+
<a class="btn btn-large btn-default" href="http://twitter.com/junitteam" role="button" style="font-size:100%">Follow @junitteam on Twitter</a>
16+
</p>
17+
<hr />
18+
<h2>Main Sponsors</h2>
19+
<p>Each of these companies will fund a developer for 6 weeks. They will not receive any money collected through the campaign.</p>
20+
<ul class="inline sponsors sponsors-large">
21+
<li><a href="http://www.andrena.de" title="andrena objects ag, Germany"><img src="images/junit-lambda/sponsors/andrena.png" /></a></li>
22+
<li><a href="http://www.heidelberg-mobil.com" title="Heidelberg Mobil International GmbH, Germany"><img src="images/junit-lambda/sponsors/heidelberg-mobil.png" /></a></li>
23+
<li><a href="http://www.namics.com" title="Namics (Deutschland) GmbH, Germany"><img src="images/junit-lambda/sponsors/namics.png" /></a></li>
24+
<li><a href="http://pivotal.io/" title="Pivotal Software, Inc., U.S.A."><img src="images/junit-lambda/sponsors/pivotal.png" /></a></li>
25+
</ul>
26+
<h2>Main Campaign Sponsor</h2>
27+
<p>This company will fund JUnit Lambda through the Main Sponsor campaign perk.</p>
28+
<ul class="inline sponsors sponsors-large">
29+
<li><a href="http://www.americanexpress.com/" title="American Express Company"><img src="images/junit-lambda/sponsors/amex.png" /></a></li>
30+
</ul>
31+
<h2>Campaign Contributors</h2>
32+
<p>Thank you to all other people, companies, and organizations that have contributed already! Please check out our <a href="junit-lambda-contributors.html">contributors page</a>.</p>
33+
<hr />
34+
<h2>Why JUnit needs your support</h2>
35+
<p>With 43 million downloads from Maven Central in 2014 <strong>JUnit</strong> still is the default testing library for Java. Millions of projects rely on it being both stable and allowing to test the latest features of the latest JDK. Moreover, many other testing libraries hook into JUnit as a way to enable IDE and build tool integration. Keeping JUnit in shape is a major task for those maintaining and evolving the library.</p>
36+
<p>As of today, none of the active JUnit maintainers are payed by their employer to do this work. Not surprisingly many unresolved issues have piled up and, what’s worse, there is no hope to get JUnit to support and make use of all the features in Java 8 any time soon. Since <i>Lambdas</i> are the most prominent of those features, we borrowed their name for the campaign.</p>
37+
<p>This campaign will allow a team of long-time JUnit committers, backed by a few experienced Java developers, to focus on getting JUnit ready for the years—and JDKs—to come.</p>
38+
<h2>Obstacles for evolving JUnit</h2>
39+
<p>A major design goal of JUnit has always been simplicity. JUnit 4 was released 10 years ago and has served its purpose very well. Since then many things have changed: Java got a couple of new versions and many new testing frameworks and ideas about testing have popped up.</p>
40+
<p>The basic design of JUnit, however, has remained the same since 2005. Some constructs like Rules were added, but at the same time backwards compatibility has always been and will continue to be the major goal of evolving JUnit. A number of issues have increasingly slowed down its evolution:</p>
41+
<ul>
42+
<li>
43+
<p><i>Runners</i> have found a widespread use and become a crucial concept to extend JUnit. Writing a custom runner is a very powerful way to customize how a test class is instantiated, how its children are collected, how they are run, reported, and so on. However, you can only have a single runner for each test class. For example, combining <i>SpringJUnit4ClassRunner</i> and <i>Parameterized</i> is not possible at the moment. We want to separate the different concerns, for which the runner is currently responsible, into separated interfaces.</p>
44+
</li>
45+
<li>
46+
<p>The current execution model requires all test cases to be known a-priori. This prevents the dynamic creation of test cases as response to observed behaviour during test execution. This also means that you cannot use Streams (Java 8), e.g. in combination with <i>@Parameters</i>, to create your test data.</p>
47+
</li>
48+
<li>
49+
<p>All IDEs and build tools include support for JUnit. While that makes it really easy to execute JUnit tests, on the flip side the IDEs and build tools are tightly coupled to JUnit internals. Some IDEs and build tools use internal JUnit classes or even reflection to circumvent the absence of a JUnit API that does what they want. For example, there is no extensible way to link to a test location in case it is not a Java method. Those “tricks” complicate the evolution of JUnit tremendously, and even render some changes virtually impossible. Therefore, we want to closely work with IDE and build tool developers to add features their users need in an extensible way.</p>
50+
</li>
51+
</ul>
52+
<h2>The Vision</h2>
53+
<p>We’ve identified two main areas to focus on during the upcoming JUnit overhaul:</p>
54+
<ul>
55+
<li>
56+
<p><strong>Decouple test execution and reporting from test definition and provisioning</strong>: This will greatly simplify further evolution of JUnit and allow users to mix test specifications from different test libraries—like JUnit, Spock, ScalaTest and so on—more easily. Other testing libraries should only depend on the test execution/reporting API of JUnit, not on the test definition API (e.g. Runner).</p>
57+
</li>
58+
<li>
59+
<p><strong>Rethinking the JUnit’s extensibility story</strong>: Runners, Rules, subclassing and other techniques will be revamped into a cohesive set of constructs to enhance JUnit and to allow—if possible—the seamless combination of individual extensions.</p>
60+
</li>
61+
<li>
62+
<p><strong>Making use of Java 8 features (Lambdas, Streams, Interface default methods) for better assertions, generating test cases, formulating test hierachies, testing asynchronous code and other stuff</strong>: We will provide those extensions in additional libraries to keep the JUnit core compatible with older JDKs.</p>
63+
</li>
64+
</ul>
65+
<p>All development will happen openly on <a href="https://github.com/junit-team/junit">GitHub</a> in order to foster early feedback and detect problems as soon as possible.</p>
66+
</body>
67+
</html>

0 commit comments

Comments
 (0)