Commit Graph

2487 Commits

Author SHA1 Message Date
Dave Syer 772df9bea7 Add inputs to gradle bootRepackage task
See gh-1113
2014-06-20 22:25:11 +01:00
Phillip Webb 0768402d49 Merge pull request #1129 from ttddyy/document-remote-debug-gradle
* document-remote-debug-gradle:
  Add how-to remote debug from Gradle
2014-06-20 11:58:39 -07:00
Tadaya Tsuyukubo 5fbe5d4120 Add how-to remote debug from Gradle
Add a section to the reference documentation "how-to" about remote
debugging a Gradle started app.

Fixes gh-1129
2014-06-20 11:58:08 -07:00
Phillip Webb dbfd785e93 Merge branch 'gh-1119'
Improve fat JAR performance.

See gh-1119
2014-06-20 10:30:01 -07:00
Phillip Webb 20fb55ea47 Polish 2014-06-20 10:29:47 -07:00
Phillip Webb a3ceaf63e2 Improve performance of fat jar loading
Tweak 'fat jar' handling to generally improve performance:

- Allow JarURLConnection to throw a static FileNotFoundException when
  loading classes. This exception is thrown many times when attempting
  to load a class and is silently swallowed so there is no point in
  providing the entry name.
- Expose JarFile.getJarEntryData(AsciiBytes) and store AsciiBytes in
  the JarURLConnection. Previously AsciiBytes were created, discarded
  then created again.
- Use EMPTY_JAR_URL for the JarURLConnection super constructor. The URL
  is never actually used so we can improve performance by using a
  constant.
- Extract JarEntryName for possible caching. The jar entry name
  extracted from the URL is now contained in an inner JarEntryName
  class. This could be cached if necessary (although currently it is
  not because no perceivable performance benefit was observed)

Fixes gh-1119
2014-06-20 10:29:47 -07:00
Phillip Webb a8777eda76 Add JarFile caching
Cache root jar files in the Handler and also store nested jar files in
the JarEntryData.

See gh-1119
2014-06-20 10:29:47 -07:00
Phillip Webb 88195292dd Reuse previously parsed entries for filtered JARs
Update JarFile to reuse the previously parsed entries when creating
filtered jars. This saves needing to re-scan the underlying file to
recreate a subset of entries.

See gh-1119
2014-06-20 10:29:47 -07:00
Phillip Webb e9aab1e90c Drop JarEntryFilters from constructor and methods
Drop JarEntryFilter arguments from the JarFile constructor and the
getNestedJarFile methods. Filtered JarFiles can still be obtained by
using the getFilteredJarFile() method.

This helps simplify the code a little and will make it easier to add
caching.

See gh-1119
2014-06-20 10:29:47 -07:00
Phillip Webb 378d38e2e5 Polish doc formatting 2014-06-20 10:29:04 -07:00
Phillip Webb bfe4240ed2 Polish 2014-06-20 10:29:04 -07:00
Phillip Webb 445589a5d2 Polish RabbitMQ Changes
Fix the formatting which was messed up in commit ad1636fd. Also
simplify the RabbitProperties.setVirtualHost logic a little

See gh-1128
2014-06-20 10:29:04 -07:00
Phillip Wirth ad1636fd34 RabbitMQ virtual hosts can how start with a slash
The autoconfig strips out slashes where necessary to make a valid
hostname

