Skip to content

Commit 96d9328

Browse files
committed
CHE-6463 Update packages of Recipe, Snapshot objects
1 parent c417d75 commit 96d9328

40 files changed

Lines changed: 243 additions & 290 deletions

File tree

assembly-multiuser/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/MachineAuthModule.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
package org.eclipse.che.api.deploy;
1212

1313
import com.google.inject.AbstractModule;
14-
import org.eclipse.che.api.workspace.server.WorkspaceServiceLinksInjector;
1514
import org.eclipse.che.commons.auth.token.ChainedTokenExtractor;
1615
import org.eclipse.che.commons.auth.token.RequestTokenExtractor;
1716
import org.eclipse.che.inject.DynaModule;
@@ -28,20 +27,12 @@ public class MachineAuthModule extends AbstractModule {
2827
@Override
2928
protected void configure() {
3029
install(new InterceptorModule());
31-
bind(org.eclipse.che.api.agent.server.WsAgentHealthChecker.class)
32-
.to(org.eclipse.che.multiuser.machine.authentication.server.AuthWsAgentHealthChecker.class);
3330
bind(
3431
org.eclipse.che.multiuser.machine.authentication.server.MachineTokenPermissionsFilter
3532
.class);
3633
bind(org.eclipse.che.multiuser.machine.authentication.server.MachineTokenService.class);
3734
bind(org.eclipse.che.multiuser.machine.authentication.server.MachineTokenRegistry.class);
3835
bind(org.eclipse.che.multiuser.machine.authentication.server.MachineSessionInvalidator.class);
3936
bind(RequestTokenExtractor.class).to(ChainedTokenExtractor.class);
40-
bind(WorkspaceServiceLinksInjector.class)
41-
.to(
42-
org.eclipse.che.multiuser.machine.authentication.server
43-
.WorkspaceServiceAuthLinksInjector.class);
44-
bind(org.eclipse.che.api.environment.server.MachineInstanceProvider.class)
45-
.to(org.eclipse.che.plugin.docker.machine.AuthMachineProviderImpl.class);
4637
}
4738
}

assembly-multiuser/assembly-wsmaster-war/src/main/resources/META-INF/persistence.xml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
1212
-->
1313
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
14-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
15-
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0">
14+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
15+
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0">
1616
<persistence-unit name="main" transaction-type="RESOURCE_LOCAL">
1717
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
1818
<non-jta-data-source>java:/comp/env/jdbc/che</non-jta-data-source>
@@ -27,16 +27,16 @@
2727
<class>org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl</class>
2828
<class>org.eclipse.che.api.workspace.server.model.impl.EnvironmentImpl</class>
2929
<class>org.eclipse.che.api.workspace.server.model.impl.EnvironmentRecipeImpl</class>
30-
<class>org.eclipse.che.api.workspace.server.model.impl.ExtendedMachineImpl</class>
30+
<class>org.eclipse.che.api.workspace.server.model.impl.MachineConfigImpl</class>
3131
<class>org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl$Attribute</class>
3232
<class>org.eclipse.che.api.workspace.server.model.impl.SourceStorageImpl</class>
33-
<class>org.eclipse.che.api.workspace.server.model.impl.ServerConf2Impl</class>
33+
<class>org.eclipse.che.api.workspace.server.model.impl.ServerConfigImpl</class>
3434
<class>org.eclipse.che.api.workspace.server.model.impl.stack.StackImpl</class>
3535

36-
<class>org.eclipse.che.api.machine.server.model.impl.CommandImpl</class>
37-
<class>org.eclipse.che.api.machine.server.model.impl.MachineSourceImpl</class>
38-
<class>org.eclipse.che.api.machine.server.model.impl.SnapshotImpl</class>
39-
<class>org.eclipse.che.api.machine.server.recipe.RecipeImpl</class>
36+
<class>org.eclipse.che.api.workspace.server.model.impl.CommandImpl</class>
37+
<class>org.eclipse.che.workspace.infrastructure.docker.snapshot.MachineSourceImpl</class>
38+
<class>org.eclipse.che.workspace.infrastructure.docker.snapshot.SnapshotImpl</class>
39+
<class>org.eclipse.che.api.recipe.OldRecipeImpl</class>
4040

4141
<class>org.eclipse.che.api.factory.server.model.impl.FactoryImpl</class>
4242
<class>org.eclipse.che.api.factory.server.model.impl.OnAppClosedImpl</class>
@@ -52,6 +52,9 @@
5252

