You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/03/27 20:03:01 UTC
svn commit: r641946 - in /geronimo/gshell/trunk: ./ gshell-core/
gshell-core/src/main/java/org/apache/geronimo/gshell/loader/
gshell-support/ gshell-support/gshell-plexus/
gshell-support/gshell-plexus/src/ gshell-support/gshell-plexus/src/main/
gshell-...
Author: jdillon
Date: Thu Mar 27 12:02:58 2008
New Revision: 641946
URL: http://svn.apache.org/viewvc?rev=641946&view=rev
Log:
Add gshell-plexus module, add more testing for the new loader muck
Added:
geronimo/gshell/trunk/gshell-support/gshell-plexus/
geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml (with props)
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java (with props)
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/apache/geronimo/gshell/support/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/apache/geronimo/gshell/support/plexus/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/geronimo/gshell/support/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/geronimo/gshell/support/plexus/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/geronimo/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/geronimo/gshell/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/geronimo/gshell/support/
geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/geronimo/gshell/support/plexus/
Modified:
geronimo/gshell/trunk/gshell-core/pom.xml
geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/loader/GShellLoader.java
geronimo/gshell/trunk/gshell-support/pom.xml
geronimo/gshell/trunk/pom.xml
Modified: geronimo/gshell/trunk/gshell-core/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/pom.xml?rev=641946&r1=641945&r2=641946&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-core/pom.xml Thu Mar 27 12:02:58 2008
@@ -39,6 +39,11 @@
<dependencies>
<dependency>
+ <groupId>org.apache.geronimo.gshell.support</groupId>
+ <artifactId>gshell-plexus</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.geronimo.gshell</groupId>
<artifactId>gshell-command-api</artifactId>
</dependency>
Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/loader/GShellLoader.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/loader/GShellLoader.java?rev=641946&r1=641945&r2=641946&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/loader/GShellLoader.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/loader/GShellLoader.java Thu Mar 27 12:02:58 2008
@@ -19,28 +19,27 @@
package org.apache.geronimo.gshell.loader;
-import org.apache.geronimo.gshell.model.application.Application;
-import org.apache.geronimo.gshell.model.settings.Settings;
-import org.apache.geronimo.gshell.command.IO;
-import org.apache.geronimo.gshell.lookup.IOLookup;
-import org.apache.geronimo.gshell.lookup.EnvironmentLookup;
-import org.apache.geronimo.gshell.shell.Environment;
-import org.apache.geronimo.gshell.shell.InteractiveShell;
-import org.apache.geronimo.gshell.DefaultEnvironment;
-import org.apache.geronimo.gshell.security.ShellSecurityManager;
+import java.io.File;
+import java.net.MalformedURLException;
+
import org.apache.geronimo.gshell.GShell;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.geronimo.gshell.support.plexus.GShellPlexusContainer;
+import org.apache.geronimo.gshell.plugin.CommandDiscoverer;
+import org.apache.geronimo.gshell.plugin.CommandDiscoveryListener;
+import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.model.application.Application;
import org.codehaus.plexus.classworlds.ClassWorld;
-import org.codehaus.plexus.ContainerConfiguration;
import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.ContainerConfiguration;
import org.codehaus.plexus.DefaultContainerConfiguration;
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Loads {@link org.apache.geronimo.gshell.GShell} instances.
@@ -55,15 +54,9 @@
private final IO io;
- private final Environment environment;
-
- private final SecurityManager securityManager;
-
- private final PlexusContainer container;
-
private Application application;
- private Settings settings;
+ private GShellPlexusContainer container;
public GShellLoader(final ClassWorld classWorld, final IO io) throws Exception {
assert classWorld != null;
@@ -71,73 +64,53 @@
this.classWorld = classWorld;
this.io = io;
- this.environment = new DefaultEnvironment(io);
- this.securityManager = new ShellSecurityManager();
-
- this.container = createContainer();
-
- // Install IO and Environment lookups
- IOLookup.set(container, io);
- EnvironmentLookup.set(container, environment);
}
- private PlexusContainer createContainer() throws Exception {
- ContainerConfiguration config = new DefaultContainerConfiguration();
- config.setName("gshell.core");
- config.setClassWorld(classWorld);
-
- return new DefaultPlexusContainer(config);
+ public GShellLoader(final IO io) throws Exception {
+ this(new ClassWorld("gshell", Thread.currentThread().getContextClassLoader()), io);
}
- private ArtifactRepository createArtifactRepository() throws ComponentLookupException {
- ArtifactRepositoryLayout repositoryLayout =
- (ArtifactRepositoryLayout) container.lookup(ArtifactRepositoryLayout.ROLE, "default");
-
- ArtifactRepositoryFactory artifactRepositoryFactory =
- (ArtifactRepositoryFactory) container.lookup(ArtifactRepositoryFactory.ROLE);
-
- String url = null; //settings.getLocalRepository();
-
- if (!url.startsWith("file:")) {
- url = "file://" + url;
- }
-
- ArtifactRepository localRepository = new DefaultArtifactRepository("local", url, repositoryLayout);
+ public GShellLoader() throws Exception {
+ this(new IO());
+ }
- /*
- boolean snapshotPolicySet = false;
+ public ArtifactRepository createLocalRepository(final File dir) throws ComponentLookupException, MalformedURLException {
+ assert dir != null;
+
+ ArtifactRepositoryLayout layout = container.lookupComponent(ArtifactRepositoryLayout.class, "default");
+
+ DefaultArtifactRepository repo = new DefaultArtifactRepository("local",
+ dir.toURI().toURL().toExternalForm(),
+ layout,
+ new ArtifactRepositoryPolicy(), // snapshots
+ new ArtifactRepositoryPolicy()); // releases
- if (commandLine.hasOption(CLIManager.OFFLINE)) {
- settings.setOffline(true);
+ repo.setBasedir(dir.getAbsolutePath());
- snapshotPolicySet = true;
- }
+ return repo;
+ }
- if (!snapshotPolicySet && commandLine.hasOption(CLIManager.UPDATE_SNAPSHOTS)) {
- artifactRepositoryFactory.setGlobalUpdatePolicy(ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS);
- }
+ public GShell load() throws Exception {
+ return null;
+ }
- if (commandLine.hasOption(CLIManager.CHECKSUM_FAILURE_POLICY)) {
- System.out.println("+ Enabling strict checksum verification on all artifact downloads.");
+ public void test() throws Exception {
+ ContainerConfiguration config = new DefaultContainerConfiguration();
+ config.setName("gshell");
+ config.setClassWorld(classWorld);
+ // config.addComponentDiscoverer(new CommandDiscoverer());
+ // config.addComponentDiscoveryListener(new CommandDiscoveryListener());
- artifactRepositoryFactory.setGlobalChecksumPolicy(ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL);
- } else if (commandLine.hasOption(CLIManager.CHECKSUM_WARNING_POLICY)) {
- System.out.println("+ Disabling strict checksum verification on all artifact downloads.");
+ container = new GShellPlexusContainer(config);
- artifactRepositoryFactory.setGlobalChecksumPolicy(ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
- }
- */
+ File repositoryDir = new File(new File(System.getProperty("user.home")), ".gshell/repository");
+ ArtifactRepository repository = createLocalRepository(repositoryDir);
- return localRepository;
+ System.out.println("Repository: " + repository);
}
- //
- // Loading
- //
-
- public GShell load() throws Exception {
- InteractiveShell shell = (InteractiveShell) container.lookup(InteractiveShell.class);
-
- return null;
+ public static void main(final String[] args) throws Exception {
+ GShellLoader loader = new GShellLoader();
+ loader.test();
}
}
Added: geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml?rev=641946&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml (added)
+++ geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml Thu Mar 27 12:02:58 2008
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<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.apache.geronimo.gshell.support</groupId>
+ <artifactId>gshell-support</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>gshell-plexus</artifactId>
+ <name>GShell Support :: Plexus</name>
+
+ <description>
+ Customizations of Plexus for GShell.
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
\ No newline at end of file
Propchange: geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java?rev=641946&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java (added)
+++ geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java Thu Mar 27 12:02:58 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.gshell.support.plexus;
+
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusContainerException;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+/**
+ * And extention of the default Plexus container.
+ *
+ * @version $Rev$ $Date$
+ */
+public class GShellPlexusContainer
+ extends DefaultPlexusContainer
+{
+ public GShellPlexusContainer() throws PlexusContainerException {
+ super();
+ }
+
+ public GShellPlexusContainer(final ContainerConfiguration configuration) throws PlexusContainerException {
+ super(configuration);
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> T lookupComponent(final Class<T> role) throws ComponentLookupException {
+ assert role != null;
+
+ return (T) super.lookup(role);
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> T lookupComponent(final Class<T> role, final String roleHint) throws ComponentLookupException {
+ assert role != null;
+ assert roleHint != null;
+
+ return (T) super.lookup(role, roleHint);
+ }
+
+ //
+ // TODO: lookupComponentList, lookupComponentMap, createChildContainer
+ //
+}
Propchange: geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/plexus/GShellPlexusContainer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/gshell/trunk/gshell-support/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/pom.xml?rev=641946&r1=641945&r2=641946&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-support/pom.xml Thu Mar 27 12:02:58 2008
@@ -45,6 +45,7 @@
<module>gshell-common</module>
<module>gshell-i18n</module>
<module>gshell-prefs</module>
+ <module>gshell-plexus</module>
</modules>
</project>
Modified: geronimo/gshell/trunk/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/pom.xml?rev=641946&r1=641945&r2=641946&view=diff
==============================================================================
--- geronimo/gshell/trunk/pom.xml (original)
+++ geronimo/gshell/trunk/pom.xml Thu Mar 27 12:02:58 2008
@@ -80,6 +80,12 @@
</dependency>
<dependency>
+ <groupId>org.apache.geronimo.gshell.support</groupId>
+ <artifactId>gshell-plexus</artifactId>
+ <version>1.0-alpha-2-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.geronimo.gshell</groupId>
<artifactId>gshell-command-api</artifactId>
<version>1.0-alpha-2-SNAPSHOT</version>