Commit Graph

663 Commits (05fbd5dc467af66c65c4a16382f66ba69ca2ac07)

Author SHA1 Message Date
Phillip Webb 77f9bb09ca Further Polish Mockito 2 support
See gh-7770
8 years ago
Phillip Webb 0cc313f224 Polish 8 years ago
Stephane Nicoll c28ff4314c Upgrade to Mockito 2
Closes gh-7770
8 years ago
Phillip Webb 4bfecc1307 Merge branch '1.5.x' 8 years ago
Phillip Webb cc7c2ebb87 Migrate to android-json
Migrate from `org.json:json` to the clean room Apache 2.0 licensed
version that was developed for Android.

Fixes gh-5929
8 years ago
Phillip Webb 53f1df86a2 Merge branch '1.5.x' 8 years ago
Phillip Webb aacf5d660f Update copyright year for changed files 8 years ago
Spring Buildmaster 9057f9ae1f Next development version 8 years ago
Phillip Webb 1f417997f3 Merge branch '1.5.x' 8 years ago
Phillip Webb 6121208cbb Polish formatting 8 years ago
Phillip Webb 4b9cba351b Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb bd74c3d327 Polish formatting 8 years ago
Andy Wilkinson 4edab86ba2 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 387a406aad Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson b3e0a37197 Remove unwanted System.out calls in test code 8 years ago
Spring Buildmaster e712a9ba8c Next Development Version 8 years ago
Andy Wilkinson 9a70a4e261 Merge branch '1.5.x' 8 years ago
Andy Wilkinson d7ef48a9b6 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 2c4f39045f Stop relying on Artemis's on-demand queue creation in CLI JMS test
Artemis's on-demand queue cretaion appears to be rather flakey,
sometimes failing with a NullPointerException.

This commit ensures that the queue used by the sample is created
during start up rather than on demand. This will hopefully make the
test that runs the sample more robust.

Closes gh-7346
8 years ago
Andy Wilkinson becf225911 Simplify CLI integration auto-config test by removing use of Artemis
Artemis seems to be a bit flakey which is causing sporadic build
failures, for example due to an NPE in Artemis' code.
8 years ago
Andy Wilkinson 4486d2d209 Upgrade to Reactor 3.0 and start building against SI 5.0 snapshots
Closes gh-7301
See gh-7029
8 years ago
Andy Wilkinson 4e30da35ad Merge branch '1.5.x' 8 years ago
Andy Wilkinson aeaaaaf903 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson ae4b8dc420 Ensure that CLI-based tests automatically import new TestRestTemplate
See gh-6973
8 years ago
Andy Wilkinson fc0d4e45a5 Update CLI test auto-configuration to 1.4's new test infrastructure
Closes gh-6973
8 years ago
Andy Wilkinson 1186eb3250 Merge branch '1.5.x' 8 years ago
Andy Wilkinson 9b6c9eeedd Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 7e8c5f5940 Silence CLI dependency resolution progress reporting when run with -q
Closes gh-7247
8 years ago
Dave Syer a02fd93d18 Merge branch '1.5.x' 8 years ago
Dave Syer e97b703a20 Additionally make package method public 8 years ago
Dave Syer 13a02a6e55 Merge branch '1.5.x' 8 years ago
Dave Syer f62abade90 Make DependencyResolutionContext empty by default
It's more useful as a building block for other tools that way,
and it's easy to add the spring boot dependencies using public
methods.
8 years ago
Phillip Webb 01900c8342 Merge branch '1.5.x' 8 years ago
Phillip Webb d818a09ed8 Polish 8 years ago
Stephane Nicoll 264d8442da Fix build 8 years ago
Stephane Nicoll c5cc626d48 Remove remote shell support
See gh-7044
8 years ago
Stephane Nicoll 4119da1d9e Merge branch '1.5.x' 8 years ago
Stephane Nicoll 2d75cc79c0 Polish contribution
Closes gh-6367
8 years ago
Henri Kerola d07f689446 "spring war" should copy resources to WEB-INF/classes
Closes gh-6351
8 years ago
Andy Wilkinson f82dc8e043 Upgrade to JMS API 2.0
Closes gh-7049
8 years ago
Andy Wilkinson 3e058e038f Merge branch '1.5.x' 8 years ago
Andy Wilkinson cd45ce9104 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 1bb5dc205d Update samples to use Artemis in place of HornetQ
Closes gh-7057
8 years ago
Stephane Nicoll 6643ec3713 Next development version 8 years ago
Andy Wilkinson 6fb44b2410 Fix TestCommandIntegrationTests after removal of deprecated test support
See gh-6971
See gh-6973
8 years ago
Stephane Nicoll 6bd670edbc Initiate 1.4.x branch 8 years ago
Spring Buildmaster 7e9ed5e1a7 Next Development Version 8 years ago
Andy Wilkinson 472117299e Add some integration tests for the CLI’s quiet mode
See gh-6918
8 years ago
Phillip Webb 7299976d12 Fix banner property used in "quiet" mode
Fixes gh-6918
8 years ago
Dave Syer b5294a48b2 Use context class loader instead of one-off for command location
This works, and feels like the right thing to do, since there is no
guarantee that extensions won't in turn use ServiceLoader for things
that we haven't yet anticipated.

