You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/03/23 16:16:13 UTC
svn commit: r757411 - in
/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo:
./ gshell/ gshell/vfs/ gshell/vfs/provider/ gshell/vfs/provider/meta/
gshell/vfs/provider/meta/MetaFileObject.java
Author: gnodet
Date: Mon Mar 23 15:16:11 2009
New Revision: 757411
URL: http://svn.apache.org/viewvc?rev=757411&view=rev
Log:
SMX4KNL-140: GShell commands references not cleaned up when bundle uninstalled
Added:
servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/
servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/
servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/
servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/
servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/meta/
servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/meta/MetaFileObject.java
Added: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/meta/MetaFileObject.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/meta/MetaFileObject.java?rev=757411&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/meta/MetaFileObject.java (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/java/org/apache/geronimo/gshell/vfs/provider/meta/MetaFileObject.java Mon Mar 23 15:16:11 2009
@@ -0,0 +1,144 @@
+/*
+ * 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.vfs.provider.meta;
+
+import org.apache.commons.vfs.FileContentInfoFactory;
+import org.apache.commons.vfs.FileName;
+import org.apache.commons.vfs.FileType;
+import org.apache.commons.vfs.FileContent;
+import org.apache.commons.vfs.FileSystemException;
+import org.apache.commons.vfs.provider.AbstractFileObject;
+import org.apache.commons.vfs.provider.DefaultFileContent;
+import org.apache.geronimo.gshell.vfs.provider.meta.data.MetaData;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.Map;
+
+/**
+ * Meta file object.
+ *
+ * TODO: remove this file when gshell version is upgraded
+ *
+ * @version $Rev: 706033 $ $Date: 2008-10-19 17:36:15 +0200 (Sun, 19 Oct 2008) $
+ */
+public class MetaFileObject
+ extends AbstractFileObject
+{
+ private final MetaFileSystem fileSystem;
+
+ private MetaData data;
+ private FileContent content;
+
+ public MetaFileObject(final FileName fileName, final MetaFileSystem fileSystem) {
+ super(fileName, fileSystem);
+
+ // Save for uncasted typed access
+ this.fileSystem = fileSystem;
+ }
+
+ public MetaData getData() {
+ if (data == null) {
+ throw new IllegalStateException("Meta data has not been attached");
+ }
+
+ return data;
+ }
+
+ @Override
+ protected FileType doGetType() throws Exception {
+ return getData().getType();
+ }
+
+ @Override
+ protected long doGetLastModifiedTime() throws Exception {
+ return getData().getLastModified();
+ }
+
+ @Override
+ protected boolean doIsReadable() throws Exception {
+ return data.getBuffer() != null;
+ }
+
+ @Override
+ protected boolean doIsWriteable() throws Exception {
+ return false;
+ }
+
+ @Override
+ protected FileContentInfoFactory getFileContentInfoFactory() {
+ return fileSystem.getFileContentInfoFactory();
+ }
+
+ @Override
+ protected long doGetContentSize() throws Exception {
+ byte[] bytes = data.getBuffer();
+ return bytes != null ? bytes.length : 0;
+ }
+
+ @Override
+ protected InputStream doGetInputStream() throws Exception {
+ byte[] bytes = data.getBuffer();
+ if (bytes != null) {
+ return new ByteArrayInputStream(bytes);
+ }
+
+ return null;
+ }
+
+ @Override
+ protected Map<String,Object> doGetAttributes() {
+ return getData().getAttributes();
+ }
+
+ @Override
+ protected void doSetAttribute(final String name, final Object value) {
+ getData().getAttributes().put(name, value);
+ }
+
+ protected void doRemoveAttribute(final String name) {
+ getData().getAttributes().remove(name);
+ }
+
+ @Override
+ protected String[] doListChildren() throws Exception {
+ return fileSystem.listChildren(getName());
+ }
+
+ @Override
+ protected void doAttach() throws Exception {
+ if (data == null) {
+ data = fileSystem.lookupData(this);
+ }
+ content = new DefaultFileContent(this, getFileContentInfoFactory());
+ }
+
+ @Override
+ protected void doDetach() throws Exception {
+ data = null;
+ content = null;
+ }
+
+ @Override
+ public FileContent getContent() throws FileSystemException {
+ super.getContent();
+ return content;
+ }
+}
\ No newline at end of file