5353
<class>org.eclipse.che.api.ssh.server.model.impl.SshPairImpl</class>
5454

55+
<class>org.eclipse.che.api.installer.server.model.impl.InstallerImpl</class>
56+
<class>org.eclipse.che.api.installer.server.model.impl.InstallerServerConfigImpl</class>
57+
5558
<class>org.eclipse.che.multiuser.api.permission.server.model.impl.SystemPermissionsImpl</class>
5659
<class>org.eclipse.che.multiuser.api.permission.server.model.impl.AbstractPermissions</class>
5760
<class>org.eclipse.che.multiuser.permission.workspace.server.model.impl.WorkerImpl</class>

infrastructures/docker/src/main/java/org/eclipse/che/workspace/infrastructure/docker/DockerInfraModule.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,7 @@ protected void configure() {
6767
install(new FactoryModuleBuilder().build(DockerRuntimeContextFactory.class));
6868

6969
bind(SnapshotDao.class).to(JpaSnapshotDao.class);
70+
bind(JpaSnapshotDao.RemoveSnapshotsBeforeWorkspaceRemovedEventSubscriber.class)
71+
.asEagerSingleton();
7072
}
7173
}

infrastructures/docker/src/main/java/org/eclipse/che/workspace/infrastructure/docker/snapshot/JpaSnapshotDao.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,16 @@
1616
import com.google.inject.persist.Transactional;
1717
import java.util.Collection;
1818
import java.util.List;
19+
import javax.annotation.PostConstruct;
1920
import javax.inject.Inject;
2021
import javax.inject.Provider;
2122
import javax.inject.Singleton;
2223
import javax.persistence.EntityManager;
2324
import javax.persistence.NoResultException;
2425
import org.eclipse.che.api.core.NotFoundException;
26+
import org.eclipse.che.api.core.notification.EventService;
27+
import org.eclipse.che.api.workspace.server.event.BeforeWorkspaceRemovedEvent;
28+
import org.eclipse.che.core.db.cascade.CascadeEventSubscriber;
2529
import org.eclipse.che.core.db.jpa.DuplicateKeyException;
2630