Fixes gh-6829. Cc @wilkinsona in case he has an opinion.
8 years ago
Johnny Lim 4b9f6869f0 Polish
Closes gh-6817
8 years ago
Andy Wilkinson 270530c4fd Fix class loading problems when CLI extensions are installed
Previously, CLI extensions where installed into the CLI's lib
directory which meant that they were on the class path of the app
class loader. Following the change to an executable jar's packaging,
this meant that they could not see classes in the CLI and a
ClassNotFoundException would result.

This commit updates the CLI to install extensions into lib/ext and
load commands using a new ClassLoader that has all of the jars in
lib/ext on its class path and that uses the launch class loader as
its parent.

Closes gh-6615
8 years ago
nagarajasr 0996615ac3 Apply sytem properties on HttpClient
Closes gh-6600
8 years ago
Stephane Nicoll 81094e4b23 Merge branch '1.3.x' 8 years ago
Stephane Nicoll f186008d1f Fix Groovy version in INSTALL.txt
This commit uses maven filtering to set the Groovy version rather than an
hard-coded value that can be easily outdated.

Closes gh-6530
8 years ago
Spring Buildmaster 334baaeffd Next development version 8 years ago
Spring Buildmaster a89ef5df6e Next Development Version 8 years ago
Spring Buildmaster 2216369348 Next Development Version 8 years ago
Andy Wilkinson c24c5aeb3b Upgrade to Maven Assembly Plugin 2.6
Closes gh-6291
9 years ago
Andy Wilkinson 92bb24e365 Avoid synchronizing on this and use an internal monitor instead
Where possible, code that previously synchronized on this (or on the
class in the case of static methods) has been updated to use an
internal monitor object instead. This allows the locking model that's
employed to be an implementation detail rather than part of the
class's API.

Classes that override a synchronized method continue to declare
the overriding method as synchronized. This ensures that locking
is consistent across the superclass and its subclass.

Closes gh-6262
9 years ago
Phillip Webb 99c6194e17 Don't use MockitoJUnitRunner
Replace `@RunWith(MockitoJUnitRunner.class)` with direct Mockito
initialization since the running doesn't support parallel test
execution.
9 years ago
Vedran Pavic a1ac934bee Ignore special variable related JVM output in CommandLineInvoker
Closes gh-5883
9 years ago
Spring Buildmaster 819a9574a6 Next Development Version 9 years ago
Andy Wilkinson 38ad420810 Merge branch '1.3.x' 9 years ago
Andy Wilkinson d77d3ff236 Use a SHA256 checksum in the Homebrew formula
Closes gh-5885
9 years ago
Spring Buildmaster 376bbe68d8 Next Development Version 9 years ago
Phillip Webb 609cb52cd4 Move to relocated web classes
Refactor code to move from recently deprecated classes.

Closes gh-5822
9 years ago
Stephane Nicoll 93c495f69a Remove pid file
This shouldn't have been committed.
9 years ago
Phillip Webb 2679a6f0c6 Polish 9 years ago
Johnny Lim b914b4aa52 Remove the second parameter of substring() if possible
Closes gh-5720
9 years ago
Jakub Narloch 64989ae192 Replacing StringBuffer with lock-free StringBuilder
Closes gh-5727
9 years ago
Andy Wilkinson 0c78b2fd3d Handle fully-qualified Windows paths correctly in the CLI
Previously, the CLI would always use the class loader to try to locate
a source file. This was contrary to the SourceOptions javadoc which
states that the class loader is “used to try and load files that are
not found in the local filesystem”. This provide to be problematic on
Windows when a fully-qualified source file was supplied. The driver
letter colon slash (e.g. c:/) at the start of the path is considered
invalid for a class path resource by URLClassPath.Loader resulting in an
IllegalArgumentException being thrown.

