diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml
index e9846d4204c..ae03ce324de 100644
--- a/Mage.Client/pom.xml
+++ b/Mage.Client/pom.xml
@@ -51,7 +51,7 @@
com.mortennobel
java-image-scaling
- 0.8.5
+ 0.8.6
com.google.collections
@@ -66,12 +66,12 @@
org.jetlang
jetlang
- 0.2.9
+ 0.2.23
com.amazonaws
aws-java-sdk-s3
- 1.11.286
+ 1.11.498
com.jgoodies
@@ -114,7 +114,7 @@
truevfs-profile-base
net.java.truevfs
jar
- 0.10.8
+ 0.11.1
truevfs-access-swing
@@ -129,7 +129,7 @@
com.googlecode.soundlibs
mp3spi
- 1.9.5-1
+ 1.9.5.4
javazoom
@@ -154,13 +154,13 @@
org.apache.xmlgraphics
batik-transcoder
- 1.7
+ 1.11
org.ocpsoft.prettytime
prettytime
- 3.2.7.Final
+ 4.0.2.Final
diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
index ef98c013a2a..bcf85923efb 100644
--- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
+++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
@@ -24,6 +24,7 @@ import org.apache.log4j.Logger;
import org.mage.card.arcane.CardRendererUtils;
import org.ocpsoft.prettytime.Duration;
import org.ocpsoft.prettytime.PrettyTime;
+import org.ocpsoft.prettytime.TimeFormat;
import org.ocpsoft.prettytime.units.JustNow;
import javax.swing.*;
@@ -82,7 +83,7 @@ public class TablesPanel extends javax.swing.JPanel {
final JToggleButton[] filterButtons;
// time formater
- private PrettyTime timeFormater = new PrettyTime();
+ private PrettyTime timeFormater = new PrettyTime(Locale.ENGLISH);
// time ago renderer
TableCellRenderer timeAgoCellRenderer = new DefaultTableCellRenderer() {
@@ -219,9 +220,12 @@ public class TablesPanel extends javax.swing.JPanel {
// tableModel.setSession(session);
// formater
- timeFormater.setLocale(Locale.ENGLISH);
- JustNow jn = timeFormater.getUnit(JustNow.class);
- jn.setMaxQuantity(1000L * 30L); // 30 seconds gap (show "just now" from 0 to 30 secs)
+ // change default just now from 60 to 30 secs
+ // see workaround for 4.0 versions: https://github.com/ocpsoft/prettytime/issues/152
+ TimeFormat timeFormat = timeFormater.removeUnit(JustNow.class);
+ JustNow newJustNow = new JustNow();
+ newJustNow.setMaxQuantity(1000L * 30L); // 30 seconds gap (show "just now" from 0 to 30 secs)
+ timeFormater.registerUnit(newJustNow, timeFormat);
// 1. TABLE CURRENT
tableTables.createDefaultColumnsFromModel();
@@ -1377,35 +1381,35 @@ public class TablesPanel extends javax.swing.JPanel {
javax.swing.GroupLayout jPanelTopLayout = new javax.swing.GroupLayout(jPanelTop);
jPanelTop.setLayout(jPanelTopLayout);
jPanelTopLayout.setHorizontalGroup(
- jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanelTopLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(btnNewTable)
- .addGap(6, 6, 6)
- .addComponent(btnNewTournament)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnQuickStart)
- .addContainerGap(792, Short.MAX_VALUE))
+ jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelTopLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(btnNewTable)
+ .addGap(6, 6, 6)
+ .addComponent(btnNewTournament)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnQuickStart)
+ .addContainerGap(792, Short.MAX_VALUE))
);
jPanelTopLayout.setVerticalGroup(
- jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanelTopLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnNewTable)
- .addComponent(btnNewTournament))
- .addGroup(jPanelTopLayout.createSequentialGroup()
- .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(btnQuickStart))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addContainerGap())
+ jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelTopLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(btnNewTable)
+ .addComponent(btnNewTournament))
+ .addGroup(jPanelTopLayout.createSequentialGroup()
+ .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(btnQuickStart))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .addContainerGap())
);
gridBagConstraints = new java.awt.GridBagConstraints();
@@ -1442,12 +1446,12 @@ public class TablesPanel extends javax.swing.JPanel {
javax.swing.GroupLayout jPanelTablesLayout = new javax.swing.GroupLayout(jPanelTables);
jPanelTables.setLayout(jPanelTablesLayout);
jPanelTablesLayout.setHorizontalGroup(
- jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE)
+ jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE)
);
jPanelTablesLayout.setVerticalGroup(
- jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE)
+ jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE)
);
jSplitPane1.setLeftComponent(jPanelTables);
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java
index 9de2219d32d..0a847bf92a5 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java
@@ -12,7 +12,7 @@ import mage.client.util.gui.BufferedImageBuilder;
import mage.client.util.gui.GuiDisplayUtil;
import mage.constants.Rarity;
import mage.utils.StreamUtils;
-import org.apache.batik.dom.svg.SVGDOMImplementation;
+import org.apache.batik.anim.dom.SVGDOMImplementation;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
diff --git a/Mage.Common/pom.xml b/Mage.Common/pom.xml
index f1535ccfae1..1347b155386 100644
--- a/Mage.Common/pom.xml
+++ b/Mage.Common/pom.xml
@@ -34,12 +34,12 @@
org.jboss
jboss-common-core
- 2.2.22.GA
+ 2.5.0.Final
jboss
jboss-serialization
- 1.0.3.GA
+ 4.2.2.GA
concurrent
@@ -54,7 +54,7 @@
com.google.code.gson
gson
- 2.8.2
+ 2.8.5
diff --git a/Mage.Server/pom.xml b/Mage.Server/pom.xml
index 4b762aa1d1a..d1f63fcfa66 100644
--- a/Mage.Server/pom.xml
+++ b/Mage.Server/pom.xml
@@ -42,7 +42,13 @@
com.sun.xml.bind
jaxb-impl
- 2.1.17
+ 2.3.2
+
+
+
+ org.glassfish.jaxb
+ jaxb-runtime
+ 2.3.2
log4j
@@ -200,31 +206,31 @@
com.google.api-client
google-api-client
- 1.25.0
+ 1.28.0
jar
com.google.apis
google-api-services-gmail
- v1-rev82-1.23.0
+ v1-rev20190120-1.28.0
jar
com.google.oauth-client
google-oauth-client-java6
- 1.25.0
+ 1.28.0
jar
com.google.oauth-client
google-oauth-client-jetty
- 1.25.0
+ 1.28.0
jar
javax.mail
mail
- 1.4.7
+ 1.5.0-b01
jar
diff --git a/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java b/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java
index a0817049441..f1915e72f11 100644
--- a/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java
+++ b/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java
@@ -9,9 +9,6 @@ import com.j256.ormlite.stmt.SelectArg;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.support.DatabaseConnection;
import com.j256.ormlite.table.TableUtils;
-import java.io.File;
-import java.sql.SQLException;
-import java.util.List;
import mage.cards.repository.CardRepository;
import mage.cards.repository.RepositoryUtil;
import org.apache.log4j.Logger;
@@ -21,6 +18,10 @@ import org.apache.shiro.crypto.hash.Hash;
import org.apache.shiro.crypto.hash.Sha256Hash;
import org.apache.shiro.crypto.hash.SimpleHash;
+import java.io.File;
+import java.sql.SQLException;
+import java.util.List;
+
public enum AuthorizedUserRepository {
instance;
@@ -108,7 +109,7 @@ public enum AuthorizedUserRepository {
public void closeDB() {
try {
if (dao != null && dao.getConnectionSource() != null) {
- DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection();
+ DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(dao.getTableName());
conn.executeStatement("shutdown compact", 0);
}
} catch (SQLException ex) {
diff --git a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java
index a1f8a00d2db..6c7cbd49ea2 100644
--- a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java
+++ b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java
@@ -8,11 +8,12 @@ import com.j256.ormlite.stmt.SelectArg;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.support.DatabaseConnection;
import com.j256.ormlite.table.TableUtils;
+import mage.cards.repository.RepositoryUtil;
+import org.apache.log4j.Logger;
+
import java.io.File;
import java.sql.SQLException;
import java.util.List;
-import mage.cards.repository.RepositoryUtil;
-import org.apache.log4j.Logger;
public enum TableRecordRepository {
@@ -68,7 +69,7 @@ public enum TableRecordRepository {
public void closeDB() {
try {
if (dao != null && dao.getConnectionSource() != null) {
- DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection();
+ DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(dao.getTableName());
conn.executeStatement("shutdown compact", 0);
}
} catch (SQLException ex) {
diff --git a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java
index 36e239c89a1..a7b47617d8a 100644
--- a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java
+++ b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java
@@ -94,12 +94,12 @@ public enum UserStatsRepository {
public long getLatestEndTimeMs() {
try {
- QueryBuilder qb = dao.queryBuilder();
+ QueryBuilder qb = dao.queryBuilder();
qb.orderBy("endTimeMs", false).limit(1L);
- List users = dao.query(qb.prepare());
+ List users = dao.query(qb.prepare());
if (!users.isEmpty()) {
- return users.get(0).getEndTimeMs();
- }
+ return users.get(0).getEndTimeMs();
+ }
} catch (SQLException ex) {
Logger.getLogger(UserStatsRepository.class).error("Error getting the latest end time from DB - ", ex);
}
@@ -111,7 +111,7 @@ public enum UserStatsRepository {
public List updateUserStats() {
Set updatedUsers = new HashSet<>();
// Lock the DB so that no other updateUserStats runs at the same time.
- synchronized(this) {
+ synchronized (this) {
long latestEndTimeMs = this.getLatestEndTimeMs();
List records = TableRecordRepository.instance.getAfter(latestEndTimeMs);
for (TableRecord record : records) {
@@ -126,9 +126,9 @@ public enum UserStatsRepository {
for (ResultProtos.MatchPlayerProto player : match.getPlayersList()) {
UserStats userStats = this.getUser(player.getName());
ResultProtos.UserStatsProto proto =
- userStats != null
- ? userStats.getProto()
- : ResultProtos.UserStatsProto.newBuilder().setName(player.getName()).build();
+ userStats != null
+ ? userStats.getProto()
+ : ResultProtos.UserStatsProto.newBuilder().setName(player.getName()).build();
ResultProtos.UserStatsProto.Builder builder = ResultProtos.UserStatsProto.newBuilder(proto)
.setMatches(proto.getMatches() + 1);
switch (player.getQuit()) {
@@ -370,7 +370,7 @@ public enum UserStatsRepository {
public void closeDB() {
try {
if (dao != null && dao.getConnectionSource() != null) {
- DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection();
+ DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(dao.getTableName());
conn.executeStatement("shutdown compact", 0);
}
} catch (SQLException ex) {
diff --git a/Mage.Stats/pom.xml b/Mage.Stats/pom.xml
index 086ecc8fa59..7c10572d3cf 100644
--- a/Mage.Stats/pom.xml
+++ b/Mage.Stats/pom.xml
@@ -43,13 +43,13 @@
net.minidev
json-smart
- 2.1.1
+ 2.3
org.aspectj
aspectjrt
- 1.8.2
+ 1.9.2
@@ -62,26 +62,26 @@
org.jboss.resteasy
resteasy-jaxrs
- 2.3.7.Final
+ 4.0.0.Beta5
provided
ch.qos.logback
logback-classic
- 1.2.3
+ 1.3.0-alpha4
org.apache.sling
org.apache.sling.commons.json
- 2.0.10
+ 2.0.20
org.jboss.resteasy
resteasy-multipart-provider
- 2.3.1.GA
+ 4.0.0.Beta8
@@ -93,19 +93,19 @@
commons-httpclient
commons-httpclient
- 3.1
+ 3.1-jbossorg-1
javax.servlet
servlet-api
- 2.5
+ 3.0-alpha-1
joda-time
joda-time
- 2.7
+ 2.10.1
diff --git a/Mage.Tests/pom.xml b/Mage.Tests/pom.xml
index 06830c290ef..39abb0fc86f 100644
--- a/Mage.Tests/pom.xml
+++ b/Mage.Tests/pom.xml
@@ -64,6 +64,17 @@
mage-game-freeforall
${project.version}
+
+ com.sun.xml.bind
+ jaxb-impl
+ 2.3.2
+
+
+
+ org.glassfish.jaxb
+ jaxb-runtime
+ 2.3.2
+
diff --git a/Mage/pom.xml b/Mage/pom.xml
index 51753a31e31..80815f55ace 100644
--- a/Mage/pom.xml
+++ b/Mage/pom.xml
@@ -23,13 +23,13 @@
com.h2database
h2
- 1.4.187
+ 1.4.197
runtime
com.j256.ormlite
ormlite-jdbc
- 4.48
+ 5.1
junit
@@ -38,7 +38,7 @@
com.google.protobuf
protobuf-java
- 3.6.0
+ 3.7.0-rc1
diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java
index 6b1267bc897..8eb0b50093d 100644
--- a/Mage/src/main/java/mage/cards/repository/CardRepository.java
+++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java
@@ -506,7 +506,7 @@ public enum CardRepository {
public void closeDB() {
try {
if (cardDao != null && cardDao.getConnectionSource() != null) {
- DatabaseConnection conn = cardDao.getConnectionSource().getReadWriteConnection();
+ DatabaseConnection conn = cardDao.getConnectionSource().getReadWriteConnection(cardDao.getTableName());
conn.executeStatement("shutdown compact", 0);
}
} catch (SQLException ex) {
diff --git a/pom.xml b/pom.xml
index bc1f3ad553c..f0a5ddc41c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -98,7 +98,7 @@
junit
junit
- 4.12
+ 4.13-beta-2
log4j
@@ -108,7 +108,7 @@
org.slf4j
slf4j-log4j12
- 1.7.25
+ 1.8.0-beta2