3351 Upgrade to Wicket 10

Related Jakarta migration upgrades as well
This commit is contained in:
Andreas Svanberg 2024-03-14 15:09:49 +01:00
parent 79d7a4aa2b
commit f072429753
568 changed files with 751 additions and 1026 deletions
core
pom.xml
src/main/java
modules
se/su/dsv/scipro
DataInitializer.java
activityplan
checklist
daisyExternal/http
data/facade
file
finalseminar
finalthesis
firstmeeting
forum
forummail
gdpr
generalsystemsettings
grading
group
integration
mail
match
milestones
misc
nonworkperiod
notes
notifications

@ -103,9 +103,8 @@
<artifactId>jakarta.activation-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<groupId>org.eclipse.angus</groupId>
<artifactId>jakarta.mail</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
@ -123,12 +122,12 @@
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>3.0.1</version>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>3.0.2</version>
<version>4.0.5</version>
<scope>runtime</scope>
</dependency>

@ -1,142 +0,0 @@
package modules;
import com.google.inject.Inject;
import com.google.inject.persist.Transactional;
import com.google.inject.persist.UnitOfWork;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityTransaction;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import java.lang.reflect.Method;
class JakartaLocalTxnInterceptor implements MethodInterceptor {
@Inject
private JakartaPersistService emProvider = null;
@Inject
private UnitOfWork unitOfWork = null;
@Transactional
private static class Internal {
}
// Tracks if the unit of work was begun implicitly by this transaction.
private final ThreadLocal<Boolean> didWeStartWork = new ThreadLocal<>();
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
// Should we start a unit of work?
if (!emProvider.isWorking()) {
emProvider.begin();
didWeStartWork.set(true);
}
Transactional transactional = readTransactionMetadata(methodInvocation);
EntityManager em = this.emProvider.get();
// Allow 'joining' of transactions if there is an enclosing @Transactional method.
if (em.getTransaction().isActive()) {
return methodInvocation.proceed();
}
final EntityTransaction txn = em.getTransaction();
txn.begin();
Object result;
try {
result = methodInvocation.proceed();
} catch (Exception e) {
//commit transaction only if rollback didnt occur
if (rollbackIfNecessary(transactional, e, txn)) {
txn.commit();
}
//propagate whatever exception is thrown anyway
throw e;
} finally {
// Close the em if necessary (guarded so this code doesn't run unless catch fired).
if (null != didWeStartWork.get() && !txn.isActive()) {
didWeStartWork.remove();
unitOfWork.end();
}
}
//everything was normal so commit the txn (do not move into try block above as it
// interferes with the advised method's throwing semantics)
try {
txn.commit();
} finally {
//close the em if necessary
if (null != didWeStartWork.get()) {
didWeStartWork.remove();
unitOfWork.end();
}
}
//or return result
return result;
}
private Transactional readTransactionMetadata(MethodInvocation methodInvocation) {
Transactional transactional;
Method method = methodInvocation.getMethod();
Class<?> targetClass = methodInvocation.getThis().getClass();
transactional = method.getAnnotation(Transactional.class);
if (null == transactional) {
// If none on method, try the class.
transactional = targetClass.getAnnotation(Transactional.class);
}
if (null == transactional) {
// If there is no transactional annotation present, use the default
transactional = Internal.class.getAnnotation(Transactional.class);
}
return transactional;
}
/**
* Returns True if rollback DID NOT HAPPEN (i.e. if commit should continue).
*
* @param transactional The metadata annotaiton of the method
* @param e The exception to test for rollback
* @param txn A JPA Transaction to issue rollbacks on
*/
private boolean rollbackIfNecessary(
Transactional transactional, Exception e, EntityTransaction txn)
{
boolean commit = true;
//check rollback clauses
for (Class<? extends Exception> rollBackOn : transactional.rollbackOn()) {
//if one matched, try to perform a rollback
if (rollBackOn.isInstance(e)) {
commit = false;
//check ignore clauses (supercedes rollback clause)
for (Class<? extends Exception> exceptOn : transactional.ignore()) {
//An exception to the rollback clause was found, DON'T rollback
// (i.e. commit and throw anyway)
if (exceptOn.isInstance(e)) {
commit = true;
break;
}
}
//rollback only if nothing matched the ignore check
if (!commit) {
txn.rollback();
}
//otherwise continue to commit
break;
}
}
return commit;
}
}

