]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Adapt to OSGi
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 23 Feb 2009 09:09:44 +0000 (09:09 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 23 Feb 2009 09:09:44 +0000 (09:09 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@2165 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc/pom.xml
runtime/org.argeo.slc.execution/pom.xml
runtime/org.argeo.slc.execution/src/main/java/org/argeo/slc/execution/ExecutionScope.java
runtime/org.argeo.slc.execution/src/main/java/org/argeo/slc/execution/SimpleExecutionFlow.java
runtime/org.argeo.slc.execution/src/main/java/org/argeo/slc/execution/SimpleExecutionSpec.java
runtime/org.argeo.slc.execution/src/main/java/org/argeo/slc/execution/TestLaunch.java [new file with mode: 0644]
runtime/org.argeo.slc.launcher/src/main/java/org/argeo/slc/cli/SlcMain.java
runtime/org.argeo.slc.support.simple/pom.xml

index fdc14c7bed6f9fa1dac3ff3e15bfe8322741f77b..54e1ecaad794f8a75b6a7efe7ffb64a745c177c3 100644 (file)
@@ -6,7 +6,6 @@
        <packaging>pom</packaging>
        <name>Argeo SLC</name>
        <version>0.11.3-SNAPSHOT</version>
-       <description>SLC Distribution</description>
        <url>
                http://www.argeo.org/projects/slc/${project.artifactId}/${project.version}
        </url>
@@ -292,6 +291,11 @@ limitations under the License.
                                <artifactId>org.argeo.slc.server</artifactId>
                                <version>${project.version}</version>
                        </dependency>
+                       <dependency>
+                               <groupId>org.argeo.slc.runtime</groupId>
+                               <artifactId>org.argeo.slc.execution</artifactId>
+                               <version>${project.version}</version>
+                       </dependency>
                        <dependency>
                                <groupId>org.argeo.slc.runtime</groupId>
                                <artifactId>org.argeo.slc.support.ws.client</artifactId>
index 8cfd1b9f8e236c7e39e2da59ab1bbb1a68eb0e97..4fc28d3f108fd00684d330f81344cd81a0f1c2d6 100644 (file)
                        <plugin>
                                <artifactId>maven-jar-plugin</artifactId>
                        </plugin>
+                       <plugin>
+                               <groupId>org.apache.felix</groupId>
+                               <artifactId>maven-bundle-plugin</artifactId>
+                               <version>${version.maven-bundle-plugin}</version>
+                               <configuration>
+                                       <instructions>
+                                               <Export-Package>
+                                                       org.argeo.slc.execution.*
+                                               </Export-Package>
+                                       </instructions>
+                               </configuration>
+                       </plugin>
                </plugins>
        </build>
        <dependencies>
                        <artifactId>com.springsource.org.codehaus.groovy</artifactId>
                        <version>1.5.7</version>
                </dependency>
-               <dependency>
-                       <groupId>org.beanshell</groupId>
-                       <artifactId>com.springsource.bsh</artifactId>
-                       <version>2.0.0.b4</version>
-               </dependency>
                <dependency>
                        <groupId>net.sourceforge.cglib</groupId>
                        <artifactId>com.springsource.net.sf.cglib</artifactId>
                        <version>2.1.3</version>
                </dependency>
+               <dependency>
+                       <groupId>org.objectweb.asm</groupId>
+                       <artifactId>com.springsource.org.objectweb.asm.attrs</artifactId>
+                       <version>2.2.0</version>
+               </dependency>
        </dependencies>
 </project>
index 0970ac853fdb2ca2a6dc65fd3bc7e9cbc63782f4..936c6307c3e2f3447548d00f4836971ca2edc42d 100644 (file)
@@ -36,7 +36,8 @@ public class ExecutionScope implements Scope {
        }
 
        public void registerDestructionCallback(String name, Runnable callback) {
-               throw new UnsupportedOperationException();
+               // TODO: implement it
+               //throw new UnsupportedOperationException();
        }
 
        public Object remove(String name) {
index 34018ee9b5ba076b5b193f3419cfc0bb3b0ca619..5c62cdfff5fbf2d8a7a9a33b6ceb9e548aa8b615 100644 (file)
@@ -22,6 +22,14 @@ public class SimpleExecutionFlow implements ExecutionFlow, InitializingBean,
        private List<Executable> executables = new ArrayList<Executable>();
 
        private final String uuid = UUID.randomUUID().toString();
+       
+       public SimpleExecutionFlow(){
+               
+       }
+
+       public SimpleExecutionFlow(Map<String, Object> parameters){
+               this.parameters.putAll(parameters);
+       }
 
        public void execute() {
                for (Executable executable : executables) {
index 8d460ff2c22c6c301bf11fc4a571a8fec2790242..3399a78e731bbb9bc89b0ff94fd42d98e657aa87 100644 (file)
@@ -27,7 +27,7 @@ public class SimpleExecutionSpec implements ExecutionSpec, BeanNameAware {
                if (flow == null)
                        throw new SlcException("No flow is currently initializing."
                                        + " Declare flow refs as inner beans or prototypes.");
-
+/*
                RefSpecAttribute refSpecAttribute = (RefSpecAttribute) attributes
                                .get(name);
                Class<?> targetClass = refSpecAttribute.getTargetClass();
@@ -38,7 +38,8 @@ public class SimpleExecutionSpec implements ExecutionSpec, BeanNameAware {
                proxyFactory.setProxyTargetClass(true);
                proxyFactory.setTargetSource(targetSource);
 
-               return proxyFactory.getProxy();
+               return proxyFactory.getProxy();*/
+               return flow.getParameter(name);
        }
 
        public void setBeanName(String name) {
diff --git a/runtime/org.argeo.slc.execution/src/main/java/org/argeo/slc/execution/TestLaunch.java b/runtime/org.argeo.slc.execution/src/main/java/org/argeo/slc/execution/TestLaunch.java
new file mode 100644 (file)
index 0000000..c65c853
--- /dev/null
@@ -0,0 +1,31 @@
+package org.argeo.slc.execution;
+
+import org.argeo.slc.process.SlcExecution;
+import org.springframework.beans.factory.annotation.Required;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.ApplicationEventPublisherAware;
+
+public class TestLaunch implements ApplicationEventPublisherAware {
+       private ApplicationEventPublisher applicationEventPublisher;
+
+       private String flowName;
+
+       public void launch() {
+               SlcExecution slcExecution = new SlcExecution();
+               slcExecution.getAttributes().put("slc.flows", flowName);
+               applicationEventPublisher.publishEvent(new NewExecutionEvent(this,
+                               slcExecution));
+
+       }
+
+       @Required
+       public void setFlowName(String flowName) {
+               this.flowName = flowName;
+       }
+
+       public void setApplicationEventPublisher(
+                       ApplicationEventPublisher applicationEventPublisher) {
+               this.applicationEventPublisher = applicationEventPublisher;
+       }
+
+}
index 04caaab9eef388d907b755c4ba3779a8aafa6eba..08d4d9db02f45cb219f0743585d89a6bb4b54d6b 100644 (file)
@@ -25,7 +25,7 @@ import org.springframework.context.support.FileSystemXmlApplicationContext;
 
 public class SlcMain {
        public enum Mode {
-               single, agent
+               single, agent, osgi
        }
 
        private static Log log = null;
@@ -187,6 +187,20 @@ public class SlcMain {
                        applicationContext.start();
                        log.info("SLC Agent context started.");
                }
+               // OSGi
+               else if (mode.equals(Mode.osgi)) {
+                       final ConfigurableApplicationContext applicationContext;
+                       if (runtimeStr == null) {
+                               applicationContext = new ClassPathXmlApplicationContext(
+                                               DEFAULT_AGENT_CONTEXT);
+                       } else {
+                               applicationContext = new FileSystemXmlApplicationContext(
+                                               runtimeStr);
+                       }
+                       applicationContext.registerShutdownHook();
+                       applicationContext.start();
+                       log.info("SLC Agent context started.");
+               }
        }
 
        public static void printUsage() {
index 13c2eefa362f955a0a68c3f77bd7d9f42cad3a51..cf50f1e2367f741f421d2ce2aca56a4b250e34ba 100644 (file)
@@ -35,7 +35,7 @@
                                <configuration>
                                        <instructions>
                                                <Export-Package>
-                                                       org.argeo.slc.*
+                                                       org.argeo.slc.*,org.argeo.slc.core.test.spring
                                                </Export-Package>
                                                <Import-Package>*,org.apache.commons.logging;version="1.1",
                                                        org.dbunit;resolution:="optional",