Commit Graph

1395 Commits

Author SHA1 Message Date
Lukas Eder
c958209a9d [#2466] Add a public DefaultDSLContext implementation that can be used
by users to override the default behaviour
2013-05-22 20:22:26 +02:00
Lukas Eder
f53ecbcd67 [#1737] First annotation draft 2013-05-22 20:15:57 +02:00
Lukas Eder
778dcf823e [#2469] NullPointerException in AbstractResultQuery.fetchOneArray() 2013-05-20 20:42:00 +02:00
Lukas Eder
f0cc331393 Fixed whitespace 2013-05-20 20:38:59 +02:00
Lukas Eder
bd8a96714d Merge branch 'master' of git@github.com:jOOQ/jOOQ.git 2013-05-20 20:34:39 +02:00
보롱킴
fc99bb2fb6 fix AbstractResultQuery.fetchOneMap() NPE bug 2013-05-20 00:52:07 +09:00
Lukas Eder
f1754f5ffa [#2468] API bug: MergeNotMatchedSetStep.set(Field, Select) returns
MergeMatchedSetMoreStep instead of MergeNotMatchedSetMoreStep
2013-05-18 16:38:27 +02:00
Lukas Eder
163a60053f Added missing @Support annotations to DeleteConditionStep 2013-05-18 11:25:21 +02:00
Lukas Eder
013fafbeae [#1737] Annotate API with grammar information and generate BNF
pseudo-notation for the manual - Added annotations
2013-05-17 19:41:35 +02:00
Lukas Eder
8718afb609 Fixed formatting 2013-05-17 09:34:03 +02:00
Lukas Eder
a43082d1aa [#2265] Removed delete again, for now. This seems to be very complex to
get right.
2013-05-12 10:34:46 +02:00
Lukas Eder
dce7021ca6 [#2265] Logging was moved to CursorResultSet 2013-05-11 12:47:15 +02:00
Lukas Eder
b729a58a07 [#2265] Added prototype implementation for Record.delete() 2013-05-11 12:45:36 +02:00
Lukas Eder
9946b236e7 [#2265] Added logging to CursorImpl.CursorResultSet.updateXXX() methods 2013-05-11 12:44:38 +02:00
Lukas Eder
e33b56a863 [#2265] Let UpdatableRecord.refresh() use ResultSet, if available 2013-05-11 11:14:46 +02:00
Lukas Eder
7032af7c79 Refactored some reusable code 2013-05-11 10:30:46 +02:00
Lukas Eder
2df2a478a6 [#2265] Added Record.refresh(Field...) and more test cases 2013-05-11 10:23:54 +02:00
Lukas Eder
712a0f2f62 [#2265] Add Result.store(), delete(), refresh(), to allow for
batch-synchronisation of Records contained in a Result - Prototype
implementation
2013-05-11 10:11:47 +02:00
Lukas Eder
342c769309 Minor optimisation: Avoid &= and |= where possible 2013-05-11 09:46:46 +02:00
Lukas Eder
433012e48b [#1846] Added more integration tests related to Record.changed() and
Record.original()
2013-05-10 18:16:43 +02:00
Lukas Eder
c7b3782a69 [#1846] Added more test cases 2013-05-10 17:59:23 +02:00
Lukas Eder
2303ec45c6 [#2459] Add Record.resultSet() and Record.close() to handle the
referenced ResultSet's lifecycle
2013-05-10 17:58:49 +02:00
Lukas Eder
fdf8394796 [#2458] Add Cursor.closesAfterFetch() to indicate whether a Cursor
auto-closes the underlying ResultSet after it has fetched all records
2013-05-10 17:56:54 +02:00
Lukas Eder
8479ec8b17 [#1846] Added more Javadoc 2013-05-10 17:27:11 +02:00
Lukas Eder
cfce76a651 [#1846] Add ResultQuery.keepResultSet() to indicate whether to keep
references to a potentially updatable JDBC ResultSet from Result
2013-05-10 16:57:18 +02:00
Lukas Eder
a580bebbfe [#2457] Add Result.resultSet() and Result.close() to handle the
referenced ResultSet's lifecycle
2013-05-10 16:51:40 +02:00
Lukas Eder
af415ba0a0 Parameter rename 2013-05-10 16:47:15 +02:00
Lukas Eder
7644056e54 [#2434] Add Field.compare(Comparator, Select) and
Field.compare(Comparator, QuantifiedSelect) to allow for more dynamic
SQL
2013-05-10 13:50:08 +02:00
Lukas Eder
0ab5128d62 [#2434] Merged the internal SubqueryComparator with the public
Comparator. Added a couple of flags indicating whether a Comparator can
be used with subselects / quantifiers
2013-05-10 13:38:38 +02:00
Lukas Eder
503b986f11 [#2355] Add support for Postgres / HSQLDB's TRUNCATE [...] RESTART /
CONTINUE IDENTITY
2013-05-10 12:49:51 +02:00
Lukas Eder
1665723473 [#2355] [#2357] Add support for Postgres' TRUNCATE [...] CASCADE
statement
2013-05-10 12:29:50 +02:00
Lukas Eder
dcd2390d5c Fixed a regression introduced by a recent change 2013-05-09 16:12:06 +02:00
Lukas Eder
298cb42d65 [#2443] AbstractStoreQuery.execute() doesn't correctly operate on the
Configuration's ConnectionProvider in SQLite IDENTITY fetching queries
2013-05-09 15:40:31 +02:00
Lukas Eder
2162af594e [#2450] Cannot set precision on TINYINT, SMALLINT, INT, BIGINT data
types - Restored some logic from previous commit
2013-05-09 15:35:19 +02:00
Lukas Eder
94238f0157 [#2450] Cannot set precision on TINYINT, SMALLINT, INT, BIGINT data
types
2013-05-09 14:58:27 +02:00
Lukas Eder
6f490e8f92 [#2449] JDBCDatabase doesn't use DataType.length(), precision(), and
scale()
2013-05-09 14:58:06 +02:00
Lukas Eder
d3dba89e7d [#2448] DSLContext.meta() returns Table objects for Oracle SYNONYMS,
without providing columns
2013-05-09 14:24:34 +02:00
Lukas Eder
cadd425431 [#2448] DSLContext.meta() returns Table objects for Oracle SYNONYMS,
without providing columns
2013-05-09 14:20:23 +02:00
Lukas Eder
ecc31b6648 [#2447] Tables collected through DSLContext.meta() return duplicate
columns if multi-schema environments contain identical tables
2013-05-09 14:06:01 +02:00
Lukas Eder
8e939d8bcc [#2310] Add DSL.using(Connection) and DSL.using(Connection,
Settings) which auto-detect the SQLDialect from the jdbc url
2013-05-09 12:43:23 +02:00
Lukas Eder
a1f558a69b [#2446] Add JDBCUtils.dialect(Connection) to "guess" the jOOQ SQLDialect
from a JDBC Connection
2013-05-09 12:34:07 +02:00
Lukas Eder
ce52beb115 [#2441] Add DSL.cast(Field<?>, XXX) for increased API consistency 2013-05-05 12:47:16 +02:00
Lukas Eder
de3458f0d5 [#1373] Add <T> Field<T> Factory.coerce(Field<?>, DataType<T>) and
similar methods, to coerce a field to a given data type (as opposed to
casting it)
2013-05-05 12:43:46 +02:00
Lukas Eder
d5439b468a [#2440] Expose the DataSource contained in the
DataSourceConnectionProvider
2013-05-04 11:19:19 +02:00
Lukas Eder
5dc9d7c9eb [#2235] Add Result<?> DSLContext.fetchFromTXT() to allow for loading
results that were exported using Result.format()
2013-05-03 16:59:44 +02:00
Lukas Eder
ec64150cc8 Fixed Javadoc 2013-05-03 16:12:57 +02:00
Lukas Eder
f9ff7508bf [#2323] NullPointerException when calling Schema.getTables() on a meta
schema with SQLite
2013-05-03 16:08:43 +02:00
Lukas Eder
392c2e158c [#2291] Add DSLContext.fetchAny(Table, Condition) method and others 2013-05-03 15:28:16 +02:00
Lukas Eder
aa74f02875 [#2414] [#2436] [#2437] Added ParamType
- [#2414] Add Setting to influence parameter rendering (indexed,
named, inlined)
- [#2436] Add Query.getSQL(ParamType) and deprecate
Query.getSQL(boolean)
- [#2437] Add RenderContext.paramType() and deprecate
RenderContext.inline() and .namedParams()
2013-05-03 15:10:40 +02:00
Lukas Eder
2b6c704ca7 Fixed Javadoc 2013-05-03 13:52:30 +02:00
Lukas Eder
b3fbdb308c [#2427] Add more Javadoc to ResultQuery.fetchResultSet() explaining that
underlying PreparedStatements are closed with ResultSet.close()
2013-05-03 11:13:55 +02:00
Lukas Eder
35149db31b Some Javadoc fixes 2013-05-03 11:12:19 +02:00
Lukas Eder
a611948be1 Some Javadoc fixes 2013-05-03 11:09:33 +02:00
Lukas Eder
b93e8f84d2 [#2430] Add CustomQueryPart for use with plain SQL and other places 2013-05-03 11:04:47 +02:00
Lukas Eder
868b1ac275 [#2429] Added Javadoc 2013-05-03 10:49:27 +02:00
Lukas Eder
65aeeb5ac6 Javadoc fixes 2013-05-03 10:44:25 +02:00
Lukas Eder
7acd547c7b [#2429] Add Row[N].compare(Comparator, XXX), where XXX is any of Row[N],
Record[N], T[N], Field<T[N]>, Select<? extends Record[N]>
2013-05-03 10:37:43 +02:00
Lukas Eder
b4ef723bcf [#2434] Added new public SubqueryComparator 2013-05-03 10:23:46 +02:00
Lukas Eder
626b4aad5c [#2429] Factored out some common logic in Xtend generator for Rows 2013-05-03 10:09:58 +02:00
Lukas Eder
6350d73134 [#2395] [#2428] Row value expression simulation.
- Simulate row value expression IN predicate using EXISTS
- Simulate row value expression comparison predicates using EXISTS
2013-05-01 21:31:05 +02:00
Lukas Eder
2e2d76e81d [#2299] Fixed some issues related to Sybase's unsupported ResultSet
holdability
2013-05-01 20:43:04 +02:00
Lukas Eder
ae56ed55c7 [#2395] Simulate row value expression IN predicate using EXISTS -
Added Utils.array(T...)
2013-05-01 19:58:24 +02:00
Lukas Eder
3c15c2eda8 [#2395] Simulate row value expression IN predicate using EXISTS -
Improved Xtend code generation for Row[N] vs. RowN
2013-05-01 19:57:59 +02:00
Lukas Eder
1bc0b4ab66 [#2395] Simulate row value expression IN predicate using EXISTS 2013-05-01 19:24:44 +02:00
Lukas Eder
ed860507cf [#2339] Support CUBRID 9.1's new features - Document support for
NTILE(), LEAD(), LAG() window functions
2013-05-01 18:40:21 +02:00
Lukas Eder
21569fda4f Release 3.1.0-SNAPSHOT 2013-05-01 18:04:58 +02:00
Lukas Eder
a8def97d1e [#2299] Allow for setting ResultSet flags (e.g.
ResultSet.TYPE_SCROLL_INSENSITIVE through
ResultQuery.resultSetConcurrency(), resultSetType(),
resultSetHoldability()
2013-05-01 17:57:28 +02:00
Lukas Eder
c49763fd6f [#2236] Add DSLContext.batch(String...) and batch(String, Object[]...)
to easily create batch statements from SQL strings
2013-05-01 17:04:04 +02:00
Lukas Eder
fff27acbeb [#2426] Add DSLContext.batch(Query, Object[]...) as a convenience for
calling batch(Query).bind(Object...).bind(Object...)
2013-05-01 16:54:21 +02:00
Lukas Eder
5c196c57e9 Some Javadoc fixes 2013-05-01 15:26:57 +02:00
Lukas Eder
e2fc0f16a9 [#1296] [#1846] Added flag to indicate that FOR UPDATE is being
simulated. This is more accurate than just assuming ResultSet
concurrency to be a sufficient indicator
2013-05-01 15:04:51 +02:00
Lukas Eder
2f6e09294c Prevent "expensive" operation of filling in a stack trace for signals 2013-05-01 11:11:59 +02:00
Lukas Eder
7822c93e64 [#2416] Add Result.intoXML(org.xml.sax.ContentHandler) to generate a SAX
event stream from a jOOQ result
2013-04-28 23:23:20 +02:00
Lukas Eder
743bc48c56 Fixed Javadoc 2013-04-28 22:49:56 +02:00
Lukas Eder
fda9c88609 Removed unneeded (and thus, probably buggy) internal copy constructor 2013-04-28 19:05:57 +02:00
Lukas Eder
31f6d133b3 [#2418] RenderContext.data() is not passed on to QueryParts when being
rendered
2013-04-28 19:00:59 +02:00
Lukas Eder
dcdac6f7e8 [#1520] Handle Ingres', SQLite, SQL Server's, Sybase ASE's limitations
of 1024, 999, 2100 or 2000 maximum bind values per query
2013-04-28 18:52:36 +02:00
Lukas Eder
c3c87ee6c7 [#1520] Handle Ingres', SQLite, SQL Server's, Sybase ASE's limitations
of 1024, 999, 2100 or 2000 maximum bind values per query
2013-04-28 16:39:31 +02:00
Lukas Eder
7022813865 [#2344] Add a new ControlFlowException that is used to explicitly jump
out of a control flow
2013-04-28 14:26:24 +02:00
Lukas Eder
1532306f73 Release 3.0.0 2013-04-28 11:52:53 +02:00
Lukas Eder
e23d2af072 Release 3.0.0 2013-04-28 11:49:58 +02:00
Lukas Eder
5cd55d732c [#2415] Add Constants.MINOR_VERSION and Constants.FULL_VERSION for
internal and external reuse
2013-04-27 09:06:21 +02:00
Lukas Eder
80cac73310 Fixed compiler warning 2013-04-19 14:07:00 +02:00
Lukas Eder
64995c1836 Fixed grammar in Javadoc 2013-04-14 19:18:11 +02:00
Lukas Eder
d163a1f5d8 [#2407] Fix bad references to pre-3.0 Factory in Javadoc - Fixed
Executor references
2013-04-13 12:46:22 +02:00
Lukas Eder
6dd02378c4 [#2407] Fix bad references to pre-3.0 Factory in Javadoc - Fixed Factory
references
2013-04-13 12:44:06 +02:00
Lukas Eder
d8e18df627 Release 3.0.0-RC3: Javadoc fixes 2013-04-12 15:39:10 +02:00
Lukas Eder
fb7a0c535f Release 3.0.0-RC3: Version increment 2013-04-12 15:29:22 +02:00
Lukas Eder
2b59ed047f [#2385] fetchOne() and fetchLazy() don't terminate the ExecuteListener
life cycle when an exception occurs
2013-04-12 14:14:04 +02:00
Lukas Eder
053a728c25 [#2392] Add Configuration.set() methods. They should allow for modifying
a Configuration
2013-04-12 12:21:02 +02:00
Lukas Eder
ebca8adaa2 [#2388] Replace Configuration's List<ExecuteListener> with
ExecuteListenerProvider[] to simplify correct and thread-safe client
implementations
2013-04-12 12:00:30 +02:00
Lukas Eder
3f1e2af10a [#2399] Remove support for the USE statement 2013-04-12 10:05:32 +02:00
Lukas Eder
8d9a40ad19 [#2393] Fully qualified name not used for user-defined aggregate
function
2013-04-12 09:48:08 +02:00
Lukas Eder
bfbcbca33f [#2396] Add DSL.function(Name, Class, Field...) and
DSL.function(Name, DataType, Field...) to allow for custom,
fully-qualified function references
2013-04-12 09:47:29 +02:00
Lukas Eder
28073c01db [#2391] Rename dialect-specific Factories [Dialect]Factory to
[Dialect]DSL
2013-04-07 22:44:29 +02:00
Lukas Eder
078da8a28b [#2388] Replace Configuration's List<ExecuteListener> with an
ExecuteListenerProvider to simplify correct and thread-safe client
implementations - Added warning as this type might not be in its final
state
2013-04-07 22:36:15 +02:00
Lukas Eder
2e57438987 Added convenient constructor overload 2013-04-07 18:53:19 +02:00
Lukas Eder
a6020617f5 Fixed xtend source code 2013-04-07 17:18:56 +02:00
Lukas Eder
68db0cf354 Renamed AttachableInternal.getConfiguration() to configuration() for
consistency
2013-04-07 17:17:27 +02:00
Lukas Eder
c753d70bb1 Fixed xtend source code 2013-04-07 17:12:33 +02:00
Lukas Eder
15f24d6e39 [#2390] Change Configuration API to reflect jOOQ-style getter /
setter naming
2013-04-07 17:06:04 +02:00
Lukas Eder
c3883d2b92 [#2388] Replace Configuration's List<ExecuteListener> with an
ExecuteListenerProvider to simplify correct and thread-safe client
implementations
2013-04-07 16:57:23 +02:00
Lukas Eder
d104467645 Fixed Javadoc 2013-04-07 15:50:23 +02:00
Lukas Eder
869ada72ed [#2389] Make org.jooq.impl.DefaultConfiguration public -
TODO: Make implementation threadsafe!
2013-04-07 15:36:12 +02:00
Lukas Eder
062acf7648 Merge pull request #2381 from svenjacobs/master
Do not add TableFieldImpl to table in constructor of TableFieldImpl
2013-04-06 12:51:51 -07:00
Lukas Eder
6d7eff66ce [#2382] Let DAO reference a Configuration instead of an Executor 2013-04-06 21:42:06 +02:00
Lukas Eder
906df54303 [#2380] Rename org.jooq.impl.Factory to org.jooq.DSL - Step 1
- Renamed org.jooq.impl.Factory to org.jooq.impl.DSL
2013-04-06 21:17:18 +02:00
Lukas Eder
0183ecab99 [#2379] Replace 3.0-RC1 Executor type by a contextual DSL type
constructed from Factory.using() - Step 4
- Renamed ContextDSL to DSLContext
2013-04-06 21:00:50 +02:00
Lukas Eder
427a09ecac [#2383] Remove org.jooq.Context marker interface - Removed references to
org.jooq.Context
2013-04-06 20:54:34 +02:00
Lukas Eder
39b20216a9 [#2379] Replace 3.0-RC1 Executor type by a contextual DSL type
constructed from Factory.using() - Step 4
- Fixed Xtend code generation
2013-04-06 19:02:05 +02:00
Lukas Eder
20af63d55e [#2379] Replace 3.0-RC1 Executor type by a contextual DSL type
constructed from Factory.using() - Step 3
- Make Executor package-private
- Rename Executor to ContextDSLImpl
- Re-generate H2, MySQL, Oracle databases
- Let DAO reference a Configuration instead of an Executor [#2382]
2013-04-06 18:45:45 +02:00
Lukas Eder
738e0adc85 [#2379] Replace 3.0-RC1 Executor type by a contextual DSL type
constructed from Factory.using() - Step 2
- Re-introduce "FactoryOperations", named ContextDSL
- Let Executor implement ContextDSL
2013-04-06 18:17:35 +02:00
Lukas Eder
412bd45e12 [#2379] Replace 3.0-RC1 Executor type by a contextual DSL type
constructed from Factory.using() - Step 1
- Make Executor constructors package-private
- Add Factory.using() factory method
2013-04-06 17:45:07 +02:00
Sven Jacobs
a3b08d6eb0 Do not add TableFieldImpl to table in constructor of TableFieldImpl 2013-04-06 10:48:44 +02:00
Lukas Eder
cccce72086 [#2372] Add aliases for arithmetic operators to be able to use
Groovy default operator overloading
2013-04-05 13:28:53 +02:00
Lukas Eder
7ede90174a [#2374] INSERT .. RETURNING always returns null for dynamically created
tables - Reverted incorrect fix
2013-04-05 13:14:27 +02:00
Lukas Eder
eb34ebf4d7 Merge pull request #2377 from svenjacobs/master
[#2374] INSERT .. RETURNING always returns null for dynamically created tables - Canonical implementation contributed by Steven Jacobs
2013-04-05 04:06:56 -07:00
Lukas Eder
dacf7184ae [#2378] Allow for overriding getIdentity() and getReferences() in
CustomTable
2013-04-05 13:00:41 +02:00
Sven Jacobs
1685351e82 Fix for issue #2374 (INSERT .. RETURNING always returns null for dynamically created tables) 2013-04-05 11:45:05 +02:00
Lukas Eder
caa173e5bd Fixed Javadoc 2013-04-05 11:22:55 +02:00
Lukas Eder
abe43ec2c2 Release 3.0.0-SNAPSHOT 2013-04-05 11:20:59 +02:00
Lukas Eder
4f519a7908 [#1868] [#2373] Cursor.close() doesn't terminate the ExecuteListener
life cycle
2013-04-05 11:18:39 +02:00
Lukas Eder
3648e2fc50 [#2373] Cursor.close() doesn't terminate the ExecuteListener life cycle
- Cursor should always be closed
2013-04-05 10:16:00 +02:00
Lukas Eder
ba0c5e4734 [#2367] SQLite identifiers that collide with keywords should be quoted 2013-04-04 20:30:00 +02:00
Lukas Eder
c9b747eb0e Fixed whitespace in XML files 2013-04-03 21:16:18 +02:00
Lukas Eder
23dd60c785 Added Executor Javadoc 2013-03-30 18:30:25 +01:00
Lukas Eder
3adb6bc3c7 [#2362] Decouple org.jooq.impl.Executor from Configuration. Choose
composition over inheritance - Fixed compilation errors
2013-03-30 18:17:43 +01:00
Lukas Eder
ed231beff1 Removed unneeded AbstractConfiguration 2013-03-30 18:06:54 +01:00
Lukas Eder
58d3979bec [#2362] Decouple org.jooq.impl.Executor from Configuration. Choose
composition over inheritance
2013-03-30 18:04:00 +01:00
Lukas Eder
0dc7f8ac37 [#2361] Inaccurate Configuration Javadoc explaining wrong
ExecuteListener lifecycle
2013-03-30 17:02:16 +01:00
Lukas Eder
62ce4aae8f Adapted Xtend code to the latest changes 2013-03-24 16:19:30 +01:00
Lukas Eder
4486ea8189 Fixed Javadoc 2013-03-24 13:03:20 +01:00
Lukas Eder
6ea8c5a11e [#2353] Decouple org.jooq.Context from Configuration. Choose
composition over inheritance
2013-03-24 12:48:28 +01:00
Lukas Eder
e2658c58cf Fixed Javadoc 2013-03-24 12:28:04 +01:00
Lukas Eder
dfb3dbf56c [#2343] Decouple lifecycle of Configuration and ExecuteContext 2013-03-24 12:23:46 +01:00
Lukas Eder
a8c35286ac Fixed Javadocs 2013-03-24 11:49:23 +01:00
Lukas Eder
8e8915c008 [#2328] Remove UpdatableTable marker interface, pulling up methods
to Table
2013-03-24 11:45:40 +01:00
Lukas Eder
00c2ddb15d [#2351] Relax ConnectionProvider contract, allowing acquire() to
return new Connections even before release() is called
2013-03-22 14:20:08 +01:00
Lukas Eder
38864c2b16 [#2351] Relax ConnectionProvider contract, allowing acquire() to return
new Connections even before release() is called - Updated contract
2013-03-22 13:25:17 +01:00
Lukas Eder
b4c10646a2 [#2329] Add Javadoc to Configuration.getExecuteListeners() and
setExecuteListeners()
2013-03-22 12:53:00 +01:00
Lukas Eder
c91a393de8 Fixed Javadoc 2013-03-22 12:43:15 +01:00
Lukas Eder
377572748e [#2342] Change Configuration.getData() to return Map<Object, Object> 2013-03-20 20:10:46 +01:00
Lukas Eder
86bc2b5dc8 [#2347] Let equals() implementations succeed early on identity 2013-03-20 20:04:28 +01:00
Lukas Eder
c75ea9886b Fixed broken Javadoc 2013-03-19 22:06:01 +01:00
Lukas Eder
8abdc20465 [#2346] org.jooq.Meta's generated Schema and other objects are
Serializable, but their enclosed Meta instance is not
2013-03-18 21:08:11 +01:00
Lukas Eder
50aac2fdda [#2336] Log4j ClassNotFoundException LoggerListener 2013-03-16 11:18:44 +01:00
Lukas Eder
b100f91d21 [#2328] Pull up UpdatableTable.getKeys() and getReferencesFrom() methods
to Table
2013-03-10 12:40:38 +01:00
Lukas Eder
b0fd96b1e3 [#2325] "HsqlException: incompatible data type in conversion" when
binding a UUID[] to an HSQLDB prepared statement
2013-03-08 14:28:12 +01:00
Lukas Eder
6b215bbb31 [#2321] Implement various Key.toString() methods 2013-03-08 13:59:19 +01:00
Lukas Eder
c4cb32ee5e Release 3.0.0-RC2 2013-03-08 10:30:08 +01:00