@ -1,42 +0,0 @@
package modules;
import com.google.inject.Singleton;
import com.google.inject.persist.PersistModule;
import com.google.inject.persist.PersistService;
import com.google.inject.persist.UnitOfWork;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import org.aopalliance.intercept.MethodInterceptor;
import java.util.Objects;
public class JakartaPersistModule extends PersistModule {
private final String jpaUnit;
public JakartaPersistModule(String jpaUnit) {
this.jpaUnit = Objects.requireNonNull(jpaUnit, "JPA unit name must be a non-empty string.");
}
private MethodInterceptor transactionInterceptor;
@Override
protected void configurePersistence() {
bindConstant().annotatedWith(Jpa.class).to(jpaUnit);
bind(JakartaPersistService.class).in(Singleton.class);
bind(PersistService.class).to(JakartaPersistService.class);
bind(UnitOfWork.class).to(JakartaPersistService.class);
bind(EntityManager.class).toProvider(JakartaPersistService.class);
bind(EntityManagerFactory.class)
.toProvider(JakartaPersistService.EntityManagerFactoryProvider.class);
transactionInterceptor = new JakartaLocalTxnInterceptor();
requestInjection(transactionInterceptor);
}
@Override
protected MethodInterceptor getTransactionInterceptor() {
return transactionInterceptor;
}
}

@ -1,99 +0,0 @@
package modules;
import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.google.inject.persist.PersistService;
import com.google.inject.persist.UnitOfWork;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
@Singleton
class JakartaPersistService implements Provider<EntityManager>, UnitOfWork, PersistService {
private final ThreadLocal<EntityManager> entityManager = new ThreadLocal<>();
private final String persistenceUnitName;
@Inject
public JakartaPersistService(@Jpa String persistenceUnitName) {
this.persistenceUnitName = persistenceUnitName;
}
@Override
public EntityManager get() {
if (!isWorking()) {
begin();
}
EntityManager em = entityManager.get();
Preconditions.checkState(
null != em,
"Requested EntityManager outside work unit. "
+ "Try calling UnitOfWork.begin() first, or use a PersistFilter if you "
+ "are inside a servlet environment.");
return em;
}
public boolean isWorking() {
return entityManager.get() != null;
}
@Override
public void begin() {
Preconditions.checkState(
null == entityManager.get(),
"Work already begun on this thread. Looks like you have called UnitOfWork.begin() twice"
+ " without a balancing call to end() in between.");
entityManager.set(emFactory.createEntityManager());
}
@Override
public void end() {
EntityManager em = entityManager.get();
// Let's not penalize users for calling end() multiple times.
if (null == em) {
return;
}
try {
em.close();
} finally {
entityManager.remove();
}
}
private volatile EntityManagerFactory emFactory;
@Override
public synchronized void start() {
Preconditions.checkState(null == emFactory, "Persistence service was already initialized.");
this.emFactory = Persistence.createEntityManagerFactory(persistenceUnitName);
}
@Override
public synchronized void stop() {
Preconditions.checkState(emFactory.isOpen(), "Persistence service was already shut down.");
emFactory.close();
}
@Singleton
public static class EntityManagerFactoryProvider implements Provider<EntityManagerFactory> {
private final JakartaPersistService emProvider;
@Inject
public EntityManagerFactoryProvider(JakartaPersistService emProvider) {
this.emProvider = emProvider;
}
@Override
public EntityManagerFactory get() {
assert null != emProvider.emFactory;
return emProvider.emFactory;
}
}
}

@ -1,11 +0,0 @@
package modules;
import com.google.inject.BindingAnnotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
@BindingAnnotation
public @interface Jpa {
}

@ -15,8 +15,8 @@ import se.su.dsv.scipro.report.GradingReportTemplate;
import se.su.dsv.scipro.security.auth.roles.Roles;
import se.su.dsv.scipro.system.*;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.time.LocalDate;
import java.time.LocalTime;