Fixes gh-1128
2014-06-20 17:46:54 +01:00
Dave Syer 3411995736 Revert BootRunTask changes since they don't add anything
(Was an attempt to get Cygwin to recognise the interrupt, but it seems
to be doomed so not worth having the extra code in there really.)
2014-06-20 14:17:30 +01:00
Dave Syer e088ecd1bc Re-order shutdown hook in BootRunTask 2014-06-20 14:17:30 +01:00
Christian Dupuis b5d65bfc56 Delegate shell access decision to bean named "shellAccessDecisionManager"
In order to solve issues with multiple or incompatible AccessDecisionManagers, the CRaSH integration will now only delegate to an explicit shellAccessDecisionManager bean refs #1121
2014-06-20 13:58:52 +02:00
Dave Syer 9d5c371cf1 Clarify Maven plugin usage 2014-06-20 12:48:55 +01:00
Dave Syer 88379e2aa3 Check if response is committed before tryying to forward
It' sthe best we can do, but the container seems to still use our error page
(it just can't have the status code that we asked for).

Fixes gh-748
2014-06-20 12:15:10 +01:00
Dave Syer a8663586dc Trap SIGINT in Gradle plugin 2014-06-20 11:27:56 +01:00
Dave Syer 1e5882b19c Make copy of job parameters before weeding out non-identifying ones
Fixes gh-1125
2014-06-19 18:15:44 +01:00
Dave Syer c04deec6ee Move JMS docs under 'Messaging' 2014-06-19 17:42:04 +01:00
Dave Syer c6175073ae Be slightly more defensive in DataSource initialization
Adding an Order to the BeanPostProcessor and catching an exception
are enough to get a simple web app with @EnableGlobalMethodSecurity
and JDBC user details running. It actually doesn't solve an underlying
problem in Spring Security, but I'll deal with that separately.

See gh-1115
2014-06-19 14:26:22 +01:00
Dave Syer af825fa439 Clarify docs on Gradle configuration 2014-06-19 12:21:02 +01:00
Phillip Webb 34a32991fa Be defensive about solr classes required
Update SolrAutoConfiguration to specifically require HttpSolrServer
and CloudSolrServer classes rather than the generic SolrServer.

This prevents the rather cryptic "@ConditionalOnMissingBean annotations
must specify at least one bean" error that can occur if an earlier
version of solr happens to be on the classpath (as is the case when
hibernate-search is used).

Fixes gh-1098
2014-06-18 16:30:39 -07:00
Phillip Webb a2efe17fc9 Polish 2014-06-18 16:30:22 -07:00
Phillip Webb 46c46dbd0c Refine Spring Social auto-configuration
Refine auto-configuration for Spring Social to:

- Only auto-configure FB/Twitter/LinkedIn if the `app-id` property is
  set.
- Only configure ConnectController and ProviderSignInController if
  there is a ConnectionFactoryLocator.
- Auto-configure Spring Social's SpringSocialDialect for Thymeleaf if
  Thymeleaf is present.
- Added several tests around Spring Social auto-configuration.

Fixes gh-1118
2014-06-18 13:46:19 -07:00
Phillip Webb 179e1558f6 Polish 2014-06-18 12:48:42 -07:00
Dave Syer 2433f721bc Add 'classifier' property to Gradle plugin
The default behaviour doesn't change with this commit, but now
the user has the option to specify a 'classifier' property
either in springBoot { classifier = 'exec' } (i.e. globally
for all repackage tasks) or in each repackage task, e.g.
bootRepackage { classifier = 'exec' }. In that case the original
archive is not overwritten but copied into <file>-<classifier>.jar
(or .war etc.) and then enhanced.

Fixes gh-1113, fixes gh-141 also I believe.
2014-06-18 16:06:09 +01:00
Christian Dupuis edffabeee4 Make sure Spring related security beans for the shell are not installed if not wanted
refs #1121
2014-06-18 16:58:07 +02:00
Dave Syer f8e847a6fc Change ordering of DataSourceInitializer a bit
It needs to run as soon as the DataSource is available really otherwise
anything else that depends on the DataSource (like Security JDBC
initializers) might fail when it tries to use it.

One change from 1.1.1 is that if you have a schema.sql you had better
make sure your data.sql talks to the same tables. In 1.1.1 you could
sometimes get away with letting Hibernate initialize the tables for
your data.sql and *also* have a schema.sql. This was fragile and doomed
to fail eventually if the DataSourceInitializer somehow got
initialized earlier (e.g. through a @DependsOn), so in the spririt
of honesty being the best policy we explicitly disallow it now.

Fixes gh-1115
2014-06-18 15:19:53 +01:00
Dave Syer 7fc1f19389 Fix WS sample to use a random port 2014-06-18 12:48:26 +01:00
Dave Syer f0393f9ca6 Remove deprecated use of Compile to work with Gradle 2.0+
The class Compile was deprecated and will be removed in Gradle 2.0 (it is
already removed in the release canidate).

Instead we should use JavaCompile. Fixes gh-1066.
2014-06-18 12:48:26 +01:00
Dave Syer e39fafcc33 Add JDBC user details to web-secure sample
See gh-1115
2014-06-18 12:48:26 +01:00
Phillip Webb 8a1279315e Move ApplicationContextTestUtils to src/test
Move ApplicationContextTestUtils from src/main to src/test since it
is probably of limited use to others.

Fixes gh-1034
2014-06-17 12:14:24 -07:00
Phillip Webb 25eb6fb81a Polish 2014-06-17 12:14:24 -07:00
Christian Dupuis b439d3522e Fix VanillaHealthIndicator javadoc 2014-06-17 19:57:00 +02:00
Christian Dupuis 3b27427a78 Merge branch 'gesellix-healthcheck-docs' 2014-06-17 19:55:01 +02:00
Tobias Gesellchen 21846f3bc7 update javadoc and test method to reflect current implementation 2014-06-17 18:10:24 +02:00
Stephane Nicoll 2bff12a7b5 Better support for HornetQ embedded broker
Prior to this commit it was not safe to start several contexts
using the HornetQAutoConfiguration in the same VM. Each context
was trying to start their own HornetQ embedded broker by default but
only the first was really starting. Worse, the various InVM connection
factories were all silently connecting to the first broker.

This commit introduces a new "serverId" property that is an auto-
incremented integer by default. This identifies the server to connect
to and allows each context to start its own embedded broker in total
isolation of other contexts.

This commits makes it possible for a context to disable its own
embedded broker and connect to an existing one, potentially started
by another context.

Fixes gh-1063
2014-06-17 15:02:46 +02:00
Stephane Nicoll f6ae300ec3 Fix parsing of properties in @IntegrationTest
This commit reuses the standard behavior provided by Properties for
parsing keys rather than parsing the keys ourselves. This provides a
consistent features set regardless of where the property is defined.

Fixes gh-1110
2014-06-17 14:57:04 +02:00
Dave Syer 59e177d298 Default endpoints.jmx.domain to the spring.jmx.default_domain 2014-06-17 13:01:04 +01:00
Dave Syer 13076b8792 Order logger output by short classname
Fixes gh-1067
2014-06-17 12:28:28 +01:00
Dave Syer 82cacf4ea9 Clarify main class finder functionality in Gradle plugin
See gh-1072
2014-06-17 12:15:01 +01:00
Dave Syer 0a3612da59 Enhance @GrabMetadata documentation a bit
Fixes gh-320, since this is the officially supported mechanism
for changing the version of Spring (and other dependencies).
2014-06-17 11:57:54 +01:00
Dave Syer 18d8c4a8d9 Add additional samples to README
Fixes gh-1068
2014-06-17 11:28:34 +01:00
Stephane Nicoll b646231327 Properly close context hierarchy in tests
Prior to this commit, some tests were creating a parent/child
relationship but were only closing the child context. This could
be an issue with the autoconfig module as a lot of auto-config
kicks in by default.

This commit adds a new test utility designed to properly handle
those situations. Updated tests that were creating a context
hierarchy to benefit from that.

Fixes gh-1034
2014-06-17 10:58:33 +01:00
Dave Syer f83395b40c Correct docs on BeanNameViewResolver (Fixes gh-1078) 2014-06-17 10:39:27 +01:00
Dave Syer 4a40e8f833 Support for main class detection in installApp
I'm sure someone can do a better job of this, but here's a proposal
that works. It uses our FindMainTask to set the relevant properties
if theu are missing in the application plugin.

Fixes gh-1105
2014-06-17 10:11:19 +01:00
Phillip Webb 3a8a127285 Implement simpler exclusion logic for Gradle
Simplify the exclusion logic used in Gradle by implementing implicit
exclusions rather than trying to detect transitive excludes.

This commit reverts much of the code originally included to fix gh-1047
which adds far too much complexity to the build and still doesn't solve
the underlying issue.

Fixes gh-1103
2014-06-16 16:54:48 -07:00
Dave Syer f83c6aa7c1 Grab main class from "run" task if it exists
Fixes gh-1099
2014-06-16 12:43:35 -07:00