2731
/**
@@ -160,4 +164,25 @@ protected List<SnapshotImpl> doReplaceSnapshots(
160164
newSnapshots.forEach(manager::persist);
161165
return existing;
162166
}
167+
168+
@Singleton
169+
public static class RemoveSnapshotsBeforeWorkspaceRemovedEventSubscriber
170+
extends CascadeEventSubscriber<BeforeWorkspaceRemovedEvent> {
171+
172+
@Inject private EventService eventService;
173+
@Inject private SnapshotDao snapshotDao;
174+
175+
@PostConstruct
176+
public void subscribe() {
177+
eventService.subscribe(this, BeforeWorkspaceRemovedEvent.class);
178+
}
179+
180+
@Override
181+
public void onCascadeEvent(BeforeWorkspaceRemovedEvent event) throws Exception {
182+
List<SnapshotImpl> toRemove = snapshotDao.findSnapshots(event.getWorkspace().getId());
183+
for (SnapshotImpl snapshot : toRemove) {
184+
snapshotDao.removeSnapshot(snapshot.getId());
185+
}
186+
}
187+
}
163188
}

multiuser/integration-tests/che-multiuser-cascade-removal/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@
6262
<groupId>org.eclipse.che.core</groupId>
6363
<artifactId>che-core-commons-inject</artifactId>
6464
</dependency>
65+
<dependency>
66+
<groupId>org.eclipse.che</groupId>
67+
<artifactId>infrastructure-docker</artifactId>
68+
</dependency>
6569
<dependency>
6670
<groupId>org.eclipse.che.core</groupId>
6771
<artifactId>che-core-commons-lang</artifactId>

multiuser/integration-tests/che-multiuser-cascade-removal/src/test/java/org/eclipse/che/multiuser/integration/jpa/cascaderemoval/JpaEntitiesCascadeRemovalTest.java

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,12 @@
2121
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createPreferences;
2222
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createProfile;
2323
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createRecipe;
24-
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createSnapshot;
2524
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createSshPair;
2625
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createStack;
2726
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createUser;
2827
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createWorker;
2928
import static org.eclipse.che.multiuser.integration.jpa.cascaderemoval.TestObjectsFactory.createWorkspace;
3029
import static org.eclipse.che.multiuser.resource.spi.jpa.JpaFreeResourcesLimitDao.RemoveFreeResourcesLimitSubscriber;
31-
import static org.mockito.Mockito.when;
3230
import static org.testng.Assert.assertEquals;
3331
import static org.testng.Assert.assertFalse;
3432
import static org.testng.Assert.assertNotNull;
@@ -63,10 +61,9 @@
6361
import org.eclipse.che.api.factory.server.jpa.FactoryJpaModule;
6462
import org.eclipse.che.api.factory.server.model.impl.FactoryImpl;
6563
import org.eclipse.che.api.factory.server.spi.FactoryDao;
66-
import org.eclipse.che.api.machine.server.model.impl.SnapshotImpl;
67-
import org.eclipse.che.api.machine.server.recipe.RecipeImpl;
68-
import org.eclipse.che.api.machine.server.spi.RecipeDao;
69-
import org.eclipse.che.api.machine.server.spi.SnapshotDao;
64+
import org.eclipse.che.api.recipe.JpaRecipeDao;
65+
import org.eclipse.che.api.recipe.OldRecipeImpl;
66+
import org.eclipse.che.api.recipe.RecipeDao;
7067
import org.eclipse.che.api.ssh.server.jpa.SshJpaModule;
7168
import org.eclipse.che.api.ssh.server.model.impl.SshPairImpl;
7269
import org.eclipse.che.api.ssh.server.spi.SshDao;
@@ -79,10 +76,10 @@
7976
import org.eclipse.che.api.user.server.spi.ProfileDao;
8077
import org.eclipse.che.api.user.server.spi.UserDao;
8178
import org.eclipse.che.api.workspace.server.WorkspaceManager;
82-
import org.eclipse.che.api.workspace.server.WorkspaceRuntimes;
8379
import org.eclipse.che.api.workspace.server.WorkspaceSharedPool;
8480
import org.eclipse.che.api.workspace.server.model.impl.WorkspaceImpl;
8581
import org.eclipse.che.api.workspace.server.model.impl.stack.StackImpl;
82+
import org.eclipse.che.api.workspace.server.spi.RuntimeInfrastructure;
8683
import org.eclipse.che.api.workspace.server.spi.StackDao;
8784
import org.eclipse.che.api.workspace.server.spi.WorkspaceDao;
8885
import org.eclipse.che.commons.env.EnvironmentContext;
@@ -127,7 +124,6 @@
127124
import org.eclipse.che.multiuser.resource.spi.impl.ProvidedResourcesImpl;
128125
import org.eclipse.che.multiuser.resource.spi.impl.ResourceImpl;
129126
import org.eclipse.che.multiuser.resource.spi.jpa.JpaFreeResourcesLimitDao;
130-
import org.mockito.Mockito;
131127
import org.testng.annotations.AfterMethod;
132128
import org.testng.annotations.BeforeMethod;
133129
import org.testng.annotations.DataProvider;
@@ -149,7 +145,6 @@ public class JpaEntitiesCascadeRemovalTest {
149145
private UserManager userManager;
150146
private ProfileDao profileDao;
151147
private WorkspaceDao workspaceDao;
152-
private SnapshotDao snapshotDao;
153148
private SshDao sshDao;
154149
private FactoryDao factoryDao;
155150
private RecipeDao recipeDao;
@@ -197,17 +192,10 @@ public class JpaEntitiesCascadeRemovalTest {
197192

198193
private FactoryImpl factory2;
199194

200-
/** Snapshots depend on workspace. */
201-
private SnapshotImpl snapshot1;
202-
203-
private SnapshotImpl snapshot2;
204-
private SnapshotImpl snapshot3;
205-
private SnapshotImpl snapshot4;
206-
207195
/** Recipe depend on user via permissions */
208-
private RecipeImpl recipe1;
196+
private OldRecipeImpl recipe1;
209197

210-
private RecipeImpl recipe2;
198+
private OldRecipeImpl recipe2;
211199