@ -23,7 +23,7 @@ import se.su.dsv.scipro.misc.DaysService;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
import static com.querydsl.core.types.dsl.Expressions.allOf;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.activityplan;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ActivityPlanServiceImpl extends AbstractServiceImpl<ActivityPlan,Long> implements ActivityPlanService {

@ -6,8 +6,8 @@ import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.activityplan;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ActivityServiceImpl extends AbstractServiceImpl<Activity, Long> implements ActivityService {

@ -2,8 +2,8 @@ package se.su.dsv.scipro.checklist;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ChecklistAnswerServiceImpl extends AbstractServiceImpl<ChecklistAnswer, Long> implements ChecklistAnswerService {

@ -2,8 +2,8 @@ package se.su.dsv.scipro.checklist;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ChecklistCategoryRepoImpl extends GenericRepo<ChecklistCategory, Long> implements ChecklistCategoryRepo {

@ -2,8 +2,8 @@ package se.su.dsv.scipro.checklist;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ChecklistQuestionRepoImpl extends GenericRepo<ChecklistQuestion, Long> implements ChecklistQuestionRepo {

@ -5,8 +5,8 @@ import se.su.dsv.scipro.activityplan.QActivityPlan;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ChecklistServiceImpl extends AbstractServiceImpl<Checklist, Long> implements ChecklistService {

@ -6,8 +6,8 @@ import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -13,8 +13,8 @@ import jakarta.ws.rs.core.Response;
import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
import se.su.dsv.scipro.io.dto.*;
import javax.inject.Inject;
import javax.inject.Named;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;

@ -15,7 +15,7 @@ import se.su.dsv.scipro.project.ProjectStatus;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.io.Serializable;
import java.util.*;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.file;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class FileDescriptionRepoImpl extends GenericRepo<FileDescription, Long> implements FileDescriptionRepo {

@ -3,8 +3,8 @@ package se.su.dsv.scipro.file;
import com.google.inject.persist.Transactional;
import se.su.dsv.scipro.system.AbstractRepository;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
class FileReferenceRepositoryImpl extends AbstractRepository implements FileReferenceRepository {

@ -3,8 +3,8 @@ package se.su.dsv.scipro.file;
import com.google.inject.persist.Transactional;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.io.InputStream;

@ -6,8 +6,8 @@ import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.*;

@ -4,7 +4,7 @@ import com.google.inject.persist.Transactional;
import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.project.Project;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
public class ProjectFileServiceImpl implements ProjectFileService {

@ -8,8 +8,8 @@ import se.su.dsv.scipro.system.AbstractRepository;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;
import java.util.Optional;

@ -4,8 +4,8 @@ import se.su.dsv.scipro.system.AbstractRepository;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.*;

@ -3,8 +3,8 @@ package se.su.dsv.scipro.finalseminar;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class FinalSeminarActiveParticipationServiceImpl extends AbstractServiceImpl<FinalSeminarActiveParticipation, Long> implements FinalSeminarActiveParticipationService {

@ -9,7 +9,7 @@ import se.su.dsv.scipro.notifications.dataobject.SeminarEvent;
import se.su.dsv.scipro.project.Author;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

@ -4,8 +4,8 @@ import se.su.dsv.scipro.system.GenericRepo;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.*;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.finalseminar;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class FinalSeminarOppositionServiceImpl extends AbstractServiceImpl<FinalSeminarOpposition, Long> implements FinalSeminarOppositionService {

@ -4,8 +4,8 @@ import com.google.inject.persist.Transactional;
import jakarta.persistence.EntityManager;
import se.su.dsv.scipro.system.AbstractRepository;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
public class FinalSeminarRepositoryImpl extends AbstractRepository implements FinalSeminarRepository {
@Inject

@ -3,9 +3,9 @@ package se.su.dsv.scipro.finalseminar;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.ArrayList;
import java.util.List;

@ -21,8 +21,8 @@ import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.util.Either;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.time.*;
import java.util.Date;
import java.util.List;

@ -3,8 +3,8 @@ package se.su.dsv.scipro.finalseminar;
import com.google.inject.persist.Transactional;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class FinalSeminarSettingsServiceImpl extends AbstractServiceImpl<FinalSeminarSettings,Long> implements FinalSeminarSettingsService {

@ -10,7 +10,7 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.project.ProjectService;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.Date;
public class FinalSeminarUploadControllerImpl implements FinalSeminarUploadController {

@ -22,9 +22,9 @@ import se.su.dsv.scipro.report.GradingReportService;
import se.su.dsv.scipro.report.SupervisorGradingReport;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Provider;
import java.util.*;
@Named

@ -5,7 +5,7 @@ import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import javax.inject.*;
import jakarta.inject.*;
import se.su.dsv.scipro.match.Idea.Status;
import se.su.dsv.scipro.match.IdeaService.Filter;

@ -5,8 +5,8 @@ import se.su.dsv.scipro.activityplan.ActivityPlanFacade;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Date;
import java.util.Optional;

@ -4,8 +4,8 @@ import se.su.dsv.scipro.forum.dataobjects.ForumThread;
import se.su.dsv.scipro.forum.dataobjects.QForumThread;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class AbstractThreadRepositoryImpl extends GenericRepo<ForumThread, Long> implements AbstractThreadRepository {

@ -9,7 +9,7 @@ import se.su.dsv.scipro.forum.dataobjects.ForumPostReadState;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
import java.util.stream.Collectors;

@ -7,8 +7,8 @@ import se.su.dsv.scipro.forum.dataobjects.QForumPostReadState;
import se.su.dsv.scipro.system.GenericRepo;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import static com.querydsl.core.types.dsl.Expressions.allOf;

@ -12,8 +12,8 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.GenericRepo;
import se.su.dsv.scipro.util.Pair;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.util.*;
import static com.querydsl.core.types.dsl.Expressions.allOf;

@ -8,7 +8,7 @@ import se.su.dsv.scipro.forum.dataobjects.GroupThread;
import se.su.dsv.scipro.group.Group;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
public class GroupForumServiceImpl implements GroupForumService {

@ -5,8 +5,8 @@ import se.su.dsv.scipro.forum.dataobjects.QGroupThread;
import se.su.dsv.scipro.group.Group;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -11,7 +11,7 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.util.Pair;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
public class ProjectForumServiceImpl implements ProjectForumService {

@ -5,8 +5,8 @@ import se.su.dsv.scipro.forum.dataobjects.QProjectThread;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -3,8 +3,8 @@ package se.su.dsv.scipro.forum.notifications;
import com.querydsl.jpa.impl.JPAQuery;
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Optional;

@ -15,7 +15,7 @@ import se.su.dsv.scipro.notifications.NotificationController;
import se.su.dsv.scipro.notifications.NotificationService;
import se.su.dsv.scipro.reviewing.NewReviewerInteractionMessage;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.Set;
import java.util.function.Function;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.forummail;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ForumMailRepositoryImpl extends GenericRepo<ForumMail, Long> implements ForumMailRepository {

@ -1,6 +1,6 @@
package se.su.dsv.scipro.forummail;
import javax.inject.Inject;
import jakarta.inject.Inject;
public class ForumMailServiceImpl implements ForumMailService {

@ -3,8 +3,8 @@ package se.su.dsv.scipro.forummail;
import com.google.inject.persist.Transactional;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ForumMailSettingsServiceImpl extends AbstractServiceImpl<ForumMailSettings,Long> implements ForumMailSettingsService {

@ -2,7 +2,7 @@ package se.su.dsv.scipro.forummail;
import se.su.dsv.scipro.workerthreads.AbstractWorker;
import javax.inject.Inject;
import jakarta.inject.Inject;
public class ForumMailWorker extends AbstractWorker {

@ -3,9 +3,9 @@ package se.su.dsv.scipro.forummail;
import se.su.dsv.scipro.system.Lifecycle;
import se.su.dsv.scipro.workerthreads.Scheduler;
import javax.inject.Inject;
import javax.inject.Provider;
import javax.inject.Singleton;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;
import java.util.concurrent.TimeUnit;
@Singleton

@ -13,7 +13,7 @@ import jakarta.mail.search.FlagTerm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.io.IOException;
import java.util.*;

@ -9,7 +9,7 @@ import se.su.dsv.scipro.forum.GroupForumService;
import se.su.dsv.scipro.forum.ProjectForumService;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.io.InputStream;
import java.util.*;
import java.util.function.Function;

@ -16,7 +16,7 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.springdata.services.UserProfileService;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;

@ -31,7 +31,7 @@ import se.su.dsv.scipro.system.Language;
import se.su.dsv.scipro.system.ResearchArea;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;

@ -3,8 +3,8 @@ package se.su.dsv.scipro.generalsystemsettings;
import com.google.inject.persist.Transactional;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class GeneralSystemSettingsServiceImpl extends AbstractServiceImpl<GeneralSystemSettings, Long> implements GeneralSystemSettingsService {

@ -3,7 +3,7 @@ package se.su.dsv.scipro.grading;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;

@ -5,8 +5,8 @@ import jakarta.persistence.EntityManager;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.AbstractRepository;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.util.Collection;
public class GradingHistoryEventRepositoryImpl extends AbstractRepository implements GradingHistoryEventRepository {

@ -5,8 +5,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import se.su.dsv.scipro.util.Either;
import javax.inject.Inject;
import javax.inject.Named;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;

@ -4,8 +4,8 @@ import com.google.inject.persist.Transactional;
import jakarta.persistence.EntityManager;
import se.su.dsv.scipro.system.AbstractRepository;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.util.List;
import java.util.Optional;

@ -1,6 +1,6 @@
package se.su.dsv.scipro.grading;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.List;
import java.util.Optional;

@ -5,8 +5,8 @@ import jakarta.persistence.EntityManager;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.AbstractRepository;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
class PublicationMetadataRepositoryImpl extends AbstractRepository implements PublicationMetadataRepository {
@Inject

@ -2,7 +2,7 @@ package se.su.dsv.scipro.grading;
import se.su.dsv.scipro.project.Project;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.Objects;
class PublicationMetadataServiceImpl implements PublicationMetadataService {

@ -8,8 +8,8 @@ import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.FilteredService;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -3,8 +3,8 @@ package se.su.dsv.scipro.integration.activityfinalseminar;
import se.su.dsv.scipro.finalseminar.FinalSeminar;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Optional;

@ -11,8 +11,8 @@ import se.su.dsv.scipro.finalseminar.FinalSeminarCreatedEvent;
import se.su.dsv.scipro.finalseminar.FinalSeminarDeletedEvent;
import se.su.dsv.scipro.finalseminar.FinalSeminarMovedEvent;
import javax.inject.Inject;
import javax.inject.Singleton;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.util.*;
@Singleton

@ -4,8 +4,8 @@ import com.querydsl.jpa.impl.JPAQuery;
import se.su.dsv.scipro.activityplan.Activity;
import se.su.dsv.scipro.forum.dataobjects.ProjectThread;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Optional;

@ -10,8 +10,8 @@ import se.su.dsv.scipro.forum.ProjectForumService;
import se.su.dsv.scipro.forum.dataobjects.ProjectThread;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Singleton;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.util.*;
@Singleton

@ -5,7 +5,7 @@ import jakarta.mail.internet.AddressException;
import jakarta.mail.internet.InternetAddress;
import se.su.dsv.scipro.file.FileService;
import javax.inject.Inject;
import jakarta.inject.Inject;
public class Mail extends SMTPMailer {

@ -5,8 +5,8 @@ import com.querydsl.core.types.Predicate;
import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -9,7 +9,7 @@ import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.workerthreads.AbstractWorker;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
import java.util.stream.Collectors;

@ -5,7 +5,7 @@ import jakarta.mail.internet.AddressException;
import jakarta.mail.internet.InternetAddress;
import se.su.dsv.scipro.file.FileService;
import javax.inject.Inject;
import jakarta.inject.Inject;
public class RedirectingMailer extends SMTPMailer {
private final String redirectTo;

@ -6,7 +6,7 @@ import se.su.dsv.scipro.activityplan.ActivityPlanFacade;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.ProjectModule;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.time.Instant;
import java.time.ZoneId;
import java.util.Date;

@ -4,7 +4,7 @@ import se.su.dsv.scipro.reusable.SciProUtilities;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
public class ApplicationPeriodFacadeImpl implements ApplicationPeriodFacade {

@ -4,8 +4,8 @@ import com.querydsl.core.types.dsl.BooleanExpression;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.ProjectType;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class ApplicationPeriodProjectTypeServiceImpl extends AbstractServiceImpl<ApplicationPeriodProjectType, ApplicationPeriodProjectTypeId> implements ApplicationPeriodProjectTypeService {

@ -10,8 +10,8 @@ import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.time.Clock;
import java.time.LocalDate;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.match;
import se.su.dsv.scipro.system.GenericRepo;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class FirstMeetingRepositoryImpl extends GenericRepo<FirstMeeting, Long> implements FirstMeetingRepository {

@ -4,7 +4,7 @@ import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@ -4,8 +4,8 @@ import se.su.dsv.scipro.system.AbstractRepository;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Set;

@ -24,8 +24,8 @@ import se.su.dsv.scipro.system.*;
import se.su.dsv.scipro.util.Either;
import se.su.dsv.scipro.util.Pair;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.text.MessageFormat;
import java.time.Clock;

@ -10,8 +10,8 @@ import org.springframework.data.domain.Sort;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.ResearchArea;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -11,8 +11,8 @@ import com.querydsl.jpa.impl.JPAQuery;
import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;
import java.util.Set;

@ -3,8 +3,8 @@ package se.su.dsv.scipro.match;
import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class MatchServiceImpl extends AbstractServiceImpl<Match,Long> implements MatchService {

@ -2,8 +2,8 @@ package se.su.dsv.scipro.match;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class PreliminaryMatchServiceImpl extends AbstractServiceImpl<PreliminaryMatch, Long> implements PreliminaryMatchService {

@ -8,8 +8,8 @@ import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.Program;
import se.su.dsv.scipro.system.QProgram;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.List;

@ -7,7 +7,7 @@ import se.su.dsv.scipro.notifications.dataobject.IdeaEvent;
import se.su.dsv.scipro.notifications.dataobject.NotificationSource;
import se.su.dsv.scipro.notifications.dataobject.ProjectEvent;
import javax.inject.Inject;
import jakarta.inject.Inject;
public class ProjectStartNotifier {
private final NotificationController notificationController;

@ -4,8 +4,8 @@ import se.su.dsv.scipro.system.AbstractRepository;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class TargetRepositoryImpl extends AbstractRepository implements TargetRepository {

@ -7,8 +7,8 @@ import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.*;

@ -6,8 +6,8 @@ import se.su.dsv.scipro.milestones.dataobjects.QMilestoneActivityTemplate;
import se.su.dsv.scipro.system.GenericRepo;
import se.su.dsv.scipro.system.ProjectType;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.time.LocalDate;
import java.time.ZoneId;

@ -12,7 +12,7 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.project.ProjectCreatedEvent;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.*;
public class ActivateCompletedMilestonesOnNewProjects {

@ -20,7 +20,7 @@ import se.su.dsv.scipro.reviewing.RoughDraftApprovalApprovedEvent;
import se.su.dsv.scipro.reviewing.RoughDraftApprovalRequestedEvent;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.List;
import java.util.Objects;
import java.util.Set;

@ -9,7 +9,7 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.reusable.SciProUtilities;
import se.su.dsv.scipro.system.ProjectType;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.time.LocalDate;
import java.util.*;

@ -8,8 +8,8 @@ import se.su.dsv.scipro.milestones.service.MilestonePhaseTemplateService;
import se.su.dsv.scipro.reusable.SciProUtilities;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.time.LocalDate;
import java.time.ZoneId;

@ -21,8 +21,8 @@ import se.su.dsv.scipro.system.ProjectModule;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Collection;
import java.util.List;

@ -20,8 +20,8 @@ import se.su.dsv.scipro.project.QProject;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.*;

@ -2,7 +2,7 @@ package se.su.dsv.scipro.misc;
import se.su.dsv.scipro.nonworkperiod.NonWorkDayPeriodService;
import javax.inject.Inject;
import jakarta.inject.Inject;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.Instant;

@ -4,8 +4,8 @@ import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.Expressions;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.time.LocalDate;
import java.time.ZoneId;

@ -4,8 +4,8 @@ import com.querydsl.core.types.dsl.BooleanExpression;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
public class NoteServiceImpl extends AbstractServiceImpl<Note, Long> implements NoteService {

@ -19,8 +19,8 @@ import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.CurrentUser;
import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;

@ -2,8 +2,8 @@ package se.su.dsv.scipro.notifications;
import se.su.dsv.scipro.notifications.dataobject.NotificationEvent;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import java.util.Optional;

Some files were not shown because too many files have changed in this diff Show More