From 40124960c677ea374251b5a478eec45288089eb0 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 2 Aug 2012 12:17:13 +0000 Subject: [PATCH] Creating only one instance of LotroCardBlueprintLibrary. --- .../server/provider/CardLibraryProvider.java | 37 ------------------- .../lotro/server/provider/DaoProvider.java | 20 ++++++++-- 2 files changed, 17 insertions(+), 40 deletions(-) delete mode 100644 gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/CardLibraryProvider.java diff --git a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/CardLibraryProvider.java b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/CardLibraryProvider.java deleted file mode 100644 index 7e108e058..000000000 --- a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/CardLibraryProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gempukku.lotro.server.provider; - -import com.gempukku.lotro.game.LotroCardBlueprintLibrary; -import com.sun.jersey.core.spi.component.ComponentContext; -import com.sun.jersey.core.spi.component.ComponentScope; -import com.sun.jersey.spi.inject.Injectable; -import com.sun.jersey.spi.inject.InjectableProvider; - -import javax.ws.rs.core.Context; -import javax.ws.rs.ext.Provider; -import java.lang.reflect.Type; - -@Provider -public class CardLibraryProvider implements InjectableProvider, Injectable { - private LotroCardBlueprintLibrary _library; - - public CardLibraryProvider() { - _library = new LotroCardBlueprintLibrary(); - } - - @Override - public ComponentScope getScope() { - return ComponentScope.Singleton; - } - - @Override - public LotroCardBlueprintLibrary getValue() { - return _library; - } - - @Override - public Injectable getInjectable(ComponentContext ic, Context context, Type type) { - if (type.equals(LotroCardBlueprintLibrary.class)) - return this; - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/DaoProvider.java b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/DaoProvider.java index a227444d1..f52f91283 100644 --- a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/DaoProvider.java +++ b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/provider/DaoProvider.java @@ -30,12 +30,11 @@ public class DaoProvider implements InjectableProvider { private Injectable _tournamentDAOInjectable; private Injectable _tournamentPlayerDAOInjectable; private Injectable _tournamentMatchDAOInjectable; + private Injectable _lotroCardBlueprintLibraryInjectable; private DbAccess _dbAccess; private CollectionSerializer _collectionSerializer; - private LotroCardBlueprintLibrary _library = new LotroCardBlueprintLibrary(); - public DaoProvider() { _dbAccess = new DbAccess(); _collectionSerializer = new CollectionSerializer(); @@ -65,6 +64,8 @@ public class DaoProvider implements InjectableProvider { return getTournamentPlayerDaoSafely(); else if (type.equals(TournamentMatchDAO.class)) return getTournamentMatchDaoSafely(); + else if (type.equals(LotroCardBlueprintLibrary.class)) + return getLotroCardBlueprintLibrarySafely(); return null; } @@ -81,6 +82,19 @@ public class DaoProvider implements InjectableProvider { return _leagueParticipationDAOInjectable; } + private synchronized Injectable getLotroCardBlueprintLibrarySafely() { + if (_lotroCardBlueprintLibraryInjectable == null) { + final LotroCardBlueprintLibrary library = new LotroCardBlueprintLibrary(); + _lotroCardBlueprintLibraryInjectable = new Injectable() { + @Override + public LotroCardBlueprintLibrary getValue() { + return library; + } + }; + } + return _lotroCardBlueprintLibraryInjectable; + } + private synchronized Injectable getLeagueMatchDaoSafely() { if (_leagueMatchDAOInjectable == null) { final LeagueMatchDAO leagueMatchDao = new DbLeagueMatchDAO(_dbAccess); @@ -174,7 +188,7 @@ public class DaoProvider implements InjectableProvider { private synchronized Injectable getDeckDaoSafely() { if (_deckDaoInjectable == null) { - final DeckDAO deckDao = new DeckDAO(_dbAccess, _library); + final DeckDAO deckDao = new DeckDAO(_dbAccess, getLotroCardBlueprintLibrarySafely().getValue()); _deckDaoInjectable = new Injectable() { @Override public DeckDAO getValue() {