212200
/** Stack depend on user via permissions */
213201
private StackImpl stack1;
@@ -248,13 +236,12 @@ protected void configure() {
248236
install(new FactoryJpaModule());
249237
install(new OrganizationJpaModule());
250238
install(new MultiuserWorkspaceJpaModule());
239+
bind(RecipeDao.class).to(JpaRecipeDao.class);
251240

252241
bind(FreeResourcesLimitDao.class).to(JpaFreeResourcesLimitDao.class);
253242
bind(RemoveFreeResourcesLimitSubscriber.class).asEagerSingleton();
254243
bind(WorkspaceManager.class);
255-
final WorkspaceRuntimes wR = Mockito.mock(WorkspaceRuntimes.class);
256-
when(wR.hasRuntime(Mockito.anyString())).thenReturn(false);
257-
bind(WorkspaceRuntimes.class).toInstance(wR);
244+
Multibinder.newSetBinder(binder(), RuntimeInfrastructure.class);
258245
bind(AccountManager.class);
259246
bind(Boolean.class)
260247
.annotatedWith(Names.named("che.workspace.auto_snapshot"))
@@ -301,7 +288,6 @@ protected void configure() {
301288
preferenceDao = injector.getInstance(PreferenceDao.class);
302289
profileDao = injector.getInstance(ProfileDao.class);
303290
sshDao = injector.getInstance(SshDao.class);
304-
snapshotDao = injector.getInstance(SnapshotDao.class);
305291
workspaceDao = injector.getInstance(WorkspaceDao.class);
306292
factoryDao = injector.getInstance(FactoryDao.class);
307293
stackDao = injector.getInstance(StackDao.class);
@@ -348,8 +334,6 @@ public void shouldDeleteAllTheEntitiesWhenUserIsDeleted() throws Exception {
348334
factoryDao
349335
.getByAttribute(0, 0, singletonList(Pair.of("creator.userId", user.getId())))
350336
.isEmpty());
351-
assertTrue(snapshotDao.findSnapshots(workspace1.getId()).isEmpty());
352-
assertTrue(snapshotDao.findSnapshots(workspace2.getId()).isEmpty());
353337
//Check workers and parent entity is removed
354338
assertTrue(workspaceDao.getByNamespace(user2.getId()).isEmpty());
355339
assertEquals(workerDao.getWorkers(workspace3.getId(), 1, 0).getTotalItemsCount(), 0);
@@ -451,11 +435,6 @@ private void createTestData() throws NotFoundException, ConflictException, Serve
451435
factoryDao.create(factory1 = createFactory("factory1", user.getId()));
452436
factoryDao.create(factory2 = createFactory("factory2", user.getId()));
453437

454-
snapshotDao.saveSnapshot(snapshot1 = createSnapshot("snapshot1", workspace1.getId()));
455-
snapshotDao.saveSnapshot(snapshot2 = createSnapshot("snapshot2", workspace1.getId()));
456-
snapshotDao.saveSnapshot(snapshot3 = createSnapshot("snapshot3", workspace2.getId()));
457-
snapshotDao.saveSnapshot(snapshot4 = createSnapshot("snapshot4", workspace2.getId()));
458-
459438
recipeDao.create(recipe1 = createRecipe("recipe1"));
460439
recipeDao.create(recipe2 = createRecipe("recipe2"));
461440

@@ -531,11 +510,6 @@ private void wipeTestData() throws ConflictException, ServerException, NotFoundE
531510
organizationManager.remove(organization.getId());
532511
organizationManager.remove(organization2.getId());
533512

534-
snapshotDao.removeSnapshot(snapshot1.getId());
535-
snapshotDao.removeSnapshot(snapshot2.getId());
536-
snapshotDao.removeSnapshot(snapshot3.getId());
537-
snapshotDao.removeSnapshot(snapshot4.getId());
538-
539513
stackPermissionsDao.remove(user2.getId(), stack1.getId());
540514
stackPermissionsDao.remove(user2.getId(), stack2.getId());
541515
stackPermissionsDao.remove(user2.getId(), stack3.getId());

multiuser/integration-tests/che-multiuser-cascade-removal/src/test/java/org/eclipse/che/multiuser/integration/jpa/cascaderemoval/TestObjectsFactory.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
import org.eclipse.che.account.spi.AccountImpl;
2121
import org.eclipse.che.api.factory.server.model.impl.AuthorImpl;
2222
import org.eclipse.che.api.factory.server.model.impl.FactoryImpl;
23-
import org.eclipse.che.api.machine.server.model.impl.SnapshotImpl;
24-
import org.eclipse.che.api.machine.server.recipe.RecipeImpl;
23+
import org.eclipse.che.api.recipe.OldRecipeImpl;
2524
import org.eclipse.che.api.ssh.server.model.impl.SshPairImpl;
2625
import org.eclipse.che.api.user.server.model.impl.ProfileImpl;
2726
import org.eclipse.che.api.user.server.model.impl.UserImpl;
@@ -94,21 +93,8 @@ public static FactoryImpl createFactory(String id, String creator) {
9493
null);
9594
}
9695

97-
public static SnapshotImpl createSnapshot(String snapshotId, String workspaceId) {
98-
return new SnapshotImpl(
99-
snapshotId,
100-
"type",
101-
null,
102-
System.currentTimeMillis(),
103-
workspaceId,
104-
snapshotId + "_description",
105-
true,
106-
"dev-machine",
107-
snapshotId + "env-name");
108-
}
109-
110-
public static RecipeImpl createRecipe(String id) {
111-
return new RecipeImpl(
96+
public static OldRecipeImpl createRecipe(String id) {
97+
return new OldRecipeImpl(
11298
id,
11399
"recipe-name-" + id,
114100
"recipe-creator",

multiuser/integration-tests/che-multiuser-cascade-removal/src/test/resources/META-INF/persistence.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@
2525
<class>org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl</class>
2626
<class>org.eclipse.che.api.workspace.server.model.impl.EnvironmentImpl</class>
2727
<class>org.eclipse.che.api.workspace.server.model.impl.EnvironmentRecipeImpl</class>
28-
<class>org.eclipse.che.api.workspace.server.model.impl.ExtendedMachineImpl</class>
28+
<class>org.eclipse.che.api.workspace.server.model.impl.MachineConfigImpl</class>
2929
<class>org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl$Attribute</class>
3030
<class>org.eclipse.che.api.workspace.server.model.impl.SourceStorageImpl</class>
31-
<class>org.eclipse.che.api.workspace.server.model.impl.ServerConf2Impl</class>
31+
<class>org.eclipse.che.api.workspace.server.model.impl.ServerConfigImpl</class>
3232
<class>org.eclipse.che.api.workspace.server.model.impl.stack.StackImpl</class>
3333

34-
<class>org.eclipse.che.api.machine.server.model.impl.MachineSourceImpl</class>
35-
<class>org.eclipse.che.api.machine.server.model.impl.CommandImpl</class>
36-
<class>org.eclipse.che.api.machine.server.model.impl.SnapshotImpl</class>
37-
<class>org.eclipse.che.api.machine.server.recipe.RecipeImpl</class>
34+
<class>org.eclipse.che.api.workspace.server.model.impl.CommandImpl</class>
35+
<class>org.eclipse.che.workspace.infrastructure.docker.snapshot.MachineSourceImpl</class>
36+
<class>org.eclipse.che.workspace.infrastructure.docker.snapshot.SnapshotImpl</class>
37+
<class>org.eclipse.che.api.recipe.OldRecipeImpl</class>
3838

3939
<class>org.eclipse.che.api.factory.server.model.impl.FactoryImpl</class>
4040
<class>org.eclipse.che.api.factory.server.model.impl.OnAppClosedImpl</class>

multiuser/integration-tests/che-multiuser-postgresql-tck/src/test/java/MultiuserPostgresqlTckModule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import javax.persistence.NoResultException;
3737
import javax.persistence.spi.PersistenceUnitTransactionType;
3838
import org.eclipse.che.account.spi.AccountImpl;
39-
import org.eclipse.che.api.machine.server.recipe.RecipeImpl;
39+
import org.eclipse.che.api.recipe.OldRecipeImpl;
4040
import org.eclipse.che.api.user.server.model.impl.UserImpl;
4141
import org.eclipse.che.api.workspace.server.model.impl.WorkspaceImpl;
4242
import org.eclipse.che.api.workspace.server.model.impl.stack.StackImpl;
@@ -136,8 +136,8 @@ protected void configure() {
136136
.toInstance(new JpaTckRepository<>(WorkerImpl.class));
137137

138138
//api-machine
139-
bind(new TypeLiteral<TckRepository<RecipeImpl>>() {})
140-
.toInstance(new JpaTckRepository<>(RecipeImpl.class));
139+
bind(new TypeLiteral<TckRepository<OldRecipeImpl>>() {})
140+
.toInstance(new JpaTckRepository<>(OldRecipeImpl.class));
141141
//api permission
142142
bind(new TypeLiteral<TckRepository<RecipePermissionsImpl>>() {})
143143
.toInstance(new JpaTckRepository<>(RecipePermissionsImpl.class));

0 commit comments

Comments
 (0)