From: bsinou Date: Sat, 21 Jan 2017 13:25:30 +0000 (+0100) Subject: First draft for Argeo Suite Assembly X-Git-Tag: argeo-suite-0.1.1~29 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=e921a383c9b8c7a42d74687fe2dc14ce9cb7b50c First draft for Argeo Suite Assembly --- e921a383c9b8c7a42d74687fe2dc14ce9cb7b50c diff --git a/.project b/.project new file mode 100644 index 0000000..ff41893 --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + argeo-suite + + + + + + + + diff --git a/org.argeo.suite.web/.classpath b/org.argeo.suite.web/.classpath new file mode 100644 index 0000000..191b71a --- /dev/null +++ b/org.argeo.suite.web/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.argeo.suite.web/.gitignore b/org.argeo.suite.web/.gitignore new file mode 100644 index 0000000..016bb39 --- /dev/null +++ b/org.argeo.suite.web/.gitignore @@ -0,0 +1,3 @@ +/target +/*.target +/bin/ diff --git a/org.argeo.suite.web/.project b/org.argeo.suite.web/.project new file mode 100644 index 0000000..69a0922 --- /dev/null +++ b/org.argeo.suite.web/.project @@ -0,0 +1,25 @@ + + + org.argeo.suite.web + + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.pde.ManifestBuilder + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/org.argeo.suite.web/META-INF/.gitignore b/org.argeo.suite.web/META-INF/.gitignore new file mode 100644 index 0000000..4854a41 --- /dev/null +++ b/org.argeo.suite.web/META-INF/.gitignore @@ -0,0 +1 @@ +/MANIFEST.MF diff --git a/org.argeo.suite.web/META-INF/spring/application.xml b/org.argeo.suite.web/META-INF/spring/application.xml new file mode 100644 index 0000000..b339e44 --- /dev/null +++ b/org.argeo.suite.web/META-INF/spring/application.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.argeo.suite.web/META-INF/spring/commons.xml b/org.argeo.suite.web/META-INF/spring/commons.xml new file mode 100644 index 0000000..b74429f --- /dev/null +++ b/org.argeo.suite.web/META-INF/spring/commons.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.argeo.suite.web/META-INF/spring/osgi.xml b/org.argeo.suite.web/META-INF/spring/osgi.xml new file mode 100644 index 0000000..3301729 --- /dev/null +++ b/org.argeo.suite.web/META-INF/spring/osgi.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/org.argeo.suite.web/META-INF/spring/people.xml b/org.argeo.suite.web/META-INF/spring/people.xml new file mode 100644 index 0000000..0c5a29f --- /dev/null +++ b/org.argeo.suite.web/META-INF/spring/people.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.argeo.suite.web/META-INF/spring/ui.xml b/org.argeo.suite.web/META-INF/spring/ui.xml new file mode 100644 index 0000000..e11d967 --- /dev/null +++ b/org.argeo.suite.web/META-INF/spring/ui.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a:link, a:visited { color: #333333; text-decoration:none; } + a:hover { text-decoration:underline; } + + + + + +]]> + + + + + + + + + + + + + + + + a:link, a:visited { color: #333333; text-decoration:none; } + a:hover { text-decoration:underline;} + +]]> + + + + + + + + + + theme/argeo-classic/argeo-classic.css + theme/argeo-classic/people-classic.css + theme/argeo-classic/fs-classic.css + theme/argeo-classic/maintenance-classic.css + + + + + + diff --git a/org.argeo.suite.web/apps.properties b/org.argeo.suite.web/apps.properties new file mode 100644 index 0000000..e0227a3 --- /dev/null +++ b/org.argeo.suite.web/apps.properties @@ -0,0 +1 @@ +argeo.security.systemKey=argeo \ No newline at end of file diff --git a/org.argeo.suite.web/bnd.bnd b/org.argeo.suite.web/bnd.bnd new file mode 100644 index 0000000..f13bd42 --- /dev/null +++ b/org.argeo.suite.web/bnd.bnd @@ -0,0 +1,11 @@ +Import-Package:\ +javax.jcr.nodetype,\ +org.argeo.node,\ +javax.jcr.security,\ +org.eclipse.swt,\ +* + +#org.argeo.cms.text,\ +#org.argeo.connect.people,\ + + diff --git a/org.argeo.suite.web/build.properties b/org.argeo.suite.web/build.properties new file mode 100644 index 0000000..3166058 --- /dev/null +++ b/org.argeo.suite.web/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +output.. = bin/ + diff --git a/org.argeo.suite.web/pom.xml b/org.argeo.suite.web/pom.xml new file mode 100644 index 0000000..952c005 --- /dev/null +++ b/org.argeo.suite.web/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + org.argeo.suite + argeo-suite + 0.1.1-SNAPSHOT + .. + + org.argeo.suite.web + Argeo Suite Web UI + jar + + + + org.argeo.connect + org.argeo.connect.people.web + ${version.argeo-connect} + + + org.argeo.connect + org.argeo.connect.people.rap + ${version.argeo-connect} + + + org.argeo.connect + org.argeo.connect.ui + ${version.argeo-connect} + + + org.argeo.commons + org.argeo.cms.ui + ${version.argeo-commons} + + + diff --git a/org.argeo.suite.web/src/org/argeo/suite/SuiteException.java b/org.argeo.suite.web/src/org/argeo/suite/SuiteException.java new file mode 100644 index 0000000..6351804 --- /dev/null +++ b/org.argeo.suite.web/src/org/argeo/suite/SuiteException.java @@ -0,0 +1,14 @@ +package org.argeo.suite; + +/** Argeo Suite specific exception. Wraps a usual RuntimeException */ +public class SuiteException extends RuntimeException { + private static final long serialVersionUID = 9048360857209165816L; + + public SuiteException(String message) { + super(message); + } + + public SuiteException(String message, Throwable e) { + super(message, e); + } +} diff --git a/org.argeo.suite.web/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java b/org.argeo.suite.web/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java new file mode 100644 index 0000000..27efb4d --- /dev/null +++ b/org.argeo.suite.web/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java @@ -0,0 +1,143 @@ +package org.argeo.suite.people; + +import javax.jcr.Repository; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.nodetype.NodeType; +import javax.jcr.security.Privilege; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.connect.people.PeopleConstants; +import org.argeo.connect.people.PeopleNames; +import org.argeo.connect.people.PeopleService; +import org.argeo.connect.people.PeopleTypes; +import org.argeo.connect.people.ResourceService; +import org.argeo.connect.people.core.PeopleServiceImpl; +import org.argeo.jcr.JcrUtils; +import org.argeo.node.NodeConstants; +import org.argeo.suite.SuiteException; + +/** Default implementation of an Argeo Suite specific People Backend */ +public class PeopleSuiteServiceImpl extends PeopleServiceImpl implements PeopleService, PeopleConstants { + private final static Log log = LogFactory.getLog(PeopleSuiteServiceImpl.class); + + /* DEPENDENCY INJECTION */ + private Repository repository; + private String workspaceName; + // private UserAdminService userAdminService; + + public void init() { + super.init(); + Session adminSession = null; + try { + adminSession = repository.login(workspaceName); + initialiseModel(adminSession); + } catch (Exception e) { + throw new SuiteException("Cannot initialise model", e); + } finally { + JcrUtils.logoutQuietly(adminSession); + } + } + + // HELPERS + + // TODO Hard-coded creation of default public and shared file directories + // To be cleaned once first init and configuration mechanisms have been + // implemented + private final static String publicPath = "/public"; + private final static String sharedFilePath = "/sharedFiles"; + + @Override + protected void initialiseModel(Session adminSession) throws RepositoryException { + super.initialiseModel(adminSession); + + JcrUtils.mkdirs(adminSession, publicPath, NodeType.NT_UNSTRUCTURED); + JcrUtils.mkdirs(adminSession, sharedFilePath, NodeType.NT_FOLDER); + initModelResources(adminSession); + if (adminSession.hasPendingChanges()) { + adminSession.save(); + log.info("Repository has been initialized " + "with People's model"); + configureACL(adminSession); + } + } + + // First draft of configuration of the people specific rights + private void configureACL(Session session) throws RepositoryException { + String memberGroupDn = "cn=" + PeopleConstants.ROLE_MEMBER + ",ou=roles,ou=node"; + JcrUtils.addPrivilege(session, getBasePath(null), memberGroupDn, Privilege.JCR_ALL); + JcrUtils.addPrivilege(session, "/", NodeConstants.ROLE_ADMIN, Privilege.JCR_ALL); + JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_USER, Privilege.JCR_READ); + JcrUtils.addPrivilege(session, publicPath, "anonymous", Privilege.JCR_READ); + JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_ANONYMOUS, Privilege.JCR_READ); + JcrUtils.addPrivilege(session, sharedFilePath, NodeConstants.ROLE_USER, Privilege.JCR_ALL); + session.save(); + log.info("Access control configured"); + } + + /** + * Initialises People resource model and optionally imports legacy resources + */ + protected void initModelResources(Session adminSession) throws RepositoryException { + // initialisation + ResourceService resourceService = getResourceService(); + resourceService.initialiseResources(adminSession); + + // Resource resource = initResources.get("Countries"); + // if (resourceService.getTagLikeResourceParent(adminSession, + // PeopleConstants.RESOURCE_COUNTRY) == null + // && resource != null) { + // resourceService.createTagLikeResourceParent(adminSession, + // PeopleConstants.RESOURCE_COUNTRY, + // PeopleTypes.PEOPLE_TAG_ENCODED_INSTANCE, PeopleNames.PEOPLE_CODE, + // getBasePath(null), + // JcrUiUtils.getLocalJcrItemName(NodeType.NT_UNSTRUCTURED), new + // ArrayList()); + // String EN_SHORT_NAME = "English short name (upper-lower case)"; + // String ISO_CODE = "Alpha-2 code"; + // new EncodedTagCsvFileParser(resourceService, adminSession, + // PeopleConstants.RESOURCE_COUNTRY, ISO_CODE, + // EN_SHORT_NAME).parse(resource.getInputStream(), "UTF-8"); + // } + // + // resource = initResources.get("Languages"); + // if (resourceService.getTagLikeResourceParent(adminSession, + // PeopleConstants.RESOURCE_LANG) == null + // && resource != null) { + // resourceService.createTagLikeResourceParent(adminSession, + // PeopleConstants.RESOURCE_LANG, + // PeopleTypes.PEOPLE_TAG_ENCODED_INSTANCE, PeopleNames.PEOPLE_CODE, + // getBasePath(null), + // JcrUiUtils.getLocalJcrItemName(NodeType.NT_UNSTRUCTURED), new + // ArrayList()); + // String EN_SHORT_NAME = "Language name"; + // String ISO_CODE = "639-1"; + // new EncodedTagCsvFileParser(resourceService, adminSession, + // PeopleConstants.RESOURCE_LANG, ISO_CODE, + // EN_SHORT_NAME).parse(resource.getInputStream(), "UTF-8"); + // } + + // Create tag & mailing list parents + if (resourceService.getTagLikeResourceParent(adminSession, PeopleConstants.RESOURCE_TAG) == null) + resourceService.createTagLikeResourceParent(adminSession, PeopleConstants.RESOURCE_TAG, + PeopleTypes.PEOPLE_TAG_INSTANCE, null, getBasePath(null), PeopleTypes.PEOPLE_ENTITY, + PeopleNames.PEOPLE_TAGS); + if (resourceService.getTagLikeResourceParent(adminSession, PeopleTypes.PEOPLE_MAILING_LIST) == null) + resourceService.createTagLikeResourceParent(adminSession, null, PeopleTypes.PEOPLE_MAILING_LIST, null, + getBasePath(null), PeopleTypes.PEOPLE_ENTITY, PeopleNames.PEOPLE_MAILING_LISTS); + + if (adminSession.hasPendingChanges()) { + adminSession.save(); + log.info("Resources have been added to People's model"); + } + } + + /* DEPENDENCY INJECTION */ + public void setRepository(Repository repository) { + this.repository = repository; + } + + public void setWorkspaceName(String workspaceName) { + this.workspaceName = workspaceName; + } +} diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java new file mode 100644 index 0000000..7e366c5 --- /dev/null +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java @@ -0,0 +1,97 @@ +package org.argeo.suite.web; + +import java.util.Map; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.util.CmsUtils; +import org.argeo.connect.people.PeopleException; +import org.argeo.connect.people.PeopleService; +import org.argeo.connect.people.web.pages.OrgPage; +import org.argeo.connect.people.web.parts.PeopleSearchCmp; +import org.argeo.eclipse.ui.EclipseUiUtils; +import org.eclipse.jface.viewers.DoubleClickEvent; +import org.eclipse.jface.viewers.IDoubleClickListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; + +/** Default dashboard layout for Argeo Suite */ +public class DefaultDashboard implements CmsUiProvider { + + private PeopleService peopleService; + private Map peopleIconPaths; + + // Local UI Providers + private CmsUiProvider orgPage; + + public DefaultDashboard(PeopleService peopleService, Map peopleIconPaths) { + this.peopleService = peopleService; + this.peopleIconPaths = peopleIconPaths; + + orgPage = new OrgPage(peopleService); + } + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + parent.setLayout(EclipseUiUtils.noSpaceGridLayout()); + SashForm form = new SashForm(parent, SWT.HORIZONTAL); + form.setLayoutData(EclipseUiUtils.fillAll()); + Composite leftPannelCmp = new Composite(form, SWT.NO_FOCUS); + Composite rightPannelCmp = new Composite(form, SWT.NO_FOCUS); + form.setWeights(new int[] { 2, 5 }); + + // A search on the left and the display on the right + populateSearch(leftPannelCmp, context, rightPannelCmp); + populateDefaultDisplay(rightPannelCmp, context); + + return form; + } + + public Viewer populateSearch(Composite parent, Node context, final Composite targetComposite) + throws RepositoryException { + parent.setLayout(EclipseUiUtils.noSpaceGridLayout()); + Composite titleCmp = new Composite(parent, SWT.NO_FOCUS); + titleCmp.setLayoutData(EclipseUiUtils.fillWidth()); + titleCmp.setLayout(new GridLayout()); + Label titleLbl = new Label(titleCmp, SWT.CENTER); + titleLbl.setLayoutData(EclipseUiUtils.fillWidth()); + titleLbl.setText("My Tasks"); + titleLbl.setFont(EclipseUiUtils.getBoldFont(titleCmp)); + + PeopleSearchCmp searchComp = new PeopleSearchCmp(parent, SWT.NO_FOCUS, peopleService, peopleIconPaths); + searchComp.populate(context, true); + searchComp.setLayoutData(EclipseUiUtils.fillAll()); + + TableViewer viewer = searchComp.getViewer(); + viewer.addDoubleClickListener(new IDoubleClickListener() { + @Override + public void doubleClick(DoubleClickEvent event) { + Object firstObj = ((IStructuredSelection) event.getSelection()).getFirstElement(); + try { + Node node = (Node) firstObj; + String path = node.getPath(); + CmsUtils.getCmsView().navigateTo(path); + } catch (RepositoryException e) { + throw new PeopleException("Unable to refresh display for " + context, e); + } + } + }); + return null; + } + + public Control populateDefaultDisplay(Composite parent, Node context) throws RepositoryException { + parent.setLayout(new GridLayout()); + Label lbl = new Label(parent, SWT.NONE); + lbl.setText("Implement a default display"); + return lbl; + } +} diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java new file mode 100644 index 0000000..1dcc4d5 --- /dev/null +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java @@ -0,0 +1,137 @@ +package org.argeo.suite.web; + +import java.nio.file.spi.FileSystemProvider; +import java.util.Locale; +import java.util.Map; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.nodetype.NodeType; + +import org.argeo.cms.CmsMsg; +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.text.TextStyles; +import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.CmsView; +import org.argeo.cms.ui.LifeCycleUiProvider; +import org.argeo.cms.ui.fs.MyFilesBrowserPage; +import org.argeo.cms.util.CmsUtils; +import org.argeo.cms.widgets.auth.CmsLogin; +import org.argeo.connect.people.PeopleService; +import org.argeo.connect.people.PeopleTypes; +import org.argeo.connect.people.web.pages.PeopleDefaultPage; +import org.argeo.eclipse.ui.EclipseUiUtils; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; + +/** + * Default entry point for the Argeo Suite CMS. Forwards the request to the relevant + * CmsUiProvider + */ +public class DefaultMainPage implements LifeCycleUiProvider { + + private CmsUiProvider dashboardPage; + private CmsUiProvider peoplePage; + private CmsUiProvider fsBrowserPage; + + /* DEPENDENCY INJECTION */ + private PeopleService peopleService; + private FileSystemProvider nodeFileSystemProvider; + private Map peopleIconPaths; + + public DefaultMainPage() { + } + + @Override + public void init(Session adminSession) throws RepositoryException { + dashboardPage = new DefaultDashboard(peopleService, peopleIconPaths); + peoplePage = new PeopleDefaultPage(peopleService, peopleIconPaths); + fsBrowserPage = new MyFilesBrowserPage(nodeFileSystemProvider); + } + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + if (CurrentUser.isAnonymous()) + return createAnonymousUi(parent, context); + + if (context.isNodeType(PeopleTypes.PEOPLE_ENTITY)) + return peoplePage.createUi(parent, context); + else if (peopleService.getBasePath(null).equals(context.getPath())) + return peoplePage.createUi(parent, context); + else if (context.isNodeType(NodeType.NT_FOLDER) || context.isNodeType(NodeType.NT_FILE)) + return fsBrowserPage.createUi(parent, context); + else + return dashboardPage.createUi(parent, context); + } + + public Control createAnonymousUi(Composite parent, Node context) throws RepositoryException { + parent.setLayout(new GridLayout()); + Composite body = new Composite(parent, SWT.NO_FOCUS); + body.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true)); + body.setLayout(new GridLayout()); + + Composite loginCmp = new Composite(body, SWT.NO_FOCUS); + loginCmp.setLayout(EclipseUiUtils.noSpaceGridLayout()); + loginCmp.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true)); + + CmsLogin login = new MyCmsLogin(CmsUtils.getCmsView()); + // Composite credBlockCmp = + login.createCredentialsBlock(loginCmp); + // Use a custom style that has no border, among other + // CmsUtils.style(loginCmp, ArgeoStyles.LOGIN_INLINE_CREDBLOCK); + + Label anonymousLbl = new Label(body, SWT.WRAP); + anonymousLbl.setText("You should login or register to access your private dashboard"); + CmsUtils.style(anonymousLbl, TextStyles.TEXT_QUOTE); + + return body; + + } + + private class MyCmsLogin extends CmsLogin { + + public MyCmsLogin(CmsView cmsView) { + super(cmsView); + } + + @Override + protected boolean login() { + boolean result = super.login(); + return result; + } + + @Override + protected void extendsCredentialsBlock(Composite credentialsBlock, Locale selectedLocale, + SelectionListener loginSelectionListener) { + Button loginBtn = new Button(credentialsBlock, SWT.PUSH); + loginBtn.setText(CmsMsg.login.lead(selectedLocale)); + loginBtn.setLayoutData(CmsUtils.fillWidth()); + loginBtn.addSelectionListener(loginSelectionListener); + // CmsUtils.style(loginBtn, ArgeoStyles.LOGIN_SIGNIN_BTN); + } + } + + @Override + public void destroy() { + } + + /* DEPENDENCY INJECTION */ + public void setPeopleService(PeopleService peopleService) { + this.peopleService = peopleService; + } + + public void setNodeFileSystemProvider(FileSystemProvider nodeFileSystemProvider) { + this.nodeFileSystemProvider = nodeFileSystemProvider; + } + + public void setPeopleIconPaths(Map peopleIconPaths) { + this.peopleIconPaths = peopleIconPaths; + } +} diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DynamicHeader.java b/org.argeo.suite.web/src/org/argeo/suite/web/DynamicHeader.java new file mode 100644 index 0000000..47b8544 --- /dev/null +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DynamicHeader.java @@ -0,0 +1,35 @@ +package org.argeo.suite.web; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.ui.CmsUiProvider; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +/** + * Choose between possible headers depending on the client logged-in status and + * display type. + */ +public class DynamicHeader implements CmsUiProvider { + + private CmsUiProvider publicHeaderProvider; + private CmsUiProvider privateHeaderProvider; + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + if (CurrentUser.isRegistered()) + return privateHeaderProvider.createUi(parent, context); + else + return publicHeaderProvider.createUi(parent, context); + } + + public void setPrivateHeaderProvider(CmsUiProvider privateHeaderProvider) { + this.privateHeaderProvider = privateHeaderProvider; + } + + public void setPublicHeaderProvider(CmsUiProvider publicHeaderProvider) { + this.publicHeaderProvider = publicHeaderProvider; + } +} diff --git a/org.argeo.suite.web/theme/argeo-classic/argeo-classic.css b/org.argeo.suite.web/theme/argeo-classic/argeo-classic.css new file mode 100644 index 0000000..71fc1b7 --- /dev/null +++ b/org.argeo.suite.web/theme/argeo-classic/argeo-classic.css @@ -0,0 +1,149 @@ +/* For reference, Argeo colors +Orange: #f6712e; +Blue: #00294b; */ + +/* TEXT STYLES */ +.text_title { + font: bold 26px sans-serif; +} + +.text_title_box { + padding: 20px; +} + +.text_h1 { + font: bold 24px sans-serif; +} + +.text_h1_box { + padding: 10px 10px 5px; +} + +.text_h2 { + font: bold italic 20px serif; +} + +.text_h2_box { + padding: 0px 15px 10px; +} + +.text_h3 { + font: bold 18px sans-serif; +} + +.text_h3_box { + padding: 0px 20px 10px; +} + +.text_default { + font: 18px sans-serif; +} + +.text_default_box { + padding: 0px 10px 10px; +} + +.text_pre { + font: 16px monospace; + background-color: inherit; +} + +.text_pre_box { + padding: 10px; + border: 1px dashed gray; + background-color: #ababab +} + +.text_pre_container { + padding: 0px 10px 10px; +} + +.text_quote { + font: italic 22px serif; + text-shadow: 2px 3px 3px #ababab; + background-color: inherit; +} + +.text_quote_box { + padding: 10px; + background-color: #d6d6d6 +} + +.text_quote_container { + padding: 20px 50px 20px 80px; +} + +/* TEXT */ +.text_styled_tools_dialog { + border: 1px solid #00294b; + padding: 10px 5px; +} + +.text_styled_composite { + /*border: 1px solid red;*/ + +} + +.text_section { +/* border: 1px solid green; */ +} + +.text_paragraph { +/* border: 1px solid blue; */ +} + +.text_editor { + border: 2px outset #00294b; +} + +/* CMS ICONS */ +.cms_icon_delete { + background-image: url(theme/argeo-classic/icons/delete.gif); + border: none; +} + +/* CMS */ +.cms_header { + background-color: #00294b; + height: 30px; +} + +.cms_link { + text-decoration: underline; +} + +.cms_link:hover { + text-decoration: none; + color: black; +} + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.cms_header-logo { + padding: 5px; +} + +.cms_user_menu-link, +.cms_menu_link { + color: white; + font: 15px Helvetica, Verdana, sans-serif; + padding: 10px; + text-decoration: none; +} + +.cms_user_menu-link:hover, +.cms_menu_link:hover { + color: #ededed; + text-decoration: underline; +} + +.cms_user_menu { + border: 1px solid #00294b; + padding: 10px 5px; +} \ No newline at end of file diff --git a/org.argeo.suite.web/theme/argeo-classic/fs-classic.css b/org.argeo.suite.web/theme/argeo-classic/fs-classic.css new file mode 100644 index 0000000..923fd39 --- /dev/null +++ b/org.argeo.suite.web/theme/argeo-classic/fs-classic.css @@ -0,0 +1,87 @@ +/** +Argeo Blue: #00294b +*/ + +/**** BREAD CRUMB ***/ +Button.breadCrumb_btn { + border: 1px solid #f4f6f7; + border-radius: 3px; + padding: 5px 2px 5px 2px; + background-color: transparent; + background-repeat: no-repeat; + animation: hoverOut 500ms ease-out; + cursor: pointer; + font-color: #00294b; + text-decoration: none; +} + +Button.breadCrumb_btn:hover { + text-decoration: underline; +} + + +/****** Context menu *********/ +.contextMenu_box { + border: 1px solid #fde2d5; + padding: 0px; + box-shadow: 2px 2px 5px #fde2d5; +} + +Button[PUSH][FLAT].createFolder_btn { + background-image: url( theme/argeo-classic/icons/fs/createFolder.png); +} + +Button[PUSH][FLAT].shareFolder_btn { + background-image: url( theme/argeo-classic/icons/fs/createFolder.png); +} + +Button[PUSH][FLAT].downloadFolder_btn { + background-image: url( theme/argeo-classic/icons/fs/createFolder.png); +} + +Button[PUSH][FLAT].delete_btn { + background-image: url( theme/argeo-classic/icons/fs/createFolder.png); +} + +Button[PUSH][FLAT].uploadFiles_btn { + background-image: url( theme/argeo-classic/icons/fs/createFolder.png); +} + +Button[PUSH][FLAT].open_btn { + background-image: url( theme/argeo-classic/icons/fs/createFolder.png); +} + +Button[PUSH][FLAT].shareFolder_btn, +Button[PUSH][FLAT].downloadFolder_btn, +Button[PUSH][FLAT].delete_btn, +Button[PUSH][FLAT].uploadFiles_btn, +Button[PUSH][FLAT].open_btn, +Button[PUSH][FLAT].createFolder_btn { + border: 0px solid white; + border-left: 10px solid transparent; + border-radius: 0px; + padding: 8px 5px 8px 24px; + background-color: transparent; + background-repeat: no-repeat; + background-position: left; + animation: hoverOut 500ms ease-out; + cursor: pointer; +} + +Button[PUSH][FLAT].shareFolder_btn:hover, +Button[PUSH][FLAT].downloadFolder_btn:hover, +Button[PUSH][FLAT].delete_btn:hover, +Button[PUSH][FLAT].uploadFiles_btn:hover, +Button[PUSH][FLAT].open_btn:hover, +Button[PUSH][FLAT].createFolder_btn:hover { + background-color: #fef0ea; +} + +Button[PUSH][FLAT].shareFolder_btn:pressed, +Button[PUSH][FLAT].downloadFolder_btn:pressed, +Button[PUSH][FLAT].delete_btn:pressed, +Button[PUSH][FLAT].uploadFiles_btn:pressed, +Button[PUSH][FLAT].open_btn:pressed, +Button[PUSH][FLAT].createFolder_btn:pressed { + background-color: #fde2d5; +} diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/delete.gif b/org.argeo.suite.web/theme/argeo-classic/icons/delete.gif new file mode 100644 index 0000000..1aca259 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/delete.gif differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/fs/createFolder.png b/org.argeo.suite.web/theme/argeo-classic/icons/fs/createFolder.png new file mode 100644 index 0000000..3f56074 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/fs/createFolder.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/maintenance.gif b/org.argeo.suite.web/theme/argeo-classic/icons/maintenance.gif new file mode 100755 index 0000000..0a1fa96 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/maintenance.gif differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/Icon-credit.txt b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/Icon-credit.txt new file mode 100644 index 0000000..4e60cf3 --- /dev/null +++ b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/Icon-credit.txt @@ -0,0 +1,17 @@ +Some of the icons have been downloaded from http://www.fatcow.com/free-icons. +They are licenced under Creative Commons Attribution 3.0 License. + +These icons were as from October 3rd, 2013 the following: +fax.png +mail_black.png +phone-vintage.png +telephone.png + +Some of the icons have been downloaded from http://somerandomdude.com/work/iconic/. +They are licenced under Creative Commons Attribution 3.0 License. + +These icons were as from October 15th, 2013 the following: +socialmedia.png (former chat_alt_stroke_16x16.png) +home.png (former home_16x16.png) +mobile.png (former iphone_12x16.png) +link.png (former link_16x16.png) diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/facebook.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/facebook.png new file mode 100644 index 0000000..8e7e44c Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/facebook.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/fax.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/fax.png new file mode 100644 index 0000000..791f511 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/fax.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/googleplus.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/googleplus.png new file mode 100644 index 0000000..ff97843 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/googleplus.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/home.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/home.png new file mode 100644 index 0000000..16834e3 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/home.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/impp.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/impp.png new file mode 100644 index 0000000..b334f91 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/impp.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/link.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/link.png new file mode 100644 index 0000000..f223cfa Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/link.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/linkedin.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/linkedin.png new file mode 100644 index 0000000..d86dc0e Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/linkedin.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/mail_black.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/mail_black.png new file mode 100644 index 0000000..790f750 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/mail_black.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/mobile.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/mobile.png new file mode 100644 index 0000000..08ac54b Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/mobile.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/myspace.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/myspace.png new file mode 100644 index 0000000..beb04fc Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/myspace.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/phone_vintage.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/phone_vintage.png new file mode 100644 index 0000000..7e463ad Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/phone_vintage.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/reddit.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/reddit.png new file mode 100644 index 0000000..0eac7b8 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/reddit.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/skype.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/skype.png new file mode 100644 index 0000000..e31a04d Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/skype.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/socialmedia.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/socialmedia.png new file mode 100644 index 0000000..f0d1722 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/socialmedia.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/telephone.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/telephone.png new file mode 100644 index 0000000..e04ec63 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/telephone.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/twitter.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/twitter.png new file mode 100644 index 0000000..1023e5b Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/twitter.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/xing.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/xing.png new file mode 100644 index 0000000..26fd283 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/contacts/xing.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/misc/primary.gif b/org.argeo.suite.web/theme/argeo-classic/icons/people/misc/primary.gif new file mode 100644 index 0000000..1965b84 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/misc/primary.gif differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/misc/primaryNOT.gif b/org.argeo.suite.web/theme/argeo-classic/icons/people/misc/primaryNOT.gif new file mode 100644 index 0000000..acb0268 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/misc/primaryNOT.gif differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/people.gif b/org.argeo.suite.web/theme/argeo-classic/icons/people/people.gif new file mode 100644 index 0000000..d28c326 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/people.gif differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/types/company.png b/org.argeo.suite.web/theme/argeo-classic/icons/people/types/company.png new file mode 100644 index 0000000..06aa725 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/types/company.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/people/types/person.gif b/org.argeo.suite.web/theme/argeo-classic/icons/people/types/person.gif new file mode 100644 index 0000000..90a0014 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/people/types/person.gif differ diff --git a/org.argeo.suite.web/theme/argeo-classic/icons/userMenu.png b/org.argeo.suite.web/theme/argeo-classic/icons/userMenu.png new file mode 100644 index 0000000..2e55e8f Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/icons/userMenu.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/img/byArgeo.png b/org.argeo.suite.web/theme/argeo-classic/img/byArgeo.png new file mode 100644 index 0000000..603e3a5 Binary files /dev/null and b/org.argeo.suite.web/theme/argeo-classic/img/byArgeo.png differ diff --git a/org.argeo.suite.web/theme/argeo-classic/maintenance-classic.css b/org.argeo.suite.web/theme/argeo-classic/maintenance-classic.css new file mode 100644 index 0000000..e2a8597 --- /dev/null +++ b/org.argeo.suite.web/theme/argeo-classic/maintenance-classic.css @@ -0,0 +1,48 @@ +/**************************** +*** The browser ***/ + +/* Management of border for edition */ +.user_form_text[BORDER]:read-only, +.user_form_text[BORDER]:read-only:focused, +.user_form_text[BORDER][MULTI]:read-only:focused, +.user_form_text[BORDER][MULTI]:read-only { + box-shadow: none; + border: 0px solid #ffffff; +} + +/* Signal focus gained ********/ +.user_form_text[BORDER]:focused, +.user_form_text[MULTI][BORDER]:focused { + box-shadow: 1px 1px 2px #00294b;; + border: 1px solid #00294b;; +} + +.user_form_title{ + font: bold italic 20px serif; + background-color: #00294b; + color: #eeeeee; +} + + +/* Tests and work in progress */ +.maintenance_browser_column { + background-color: white; + color: black; +} + +/* PB: Css class given to a table is not herited by Table-RowOverlay */ +Table-RowOverlay:unfocused { + color: #00294b; +} + +Table-RowOverlay:selected, +Table-RowOverlay:linesvisible:even:selected { + background-color: #fcd4c0; + color: #00294b; +} + +Table-RowOverlay:selected:unfocused, +Table-RowOverlay:linesvisible:even:selected:unfocused { + color: #00294b; + background-color: #6e869b; +} diff --git a/org.argeo.suite.web/theme/argeo-classic/people-classic.css b/org.argeo.suite.web/theme/argeo-classic/people-classic.css new file mode 100644 index 0000000..982f31e --- /dev/null +++ b/org.argeo.suite.web/theme/argeo-classic/people-classic.css @@ -0,0 +1,80 @@ +/* PEOPLE ICONS */ + + +/* MISCELLANEOUS */ + +.people_icon_primary { + background-image: url(theme/argeo-classic/icons/people/misc/primary.gif); + border: none; +} + +.people_icon_not_primary { + background-image: url(theme/argeo-classic/icons/people/misc/primaryNOT.gif); + border: none; +} + +/* CONTACTS */ +.people_icon_email { + background-image: url(theme/argeo-classic/icons/people/contacts/mail_black.png); + border: none; +} + +.people_icon_mobile { + background-image: url(theme/argeo-classic/icons/people/contacts/mobile.png); + border: none; +} + +.people_icon_fax { + background-image: url(theme/argeo-classic/icons/people/contacts/fax.png); + border: none; +} + +.people_icon_phone { + background-image: url(theme/argeo-classic/icons/people/contacts/phone_vintage.png); + border: none; +} + +.people_icon_work { + background-image: url(theme/argeo-classic/icons/people/contacts/home.png); + border: none; +} + +.people_icon_address { + background-image: url(theme/argeo-classic/icons/people/contacts/home.png); + border: none; +} + +.people_icon_url { + background-image: url(theme/argeo-classic/icons/people/contacts/link.png); + border: none; +} + +.people_icon_google_plus { + background-image: url(theme/argeo-classic/icons/people/contacts/googleplus.png); + border: none; +} + +.people_icon_facebook { + background-image: url(theme/argeo-classic/icons/people/contacts/facebook.png); + border: none; +} + +.people_icon_linkedin { + background-image: url(theme/argeo-classic/icons/people/contacts/linkedin.png); + border: none; +} + +.people_icon_xing { + background-image: url(theme/argeo-classic/icons/people/contacts/xing.png); + border: none; +} + +.people_icon_social_media { + background-image: url(theme/argeo-classic/icons/people/contacts/socialmedia.png); + border: none; +} + +.people_icon_impp { + background-image: url(theme/argeo-classic/icons/people/contacts/impp.png); + border: none; +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..0a5a0d1 --- /dev/null +++ b/pom.xml @@ -0,0 +1,116 @@ + + 4.0.0 + + org.argeo.commons + argeo-commons + 2.1.58-SNAPSHOT + + org.argeo.suite + argeo-suite + pom + Argeo Suite + + 0.1.1-SNAPSHOT + + org.argeo.suite.web + sdk + + + 0.1 + 2.1.63-SNAPSHOT + 2.1.9 + + + + scm:git:http://git.argeo.org/gpl/argeo-suite.git + http://git.argeo.org/?p=gpl/argeo-suite.git;a=summary + scm:git:https://code.argeo.org/git/gpl/argeo-suite.git + + 2014 + + + GPL v3 with exception + http://www.gnu.org/licenses/gpl-3.0.txt + repo + + +Additional permission under GNU GPL version 3 section 7 + +If you modify this Program, or any covered work, by linking or combining it +with software covered by the terms of the Eclipse Public License, the +licensors of this Program grant you additional permission to convey the +resulting work. Corresponding Source for a non-source form of such a +combination shall include the source code for the parts of such software +which are used as well as that of the covered work.]]> + + + + + + mbaudier + Mathieu Baudier + + Argeo + http://www.argeo.org + + architect + developer + QA + + + + bsinou + Bruno Sinou + + Argeo + http://www.argeo.org + + architect + developer + QA + + + + + + argeo + http://forge.argeo.org/data/java/argeo-2.1 + + true + daily + warn + + + + argeo-extras + http://forge.argeo.org/data/java/argeo-extras-2.1 + + true + daily + warn + + + + + + staging + dav:https://repo.argeo.org/data/java/argeo-suite_0.1 + + + diff --git a/sdk/.gitignore b/sdk/.gitignore new file mode 100644 index 0000000..040ee0a --- /dev/null +++ b/sdk/.gitignore @@ -0,0 +1,2 @@ +/exec +/target diff --git a/sdk/.project b/sdk/.project new file mode 100644 index 0000000..d95f518 --- /dev/null +++ b/sdk/.project @@ -0,0 +1,11 @@ + + + argeo-suite-sdk + + + + + + + + diff --git a/sdk/ArgeoSuite_web.properties b/sdk/ArgeoSuite_web.properties new file mode 100644 index 0000000..261afa3 --- /dev/null +++ b/sdk/ArgeoSuite_web.properties @@ -0,0 +1,42 @@ +argeo.osgi.start.2.http=org.eclipse.equinox.http.servlet,org.eclipse.equinox.http.jetty,\ +org.eclipse.rap.rwt.osgi,org.eclipse.equinox.cm + +argeo.osgi.start.3.node=org.argeo.cms +argeo.osgi.start.4.apps=org.eclipse.gemini.blueprint.extender +argeo.osgi.start.5.workbench=org.eclipse.equinox.http.registry + +# WEB and RAP Workbench +argeo.osgi.start.5.apps=org.argeo.connect.people.web,\ +org.argeo.connect.people.rap + +argeo.osgi.start.6.apps=org.argeo.suite.web + +## rel path from the exec// folder (user.dir) to the FIRST INIT dir +#argeo.node.init=../../../org.argeo.suite.web/resources/init + + +## Rap Workbench configuration +## Open the user admin page by default when opening the workbench +org.argeo.security.ui.initialPerspective=org.argeo.cms.ui.workbench.adminSecurityPerspective +# Default home page for the Specific People RAP workbench perspective +org.argeo.ui.openHomeCommandId=org.argeo.connect.people.rap.openDefaultEditor + +## LDAP +#argeo.node.useradmin.uris=dc=demo,dc=suite,dc=argeo,dc=org.ldif?userBase=ou=People&groupBase=ou=Groups + +## JCR BACKEND +argeo.node.repo.type=h2 + +### Jetty - test URL: http://localhost:7070 +org.osgi.service.http.port=7070 +org.eclipse.equinox.http.jetty.log.stderr.threshold=info + +log4j.configuration=file:../../log4j.properties + +# SECURITY +org.osgi.framework.security=osgi +java.security.policy=file:../../all.policy + +# DON'T CHANGE BELOW +org.eclipse.rap.workbenchAutostart=false +org.eclipse.equinox.http.jetty.autostart=false \ No newline at end of file diff --git a/sdk/all.policy b/sdk/all.policy new file mode 100644 index 0000000..facb613 --- /dev/null +++ b/sdk/all.policy @@ -0,0 +1,3 @@ +grant { + permission java.security.AllPermission; +}; \ No newline at end of file diff --git a/sdk/log4j.properties b/sdk/log4j.properties new file mode 100644 index 0000000..b5cffb7 --- /dev/null +++ b/sdk/log4j.properties @@ -0,0 +1,24 @@ +#log4j.rootLogger=WARN, console +log4j.rootLogger=WARN, development + +## Levels +log4j.logger.org.argeo.suite=DEBUG +log4j.logger.org.argeo.connect=DEBUG +log4j.logger.org.argeo.cms=DEBUG +log4j.logger.org.argeo=INFO +log4j.logger.org.argeo.cms.AbstractCmsEntryPoint=TRACE + +#log4j.logger.org.argeo.jackrabbit.remote.ExtendedDispatcherServlet=ERROR +#log4j.logger.org.springframework.web.servlet.PageNotFound=ERROR +#log4j.logger.org.argeo.server.webextender.TomcatDeployer=WARN + +## Appenders +# default appender +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%d{yyyyMMdd HH:mm:ss} %-5p %m [%t] %c%n + +# development appender +log4j.appender.development=org.apache.log4j.ConsoleAppender +log4j.appender.development.layout=org.apache.log4j.PatternLayout +log4j.appender.development.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%16.16t] %5p %m (%F:%L) %c%n diff --git a/sdk/org.argeo.suite.sdk/.gitignore b/sdk/org.argeo.suite.sdk/.gitignore new file mode 100644 index 0000000..a42384f --- /dev/null +++ b/sdk/org.argeo.suite.sdk/.gitignore @@ -0,0 +1,2 @@ +/target +/org.argeo.suite.sdk-maven.target diff --git a/sdk/org.argeo.suite.sdk/META-INF/.gitignore b/sdk/org.argeo.suite.sdk/META-INF/.gitignore new file mode 100644 index 0000000..4854a41 --- /dev/null +++ b/sdk/org.argeo.suite.sdk/META-INF/.gitignore @@ -0,0 +1 @@ +/MANIFEST.MF diff --git a/sdk/org.argeo.suite.sdk/bnd.bnd b/sdk/org.argeo.suite.sdk/bnd.bnd new file mode 100644 index 0000000..991aa1a --- /dev/null +++ b/sdk/org.argeo.suite.sdk/bnd.bnd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sdk/org.argeo.suite.sdk/pom.xml b/sdk/org.argeo.suite.sdk/pom.xml new file mode 100644 index 0000000..75ec7de --- /dev/null +++ b/sdk/org.argeo.suite.sdk/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + org.argeo.suite + sdk + 0.1.1-SNAPSHOT + .. + + org.argeo.suite.sdk + Argeo Suite Minimal SDK + jar + + + + org.argeo.suite + org.argeo.suite.web + 0.1.1-SNAPSHOT + + + + + org.argeo.commons + org.argeo.dep.cms.platform + ${version.argeo-commons} + + + + org.argeo.tp + argeo-tp + ${version.argeo-distribution} + + + org.argeo.tp.misc + org.postgresql.postgresql + + + diff --git a/sdk/pom.xml b/sdk/pom.xml new file mode 100644 index 0000000..b249fe3 --- /dev/null +++ b/sdk/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + org.argeo.suite + argeo-suite + 0.1.1-SNAPSHOT + .. + + sdk + Argeo Suite SDKs + pom + + org.argeo.suite.sdk + + + + + org.argeo.maven.plugins + maven-argeo-osgi-plugin + + + generate-descriptors + + descriptors + + generate-resources + + + + + +