A workaround for this URLClassPath behaviour was added in a71c9b5d. It
was removed as part of reworking LaunchedURLClassLoader to use a
conventional delegation model in 87fe0b2a. It was then reinstated in
cc140b2c. This work around is undesirable as it causes
LaunchedURLClassLoader’s behaviour to diverge from URLClassLoader’s
behaviour (this is contrary to the comments in the test added in
a71c9b5d which incorrectly tests the two class loader with different
class paths. If the two class loaders are created with the same class
path then their behaviour is the same).

This commit updates SourceOptions to make its behaviour match its
javadoc so that a search of the class path is only performed if the
filename doesn’t exist on the filesystem. Furthermore, when running on
Windows, if the filename is an absolute path no further searching is
performed as the path cannot reliably be used to search the class path
due to the behaviour of URLClassPath.Loader when given a path that
is an absolute file path on Windows. This ensures that the user is
presented with an error message indicating that the file could not be
found.

Closes gh-5650
9 years ago
Phillip Webb 6d23ce2ada Polish 9 years ago
Phillip Webb 893a6c32f3 Upgrade to checkstyle 6.17
Fixes gh-5547
9 years ago
Phillip Webb c28f552883 Migrate SpringJUnit4ClassRunner to SpringRunner
Replace all existing SpringJUnit4ClassRunner references with the new
SpringRunner alias.

Fixes gh-5292
9 years ago
Phillip Webb 2f815a907a Migrate existing tests from deprecated package
Update the existing tests to use the relocated `spring-boot-test`
classes. Restructuring was achieved using the following command:

find . -type f -name '*.java' -exec sed -i '' \
-e s/org.springframework.boot.test.ConfigFileApplicationContextInitializer/\
org.springframework.boot.test.context.ConfigFileApplicationContextInitializer/g \
-e s/org.springframework.boot.test.EnvironmentTestUtils/\
org.springframework.boot.test.util.EnvironmentTestUtils/g \
-e s/org.springframework.boot.test.IntegrationTest/\
org.springframework.boot.test.context.IntegrationTest/g \
-e s/org.springframework.boot.test.IntegrationTestPropertiesListener/\
org.springframework.boot.test.context.IntegrationTestPropertiesListener/g \
-e s/org.springframework.boot.test.OutputCapture/\
org.springframework.boot.test.rule.OutputCapture/g \
-e s/org.springframework.boot.test.SpringApplicationConfiguration/\
org.springframework.boot.test.context.SpringApplicationConfiguration/g \
-e s/org.springframework.boot.test.SpringApplicationContextLoader/\
org.springframework.boot.test.context.SpringApplicationContextLoader/g \
-e s/org.springframework.boot.test.SpringBootMockServletContext/\
org.springframework.boot.test.mock.web.SpringBootMockServletContext/g \
-e s/org.springframework.boot.test.TestRestTemplate/\
org.springframework.boot.test.web.client.TestRestTemplate/g \
-e s/org.springframework.boot.test.WebIntegrationTest/\
org.springframework.boot.test.context.web.WebIntegrationTest/g {} \;

See gh-5293
9 years ago
Phillip Webb 644ae2c21a Merge branch '1.3.x' 9 years ago
Phillip Webb 5e722dae6a Polish 9 years ago
Dave Syer 120a39a689 Merge branch '1.3.x' 9 years ago
Dave Syer baf7dda05a Accumulate state in a local variable, not a field in the instance
State is accumulating unnecessarily in AST tranformation instances.
We can fix the ones we have implemented so far just by using a
local variable and passing it into the methods where it is used.
All the methods are private so this change is safe in a point release.

Fixes gh-5283
9 years ago
Dave Syer 0dd3531f77 Fix apostrophe 9 years ago
Spring Buildmaster 225d877ab9 Next Development Version 9 years ago
Andy Wilkinson 44ddfcc7fa Upgrade copyright headers of all files changed in 2016 9 years ago
Phillip Webb 89b7704977 Extract spring-boot-test.jar
Relocate the `org.springframework.boot.test` package from the
`spring-boot.jar` to `spring-boot-test.jar`.

