--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="SLC" uid="org.argeo.slc.client.rcp.product" application="org.argeo.security.ui.application.secureUi" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console</programArgs>
+ <vmArgs>-Dlog4j.configuration=file:${system_property:user.home}/dev/src/slc/demo/log4j.properties -Dorg.argeo.security.ui.initialPerspective=org.argeo.slc.client.ui.perspectives.slcExecution</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages i16="icons/argeo-icon-256.png"/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.ibm.icu"/>
+ <plugin id="com.springsource.antlr"/>
+ <plugin id="com.springsource.bsh"/>
+ <plugin id="com.springsource.com.jcraft.jsch"/>
+ <plugin id="com.springsource.com.lowagie.text"/>
+ <plugin id="com.springsource.com.mysql.jdbc"/>
+ <plugin id="com.springsource.com.sun.syndication"/>
+ <plugin id="com.springsource.com.thoughtworks.xstream"/>
+ <plugin id="com.springsource.edu.emory.mathcs.backport"/>
+ <plugin id="com.springsource.edu.oswego.cs.dl.util.concurrent"/>
+ <plugin id="com.springsource.javassist"/>
+ <plugin id="com.springsource.javax.activation"/>
+ <plugin id="com.springsource.javax.annotation"/>
+ <plugin id="com.springsource.javax.ejb"/>
+ <plugin id="com.springsource.javax.el"/>
+ <plugin id="com.springsource.javax.jms"/>
+ <plugin id="com.springsource.javax.mail"/>
+ <plugin id="com.springsource.javax.management.j2ee"/>
+ <plugin id="com.springsource.javax.media.jai.codec"/>
+ <plugin id="com.springsource.javax.media.jai.core"/>
+ <plugin id="com.springsource.javax.persistence"/>
+ <plugin id="com.springsource.javax.resource"/>
+ <plugin id="com.springsource.javax.servlet"/>
+ <plugin id="com.springsource.javax.servlet.jsp"/>
+ <plugin id="com.springsource.javax.servlet.jsp.jstl"/>
+ <plugin id="com.springsource.javax.transaction"/>
+ <plugin id="com.springsource.javax.xml.bind"/>
+ <plugin id="com.springsource.javax.xml.rpc"/>
+ <plugin id="com.springsource.javax.xml.soap"/>
+ <plugin id="com.springsource.javax.xml.stream"/>
+ <plugin id="com.springsource.javax.xml.ws"/>
+ <plugin id="com.springsource.jcifs"/>
+ <plugin id="com.springsource.jdbm"/>
+ <plugin id="com.springsource.json"/>
+ <plugin id="com.springsource.junit"/>
+ <plugin id="com.springsource.jxl"/>
+ <plugin id="com.springsource.net.sf.cglib"/>
+ <plugin id="com.springsource.net.sf.ehcache"/>
+ <plugin id="com.springsource.net.sourceforge.jtds"/>
+ <plugin id="com.springsource.org.antlr"/>
+ <plugin id="com.springsource.org.aopalliance"/>
+ <plugin id="com.springsource.org.apache.bsf"/>
+ <plugin id="com.springsource.org.apache.commons.beanutils"/>
+ <plugin id="com.springsource.org.apache.commons.codec"/>
+ <plugin id="com.springsource.org.apache.commons.collections"/>
+ <plugin id="com.springsource.org.apache.commons.compress"/>
+ <plugin id="com.springsource.org.apache.commons.dbcp"/>
+ <plugin id="com.springsource.org.apache.commons.fileupload"/>
+ <plugin id="com.springsource.org.apache.commons.httpclient"/>
+ <plugin id="com.springsource.org.apache.commons.io"/>
+ <plugin id="com.springsource.org.apache.commons.lang"/>
+ <plugin id="com.springsource.org.apache.commons.net"/>
+ <plugin id="com.springsource.org.apache.commons.pool"/>
+ <plugin id="com.springsource.org.apache.commons.vfs"/>
+ <plugin id="com.springsource.org.apache.derby"/>
+ <plugin id="com.springsource.org.apache.directory.server.changepw"/>
+ <plugin id="com.springsource.org.apache.directory.server.core" fragment="true"/>
+ <plugin id="com.springsource.org.apache.directory.server.core.shared"/>
+ <plugin id="com.springsource.org.apache.directory.server.jndi"/>
+ <plugin id="com.springsource.org.apache.directory.server.kerberos"/>
+ <plugin id="com.springsource.org.apache.directory.server.kerberos.shared"/>
+ <plugin id="com.springsource.org.apache.directory.server.ldap"/>
+ <plugin id="com.springsource.org.apache.directory.server.ntp"/>
+ <plugin id="com.springsource.org.apache.directory.server.protocol.shared"/>
+ <plugin id="com.springsource.org.apache.directory.shared.asn1"/>
+ <plugin id="com.springsource.org.apache.directory.shared.ldap"/>
+ <plugin id="com.springsource.org.apache.log4j"/>
+ <plugin id="com.springsource.org.apache.lucene"/>
+ <plugin id="com.springsource.org.apache.mina"/>
+ <plugin id="com.springsource.org.apache.oro"/>
+ <plugin id="com.springsource.org.apache.regexp"/>
+ <plugin id="com.springsource.org.apache.taglibs.standard"/>
+ <plugin id="com.springsource.org.apache.tools.ant"/>
+ <plugin id="com.springsource.org.apache.tools.ant.launch"/>
+ <plugin id="com.springsource.org.apache.ws.commons.schema"/>
+ <plugin id="com.springsource.org.apache.xalan"/>
+ <plugin id="com.springsource.org.apache.xerces" fragment="true"/>
+ <plugin id="com.springsource.org.apache.xml.resolver"/>
+ <plugin id="com.springsource.org.apache.xml.serializer"/>
+ <plugin id="com.springsource.org.apache.xmlbeans"/>
+ <plugin id="com.springsource.org.apache.xmlcommons"/>
+ <plugin id="com.springsource.org.aspectj.runtime"/>
+ <plugin id="com.springsource.org.aspectj.weaver"/>
+ <plugin id="com.springsource.org.castor"/>
+ <plugin id="com.springsource.org.codehaus.jackson"/>
+ <plugin id="com.springsource.org.codehaus.jackson.mapper"/>
+ <plugin id="com.springsource.org.cyberneko.html"/>
+ <plugin id="com.springsource.org.dbunit"/>
+ <plugin id="com.springsource.org.dom4j"/>
+ <plugin id="com.springsource.org.h2"/>
+ <plugin id="com.springsource.org.hibernate"/>
+ <plugin id="com.springsource.org.hsqldb"/>
+ <plugin id="com.springsource.org.jaxen"/>
+ <plugin id="com.springsource.org.jdom"/>
+ <plugin id="com.springsource.org.jgroups"/>
+ <plugin id="com.springsource.org.mortbay.jetty.server"/>
+ <plugin id="com.springsource.org.mortbay.util"/>
+ <plugin id="com.springsource.org.objectweb.asm"/>
+ <plugin id="com.springsource.org.postgresql.jdbc3"/>
+ <plugin id="com.springsource.org.quartz"/>
+ <plugin id="com.springsource.org.tmatesoft.svn"/>
+ <plugin id="com.springsource.org.xmlpull"/>
+ <plugin id="com.springsource.slf4j.api"/>
+ <plugin id="com.springsource.slf4j.log4j" fragment="true"/>
+ <plugin id="com.springsource.slf4j.org.apache.commons.logging"/>
+ <plugin id="org.argeo.basic.nodeps"/>
+ <plugin id="org.argeo.dep.org.freecompany.redline"/>
+ <plugin id="org.argeo.dep.osgi.activemq"/>
+ <plugin id="org.argeo.dep.osgi.activemq.optional" fragment="true"/>
+ <plugin id="org.argeo.dep.osgi.aether"/>
+ <plugin id="org.argeo.dep.osgi.boilerpipe"/>
+ <plugin id="org.argeo.dep.osgi.bouncycastle.jdk15"/>
+ <plugin id="org.argeo.dep.osgi.commons.cli"/>
+ <plugin id="org.argeo.dep.osgi.commons.exec"/>
+ <plugin id="org.argeo.dep.osgi.directory.shared.asn.codec" fragment="true"/>
+ <plugin id="org.argeo.dep.osgi.drewnoakes.metadata_extractor"/>
+ <plugin id="org.argeo.dep.osgi.geoapi"/>
+ <plugin id="org.argeo.dep.osgi.geotools"/>
+ <plugin id="org.argeo.dep.osgi.jackrabbit"/>
+ <plugin id="org.argeo.dep.osgi.jai.imageio"/>
+ <plugin id="org.argeo.dep.osgi.java3d"/>
+ <plugin id="org.argeo.dep.osgi.jcr"/>
+ <plugin id="org.argeo.dep.osgi.jsr275"/>
+ <plugin id="org.argeo.dep.osgi.jts"/>
+ <plugin id="org.argeo.dep.osgi.mina.filter.ssl" fragment="true"/>
+ <plugin id="org.argeo.dep.osgi.netcdf"/>
+ <plugin id="org.argeo.dep.osgi.pdfbox"/>
+ <plugin id="org.argeo.dep.osgi.poi"/>
+ <plugin id="org.argeo.dep.osgi.springframework.ldap"/>
+ <plugin id="org.argeo.dep.osgi.tagsoup"/>
+ <plugin id="org.argeo.dep.osgi.tika"/>
+ <plugin id="org.argeo.eclipse.ui"/>
+ <plugin id="org.argeo.security.activemq"/>
+ <plugin id="org.argeo.security.core"/>
+ <plugin id="org.argeo.security.equinox"/>
+ <plugin id="org.argeo.security.ldap"/>
+ <plugin id="org.argeo.security.manager.ldap"/>
+ <plugin id="org.argeo.security.services"/>
+ <plugin id="org.argeo.security.ui"/>
+ <plugin id="org.argeo.security.ui.application"/>
+ <plugin id="org.argeo.server.ads"/>
+ <plugin id="org.argeo.server.ads.server"/>
+ <plugin id="org.argeo.server.core"/>
+ <plugin id="org.argeo.server.ext.jackrabbit" fragment="true"/>
+ <plugin id="org.argeo.server.jdbc" fragment="true"/>
+ <plugin id="org.argeo.server.json"/>
+ <plugin id="org.argeo.server.tika.jackrabbit" fragment="true"/>
+ <plugin id="org.argeo.slc.agent"/>
+ <plugin id="org.argeo.slc.agent.ext.bsf" fragment="true"/>
+ <plugin id="org.argeo.slc.agent.ext.jdbc" fragment="true"/>
+ <plugin id="org.argeo.slc.agent.ext.xalan" fragment="true"/>
+ <plugin id="org.argeo.slc.client.agent"/>
+ <plugin id="org.argeo.slc.client.commons"/>
+ <plugin id="org.argeo.slc.client.core"/>
+ <plugin id="org.argeo.slc.client.hibernate"/>
+ <plugin id="org.argeo.slc.client.oxm"/>
+ <plugin id="org.argeo.slc.client.rcp"/>
+ <plugin id="org.argeo.slc.client.ui"/>
+ <plugin id="org.argeo.slc.client.ui.dist"/>
+ <plugin id="org.argeo.slc.core"/>
+ <plugin id="org.argeo.slc.demo.agent" fragment="true"/>
+ <plugin id="org.argeo.slc.demo.ant"/>
+ <plugin id="org.argeo.slc.demo.basic"/>
+ <plugin id="org.argeo.slc.demo.log4j" fragment="true"/>
+ <plugin id="org.argeo.slc.detached"/>
+ <plugin id="org.argeo.slc.ext.activemq" fragment="true"/>
+ <plugin id="org.argeo.slc.server"/>
+ <plugin id="org.argeo.slc.server.castor"/>
+ <plugin id="org.argeo.slc.server.h2"/>
+ <plugin id="org.argeo.slc.server.hibernate"/>
+ <plugin id="org.argeo.slc.server.services"/>
+ <plugin id="org.argeo.slc.specs"/>
+ <plugin id="org.argeo.slc.support.activemq"/>
+ <plugin id="org.argeo.slc.support.aether"/>
+ <plugin id="org.argeo.slc.support.ant"/>
+ <plugin id="org.argeo.slc.support.castor" fragment="true"/>
+ <plugin id="org.argeo.slc.support.gis"/>
+ <plugin id="org.argeo.slc.support.hibernate" fragment="true"/>
+ <plugin id="org.argeo.slc.support.maven"/>
+ <plugin id="org.argeo.slc.support.osgi"/>
+ <plugin id="org.argeo.slc.support.simple"/>
+ <plugin id="org.eclipse.core.commands"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.databinding"/>
+ <plugin id="org.eclipse.core.databinding.observable"/>
+ <plugin id="org.eclipse.core.databinding.property"/>
+ <plugin id="org.eclipse.core.expressions"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.security"/>
+ <plugin id="org.eclipse.help"/>
+ <plugin id="org.eclipse.jface"/>
+ <plugin id="org.eclipse.jface.databinding"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.swt"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.ui"/>
+ <plugin id="org.eclipse.ui.forms"/>
+ <plugin id="org.eclipse.ui.workbench"/>
+ <plugin id="org.springframework.aop"/>
+ <plugin id="org.springframework.beans"/>
+ <plugin id="org.springframework.context"/>
+ <plugin id="org.springframework.context.support"/>
+ <plugin id="org.springframework.core"/>
+ <plugin id="org.springframework.jdbc"/>
+ <plugin id="org.springframework.jms"/>
+ <plugin id="org.springframework.orm"/>
+ <plugin id="org.springframework.osgi.core"/>
+ <plugin id="org.springframework.osgi.extender"/>
+ <plugin id="org.springframework.osgi.io"/>
+ <plugin id="org.springframework.oxm"/>
+ <plugin id="org.springframework.security.acls" fragment="true"/>
+ <plugin id="org.springframework.security.core"/>
+ <plugin id="org.springframework.transaction"/>
+ <plugin id="org.springframework.web"/>
+ <plugin id="org.springframework.web.servlet"/>
+ <plugin id="org.springframework.xml"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.argeo.security.equinox" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.security.manager.ldap" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.security.services" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.server.ads.server" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.agent" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.agent" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.commons" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.core" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.hibernate" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.oxm" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.rcp" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.client.ui" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.demo.ant" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.demo.basic" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.server.castor" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.server.h2" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.server.hibernate" autoStart="true" startLevel="0" />
+ <plugin id="org.argeo.slc.server.services" autoStart="true" startLevel="0" />
+ <plugin id="org.springframework.osgi.extender" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.commons.security</groupId>
+ <artifactId>org.argeo.security.activemq</artifactId>
+ <version>${version.argeo-commons}</version>
+ <type>pom</type>
+ </dependency>
+
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
</parent>
<groupId>org.argeo.slc.dep</groupId>
- <artifactId>org.argeo.slc.backend</artifactId>
+ <artifactId>org.argeo.slc.dep.backend</artifactId>
<name>SLC BACKEND Dependencies</name>
-<!-- <build>-->
-<!-- <plugins>-->
-<!-- <plugin>-->
-<!-- <groupId>org.argeo.maven.plugins</groupId>-->
-<!-- <artifactId>maven-argeo-osgi-plugin</artifactId>-->
-<!-- </plugin>-->
-<!-- </plugins>-->
-<!-- </build>-->
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.argeo.maven.plugins</groupId>
+ <artifactId>maven-argeo-osgi-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
<dependencies>
<!-- HACK because of dependencies pb with Maven: version 2.4.0 is required
by Spring-LDAP while Apache Directory takes 2.1.0 -->
<artifactId>org.argeo.slc.dep.gis</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.slc.dep</groupId>
+ <artifactId>org.argeo.slc.dep.provided</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!-- SLC non deps -->
<dependency>
<version>${project.version}</version>
<type>pom</type>
</dependency>
- <dependency>
- <groupId>org.argeo.slc.eclipse</groupId>
- <artifactId>org.argeo.slc.eclipse.plugins.modules.bundles</artifactId>
- <version>${project.version}</version>
- <type>pom</type>
- </dependency>
</dependencies>
</profile>
<profile>
<version>${project.version}</version>
<type>pom</type>
</dependency>
- <dependency>
- <groupId>org.argeo.slc.eclipse</groupId>
- <artifactId>org.argeo.slc.eclipse.plugins.modules.bundles</artifactId>
- <version>${project.version}</version>
- <type>pom</type>
- </dependency>
</dependencies>
</profile>
</profiles>
<groupId>org.hibernate</groupId>
<artifactId>com.springsource.org.hibernate</artifactId>
</dependency>
- <dependency>
- <!-- Needed by DOM4j -->
- <groupId>javax.xml.stream</groupId>
- <artifactId>com.springsource.javax.xml.stream</artifactId>
- </dependency>
</dependencies>
</project>
\ No newline at end of file
--- /dev/null
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.argeo.slc</groupId>
+ <artifactId>dep</artifactId>
+ <version>0.13.1-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <groupId>org.argeo.slc.dep</groupId>
+ <artifactId>org.argeo.slc.dep.provided</artifactId>
+ <name>SLC Dependencies Provided</name>
+ <description>Dependencies which may be provided by soem OSGi runtimes</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.xmlcommons</groupId>
+ <artifactId>com.springsource.org.apache.xmlcommons</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>com.springsource.javax.activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>com.springsource.javax.annotation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>com.springsource.javax.transaction</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>com.springsource.javax.xml.stream</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>com.springsource.javax.xml.bind</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.soap</groupId>
+ <artifactId>com.springsource.javax.xml.soap</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>com.springsource.javax.xml.ws</artifactId>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
<version>${project.version}</version>
</dependency>
- <!-- Back-end Dependencies -->
<dependency>
<groupId>org.argeo.slc.dep</groupId>
- <artifactId>org.argeo.slc.backend</artifactId>
+ <artifactId>org.argeo.slc.dep.sdk.rcp</artifactId>
<version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.argeo.commons.eclipse</groupId>
+ <artifactId>org.argeo.eclipse.dep.rcp</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.argeo.slc.eclipse</groupId>
+ <artifactId>org.argeo.slc.client.rcp</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
-
- <!-- <dependency> <groupId>org.argeo.slc.eclipse</groupId> <artifactId>org.argeo.slc.client.ui</artifactId>
- <version>${project.version}</version> </dependency> -->
-
- <!-- Commons RAP -->
- <!-- TO BE DELETED <dependency> <groupId>org.argeo.commons.eclipse</groupId>
- <artifactId>org.argeo.eclipse.dep.rap</artifactId> <version>${version.argeo-commons}</version>
- </dependency> -->
-
</dependencies>
</project>
\ No newline at end of file
</plugins>
</build>
<dependencies>
+ <dependency>
+ <groupId>org.argeo.slc.eclipse</groupId>
+ <artifactId>org.argeo.slc.client.ui</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.argeo.slc.eclipse</groupId>
+ <artifactId>org.argeo.slc.client.ui.dist</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Secure Application -->
+ <dependency>
+ <groupId>org.argeo.commons.security</groupId>
+ <artifactId>org.argeo.security.ui.application</artifactId>
+ <version>${version.argeo-commons}</version>
+ </dependency>
+
<dependency>
<groupId>org.argeo.slc.eclipse</groupId>
<artifactId>org.argeo.slc.client.rcp</artifactId>
<version>${project.version}</version>
</dependency>
- <!-- TO BE DELETED <dependency> <groupId>org.argeo.slc.eclipse</groupId>
- <artifactId>org.argeo.slc.client.ui</artifactId> <version>${project.version}</version>
- </dependency> -->
<!-- Back-end Dependencies -->
<dependency>
<groupId>org.argeo.slc.dep</groupId>
- <artifactId>org.argeo.slc.backend</artifactId>
+ <artifactId>org.argeo.slc.dep.backend</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>sdkWithModules</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.argeo.slc.eclipse</groupId>
+ <artifactId>org.argeo.slc.eclipse.modules.bundles</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
+ <id>sdkWithoutModules</id>
+ </profile>
+ <profile>
+ <id>release</id>
+ <properties>
+ <argeo.p2.repository>/srv/projects/slc/www/sdk</argeo.p2.repository>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.argeo.slc.eclipse</groupId>
+ <artifactId>org.argeo.slc.eclipse.modules.bundles</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="SLC" uid="org.argeo.slc.client.rcp.product" id="org.argeo.slc.client.rcp.product" application="org.argeo.slc.client.rcp.application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-console</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
- </launcherArgs>
-
- <windowImages i16="icons/argeo-icon-256.png"/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="com.ibm.icu"/>
- <plugin id="com.springsource.antlr"/>
- <plugin id="com.springsource.bsh"/>
- <plugin id="com.springsource.com.jcraft.jsch"/>
- <plugin id="com.springsource.com.lowagie.text"/>
- <plugin id="com.springsource.com.mysql.jdbc"/>
- <plugin id="com.springsource.com.sun.syndication"/>
- <plugin id="com.springsource.com.thoughtworks.xstream"/>
- <plugin id="com.springsource.edu.emory.mathcs.backport"/>
- <plugin id="com.springsource.edu.oswego.cs.dl.util.concurrent"/>
- <plugin id="com.springsource.javassist"/>
- <plugin id="com.springsource.javax.activation"/>
- <plugin id="com.springsource.javax.annotation"/>
- <plugin id="com.springsource.javax.ejb"/>
- <plugin id="com.springsource.javax.el"/>
- <plugin id="com.springsource.javax.jms"/>
- <plugin id="com.springsource.javax.mail"/>
- <plugin id="com.springsource.javax.management.j2ee"/>
- <plugin id="com.springsource.javax.media.jai.codec"/>
- <plugin id="com.springsource.javax.media.jai.core"/>
- <plugin id="com.springsource.javax.persistence"/>
- <plugin id="com.springsource.javax.resource"/>
- <plugin id="com.springsource.javax.servlet"/>
- <plugin id="com.springsource.javax.servlet.jsp"/>
- <plugin id="com.springsource.javax.servlet.jsp.jstl"/>
- <plugin id="com.springsource.javax.transaction"/>
- <plugin id="com.springsource.javax.xml.bind"/>
- <plugin id="com.springsource.javax.xml.rpc"/>
- <plugin id="com.springsource.javax.xml.soap"/>
- <plugin id="com.springsource.javax.xml.stream"/>
- <plugin id="com.springsource.javax.xml.ws"/>
- <plugin id="com.springsource.jcifs"/>
- <plugin id="com.springsource.jdbm"/>
- <plugin id="com.springsource.json"/>
- <plugin id="com.springsource.junit"/>
- <plugin id="com.springsource.jxl"/>
- <plugin id="com.springsource.net.sf.cglib"/>
- <plugin id="com.springsource.net.sf.ehcache"/>
- <plugin id="com.springsource.net.sourceforge.jtds"/>
- <plugin id="com.springsource.org.antlr"/>
- <plugin id="com.springsource.org.aopalliance"/>
- <plugin id="com.springsource.org.apache.bsf"/>
- <plugin id="com.springsource.org.apache.commons.beanutils"/>
- <plugin id="com.springsource.org.apache.commons.codec"/>
- <plugin id="com.springsource.org.apache.commons.collections"/>
- <plugin id="com.springsource.org.apache.commons.compress"/>
- <plugin id="com.springsource.org.apache.commons.dbcp"/>
- <plugin id="com.springsource.org.apache.commons.fileupload"/>
- <plugin id="com.springsource.org.apache.commons.httpclient"/>
- <plugin id="com.springsource.org.apache.commons.io"/>
- <plugin id="com.springsource.org.apache.commons.lang"/>
- <plugin id="com.springsource.org.apache.commons.net"/>
- <plugin id="com.springsource.org.apache.commons.pool"/>
- <plugin id="com.springsource.org.apache.commons.vfs"/>
- <plugin id="com.springsource.org.apache.derby"/>
- <plugin id="com.springsource.org.apache.directory.server.changepw"/>
- <plugin id="com.springsource.org.apache.directory.server.core" fragment="true"/>
- <plugin id="com.springsource.org.apache.directory.server.core.shared"/>
- <plugin id="com.springsource.org.apache.directory.server.jndi"/>
- <plugin id="com.springsource.org.apache.directory.server.kerberos"/>
- <plugin id="com.springsource.org.apache.directory.server.kerberos.shared"/>
- <plugin id="com.springsource.org.apache.directory.server.ldap"/>
- <plugin id="com.springsource.org.apache.directory.server.ntp"/>
- <plugin id="com.springsource.org.apache.directory.server.protocol.shared"/>
- <plugin id="com.springsource.org.apache.directory.shared.asn1"/>
- <plugin id="com.springsource.org.apache.directory.shared.ldap"/>
- <plugin id="com.springsource.org.apache.log4j"/>
- <plugin id="com.springsource.org.apache.lucene"/>
- <plugin id="com.springsource.org.apache.mina"/>
- <plugin id="com.springsource.org.apache.oro"/>
- <plugin id="com.springsource.org.apache.regexp"/>
- <plugin id="com.springsource.org.apache.taglibs.standard"/>
- <plugin id="com.springsource.org.apache.tools.ant"/>
- <plugin id="com.springsource.org.apache.tools.ant.launch"/>
- <plugin id="com.springsource.org.apache.ws.commons.schema"/>
- <plugin id="com.springsource.org.apache.xalan"/>
- <plugin id="com.springsource.org.apache.xerces" fragment="true"/>
- <plugin id="com.springsource.org.apache.xml.resolver"/>
- <plugin id="com.springsource.org.apache.xml.serializer"/>
- <plugin id="com.springsource.org.apache.xmlbeans"/>
- <plugin id="com.springsource.org.apache.xmlcommons"/>
- <plugin id="com.springsource.org.aspectj.runtime"/>
- <plugin id="com.springsource.org.aspectj.weaver"/>
- <plugin id="com.springsource.org.castor"/>
- <plugin id="com.springsource.org.codehaus.jackson"/>
- <plugin id="com.springsource.org.codehaus.jackson.mapper"/>
- <plugin id="com.springsource.org.cyberneko.html"/>
- <plugin id="com.springsource.org.dbunit"/>
- <plugin id="com.springsource.org.dom4j"/>
- <plugin id="com.springsource.org.h2"/>
- <plugin id="com.springsource.org.hibernate"/>
- <plugin id="com.springsource.org.hsqldb"/>
- <plugin id="com.springsource.org.jaxen"/>
- <plugin id="com.springsource.org.jdom"/>
- <plugin id="com.springsource.org.jgroups"/>
- <plugin id="com.springsource.org.mortbay.jetty.server"/>
- <plugin id="com.springsource.org.mortbay.util"/>
- <plugin id="com.springsource.org.objectweb.asm"/>
- <plugin id="com.springsource.org.postgresql.jdbc3"/>
- <plugin id="com.springsource.org.quartz"/>
- <plugin id="com.springsource.org.tmatesoft.svn"/>
- <plugin id="com.springsource.org.xmlpull"/>
- <plugin id="com.springsource.slf4j.api"/>
- <plugin id="com.springsource.slf4j.log4j" fragment="true"/>
- <plugin id="com.springsource.slf4j.org.apache.commons.logging"/>
- <plugin id="org.argeo.basic.nodeps"/>
- <plugin id="org.argeo.dep.org.freecompany.redline"/>
- <plugin id="org.argeo.dep.osgi.activemq"/>
- <plugin id="org.argeo.dep.osgi.activemq.optional" fragment="true"/>
- <plugin id="org.argeo.dep.osgi.aether"/>
- <plugin id="org.argeo.dep.osgi.boilerpipe"/>
- <plugin id="org.argeo.dep.osgi.bouncycastle.jdk15"/>
- <plugin id="org.argeo.dep.osgi.commons.cli"/>
- <plugin id="org.argeo.dep.osgi.commons.exec"/>
- <plugin id="org.argeo.dep.osgi.directory.shared.asn.codec" fragment="true"/>
- <plugin id="org.argeo.dep.osgi.drewnoakes.metadata_extractor"/>
- <plugin id="org.argeo.dep.osgi.geoapi"/>
- <plugin id="org.argeo.dep.osgi.geotools"/>
- <plugin id="org.argeo.dep.osgi.jackrabbit"/>
- <plugin id="org.argeo.dep.osgi.jai.imageio"/>
- <plugin id="org.argeo.dep.osgi.java3d"/>
- <plugin id="org.argeo.dep.osgi.jcr"/>
- <plugin id="org.argeo.dep.osgi.jsr275"/>
- <plugin id="org.argeo.dep.osgi.jts"/>
- <plugin id="org.argeo.dep.osgi.mina.filter.ssl" fragment="true"/>
- <plugin id="org.argeo.dep.osgi.netcdf"/>
- <plugin id="org.argeo.dep.osgi.pdfbox"/>
- <plugin id="org.argeo.dep.osgi.poi"/>
- <plugin id="org.argeo.dep.osgi.springframework.ldap"/>
- <plugin id="org.argeo.dep.osgi.tagsoup"/>
- <plugin id="org.argeo.dep.osgi.tika"/>
- <plugin id="org.argeo.eclipse.ui"/>
- <plugin id="org.argeo.security.core"/>
- <plugin id="org.argeo.security.manager.ldap"/>
- <plugin id="org.argeo.security.services"/>
- <plugin id="org.argeo.server.core"/>
- <plugin id="org.argeo.server.ext.jackrabbit" fragment="true"/>
- <plugin id="org.argeo.server.jdbc" fragment="true"/>
- <plugin id="org.argeo.server.json"/>
- <plugin id="org.argeo.server.tika.jackrabbit" fragment="true"/>
- <plugin id="org.argeo.slc.agent"/>
- <plugin id="org.argeo.slc.agent.ext.bsf" fragment="true"/>
- <plugin id="org.argeo.slc.agent.ext.jdbc" fragment="true"/>
- <plugin id="org.argeo.slc.agent.ext.xalan" fragment="true"/>
- <plugin id="org.argeo.slc.client.agent"/>
- <plugin id="org.argeo.slc.client.commons"/>
- <plugin id="org.argeo.slc.client.core"/>
- <plugin id="org.argeo.slc.client.hibernate"/>
- <plugin id="org.argeo.slc.client.oxm"/>
- <plugin id="org.argeo.slc.client.rcp"/>
- <plugin id="org.argeo.slc.client.ui"/>
- <plugin id="org.argeo.slc.core"/>
- <plugin id="org.argeo.slc.demo.agent" fragment="true"/>
- <plugin id="org.argeo.slc.demo.ant"/>
- <plugin id="org.argeo.slc.demo.basic"/>
- <plugin id="org.argeo.slc.demo.log4j" fragment="true"/>
- <plugin id="org.argeo.slc.detached"/>
- <plugin id="org.argeo.slc.ext.activemq" fragment="true"/>
- <plugin id="org.argeo.slc.server"/>
- <plugin id="org.argeo.slc.server.castor"/>
- <plugin id="org.argeo.slc.server.h2"/>
- <plugin id="org.argeo.slc.server.hibernate"/>
- <plugin id="org.argeo.slc.server.services"/>
- <plugin id="org.argeo.slc.specs"/>
- <plugin id="org.argeo.slc.support.activemq"/>
- <plugin id="org.argeo.slc.support.aether"/>
- <plugin id="org.argeo.slc.support.ant"/>
- <plugin id="org.argeo.slc.support.castor" fragment="true"/>
- <plugin id="org.argeo.slc.support.gis"/>
- <plugin id="org.argeo.slc.support.hibernate" fragment="true"/>
- <plugin id="org.argeo.slc.support.maven"/>
- <plugin id="org.argeo.slc.support.osgi"/>
- <plugin id="org.argeo.slc.support.simple"/>
- <plugin id="org.eclipse.core.commands"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.databinding"/>
- <plugin id="org.eclipse.core.databinding.observable"/>
- <plugin id="org.eclipse.core.databinding.property"/>
- <plugin id="org.eclipse.core.expressions"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.help"/>
- <plugin id="org.eclipse.jface"/>
- <plugin id="org.eclipse.jface.databinding"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.swt"/>
- <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
- <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
- <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
- <plugin id="org.eclipse.ui"/>
- <plugin id="org.eclipse.ui.workbench"/>
- <plugin id="org.springframework.aop"/>
- <plugin id="org.springframework.beans"/>
- <plugin id="org.springframework.context"/>
- <plugin id="org.springframework.context.support"/>
- <plugin id="org.springframework.core"/>
- <plugin id="org.springframework.jdbc"/>
- <plugin id="org.springframework.jms"/>
- <plugin id="org.springframework.orm"/>
- <plugin id="org.springframework.osgi.core"/>
- <plugin id="org.springframework.osgi.extender"/>
- <plugin id="org.springframework.osgi.io"/>
- <plugin id="org.springframework.oxm"/>
- <plugin id="org.springframework.security.acls" fragment="true"/>
- <plugin id="org.springframework.security.core"/>
- <plugin id="org.springframework.transaction"/>
- <plugin id="org.springframework.web"/>
- <plugin id="org.springframework.web.servlet"/>
- <plugin id="org.springframework.xml"/>
- </plugins>
-
- <configurations>
- <plugin id="org.argeo.security.manager.ldap" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.security.services" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.agent" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.agent" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.commons" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.core" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.hibernate" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.oxm" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.rcp" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.client.ui" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.demo.ant" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.demo.basic" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.server.castor" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.server.h2" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.server.hibernate" autoStart="true" startLevel="0" />
- <plugin id="org.argeo.slc.server.services" autoStart="true" startLevel="0" />
- <plugin id="org.springframework.osgi.extender" autoStart="true" startLevel="0" />
- </configurations>
-
-</product>
<artifactId>org.argeo.slc.support.jcr</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.argeo.slc.runtime</groupId>
- <artifactId>org.argeo.slc.support.ws.client</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.argeo.slc.runtime</groupId>
<artifactId>org.argeo.slc.repo</artifactId>
<version>${version.argeo-commons}</version>
<type>pom</type>
</dependency>
+ <dependency>
+ <groupId>org.argeo.commons.security</groupId>
+ <artifactId>org.argeo.security.ldap</artifactId>
+ <version>${version.argeo-commons}</version>
+ </dependency>
<!-- Security -->
<dependency>
</dependency>
<!-- JEE -->
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>com.springsource.javax.annotation</artifactId>
- </dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>com.springsource.javax.persistence</artifactId>
<module>org.argeo.slc.dep.server</module>
<module>org.argeo.slc.dep.detached</module>
<module>org.argeo.slc.dep.gis</module>
+ <module>org.argeo.slc.dep.provided</module>
<module>org.argeo.slc.dep.backend</module>
<module>org.argeo.slc.dep.sdk.rcp</module>
<module>org.argeo.slc.dep.sdk.rap</module>
<artifactId>org.argeo.slc.dep.sdk.rcp</artifactId>
<version>${project.version}</version>
</dependency>
- <!-- TO BE DELETED <dependency> <groupId>org.argeo.slc.dep</groupId> <artifactId>org.argeo.slc.dep.sdk.sources</artifactId>
- <version>${project.version}</version> </dependency> -->
</dependencies>
<profiles>
<profile>
<artifactId>maven-argeo-osgi-plugin</artifactId>
<extensions>true</extensions>
<configuration>
- <bundlesPomArtifactId>org.argeo.slc.eclipse.plugins.modules.bundles</bundlesPomArtifactId>
+ <bundlesPomArtifactId>org.argeo.slc.eclipse.modules.bundles</bundlesPomArtifactId>
</configuration>
</plugin>
</plugins>
Bundle-SymbolicName: org.argeo.slc.client.ui.dist;singleton:=true
Bundle-Version: 0.13.1.SNAPSHOT
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.ui;bundle-version="3.6.1",
- org.eclipse.core.runtime;bundle-version="3.6.0"
+Require-Bundle: org.eclipse.ui;resolution:=optional,
+ org.eclipse.rap.ui;resolution:=optional,
+ org.eclipse.core.runtime
Bundle-Activator: org.argeo.slc.client.ui.dist.DistPlugin
-Import-Package: aQute.lib.osgi,
+Import-Package: aQute.lib.osgi;resolution:=optional,
+ org.apache.commons.logging;version="1.1.1",
org.argeo.eclipse.ui
Bundle-ActivationPolicy: lazy
--- /dev/null
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.argeo.slc.eclipse</groupId>
+ <artifactId>plugins</artifactId>
+ <version>0.13.1-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.argeo.slc.client.ui.dist</artifactId>
+ <name>SLC Client UI Distribution</name>
+ <packaging>jar</packaging>
+
+
+ <dependencies>
+ <!-- Eclipse and RCP only dependency, needed at compile time -->
+ <dependency>
+ <groupId>org.argeo.commons.eclipse</groupId>
+ <artifactId>org.argeo.eclipse.dep.rcp</artifactId>
+ <version>${version.argeo-commons}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.argeo.commons.eclipse</groupId>
+ <artifactId>org.argeo.eclipse.ui</artifactId>
+ <version>${version.argeo-commons}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.argeo.dep.osgi</groupId>
+ <artifactId>org.argeo.dep.osgi.bnd</artifactId>
+ </dependency>
+ </dependencies>
+</project>
package org.argeo.slc.client.ui.dist.views;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
+import java.util.TreeMap;
import java.util.TreeSet;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.argeo.eclipse.ui.TreeObject;
import org.argeo.eclipse.ui.TreeParent;
import org.argeo.slc.client.ui.dist.DistPlugin;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
+import org.osgi.service.packageadmin.ExportedPackage;
+import org.osgi.service.packageadmin.PackageAdmin;
public class ModulesView extends ViewPart {
+ private final static Log log = LogFactory.getLog(ModulesView.class);
+
private TreeViewer viewer;
+ private PackageAdmin packageAdmin;
+
+ private Comparator<ExportedPackage> exportedPackageComparator = new Comparator<ExportedPackage>() {
+
+ public int compare(ExportedPackage o1, ExportedPackage o2) {
+ if (!o1.getName().equals(o2.getName()))
+ return o1.getName().compareTo(o2.getName());
+ else
+ return o1.getVersion().compareTo(o2.getVersion());
+ }
+ };
+
@Override
public void createPartControl(Composite parent) {
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
if (parentElement instanceof BundleContext) {
BundleContext bundleContext = (BundleContext) parentElement;
Bundle[] bundles = bundleContext.getBundles();
- Set<ModuleNode> moduleNodes = new TreeSet<ModulesView.ModuleNode>();
+
+ TreeParent bundlesNode = new TreeParent("Bundles");
for (Bundle bundle : bundles) {
if (bundle.getState() == Bundle.ACTIVE)
- moduleNodes.add(new ModuleNode(bundle));
+ bundlesNode.addChild(new BundleNode(bundle));
}
- return moduleNodes.toArray();
+
+ // scan packages
+ ServiceReference paSr = bundleContext
+ .getServiceReference(PackageAdmin.class.getName());
+ // TODO: make a cleaner referencing
+ packageAdmin = (PackageAdmin) bundleContext.getService(paSr);
+
+ Bundle bundle1 = null;
+ Bundle bundle2 = null;
+
+ Map<Bundle, Set<ExportedPackage>> importedPackages = new HashMap<Bundle, Set<ExportedPackage>>();
+ Map<String, Set<ExportedPackage>> packages = new TreeMap<String, Set<ExportedPackage>>();
+ for (Bundle bundle : bundles) {
+ if (bundle.getSymbolicName()
+ .equals("org.argeo.security.ui"))
+ bundle1 = bundle;
+ if (bundle.getSymbolicName().equals(
+ "org.argeo.security.equinox"))
+ bundle2 = bundle;
+
+ ExportedPackage[] pkgs = packageAdmin
+ .getExportedPackages(bundle);
+ if (pkgs != null)
+ for (ExportedPackage pkg : pkgs) {
+ if (!packages.containsKey(pkg.getName()))
+ packages.put(pkg.getName(),
+ new TreeSet<ExportedPackage>(
+ exportedPackageComparator));
+ Set<ExportedPackage> expPackages = (Set<ExportedPackage>) packages
+ .get(pkg.getName());
+ expPackages.add(pkg);
+
+ // imported
+ for (Bundle b : pkg.getImportingBundles()) {
+ if (bundle.getBundleId() != b.getBundleId()) {
+ if (!importedPackages.containsKey(b))
+ importedPackages
+ .put(b,
+ new TreeSet<ExportedPackage>(
+ exportedPackageComparator));
+ Set<ExportedPackage> impPackages = (Set<ExportedPackage>) importedPackages
+ .get(b);
+ impPackages.add(pkg);
+ }
+ }
+ }
+ }
+
+ TreeParent mPackageNode = new TreeParent("Multiple Packages");
+ TreeParent aPackageNode = new TreeParent("All Packages");
+ for (String packageName : packages.keySet()) {
+ Set<ExportedPackage> pkgs = packages.get(packageName);
+ if (pkgs.size() > 1) {
+ MultiplePackagesNode mpn = new MultiplePackagesNode(
+ packageName, pkgs);
+ mPackageNode.addChild(mpn);
+ aPackageNode.addChild(mpn);
+ } else {
+ aPackageNode.addChild(new ExportedPackageNode(pkgs
+ .iterator().next()));
+ }
+ }
+
+ Map<String, Set<String>> traces1 = new TreeMap<String, Set<String>>();
+ Map<String, ExportedPackage> space1 = dependencySpace(bundle1,
+ importedPackages, traces1);
+ Map<String, Set<String>> traces2 = new TreeMap<String, Set<String>>();
+ Map<String, ExportedPackage> space2 = dependencySpace(bundle2,
+ importedPackages, traces2);
+ for (String key : space1.keySet()) {
+ if (space2.containsKey(key)) {
+ ExportedPackage pkg1 = space1.get(key);
+ ExportedPackage pkg2 = space2.get(key);
+ if (!pkg1.getVersion().equals(pkg2.getVersion())) {
+ log.debug("\n##" + pkg1 + " <> " + pkg2);
+ log.debug("# Traces for "
+ + bundle1.getSymbolicName());
+ for (String trace : traces1.get(pkg1.getName())) {
+ log.debug(trace);
+ }
+ log.debug("# Traces for "
+ + bundle2.getSymbolicName());
+ for (String trace : traces2.get(pkg2.getName())) {
+ log.debug(trace);
+ }
+ }
+ }
+ }
+
+ return new Object[] { bundlesNode, mPackageNode, aPackageNode };
} else if (parentElement instanceof TreeParent) {
return ((TreeParent) parentElement).getChildren();
} else {
}
+ protected Map<String, ExportedPackage> dependencySpace(Bundle bundle,
+ Map<Bundle, Set<ExportedPackage>> importedPackages,
+ Map<String, Set<String>> traces) {
+ log.debug("Dependency space for " + bundle.getSymbolicName());
+ Map<String, ExportedPackage> space = new TreeMap<String, ExportedPackage>();
+ fillDependencySpace(space, bundle, importedPackages,
+ bundle.getSymbolicName(), traces);
+ return space;
+ }
+
+ /** Recursive */
+ protected void fillDependencySpace(Map<String, ExportedPackage> space,
+ Bundle bundle, Map<Bundle, Set<ExportedPackage>> importedPackages,
+ String currTrace, Map<String, Set<String>> traces) {
+ if (importedPackages.containsKey(bundle)) {
+ Set<ExportedPackage> imports = importedPackages.get(bundle);
+ // log.debug("## Fill dependency space for " + bundle + " : ");
+ for (ExportedPackage pkg : imports) {
+ if (!traces.containsKey(pkg.getName()))
+ traces.put(pkg.getName(), new TreeSet<String>());
+ traces.get(pkg.getName()).add(currTrace);
+ if (!space.containsKey(pkg.getName())) {
+ space.put(pkg.getName(), pkg);
+ Bundle exportingBundle = pkg.getExportingBundle();
+ // if (bundle.getBundleId() !=
+ // exportingBundle.getBundleId())
+ fillDependencySpace(space, exportingBundle,
+ importedPackages, currTrace + " > "
+ + exportingBundle.getSymbolicName(), traces);
+ }
+ }
+ }
+ }
+
private class ModulesLabelProvider extends LabelProvider implements
ITableLabelProvider {
}
- class ModuleNode extends TreeParent {
+ class BundleNode extends TreeParent {
private final Bundle bundle;
- public ModuleNode(Bundle bundle) {
+ public BundleNode(Bundle bundle) {
super(bundle.getSymbolicName());
this.bundle = bundle;
}
}
+
+ class MultiplePackagesNode extends TreeParent {
+ private String packageName;
+ private Set<ExportedPackage> exportedPackages;
+
+ public MultiplePackagesNode(String packageName,
+ Set<ExportedPackage> exportedPackages) {
+ super(packageName);
+ this.packageName = packageName;
+ this.exportedPackages = exportedPackages;
+ for (ExportedPackage pkg : exportedPackages) {
+ addChild(new ExportedPackageNode(pkg));
+ }
+ }
+
+ }
+
+ class ConflictingPackageNode extends TreeParent {
+ private ExportedPackage exportedPackage;
+
+ public ConflictingPackageNode(ExportedPackage exportedPackage) {
+ super(exportedPackage.getName() + " - "
+ + exportedPackage.getVersion() + " ("
+ + exportedPackage.getExportingBundle() + ")");
+ this.exportedPackage = exportedPackage;
+
+ TreeParent bundlesNode = new TreeParent("Dependent Bundles");
+ this.addChild(bundlesNode);
+ Map<String, Bundle> bundles = new TreeMap<String, Bundle>();
+ for (Bundle b : exportedPackage.getImportingBundles()) {
+ bundles.put(b.getSymbolicName(), b);
+ }
+ for (String key : bundles.keySet()) {
+ addDependentBundles(bundlesNode, bundles.get(key));
+ }
+ }
+ }
+
+ protected void addDependentBundles(TreeParent parent, Bundle bundle) {
+ TreeParent bundleNode = new TreeParent(bundle.toString());
+ parent.addChild(bundleNode);
+ Map<String, Bundle> bundles = new TreeMap<String, Bundle>();
+ ExportedPackage[] pkgs = packageAdmin.getExportedPackages(bundle);
+ if (pkgs != null)
+ for (ExportedPackage pkg : pkgs) {
+ for (Bundle b : pkg.getImportingBundles()) {
+ if (!bundles.containsKey(b.getSymbolicName())
+ && b.getBundleId() != bundle.getBundleId()) {
+ bundles.put(b.getSymbolicName(), b);
+ }
+ }
+ }
+
+ for (String key : bundles.keySet()) {
+ addDependentBundles(bundleNode, bundles.get(key));
+ }
+ }
+
+ class ExportedPackageNode extends TreeParent {
+ private ExportedPackage exportedPackage;
+
+ public ExportedPackageNode(ExportedPackage exportedPackage) {
+ super(exportedPackage.getName() + " - "
+ + exportedPackage.getVersion() + " ("
+ + exportedPackage.getExportingBundle() + ")");
+ this.exportedPackage = exportedPackage;
+ for (Bundle bundle : exportedPackage.getImportingBundles()) {
+ addChild(new BundleNode(bundle));
+ }
+ }
+ }
}
<modules>
<module>org.argeo.slc.client.ui</module>
+ <module>org.argeo.slc.client.ui.dist</module>
<module>org.argeo.slc.client.rcp</module>
<module>org.argeo.slc.client.rap</module>
</modules>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.argeo.slc</groupId>
<entry key="slc" value="http://www.argeo.org/slc" />
</map>
</property>
- <!-- <property name="cndFiles"> -->
- <!-- <list> -->
- <!-- <value>classpath:/org/argeo/slc/repo/repo.cnd</value> -->
- <!-- </list> -->
- <!-- </property> -->
+ <property name="cndFiles">
+ <list>
+ <value>classpath:/org/argeo/slc/repo/repo.cnd</value>
+ </list>
+ </property>
</bean>
</beans>
\ No newline at end of file
</value>
<value>org.osgi:org.osgi.core</value>
<value>org.easymock:easymock</value>
+ <value>com.springsource.org.apache.xmlcommons</value>
</set>
</property>
</bean>
<artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.log4j</groupId>
- <artifactId>com.springsource.org.apache.log4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>com.springsource.slf4j.log4j</artifactId>
+ <groupId>org.argeo.commons.basic</groupId>
+ <artifactId>org.argeo.basic.dep.log4j</artifactId>
+ <version>0.2.3-SNAPSHOT</version>
+ <type>pom</type>
</dependency>
<dependency>
--- /dev/null
+package org.argeo.slc.repo;
+
+public interface RepoNodes {
+
+ public final static String SLC_ARTIFACT = "slc:artifact";
+}
--- /dev/null
+package org.argeo.slc.repo;
+
+public interface RepoProperties {
+ // slc:artifact
+ public final static String SLC_ARTIFACT_ID = "slc:artifactId";
+ public final static String SLC_GROUP_ID = "slc:groupId";
+ public final static String SLC_ARTIFACT_VERSION = "slc:artifactVersion";
+ public final static String SLC_ARTIFACT_EXTENSION = "slc:artifactExtension";
+ public final static String SLC_ARTIFACT_CLASSIFIER = "slc:artifactClassifier";
+}
import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.TreeSet;
+import javax.jcr.Binary;
+import javax.jcr.Node;
+import javax.jcr.Property;
import javax.jcr.Session;
+import javax.jcr.nodetype.NodeType;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.argeo.jcr.JcrUtils;
import org.argeo.slc.SlcException;
import org.argeo.slc.aether.AetherTemplate;
import org.sonatype.aether.artifact.Artifact;
private Set<String> excludedArtifacts = new HashSet<String>();
private Session jcrSession;
+ private String artifactBasePath = "/slc/repo/artifacts";
public void run() {
Set<Artifact> artifacts = resolveDistribution();
+ syncDistribution(artifacts);
}
public Set<Artifact> resolveDistribution() {
}
protected void syncDistribution(Set<Artifact> artifacts) {
+ Long begin = System.currentTimeMillis();
+ try {
+ JcrUtils.mkdirs(jcrSession, artifactBasePath);
+ for (Artifact artifact : artifacts) {
+ String parentPath = artifactBasePath + '/'
+ + artifactParentPath(artifact);
+ Node parentNode;
+ if (!jcrSession.itemExists(parentPath)) {
+ parentNode = JcrUtils.mkdirs(jcrSession, parentPath,
+ NodeType.NT_FOLDER, false);
+ } else {
+ parentNode = jcrSession.getNode(parentPath);
+ }
+
+ File file = artifact.getFile();
+ Node fileNode;
+ if (!parentNode.hasNode(file.getName())) {
+ fileNode = createFileNode(parentNode, file);
+ } else {
+ fileNode = parentNode.getNode(file.getName());
+ }
+ }
+
+ Long duration = (System.currentTimeMillis() - begin) / 1000;
+ if (log.isDebugEnabled())
+ log.debug("Synchronized distribution in " + duration + "s");
+ } catch (Exception e) {
+ throw new SlcException("Cannot synchronize distribution", e);
+ }
+ }
+ protected String artifactParentPath(Artifact artifact) {
+ return artifact.getGroupId().replace('.', '/') + '/'
+ + artifact.getArtifactId() + '/' + artifact.getVersion();
+ }
+
+ protected Node createFileNode(Node parentNode, File file) {
+ try {
+ Node fileNode = parentNode
+ .addNode(file.getName(), NodeType.NT_FILE);
+ Node contentNode = fileNode.addNode(Node.JCR_CONTENT,
+ NodeType.NT_RESOURCE);
+ Binary binary = jcrSession.getValueFactory().createBinary(
+ new FileInputStream(file));
+ contentNode.setProperty(Property.JCR_DATA, binary);
+ binary.dispose();
+ return fileNode;
+ } catch (Exception e) {
+ throw new SlcException("Cannot create file node based on " + file
+ + " under " + parentNode, e);
+ }
}
/** Recursively adds non optional dependencies */
-<sebi = 'http://www.agfa.com/sebi'>
+<slc = 'http://www.argeo.org/slc'>
-[sebi:ebi] > nt:base
-//
-// GENERIC
-//
-- sebi:ebiTag (STRING) primary m
-- sebi:ebiName (STRING) m
-- sebi:ebiUniqueId (LONG) m
-- sebi:ebiRpStatus (STRING) m
-- sebi:ebiRpAssociatedVersion (STRING) m
-- sebi:ebiOrbisModule (STRING) m
-- sebi:ebiTracedTo (STRING) m
+[slc:artifact] > nt:base
+mixin
+- slc:artifactId (STRING) primary m
+- slc:groupId (STRING) m
+- slc:artifactVersion (STRING) m
+- slc:artifactExtension (STRING) m
+- slc:artifactClassifier (STRING) ='' m a
-// BPR are sometimes missing
-- sebi:ebiBpr (STRING)
-- sebi:bprProcessCode (STRING)
-- sebi:appendixBRef (STRING)
+[slc:jarArtifact] > slc:artifact
+mixin
-- sebi:ebiRequirementText (STRING) m
-- sebi:ebiRpDate (DATE) m
-- sebi:sebiCreationDate (DATE) m
-- sebi:sebiLastUpdate (DATE) m
-- sebi:sebiLastUpdateUser (STRING)
+[slc:bundleArtifact] > slc:jarArtifact, slc:bundle
+mixin
+- slc:Bundle-Version (STRING) m
+- slc:Bundle-Name (STRING)
+- slc:Bundle-Description (STRING)
+- slc:Bundle-Vendor (STRING)
+- slc:Bundle-License (STRING)
++ slc:Import-Package (slc:importedPackage) multiple
++ slc:Export-Package (slc:exportedPackage) multiple
++ slc:Require-Bundle (slc:bundle) multiple
-// 'TWIN' FIELDS
-- sebi:bprProcessCodeSebi (STRING)
-- sebi:appendixBRefSebi (STRING)
+[slc:bundle] > nt:base
+mixin
+- slc:Bundle-SymbolicName (STRING) primary m
-//
-// AP-HP specific
-//
-- sebi:ebiRpVersionLastUpdate (STRING)
-- sebi:isOutsideAphp (BOOLEAN) = 'false' m a
-- sebi:forseenDelivSprint (DATE)
-- sebi:forseenDelivSprintLastUpdate (DATE)
-- sebi:projectStatus (STRING)
-- sebi:aphpDelivDate (DATE)
-- sebi:effectiveDelivSprint (STRING)
-- sebi:effectiveDelivSprintLastUpdate (DATE)
-- sebi:ebiNameFr (STRING) = '' m a
-- sebi:ebiDescLastUpdate (DATE)
-- sebi:ebiDescFr (STRING) = '' m a
-- sebi:ebiDescFrLastUpdate (DATE)
-- sebi:consultant (STRING)
-- sebi:solutionManager (STRING)
-- sebi:productOwner (STRING)
-- sebi:tpoRef (STRING)
-- sebi:comments (STRING) = '' m a
+[slc:javaPackage] > nt:base
+mixin
+- slc:name (STRING) m
+
+[slc:exportedPackage] > slc:javaPackage
+mixin
++ slc:uses (slc:javaPackage) multiple
+
+[slc:importedPackage] > slc:javaPackage
+mixin
++ slc:version (STRING) ='0.0.0' m a
</dependency>
<!-- JEE required by ActiveMQ Core -->
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>com.springsource.javax.activation</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>com.springsource.javax.management.j2ee</artifactId>
<groupId>javax.xml.rpc</groupId>
<artifactId>com.springsource.javax.xml.rpc</artifactId>
</dependency>
- <dependency>
- <groupId>javax.xml.soap</groupId>
- <artifactId>com.springsource.javax.xml.soap</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>com.springsource.javax.transaction</artifactId>
- </dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>com.springsource.javax.servlet</artifactId>
<artifactId>com.springsource.org.apache.xalan</artifactId>
</dependency>
- <dependency>
- <groupId>javax.xml.stream</groupId>
- <artifactId>com.springsource.javax.xml.stream</artifactId>
- </dependency>
-
<!-- Unit Tests -->
<dependency>
<groupId>org.argeo.slc.runtime</groupId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>com.springsource.javax.transaction</artifactId>
- </dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>com.springsource.org.hibernate</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>com.springsource.javax.transaction</artifactId>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
</project>