Skip to content
This repository was archived by the owner on Jan 15, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class SocialChromatticLifeCycle extends ChromatticLifeCycle {
public static final String SOCIAL_LIFECYCLE_NAME = "soc";

public ChromatticSession getSession() {
if (session.get() != null) {
if (session.get() != null && session.get().getJCRSession().isLive() && !session.get().isClosed()) {
return session.get();
}
else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -409,8 +409,6 @@ public Space createSpace(Space space, String creator, String invitedGroupId) {
space.setMembers(members);
space.setGroupId(groupId);
space.setUrl(space.getPrettyName());
saveSpace(space, true);
spaceLifeCycle.spaceCreated(space, creator);

try {
SpaceApplicationHandler spaceApplicationHandler = getSpaceApplicationHandler(space);
Expand All @@ -422,7 +420,8 @@ public Space createSpace(Space space, String creator, String invitedGroupId) {
} catch (Exception e) {
LOG.warn("Failed to init apps", e);
}

saveSpace(space, true);
spaceLifeCycle.spaceCreated(space, creator);
return space;
}

Expand Down Expand Up @@ -1087,7 +1086,7 @@ public void setApp(Space space, String appId, String appName, boolean isRemovabl
apps += "," + applicationStatus;
}
space.setApp(apps);
saveSpace(space, false);
//saveSpace(space, false);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@
public abstract class AbstractStorage {

//
protected final PortalContainer container;
protected final ChromatticManager manager;
protected final SocialChromatticLifeCycle lifeCycle;

//
Expand All @@ -54,9 +52,7 @@ public abstract class AbstractStorage {

protected AbstractStorage() {

this.container = PortalContainer.getInstance();
this.manager = (ChromatticManager) container.getComponentInstanceOfType(ChromatticManager.class);
this.lifeCycle = (SocialChromatticLifeCycle) manager.getLifeCycle(SocialChromatticLifeCycle.SOCIAL_LIFECYCLE_NAME);
this.lifeCycle = lifecycleLookup();

}

Expand Down Expand Up @@ -142,18 +138,31 @@ protected void _skip(Iterator<?> it, long offset) {
}
}

protected boolean startSynchronization() {
if (lifeCycle.getManager().getSynchronization() == null) {
lifeCycle.getManager().beginRequest();
public static boolean startSynchronization() {

SocialChromatticLifeCycle lc = lifecycleLookup();

if (lc.getManager().getSynchronization() == null) {
lc.getManager().beginRequest();
return true;
}
return false;
}

protected void stopSynchronization(boolean requestClose) {
public static void stopSynchronization(boolean requestClose) {

SocialChromatticLifeCycle lc = lifecycleLookup();
if (requestClose) {
lifeCycle.getManager().endRequest(true);
lc.getManager().endRequest(true);
}
}

private static SocialChromatticLifeCycle lifecycleLookup() {

PortalContainer container = PortalContainer.getInstance();
ChromatticManager manager = (ChromatticManager) container.getComponentInstanceOfType(ChromatticManager.class);
return (SocialChromatticLifeCycle) manager.getLifeCycle(SocialChromatticLifeCycle.SOCIAL_LIFECYCLE_NAME);

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.chromattic.api.query.Query;
import org.chromattic.api.query.QueryBuilder;
import org.chromattic.api.query.QueryResult;
import org.exoplatform.container.PortalContainer;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.social.core.chromattic.entity.IdentityEntity;
Expand Down Expand Up @@ -113,13 +114,14 @@ private void fillSpaceFromEntity(SpaceEntity entity, Space space) {

if (entity.getAvatarLastUpdated() != null) {
try {
PortalContainer container = PortalContainer.getInstance();
ChromatticSession chromatticSession = getSession();
String url = String.format("/%s/jcr/%s/%s/production/soc:providers/soc:space/soc:%s/soc:profile/soc:avatar/?upd=%d",
container.getRestContextName(),
lifeCycle.getRepositoryName(),
chromatticSession.getJCRSession().getWorkspace().getName(),
entity.getPrettyName(),
entity.getAvatarLastUpdated());
container.getRestContextName(),
lifeCycle.getRepositoryName(),
chromatticSession.getJCRSession().getWorkspace().getName(),
entity.getPrettyName(),
entity.getAvatarLastUpdated());
space.setAvatarUrl(LinkProvider.escapeJCRSpecialCharacters(url));
} catch (Exception e) {
LOG.warn("Failed to build avatar url: " + e.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@
import org.exoplatform.services.organization.UserHandler;
import org.exoplatform.social.common.lifecycle.SocialChromatticLifeCycle;
import org.exoplatform.social.core.chromattic.entity.IdentityEntity;
import org.exoplatform.social.core.chromattic.entity.SpaceEntity;
import org.exoplatform.social.core.manager.ActivityManager;
import org.exoplatform.social.core.manager.IdentityManager;
import org.exoplatform.social.core.manager.RelationshipManager;
import org.exoplatform.social.core.space.spi.SpaceService;
import org.exoplatform.social.core.storage.api.IdentityStorage;
import org.exoplatform.social.core.storage.impl.AbstractStorage;
import org.exoplatform.social.core.storage.query.WhereExpression;
import org.exoplatform.social.extras.injection.utils.LoremIpsum4J;
import org.exoplatform.social.extras.injection.utils.NameGenerator;
Expand Down Expand Up @@ -83,15 +85,18 @@ public abstract class AbstractSocialInjector extends DataInjector {
/** . */
protected LoremIpsum4J lorem;

/** . */
protected PortalContainer container;

public AbstractSocialInjector() {

PortalContainer c = PortalContainer.getInstance();
this.identityManager = (IdentityManager) c.getComponentInstanceOfType(IdentityManager.class);
this.identityStorage = (IdentityStorage) c.getComponentInstanceOfType(IdentityStorage.class);
this.relationshipManager = (RelationshipManager) c.getComponentInstanceOfType(RelationshipManager.class);
this.activityManager = (ActivityManager) c.getComponentInstanceOfType(ActivityManager.class);
this.spaceService = (SpaceService) c.getComponentInstanceOfType(SpaceService.class);
this.organizationService = (OrganizationService) c.getComponentInstanceOfType(OrganizationService.class);
this.container = PortalContainer.getInstance();
this.identityManager = (IdentityManager) container.getComponentInstanceOfType(IdentityManager.class);
this.identityStorage = (IdentityStorage) container.getComponentInstanceOfType(IdentityStorage.class);
this.relationshipManager = (RelationshipManager) container.getComponentInstanceOfType(RelationshipManager.class);
this.activityManager = (ActivityManager) container.getComponentInstanceOfType(ActivityManager.class);
this.spaceService = (SpaceService) container.getComponentInstanceOfType(SpaceService.class);
this.organizationService = (OrganizationService) container.getComponentInstanceOfType(OrganizationService.class);

//
this.userHandler = organizationService.getUserHandler();
Expand All @@ -107,14 +112,18 @@ public void init() {
userNumber = 0;
spaceNumber = 0;

boolean started = AbstractStorage.startSynchronization();

try {
userNumber = userNumber(USER_BASE);
spaceNumber = userNumber(SPACE_BASE_PRETTY_NAME);
spaceNumber = spaceNumber(SPACE_BASE);
}
catch (UndeclaredThrowableException e) {
// If no user is existing, set keep 0 as value.
}

AbstractStorage.stopSynchronization(started);


//
LOG.info("Initial user number : " + userNumber);
Expand All @@ -138,7 +147,6 @@ public void reject(HashMap<String, String> stringStringHashMap) throws Exception

private int userNumber(String base) {


PortalContainer container = PortalContainer.getInstance();
ChromatticManager manager = (ChromatticManager) container.getComponentInstanceOfType(ChromatticManager.class);
SocialChromatticLifeCycle lifeCycle = (SocialChromatticLifeCycle) manager.getLifeCycle(SocialChromatticLifeCycle.SOCIAL_LIFECYCLE_NAME);
Expand All @@ -150,6 +158,19 @@ private int userNumber(String base) {

}

private int spaceNumber(String base) {

PortalContainer container = PortalContainer.getInstance();
ChromatticManager manager = (ChromatticManager) container.getComponentInstanceOfType(ChromatticManager.class);
SocialChromatticLifeCycle lifeCycle = (SocialChromatticLifeCycle) manager.getLifeCycle(SocialChromatticLifeCycle.SOCIAL_LIFECYCLE_NAME);

QueryBuilder<SpaceEntity> builder = lifeCycle.getSession().createQueryBuilder(SpaceEntity.class);
WhereExpression where = new WhereExpression();
where.like(SpaceEntity.displayName, base + "%");
return builder.where(where.toString()).get().objects().size();

}

protected String userName() {
return USER_BASE + userNumber;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
package org.exoplatform.social.extras.injection;

import org.exoplatform.services.organization.OrganizationService;
import org.exoplatform.social.core.identity.provider.OrganizationIdentityProvider;
import org.exoplatform.social.core.manager.ActivityManager;
import org.exoplatform.social.core.manager.IdentityManager;
import org.exoplatform.social.core.manager.RelationshipManager;
import org.exoplatform.social.core.space.SpaceException;
import org.exoplatform.social.core.space.SpaceUtils;
import org.exoplatform.social.core.space.impl.DefaultSpaceApplicationHandler;
import org.exoplatform.social.core.space.model.Space;
import org.exoplatform.social.core.space.spi.SpaceService;
import org.exoplatform.social.core.storage.api.SpaceStorage;

import java.util.HashMap;

Expand Down Expand Up @@ -52,13 +45,17 @@ public void inject(HashMap<String, String> params) throws Exception {
space.setRegistration(Space.OPEN);
space.setDescription(lorem.getWords(10));
space.setType(DefaultSpaceApplicationHandler.NAME);
space.setVisibility(Space.PUBLIC);
space.setVisibility(Space.PRIVATE);
space.setRegistration(Space.OPEN);
space.setPriority(Space.INTERMEDIATE_PRIORITY);

//
spaceService.createSpace(space, owner);
++spaceNumber;

//
SpaceUtils.endRequest();

//
getLog().info("Space " + spaceName + " created by " + owner);

Expand Down