Fixes gh-5184
9 years ago
Andy Wilkinson 87fe0b2ade Use a conventional delegation model in LaunchedURLClassLoader
When an application is run as an executable archive with nested jars,
the application's own classes need to be able to load classes from
within the nested jars. This means that the application's classes need
to be loaded by the same class loader as is used for the nested jars.
When an application is launched with java -jar the contents of the
jar are on the class path of the app class loader, which is the
parent of the LaunchedURLClassLoader that is used to load classes
from within the nested jars. If the root of the jar includes the
application's classes, they would be loaded by the app class loader
and, therefore, would not be able to load classes from within the
nested jars.

Previously, this problem was resolved by LaunchedURLClassLoader being
created with a copy of all of the app class laoder's URLs and by
using an unconventional delegation model that caused it to skip its
parent (the app class loader) and jump straight to its root class
loader. This ensured that the LaunchedURLClassLoader would load both
the application's own classes and those from within any nested jars.
Unfortunately, this unusual delegation model has proved to be
problematic. We have seen and worked around some problems with Java
Agents (see gh-4911 and gh-863), but there are others (see gh-4868)
that cannot be made to work with the current delegation model.

This commit reworks LaunchedURLClassLoader to use a conventional
delegate model with the app class loader as its parent. With this
change in place, the application's own classes need to be hidden
from the app class loader via some other means. This is now achieved
by packaging application classes in BOOT-INF/classes (and, for
symmetry, nested jars are now packaged in BOOT-INF/lib). Both the
JarLauncher and the PropertiesLauncher (which supports the executable
jar layout) have been updated to look for classes and nested jars in
these new locations.

Closes gh-4897
Fixes gh-4868
9 years ago
Phillip Webb 962a598531 Use AssertJ in spring-boot-cli
See gh-5083
9 years ago
Phillip Webb f276ff4bd0 Polish 9 years ago
Stephane Nicoll 83f5928e8d Update copyright header 9 years ago
Johannes Edmeier 0739717a7f Remove closure-execution from OptionHandler
It seems that the code for executing a groovy closure from the
OptionHandler is never executed and therefore not needed.

Removing the code gives the benefit that the Groovy-classes are not
needed if someone else wants to use the spring-boot-cli infrastructure to
run his own cli interface.

Closes gh-4411
9 years ago
Stephane Nicoll cafe1dc4c6 Polish contribution
Fix additional use of \n

Closes gh-4707
9 years ago
mnhock e0ec607735 Use a platform-specific line separator
See gh-4707
9 years ago
Phillip Webb fbaf209240 Move master to 1.4.0.BUILD-SNAPSHOT 9 years ago
Spring Buildmaster 504d3e97ba Next development version 9 years ago
Andy Wilkinson c4f756daee Fix MavenSettings’ handling of profiles activated by a file
Previously, MavenSettings used a FileProfileActivator with no
PathTransformer. If a settings.xml file contains a file-activated
profile this would result in an NPE within Maven. This was made worse
by the NPE not being included in the resulting failure message which
hampered diagnosis of the problem.

This commit updates MavenSettings to configure its FileProfileActivator
with a PathTransformer. It also improves the failure message that’s
created from any problems that are reported by Maven while determining
the active profiles to include a problem’s exception if it has one.

Closes gh-4826
9 years ago
Andy Wilkinson 93ef795159 More use entrySet() rather than using keySet() and get(key)
This commit replaces some more occurrances of keySet() and get(key)
with more efficient usage of the map's entry set.

See gh-4813
9 years ago
Phillip Webb 7397dbaf57 Allow ExitCodeGenerator to be used on Exceptions
Update exit code support to allow the ExitCodeGenerator interface to
be placed on an Exception. Any uncaught exception implementing the
interface and returning a non `0` status will now trigger a System.exit
with the code.

Fixes gh-4803
9 years ago
Spring Buildmaster 8db59059a5 Next Development Version 9 years ago
Kirill Vlasov 786aacf2e9 Use Collections.isEmpty() instead of .size() == 0
Ensure that Collections.isEmpty() is used to check if there are no
elements in a collections. This is more explicit and can be faster than
calling .size().

Closes gh-4783
9 years ago
Phillip Webb 0489a3b4de Polish 9 years ago
Andy Wilkinson 2efc4b8332 Add tests to verify improved exception message formatting 9 years ago