branch feature/7017 updated (cd63a89 -> a2cc54f)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git from cd63a89 add some first service stubs for seine model (refs #7017) new a2cc54f ajout d'une usine à service + amélioration de l'abstraction (refs #7017) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit a2cc54fbd3238772395227020cf8bed33c45eb7a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 24 10:05:34 2015 +0200 ajout d'une usine à service + amélioration de l'abstraction (refs #7017) Summary of changes: .../observe/services/AbstractObserveService.java | 66 +++++++++++----------- .../services/Longline/TripLonglineServiceImp.java | 16 +++++- .../observe/services/ObserveServiceFactory.java | 47 +++++++++++++++ .../services/seine/ActivitySeineServiceImpl.java | 17 +++++- .../services/seine/FloatingObjectServiceImpl.java | 17 +++++- .../observe/services/seine/RouteServiceImpl.java | 17 +++++- .../services/seine/SetSeineServiceImpl.java | 17 +++++- .../services/seine/TripSeineServiceImpl.java | 17 +++++- 8 files changed, 174 insertions(+), 40 deletions(-) create mode 100644 observe-services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git commit a2cc54fbd3238772395227020cf8bed33c45eb7a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 24 10:05:34 2015 +0200 ajout d'une usine à service + amélioration de l'abstraction (refs #7017) --- .../observe/services/AbstractObserveService.java | 66 +++++++++++----------- .../services/Longline/TripLonglineServiceImp.java | 16 +++++- .../observe/services/ObserveServiceFactory.java | 47 +++++++++++++++ .../services/seine/ActivitySeineServiceImpl.java | 17 +++++- .../services/seine/FloatingObjectServiceImpl.java | 17 +++++- .../observe/services/seine/RouteServiceImpl.java | 17 +++++- .../services/seine/SetSeineServiceImpl.java | 17 +++++- .../services/seine/TripSeineServiceImpl.java | 17 +++++- 8 files changed, 174 insertions(+), 40 deletions(-) diff --git a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java index e41299a..cadd7ac 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java @@ -1,8 +1,6 @@ package fr.ird.observe.services; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaDAO; @@ -13,36 +11,40 @@ import org.nuiton.topia.persistence.TopiaEntity; */ public abstract class AbstractObserveService<E extends TopiaEntity> { - protected DataSource dataSource; - - protected Class<E> entityClass; - - protected TopiaDAO<E> dao; - - - public E create(E entity) { - try { - TopiaContext topiaContext = dataSource.beginTransaction("create entity"); - - TopiaDAO<E> dao = ObserveDAOHelper.getDAO(topiaContext, entityClass); - - topiaContext.commitTransaction(); - - } catch (DataSourceException e) { - e.printStackTrace(); - } catch (TopiaException e) { - e.printStackTrace(); - } finally { - - } - - }; - - public abstract void update(E entity); - - public abstract E findById(String id); - - public abstract void delete(E entity); + protected final DataSource dataSource; + + protected final Class<E> entityClass; + + protected abstract TopiaDAO<E> getDao(TopiaContext tx) throws TopiaException; + + protected AbstractObserveService(Class<E> entityClass, DataSource dataSource) { + this.dataSource = dataSource; + this.entityClass = entityClass; + } + +// public E create(E entity) { +// try { +// TopiaContext topiaContext = dataSource.beginTransaction("create entity"); +// +// TopiaDAO<E> dao = ObserveDAOHelper.getDAO(topiaContext, entityClass); +// +// topiaContext.commitTransaction(); +// +// } catch (DataSourceException e) { +// e.printStackTrace(); +// } catch (TopiaException e) { +// e.printStackTrace(); +// } finally { +// +// } +// +// }; +// +// public abstract void update(E entity); +// +// public abstract E findById(String id); +// +// public abstract void delete(E entity); diff --git a/observe-services/src/main/java/fr/ird/observe/services/Longline/TripLonglineServiceImp.java b/observe-services/src/main/java/fr/ird/observe/services/Longline/TripLonglineServiceImp.java index 1f1c312..1c03529 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/Longline/TripLonglineServiceImp.java +++ b/observe-services/src/main/java/fr/ird/observe/services/Longline/TripLonglineServiceImp.java @@ -2,6 +2,7 @@ package fr.ird.observe.services.Longline; import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveTechnicalException; +import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.longline.TripLonglineDAO; @@ -15,7 +16,16 @@ import org.nuiton.topia.persistence.TopiaDAO; */ public class TripLonglineServiceImp extends AbstractObserveService<TripLongline> { + public TripLonglineServiceImp(DataSource dataSource) { + super(TripLongline.class, dataSource); + } + @Override + protected TopiaDAO<TripLongline> getDao(TopiaContext tx) throws TopiaException { + return ObserveDAOHelper.getTripLonglineDAO(tx); + } + +// @Override public TripLongline create(TripLongline entity) { try { TopiaContext topiaContext = dataSource.beginTransaction("create TripLongline"); @@ -33,7 +43,7 @@ public class TripLonglineServiceImp extends AbstractObserveService<TripLongline> return entity; } - @Override +// @Override public void update(TripLongline entity) { getLoadBinder().copyExcluding(getBean(), beanToSave, TripLongline.PROPERTY_ACTIVITY_LONGLINE); @@ -42,12 +52,12 @@ public class TripLonglineServiceImp extends AbstractObserveService<TripLongline> } - @Override +// @Override public TripLongline findById(String id) { return null; } - @Override +// @Override public void delete(TripLongline entity) { TopiaDAO<TripLongline> dao = getDataSource().getDAO(tx, TripLongline.class); dao.delete(beanToDelete); diff --git a/observe-services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java b/observe-services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java new file mode 100644 index 0000000..af151ad --- /dev/null +++ b/observe-services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java @@ -0,0 +1,47 @@ +package fr.ird.observe.services; + +import com.google.common.base.Preconditions; +import fr.ird.observe.ObserveTechnicalException; +import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.event.DataSourceEvent; +import fr.ird.observe.db.event.DataSourceListenerAdapter; +import org.apache.commons.lang3.reflect.ConstructorUtils; + +/** + * Created on 4/24/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class ObserveServiceFactory { + + public static <S> S createService(Class<S> serviceType, DataSource dataSource) { + + Preconditions.checkNotNull(serviceType, "serviceType can't be null"); + Preconditions.checkNotNull(dataSource, "dataSource can't be null"); + + try { + + S service = ConstructorUtils.invokeConstructor(serviceType, dataSource); + + //FIXME On peut ajouter un état au service pour savoir si la dataSource est encore accessible... + dataSource.addDataSourceListener(new DataSourceListenerAdapter() { + @Override + public void onClosed(DataSourceEvent event) { + + } + + @Override + public void onOpened(DataSourceEvent event) { + + } + }); + + return service; + + } catch (Exception e) { + throw new ObserveTechnicalException("Could not create service: " + serviceType, e); + } + + } +} diff --git a/observe-services/src/main/java/fr/ird/observe/services/seine/ActivitySeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/seine/ActivitySeineServiceImpl.java index 3386194..05dbef3 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/seine/ActivitySeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/seine/ActivitySeineServiceImpl.java @@ -1,6 +1,12 @@ package fr.ird.observe.services.seine; +import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; import java.util.List; @@ -10,7 +16,16 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class ActivitySeineServiceImpl { +public class ActivitySeineServiceImpl extends AbstractObserveService<ActivitySeine> { + + public ActivitySeineServiceImpl(DataSource dataSource) { + super(ActivitySeine.class, dataSource); + } + + @Override + protected TopiaDAO<ActivitySeine> getDao(TopiaContext tx) throws TopiaException { + return ObserveDAOHelper.getActivitySeineDAO(tx); + } public List<ActivitySeine> loadAllByRouteForDisplay(String routeId) { List<ActivitySeine> loaded = null; diff --git a/observe-services/src/main/java/fr/ird/observe/services/seine/FloatingObjectServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/seine/FloatingObjectServiceImpl.java index a15b529..676b33a 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/seine/FloatingObjectServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/seine/FloatingObjectServiceImpl.java @@ -1,6 +1,12 @@ package fr.ird.observe.services.seine; +import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.FloatingObject; +import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; /** * Created on 4/24/15. @@ -8,7 +14,16 @@ import fr.ird.observe.entities.seine.FloatingObject; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class FloatingObjectServiceImpl { +public class FloatingObjectServiceImpl extends AbstractObserveService<FloatingObject> { + + public FloatingObjectServiceImpl(DataSource dataSource) { + super(FloatingObject.class, dataSource); + } + + @Override + protected TopiaDAO<FloatingObject> getDao(TopiaContext tx) throws TopiaException { + return ObserveDAOHelper.getFloatingObjectDAO(tx); + } public FloatingObject loadForEdit(String floatingObjectId) { FloatingObject loaded = null; diff --git a/observe-services/src/main/java/fr/ird/observe/services/seine/RouteServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/seine/RouteServiceImpl.java index f75dd75..5dbbee4 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/seine/RouteServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/seine/RouteServiceImpl.java @@ -1,6 +1,12 @@ package fr.ird.observe.services.seine; +import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; import java.util.List; @@ -10,7 +16,16 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class RouteServiceImpl { +public class RouteServiceImpl extends AbstractObserveService<Route> { + + public RouteServiceImpl(DataSource dataSource) { + super(Route.class,dataSource); + } + + @Override + protected TopiaDAO<Route> getDao(TopiaContext tx) throws TopiaException { + return ObserveDAOHelper.getRouteDAO(tx); + } public List<Route> loadAllByTripForDisplay(String tripSeineId) { List<Route> loaded = null; diff --git a/observe-services/src/main/java/fr/ird/observe/services/seine/SetSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/seine/SetSeineServiceImpl.java index d4100d0..33208ac 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/seine/SetSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/seine/SetSeineServiceImpl.java @@ -1,6 +1,12 @@ package fr.ird.observe.services.seine; +import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; /** * Created on 4/24/15. @@ -8,7 +14,16 @@ import fr.ird.observe.entities.seine.SetSeine; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class SetSeineServiceImpl { +public class SetSeineServiceImpl extends AbstractObserveService<SetSeine> { + + public SetSeineServiceImpl(DataSource dataSource) { + super(SetSeine.class, dataSource); + } + + @Override + protected TopiaDAO<SetSeine> getDao(TopiaContext tx) throws TopiaException { + return ObserveDAOHelper.getSetSeineDAO(tx); + } public SetSeine loadForEdit(String setSeineId) { SetSeine loaded = null; diff --git a/observe-services/src/main/java/fr/ird/observe/services/seine/TripSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/seine/TripSeineServiceImpl.java index e1b5a04..86035ba 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/seine/TripSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/seine/TripSeineServiceImpl.java @@ -1,6 +1,12 @@ package fr.ird.observe.services.seine; +import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; import java.util.List; @@ -10,7 +16,16 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class TripSeineServiceImpl { +public class TripSeineServiceImpl extends AbstractObserveService<TripSeine> { + + public TripSeineServiceImpl(DataSource dataSource) { + super(TripSeine.class,dataSource); + } + + @Override + protected TopiaDAO<TripSeine> getDao(TopiaContext tx) throws TopiaException { + return ObserveDAOHelper.getTripSeineDAO(tx); + } public List<TripSeine> loadAllByProgramForDisplay(String programId) { List<TripSeine> loaded = null; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm