You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/02/13 23:04:22 UTC

[14/50] [abbrv] moved console proxy into services directory. no code change

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/util/Region.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/util/Region.java b/console-proxy/src/com/cloud/consoleproxy/util/Region.java
deleted file mode 100644
index a5d1751..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/util/Region.java
+++ /dev/null
@@ -1,90 +0,0 @@
-// 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 com.cloud.consoleproxy.util;
-
-import java.awt.Rectangle;
-import java.util.ArrayList;
-import java.util.List;
-
-public class Region {
-    private Rectangle bound;
-    private List<Rectangle> rectList;
-
-    public Region() {
-        bound = new Rectangle(0, 0, 0, 0);
-        rectList = new ArrayList<Rectangle>();
-    }
-    
-    public Region(Rectangle rect) {
-        bound = new Rectangle(rect.x, rect.y, rect.width, rect.height);
-        rectList = new ArrayList<Rectangle>();
-        rectList.add(rect);
-    }
-    
-    public Rectangle getBound() {
-        return bound;
-    }
-    
-    public void clearBound() {
-        assert(rectList.size() == 0);
-        bound.x = bound.y = bound.width = bound.height = 0;
-    }
-    
-    public List<Rectangle> getRectangles() {
-        return rectList;
-    }
-    
-    public boolean add(Rectangle rect) {
-        if(bound.isEmpty()) {
-            assert(rectList.size() == 0);
-            bound.x = rect.x;
-            bound.y = rect.y;
-            bound.width = rect.width;
-            bound.height = rect.height;
-            
-            rectList.add(rect);
-            return true;
-        }
-        
-        Rectangle rcInflated = new Rectangle(rect.x - 1, rect.y- 1, rect.width + 2, rect.height + 2);
-        if(!bound.intersects(rcInflated))
-            return false;
-
-        for(Rectangle r : rectList) {
-            if(r.intersects(rcInflated)) {
-                if(!r.contains(rect)) {
-                    enlargeBound(rect);
-                    rectList.add(rect);
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-    
-    private void enlargeBound(Rectangle rect) {
-        int boundLeft = Math.min(bound.x, rect.x);
-        int boundTop = Math.min(bound.y, rect.y);
-        int boundRight = Math.max(bound.x + bound.width, rect.x + rect.width);
-        int boundBottom = Math.max(bound.y + bound.height, rect.y + rect.height);
-        
-        bound.x = boundLeft;
-        bound.y = boundTop;
-        bound.width = boundRight - boundLeft;
-        bound.height = boundBottom - boundTop;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/util/RegionClassifier.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/util/RegionClassifier.java b/console-proxy/src/com/cloud/consoleproxy/util/RegionClassifier.java
deleted file mode 100644
index 9faa04e..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/util/RegionClassifier.java
+++ /dev/null
@@ -1,58 +0,0 @@
-// 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 com.cloud.consoleproxy.util;
-
-import java.awt.Rectangle;
-import java.util.ArrayList;
-import java.util.List;
-
-public class RegionClassifier {
-    private List<Region> regionList;
-    
-    public RegionClassifier() {
-        regionList = new ArrayList<Region>();
-    }
-    
-    public void add(Rectangle rect) {
-        boolean newRegion = true;
-        Rectangle rcInflated = new Rectangle(rect.x - 1, rect.y - 1, rect.width + 2, rect.height + 2);
-        for(Region region : regionList) {
-            if(region.getBound().intersects(rcInflated)) {
-                newRegion = false;
-                break;
-            }
-        }
-        
-        if(newRegion) {
-            regionList.add(new Region(rect));
-        } else {
-            for(Region region : regionList) {
-                if(region.add(rect))
-                    return;
-            }
-            regionList.add(new Region(rect));
-        }
-    }
-    
-    public List<Region> getRegionList() {
-        return regionList;
-    }
-    
-    public void clear() {
-        regionList.clear();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/util/TileInfo.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/util/TileInfo.java b/console-proxy/src/com/cloud/consoleproxy/util/TileInfo.java
deleted file mode 100644
index 933a55a..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/util/TileInfo.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// 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 com.cloud.consoleproxy.util;
-
-import java.awt.Rectangle;
-
-public class TileInfo {
-    private int row;
-    private int col;
-    private Rectangle tileRect;
-
-    public TileInfo(int row, int col, Rectangle tileRect) {
-        this.row = row;
-        this.col = col;
-        this.tileRect = tileRect;
-    }
-    
-    public int getRow() {
-        return row;
-    }
-    
-    public void setRow(int row) {
-        this.row = row;
-    }
-    
-    public int getCol() {
-        return col;
-    }
-    
-    public void setCol(int col) {
-        this.col = col;
-    }
-    
-    public Rectangle getTileRect() {
-        return tileRect;
-    }
-    
-    public void setTileRect(Rectangle tileRect) {
-        this.tileRect = tileRect;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/util/TileTracker.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/util/TileTracker.java b/console-proxy/src/com/cloud/consoleproxy/util/TileTracker.java
deleted file mode 100644
index b3facb2..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/util/TileTracker.java
+++ /dev/null
@@ -1,269 +0,0 @@
-// 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 com.cloud.consoleproxy.util;
-
-import java.awt.Rectangle;
-import java.util.ArrayList;
-import java.util.List;
-
-public class TileTracker {
-    
-    // 2 dimension tile status snapshot, a true value means the corresponding tile has been invalidated
-    private boolean[][] snapshot;
-    
-    private int tileWidth = 0;
-    private int tileHeight = 0;
-    private int trackWidth = 0;
-    private int trackHeight = 0;
-    
-    public TileTracker() {
-    }
-
-    public int getTileWidth() {
-        return tileWidth;
-    }
-
-    public void setTileWidth(int tileWidth) {
-        this.tileWidth = tileWidth;
-    }
-
-    public int getTileHeight() {
-        return tileHeight;
-    }
-
-    public void setTileHeight(int tileHeight) {
-        this.tileHeight = tileHeight;
-    }
-
-    public int getTrackWidth() {
-        return trackWidth;
-    }
-
-    public void setTrackWidth(int trackWidth) {
-        this.trackWidth = trackWidth;
-    }
-
-    public int getTrackHeight() {
-        return trackHeight;
-    }
-
-    public void setTrackHeight(int trackHeight) {
-        this.trackHeight = trackHeight;
-    }
-    
-    public void initTracking(int tileWidth, int tileHeight, int trackWidth, int trackHeight) {
-        assert(tileWidth > 0);
-        assert(tileHeight > 0);
-        assert(trackWidth > 0);
-        assert(trackHeight > 0);
-        assert(tileWidth <= trackWidth);
-        assert(tileHeight <= trackHeight);
-        
-        this.tileWidth = tileWidth;
-        this.tileHeight = tileHeight;
-        this.trackWidth = trackWidth;
-        this.trackHeight = trackHeight;
-        
-        int cols = getTileCols();
-        int rows = getTileRows();
-        snapshot = new boolean[rows][cols];
-        for(int i = 0; i < rows; i++)
-            for(int j = 0; j < cols; j++)
-                snapshot[i][j] = false;
-    }
-    
-    public synchronized void resize(int trackWidth, int trackHeight) {
-        assert(tileWidth > 0);
-        assert(tileHeight > 0);
-        assert(trackWidth > 0);
-        assert(trackHeight > 0);
-        
-        this.trackWidth = trackWidth;
-        this.trackHeight = trackHeight;
-        
-        int cols = getTileCols();
-        int rows = getTileRows();
-        snapshot = new boolean[rows][cols];
-        for(int i = 0; i < rows; i++)
-            for(int j = 0; j < cols; j++)
-                snapshot[i][j] = true;
-    }
-    
-    public void invalidate(Rectangle rect) {
-        setTileFlag(rect, true);
-    }
-    
-    public void validate(Rectangle rect) {
-        setTileFlag(rect, false);
-    }
-
-    public List<TileInfo> scan(boolean init) {
-        List<TileInfo> l = new ArrayList<TileInfo>();
-        
-        synchronized(this) {
-            for(int i = 0; i < getTileRows(); i++) {
-                for(int j = 0; j < getTileCols(); j++) {
-                    if(init || snapshot[i][j]) {
-                        Rectangle rect = new Rectangle();
-                        rect.y = i*tileHeight;
-                        rect.x = j*tileWidth;
-                        rect.width = Math.min(trackWidth - rect.x, tileWidth);
-                        rect.height = Math.min(trackHeight - rect.y, tileHeight);
-                        
-                        l.add(new TileInfo(i, j, rect));
-                        snapshot[i][j] = false;
-                    }
-                }
-            }
-            
-            return l;
-        }    
-    }
-    
-    public boolean hasFullCoverage() {
-        synchronized(this) {
-            for(int i = 0; i < getTileRows(); i++) {
-                for(int j = 0; j < getTileCols(); j++) {
-                    if(!snapshot[i][j])
-                        return false;
-                }
-            }
-        }    
-        return true;
-    }
-
-    
-    
-    public void initCoverageTest() {
-        synchronized(this) {
-            for(int i = 0; i < getTileRows(); i++) {
-                for(int j = 0; j < getTileCols(); j++) {
-                    snapshot[i][j] = false;
-                }
-            }
-        }    
-    }
-    
-    // listener will be called while holding the object lock, use it
-    // with care to avoid deadlock condition being formed
-    public synchronized void scan(int nStartRow, int nStartCol, ITileScanListener listener) {
-        assert(listener != null);
-        
-        int cols = getTileCols();
-        int rows = getTileRows();
-        
-        nStartRow = nStartRow % rows;
-        nStartCol = nStartCol % cols;
-        
-        int nPos = nStartRow*cols + nStartCol;
-        int nUnits = rows*cols;
-        int nStartPos = nPos;
-        int nRow;
-        int nCol;
-        do {
-            nRow = nPos / cols;
-            nCol = nPos % cols;
-            
-            if(snapshot[nRow][nCol]) {
-                int nEndCol = nCol;
-                for(; nEndCol < cols && snapshot[nRow][nEndCol]; nEndCol++) {
-                    snapshot[nRow][nEndCol] = false;
-                }
-                
-                Rectangle rect = new Rectangle();
-                rect.y = nRow*tileHeight;
-                rect.height = tileHeight;
-                rect.x = nCol*tileWidth;
-                rect.width = (nEndCol - nCol)*tileWidth;
-                
-                if(!listener.onTileChange(rect, nRow, nEndCol))
-                    break;
-            }
-            
-            nPos = (nPos + 1) % nUnits;
-        } while(nPos != nStartPos);
-    }
-    
-    public void capture(ITileScanListener listener) {
-        assert(listener != null);
-        
-        int cols = getTileCols();
-        int rows = getTileRows();
-        
-        RegionClassifier classifier = new RegionClassifier();
-        int left, top, right, bottom;
-        
-        synchronized(this) {
-            for(int i = 0; i < rows; i++) {
-                top = i*tileHeight;
-                bottom = Math.min(top + tileHeight, trackHeight); 
-                for(int j = 0; j < cols; j++) {
-                    left = j*tileWidth;
-                    right = Math.min(left + tileWidth, trackWidth);
-                    
-                    if(snapshot[i][j]) {
-                        snapshot[i][j] = false;
-                        classifier.add(new Rectangle(left, top, right - left, bottom - top));
-                    }
-                }
-            }
-        }
-        listener.onRegionChange(classifier.getRegionList());
-    }
-    
-    private synchronized void setTileFlag(Rectangle rect, boolean flag) {
-        int nStartTileRow;
-        int nStartTileCol;
-        int nEndTileRow;
-        int nEndTileCol;
-        
-        int cols = getTileCols();
-        int rows = getTileRows();
-        
-        if(rect != null) {
-            nStartTileRow = Math.min(getTileYPos(rect.y), rows - 1);
-            nStartTileCol = Math.min(getTileXPos(rect.x), cols - 1);
-            nEndTileRow = Math.min(getTileYPos(rect.y + rect.height - 1), rows -1);
-            nEndTileCol = Math.min(getTileXPos(rect.x + rect.width - 1), cols -1);
-        } else {
-            nStartTileRow = 0;
-            nStartTileCol = 0;
-            nEndTileRow = rows - 1;
-            nEndTileCol = cols - 1;
-        }
-        
-        for(int i = nStartTileRow; i <= nEndTileRow; i++)
-            for(int j = nStartTileCol; j <= nEndTileCol; j++)
-                snapshot[i][j] = flag;
-    }
-    
-    private int getTileRows() {
-        return (trackHeight + tileHeight - 1) / tileHeight;
-    }
-    
-    private int getTileCols() {
-        return (trackWidth + tileWidth - 1) / tileWidth;
-    }
-    
-    private int getTileXPos(int x) {
-        return x / tileWidth;
-    }
-    
-    public int getTileYPos(int y) {
-        return y / tileHeight;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/BufferedImageCanvas.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/BufferedImageCanvas.java b/console-proxy/src/com/cloud/consoleproxy/vnc/BufferedImageCanvas.java
deleted file mode 100644
index f2fb4bb..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/BufferedImageCanvas.java
+++ /dev/null
@@ -1,150 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-import java.awt.Canvas;
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.Rectangle;
-import java.awt.image.BufferedImage;
-import java.io.IOException;
-import java.util.List;
-
-import com.cloud.consoleproxy.util.ImageHelper;
-import com.cloud.consoleproxy.util.TileInfo;
-
-/**
- * A <code>BuffereImageCanvas</code> component represents frame buffer image on
- * the screen. It also notifies its subscribers when screen is repainted.
- */
-public class BufferedImageCanvas extends Canvas implements FrameBufferCanvas {
-    private static final long serialVersionUID = 1L;
-
-    // Offline screen buffer
-    private BufferedImage offlineImage;
-
-    // Cached Graphics2D object for offline screen buffer
-    private Graphics2D graphics;
-
-    private PaintNotificationListener listener;
-
-    public BufferedImageCanvas(PaintNotificationListener listener, int width, int height) {
-        super();
-        this.listener = listener;
-
-        setBackground(Color.black);
-
-        setFocusable(true);
-
-        // Don't intercept TAB key
-        setFocusTraversalKeysEnabled(false);
-
-        setCanvasSize(width, height);
-    }
-
-    public void setCanvasSize(int width, int height) {
-        this.offlineImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
-        graphics = offlineImage.createGraphics();
-
-        setSize(offlineImage.getWidth(), offlineImage.getHeight());
-    }
-
-    @Override
-    public void update(Graphics g) {
-        // Call paint() directly, without clearing screen first
-        paint(g);
-    }
-
-    @Override
-    public void paint(Graphics g) {
-        // Only part of image, requested with repaint(Rectangle), will be
-        // painted on screen.
-        synchronized (offlineImage) {
-            g.drawImage(offlineImage, 0, 0, this);
-        }
-        // Notify server that update is painted on screen
-        listener.imagePaintedOnScreen();
-    }
-
-    public BufferedImage getOfflineImage() {
-        return offlineImage;
-    }
-
-    public Graphics2D getOfflineGraphics() {
-        return graphics;
-    }
-
-    public void copyTile(Graphics2D g, int x, int y, Rectangle rc) {
-        synchronized (offlineImage) {
-            g.drawImage(offlineImage, x, y, x + rc.width, y + rc.height, rc.x, rc.y, rc.x + rc.width, rc.y + rc.height, null);
-        }
-    }
-
-    @Override
-    public Image getFrameBufferScaledImage(int width, int height) {
-        if (offlineImage != null)
-            return offlineImage.getScaledInstance(width, height, Image.SCALE_DEFAULT);
-        return null;
-    }
-
-    @Override
-    public byte[] getFrameBufferJpeg() {
-        int width = 800;
-        int height = 600;
-
-        width = offlineImage.getWidth();
-        height = offlineImage.getHeight();
-
-        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
-        Graphics2D g = bufferedImage.createGraphics();
-        synchronized (offlineImage) {
-            g.drawImage(offlineImage, 0, 0, width, height, 0, 0, width, height, null);
-        }
-
-        byte[] imgBits = null;
-        try {
-            imgBits = ImageHelper.jpegFromImage(bufferedImage);
-        } catch (IOException e) {
-        }
-        return imgBits;
-    }
-
-    @Override
-    public byte[] getTilesMergedJpeg(List<TileInfo> tileList, int tileWidth, int tileHeight) {
-        int width = Math.max(tileWidth, tileWidth * tileList.size());
-        BufferedImage bufferedImage = new BufferedImage(width, tileHeight, BufferedImage.TYPE_3BYTE_BGR);
-        Graphics2D g = bufferedImage.createGraphics();
-
-        synchronized (offlineImage) {
-            int i = 0;
-            for (TileInfo tile : tileList) {
-                Rectangle rc = tile.getTileRect();
-                g.drawImage(offlineImage, i * tileWidth, 0, i * tileWidth + rc.width, rc.height, rc.x, rc.y, rc.x + rc.width, rc.y + rc.height, null);
-                i++;
-            }
-        }
-
-        byte[] imgBits = null;
-        try {
-            imgBits = ImageHelper.jpegFromImage(bufferedImage);
-        } catch (IOException e) {
-        }
-        return imgBits;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferCanvas.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferCanvas.java b/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferCanvas.java
deleted file mode 100644
index dcf1146..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferCanvas.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-import java.awt.Image;
-import java.util.List;
-
-import com.cloud.consoleproxy.util.TileInfo;
-
-public interface FrameBufferCanvas {
-    Image getFrameBufferScaledImage(int width, int height);
-
-    public byte[] getFrameBufferJpeg();
-
-    public byte[] getTilesMergedJpeg(List<TileInfo> tileList, int tileWidth, int tileHeight);
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferUpdateListener.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferUpdateListener.java b/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferUpdateListener.java
deleted file mode 100644
index b8527c5..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/FrameBufferUpdateListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-public interface FrameBufferUpdateListener {
-
-    /**
-     * Notify listener, that frame buffer update packet is received, so client
-     * is permitted (but not obligated) to ask server to send another update.
-     */
-    void frameBufferPacketReceived();
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/PaintNotificationListener.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/PaintNotificationListener.java b/console-proxy/src/com/cloud/consoleproxy/vnc/PaintNotificationListener.java
deleted file mode 100644
index aaefacb..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/PaintNotificationListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-public interface PaintNotificationListener {
-
-    /**
-     * Notify subscriber that screen is updated, so client can send another
-     * frame buffer update request to server.
-     */
-    void imagePaintedOnScreen();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/RfbConstants.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/RfbConstants.java b/console-proxy/src/com/cloud/consoleproxy/vnc/RfbConstants.java
deleted file mode 100644
index 18bf47e..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/RfbConstants.java
+++ /dev/null
@@ -1,82 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-import java.nio.charset.Charset;
-
-public interface RfbConstants {
-
-    public static final String RFB_PROTOCOL_VERSION_MAJOR = "RFB 003.";
-    // public static final String VNC_PROTOCOL_VERSION_MINOR = "003";
-    public static final String VNC_PROTOCOL_VERSION_MINOR = "003";
-    public static final String RFB_PROTOCOL_VERSION = RFB_PROTOCOL_VERSION_MAJOR + VNC_PROTOCOL_VERSION_MINOR;
-
-    /**
-     * Server message types.
-     */
-    final static int SERVER_FRAMEBUFFER_UPDATE = 0, SERVER_SET_COLOURMAP_ENTRIES = 1, SERVER_BELL = 2, SERVER_CUT_TEXT = 3;
-
-    /**
-     * Client message types.
-     */
-    public static final int CLIENT_SET_PIXEL_FORMAT = 0, CLIENT_FIX_COLOURMAP_ENTRIES = 1, CLIENT_SET_ENCODINGS = 2, CLIENT_FRAMEBUFFER_UPDATE_REQUEST = 3, CLIENT_KEYBOARD_EVENT = 4,
-            CLIENT_POINTER_EVENT = 5, CLIENT_CUT_TEXT = 6;
-
-    /**
-     * Server authorization type
-     */
-    public final static int CONNECTION_FAILED = 0, NO_AUTH = 1, VNC_AUTH = 2;
-
-    /**
-     * Server authorization reply.
-     */
-    public final static int VNC_AUTH_OK = 0, VNC_AUTH_FAILED = 1, VNC_AUTH_TOO_MANY = 2;
-
-    /**
-     * Encodings.
-     */
-    public final static int ENCODING_RAW = 0, ENCODING_COPY_RECT = 1, ENCODING_RRE = 2, ENCODING_CO_RRE = 4, ENCODING_HEXTILE = 5, ENCODING_ZRLE = 16;
-
-    /**
-     * Pseudo-encodings.
-     */
-    public final static int ENCODING_CURSOR = -239 /* 0xFFFFFF11 */, ENCODING_DESKTOP_SIZE = -223 /* 0xFFFFFF21 */;
-
-    /**
-     * Encodings, which we support.
-     */
-    public final static int[] SUPPORTED_ENCODINGS_ARRAY = { ENCODING_RAW, ENCODING_COPY_RECT, ENCODING_DESKTOP_SIZE };
-
-    /**
-     * Frame buffer update request type: update of whole screen or partial
-     * update.
-     */
-    public static final int FRAMEBUFFER_FULL_UPDATE_REQUEST = 0, FRAMEBUFFER_INCREMENTAL_UPDATE_REQUEST = 1;
-
-    public static final int KEY_UP = 0, KEY_DOWN = 1;
-
-    public static final int LITTLE_ENDIAN = 0, BIG_ENDIAN = 1;
-
-    public static final int EXCLUSIVE_ACCESS = 0, SHARED_ACCESS = 1;
-
-    public static final int PALETTE = 0, TRUE_COLOR = 1;
-
-    /**
-     * Default charset to use when communicating with server.
-     */
-    public static final Charset CHARSET = Charset.availableCharsets().get("US-ASCII");
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/VncClient.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/VncClient.java b/console-proxy/src/com/cloud/consoleproxy/vnc/VncClient.java
deleted file mode 100644
index 194eec1..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/VncClient.java
+++ /dev/null
@@ -1,451 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-import java.awt.Frame;
-import java.awt.ScrollPane;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.security.spec.KeySpec;
-
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.DESKeySpec;
-
-import com.cloud.consoleproxy.ConsoleProxyClientListener;
-import com.cloud.consoleproxy.util.Logger;
-import com.cloud.consoleproxy.util.RawHTTP;
-import com.cloud.consoleproxy.vnc.packet.client.KeyboardEventPacket;
-import com.cloud.consoleproxy.vnc.packet.client.MouseEventPacket;
-
-public class VncClient {
-    private static final Logger s_logger = Logger.getLogger(VncClient.class);
-
-    private Socket socket;
-    private DataInputStream is;
-    private DataOutputStream os;
-
-    private VncScreenDescription screen = new VncScreenDescription();
-
-    private VncClientPacketSender sender;
-    private VncServerPacketReceiver receiver;
-
-    private boolean noUI = false;
-    private ConsoleProxyClientListener clientListener = null;
-
-    public static void main(String args[]) {
-        if (args.length < 3) {
-            printHelpMessage();
-            System.exit(1);
-        }
-
-        String host = args[0];
-        String port = args[1];
-        String password = args[2];
-
-        try {
-            new VncClient(host, Integer.parseInt(port), password, false, null);
-        } catch (NumberFormatException e) {
-            s_logger.error("Incorrect VNC server port number: " + port + ".");
-            System.exit(1);
-        } catch (UnknownHostException e) {
-            s_logger.error("Incorrect VNC server host name: " + host + ".");
-            System.exit(1);
-        } catch (IOException e) {
-            s_logger.error("Cannot communicate with VNC server: " + e.getMessage());
-            System.exit(1);
-        } catch (Throwable e) {
-            s_logger.error("An error happened: " + e.getMessage());
-            System.exit(1);
-        }
-        System.exit(0);
-    }
-
-    private static void printHelpMessage() {
-        /* LOG */s_logger.info("Usage: HOST PORT PASSWORD.");
-    }
-
-    public VncClient(ConsoleProxyClientListener clientListener) {
-        this.noUI = true;
-        this.clientListener = clientListener;
-    }
-
-    public VncClient(String host, int port, String password, boolean noUI, ConsoleProxyClientListener clientListener) throws UnknownHostException, IOException {
-
-        this.noUI = noUI;
-        this.clientListener = clientListener;
-        connectTo(host, port, password);
-    }
-
-    public void shutdown() {
-        if (sender != null)
-            sender.closeConnection();
-
-        if (receiver != null)
-            receiver.closeConnection();
-
-        if (is != null) {
-            try {
-                is.close();
-            } catch (Throwable e) {
-            }
-        }
-
-        if (os != null) {
-            try {
-                os.close();
-            } catch (Throwable e) {
-            }
-        }
-
-        if (socket != null) {
-            try {
-                socket.close();
-            } catch (Throwable e) {
-            }
-        }
-    }
-
-    public ConsoleProxyClientListener getClientListener() {
-        return clientListener;
-    }
-
-    public void connectTo(String host, int port, String path, String session, boolean useSSL, String sid) throws UnknownHostException, IOException {
-        if (port < 0) {
-            if (useSSL)
-                port = 443;
-            else
-                port = 80;
-        }
-
-        RawHTTP tunnel = new RawHTTP("CONNECT", host, port, path, session, useSSL);
-        this.socket = tunnel.connect();
-        doConnect(sid);
-    }
-
-    public void connectTo(String host, int port, String password) throws UnknownHostException, IOException {
-        // Connect to server
-        s_logger.info("Connecting to VNC server " + host + ":" + port + "...");
-        this.socket = new Socket(host, port);
-        doConnect(password);
-    }
-
-    private void doConnect(String password) throws IOException {
-        is = new DataInputStream(socket.getInputStream());
-        os = new DataOutputStream(socket.getOutputStream());
-
-        // Initialize connection
-        handshake();
-        authenticate(password);
-        initialize();
-
-        s_logger.info("Connecting to VNC server succeeded, start session");
-
-        // Run client-to-server packet sender
-        sender = new VncClientPacketSender(os, screen, this);
-
-        // Create buffered image canvas
-        BufferedImageCanvas canvas = new BufferedImageCanvas(sender, screen.getFramebufferWidth(), screen.getFramebufferHeight());
-
-        // Subscribe packet sender to various events
-        canvas.addMouseListener(sender);
-        canvas.addMouseMotionListener(sender);
-        canvas.addKeyListener(sender);
-
-        Frame frame = null;
-        if (!noUI)
-            frame = createVncClientMainWindow(canvas, screen.getDesktopName());
-
-        new Thread(sender).start();
-
-        // Run server-to-client packet receiver
-        receiver = new VncServerPacketReceiver(is, canvas, screen, this, sender, clientListener);
-        try {
-            receiver.run();
-        } finally {
-            if (frame != null) {
-                frame.setVisible(false);
-                frame.dispose();
-            }
-            this.shutdown();
-        }
-    }
-
-    private Frame createVncClientMainWindow(BufferedImageCanvas canvas, String title) {
-        // Create AWT windows
-        final Frame frame = new Frame(title + " - VNCle");
-
-        // Use scrolling pane to support screens, which are larger than ours
-        ScrollPane scroller = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
-        scroller.add(canvas);
-        scroller.setSize(screen.getFramebufferWidth(), screen.getFramebufferHeight());
-
-        frame.add(scroller);
-        frame.pack();
-        frame.setVisible(true);
-
-        frame.addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent evt) {
-                frame.setVisible(false);
-                shutdown();
-            }
-        });
-
-        return frame;
-    }
-
-    /**
-     * Handshake with VNC server.
-     */
-    private void handshake() throws IOException {
-
-        // Read protocol version
-        byte[] buf = new byte[12];
-        is.readFully(buf);
-        String rfbProtocol = new String(buf);
-
-        // Server should use RFB protocol 3.x
-        if (!rfbProtocol.contains(RfbConstants.RFB_PROTOCOL_VERSION_MAJOR)) {
-            s_logger.error("Cannot handshake with VNC server. Unsupported protocol version: \"" + rfbProtocol + "\".");
-            throw new RuntimeException("Cannot handshake with VNC server. Unsupported protocol version: \"" + rfbProtocol + "\".");
-        }
-
-        // Send response: we support RFB 3.3 only
-        String ourProtocolString = RfbConstants.RFB_PROTOCOL_VERSION + "\n";
-        os.write(ourProtocolString.getBytes());
-        os.flush();
-    }
-
-    /**
-     * VNC authentication.
-     */
-    private void authenticate(String password) throws IOException {
-        // Read security type
-        int authType = is.readInt();
-
-        switch (authType) {
-        case RfbConstants.CONNECTION_FAILED: {
-            // Server forbids to connect. Read reason and throw exception
-
-            int length = is.readInt();
-            byte[] buf = new byte[length];
-            is.readFully(buf);
-            String reason = new String(buf, RfbConstants.CHARSET);
-
-            s_logger.error("Authentication to VNC server is failed. Reason: " + reason);
-            throw new RuntimeException("Authentication to VNC server is failed. Reason: " + reason);
-        }
-
-        case RfbConstants.NO_AUTH: {
-            // Client can connect without authorization. Nothing to do.
-            break;
-        }
-
-        case RfbConstants.VNC_AUTH: {
-            s_logger.info("VNC server requires password authentication");
-            doVncAuth(password);
-            break;
-        }
-
-        default:
-            s_logger.error("Unsupported VNC protocol authorization scheme, scheme code: " + authType + ".");
-            throw new RuntimeException("Unsupported VNC protocol authorization scheme, scheme code: " + authType + ".");
-        }
-    }
-
-    /**
-     * Encode client password and send it to server.
-     */
-    private void doVncAuth(String password) throws IOException {
-
-        // Read challenge
-        byte[] challenge = new byte[16];
-        is.readFully(challenge);
-
-        // Encode challenge with password
-        byte[] response;
-        try {
-            response = encodePassword(challenge, password);
-        } catch (Exception e) {
-            s_logger.error("Cannot encrypt client password to send to server: " + e.getMessage());
-            throw new RuntimeException("Cannot encrypt client password to send to server: " + e.getMessage());
-        }
-
-        // Send encoded challenge
-        os.write(response);
-        os.flush();
-
-        // Read security result
-        int authResult = is.readInt();
-
-        switch (authResult) {
-        case RfbConstants.VNC_AUTH_OK: {
-            // Nothing to do
-            break;
-        }
-
-        case RfbConstants.VNC_AUTH_TOO_MANY:
-            s_logger.error("Connection to VNC server failed: too many wrong attempts.");
-            throw new RuntimeException("Connection to VNC server failed: too many wrong attempts.");
-
-        case RfbConstants.VNC_AUTH_FAILED:
-            s_logger.error("Connection to VNC server failed: wrong password.");
-            throw new RuntimeException("Connection to VNC server failed: wrong password.");
-
-        default:
-            s_logger.error("Connection to VNC server failed, reason code: " + authResult);
-            throw new RuntimeException("Connection to VNC server failed, reason code: " + authResult);
-        }
-    }
-
-    /**
-     * Encode password using DES encryption with given challenge.
-     * 
-     * @param challenge
-     *            a random set of bytes.
-     * @param password
-     *            a password
-     * @return DES hash of password and challenge
-     */
-    public byte[] encodePassword(byte[] challenge, String password) throws Exception {
-        // VNC password consist of up to eight ASCII characters.
-        byte[] key = { 0, 0, 0, 0, 0, 0, 0, 0 }; // Padding
-        byte[] passwordAsciiBytes = password.getBytes(RfbConstants.CHARSET);
-        System.arraycopy(passwordAsciiBytes, 0, key, 0, Math.min(password.length(), 8));
-
-        // Flip bytes (reverse bits) in key
-        for (int i = 0; i < key.length; i++) {
-            key[i] = flipByte(key[i]);
-        }
-
-        KeySpec desKeySpec = new DESKeySpec(key);
-        SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");
-        SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);
-        Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");
-        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
-
-        byte[] response = cipher.doFinal(challenge);
-        return response;
-    }
-
-    /**
-     * Reverse bits in byte, so least significant bit will be most significant
-     * bit. E.g. 01001100 will become 00110010.
-     * 
-     * See also: http://www.vidarholen.net/contents/junk/vnc.html ,
-     * http://bytecrafter
-     * .blogspot.com/2010/09/des-encryption-as-used-in-vnc.html
-     * 
-     * @param b
-     *            a byte
-     * @return byte in reverse order
-     */
-    private static byte flipByte(byte b) {
-        int b1_8 = (b & 0x1) << 7;
-        int b2_7 = (b & 0x2) << 5;
-        int b3_6 = (b & 0x4) << 3;
-        int b4_5 = (b & 0x8) << 1;
-        int b5_4 = (b & 0x10) >>> 1;
-        int b6_3 = (b & 0x20) >>> 3;
-        int b7_2 = (b & 0x40) >>> 5;
-        int b8_1 = (b & 0x80) >>> 7;
-        byte c = (byte) (b1_8 | b2_7 | b3_6 | b4_5 | b5_4 | b6_3 | b7_2 | b8_1);
-        return c;
-    }
-
-    private void initialize() throws IOException {
-        // Send client initialization message
-        {
-            // Send shared flag
-            os.writeByte(RfbConstants.EXCLUSIVE_ACCESS);
-            os.flush();
-        }
-
-        // Read server initialization message
-        {
-            // Read frame buffer size
-            int framebufferWidth = is.readUnsignedShort();
-            int framebufferHeight = is.readUnsignedShort();
-            screen.setFramebufferSize(framebufferWidth, framebufferHeight);
-            if (clientListener != null)
-                clientListener.onFramebufferSizeChange(framebufferWidth, framebufferHeight);
-        }
-
-        // Read pixel format
-        {
-            int bitsPerPixel = is.readUnsignedByte();
-            int depth = is.readUnsignedByte();
-
-            int bigEndianFlag = is.readUnsignedByte();
-            int trueColorFlag = is.readUnsignedByte();
-
-            int redMax = is.readUnsignedShort();
-            int greenMax = is.readUnsignedShort();
-            int blueMax = is.readUnsignedShort();
-
-            int redShift = is.readUnsignedByte();
-            int greenShift = is.readUnsignedByte();
-            int blueShift = is.readUnsignedByte();
-
-            // Skip padding
-            is.skipBytes(3);
-
-            screen.setPixelFormat(bitsPerPixel, depth, bigEndianFlag, trueColorFlag, redMax, greenMax, blueMax, redShift, greenShift, blueShift);
-        }
-
-        // Read desktop name
-        {
-            int length = is.readInt();
-            byte buf[] = new byte[length];
-            is.readFully(buf);
-            String desktopName = new String(buf, RfbConstants.CHARSET);
-            screen.setDesktopName(desktopName);
-        }
-    }
-
-    public FrameBufferCanvas getFrameBufferCanvas() {
-        if (receiver != null)
-            return receiver.getCanvas();
-
-        return null;
-    }
-
-    public void requestUpdate(boolean fullUpdate) {
-        if (fullUpdate)
-            sender.requestFullScreenUpdate();
-        else
-            sender.imagePaintedOnScreen();
-    }
-
-    public void sendClientKeyboardEvent(int event, int code, int modifiers) {
-        sender.sendClientPacket(new KeyboardEventPacket(event, code));
-    }
-
-    public void sendClientMouseEvent(int event, int x, int y, int code, int modifiers) {
-        sender.sendClientPacket(new MouseEventPacket(event, x, y));
-    }
-
-    public boolean isHostConnected() {
-        return receiver != null && receiver.isConnectionAlive();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/VncClientPacketSender.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/VncClientPacketSender.java b/console-proxy/src/com/cloud/consoleproxy/vnc/VncClientPacketSender.java
deleted file mode 100644
index d27b76d..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/VncClientPacketSender.java
+++ /dev/null
@@ -1,258 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.io.DataOutputStream;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-import com.cloud.consoleproxy.util.Logger;
-import com.cloud.consoleproxy.vnc.packet.client.ClientPacket;
-import com.cloud.consoleproxy.vnc.packet.client.FramebufferUpdateRequestPacket;
-import com.cloud.consoleproxy.vnc.packet.client.KeyboardEventPacket;
-import com.cloud.consoleproxy.vnc.packet.client.MouseEventPacket;
-import com.cloud.consoleproxy.vnc.packet.client.SetEncodingsPacket;
-import com.cloud.consoleproxy.vnc.packet.client.SetPixelFormatPacket;
-
-public class VncClientPacketSender implements Runnable, PaintNotificationListener, KeyListener, MouseListener, MouseMotionListener, FrameBufferUpdateListener {
-    private static final Logger s_logger = Logger.getLogger(VncClientPacketSender.class);
-
-    // Queue for outgoing packets
-    private final BlockingQueue<ClientPacket> queue = new ArrayBlockingQueue<ClientPacket>(30);
-
-    private final DataOutputStream os;
-    private final VncScreenDescription screen;
-    private final VncClient vncConnection;
-
-    private boolean connectionAlive = true;
-
-    // Don't send update request again until we receive next frame buffer update
-    private boolean updateRequestSent = false;
-
-    public VncClientPacketSender(DataOutputStream os, VncScreenDescription screen, VncClient vncConnection) {
-        this.os = os;
-        this.screen = screen;
-        this.vncConnection = vncConnection;
-
-        sendSetPixelFormat();
-        sendSetEncodings();
-        requestFullScreenUpdate();
-    }
-
-    public void sendClientPacket(ClientPacket packet) {
-        queue.add(packet);
-    }
-
-    @Override
-    public void run() {
-        try {
-            while (connectionAlive) {
-                ClientPacket packet = queue.poll(1, TimeUnit.SECONDS);
-                if (packet != null) {
-                    packet.write(os);
-                    os.flush();
-                }
-            }
-        } catch (Throwable e) {
-            s_logger.error("Unexpected exception: ", e);
-            if (connectionAlive) {
-                closeConnection();
-                vncConnection.shutdown();
-            }
-        }
-    }
-
-    private void sendSetEncodings() {
-        queue.add(new SetEncodingsPacket(RfbConstants.SUPPORTED_ENCODINGS_ARRAY));
-    }
-
-    private void sendSetPixelFormat() {
-        if (!screen.isRGB888_32_LE()) {
-            queue.add(new SetPixelFormatPacket(screen, 32, 24, RfbConstants.LITTLE_ENDIAN, RfbConstants.TRUE_COLOR, 255, 255, 255, 16, 8, 0));
-        }
-    }
-
-    public void closeConnection() {
-        connectionAlive = false;
-    }
-
-    public void requestFullScreenUpdate() {
-        queue.add(new FramebufferUpdateRequestPacket(RfbConstants.FRAMEBUFFER_FULL_UPDATE_REQUEST, 0, 0, screen.getFramebufferWidth(), screen.getFramebufferHeight()));
-        updateRequestSent = true;
-    }
-
-    @Override
-    public void imagePaintedOnScreen() {
-        if (!updateRequestSent) {
-            queue.add(new FramebufferUpdateRequestPacket(RfbConstants.FRAMEBUFFER_INCREMENTAL_UPDATE_REQUEST, 0, 0, screen.getFramebufferWidth(), screen.getFramebufferHeight()));
-            updateRequestSent = true;
-        }
-    }
-
-    @Override
-    public void frameBufferPacketReceived() {
-        updateRequestSent = false;
-    }
-
-    @Override
-    public void mouseDragged(MouseEvent e) {
-        queue.add(new MouseEventPacket(mapAwtModifiersToVncButtonMask(e.getModifiersEx()), e.getX(), e.getY()));
-    }
-
-    @Override
-    public void mouseMoved(MouseEvent e) {
-        queue.add(new MouseEventPacket(mapAwtModifiersToVncButtonMask(e.getModifiersEx()), e.getX(), e.getY()));
-    }
-
-    @Override
-    public void mouseClicked(MouseEvent e) {
-        // Nothing to do
-    }
-
-    @Override
-    public void mousePressed(MouseEvent e) {
-        queue.add(new MouseEventPacket(mapAwtModifiersToVncButtonMask(e.getModifiersEx()), e.getX(), e.getY()));
-    }
-
-    @Override
-    public void mouseReleased(MouseEvent e) {
-        queue.add(new MouseEventPacket(mapAwtModifiersToVncButtonMask(e.getModifiersEx()), e.getX(), e.getY()));
-    }
-
-    @Override
-    public void mouseEntered(MouseEvent e) {
-        // Nothing to do
-    }
-
-    @Override
-    public void mouseExited(MouseEvent e) {
-        // Nothing to do
-    }
-
-    /**
-     * Current state of buttons 1 to 8 are represented by bits 0 to 7 of
-     * button-mask respectively, 0 meaning up, 1 meaning down (pressed). On a
-     * conventional mouse, buttons 1, 2 and 3 correspond to the left, middle and
-     * right buttons on the mouse. On a wheel mouse, each step of the wheel
-     * upwards is represented by a press and release of button 4, and each step
-     * downwards is represented by a press and release of button 5.
-     * 
-     * @param modifiers
-     *            extended modifiers from AWT mouse event
-     * @return VNC mouse button mask
-     */
-    public static int mapAwtModifiersToVncButtonMask(int modifiers) {
-        int mask = (((modifiers & MouseEvent.BUTTON1_DOWN_MASK) != 0) ? 0x1 : 0) | (((modifiers & MouseEvent.BUTTON2_DOWN_MASK) != 0) ? 0x2 : 0)
-                | (((modifiers & MouseEvent.BUTTON3_DOWN_MASK) != 0) ? 0x4 : 0);
-        return mask;
-    }
-
-    @Override
-    public void keyTyped(KeyEvent e) {
-        // Do nothing
-    }
-
-    @Override
-    public void keyPressed(KeyEvent e) {
-        ClientPacket request = new KeyboardEventPacket(RfbConstants.KEY_DOWN, mapAwtKeyToVncKey(e.getKeyCode()));
-        queue.add(request);
-    }
-
-    @Override
-    public void keyReleased(KeyEvent e) {
-        ClientPacket request = new KeyboardEventPacket(RfbConstants.KEY_UP, mapAwtKeyToVncKey(e.getKeyCode()));
-        queue.add(request);
-    }
-
-    private int mapAwtKeyToVncKey(int key) {
-        switch (key) {
-        case KeyEvent.VK_BACK_SPACE:
-            return 0xff08;
-        case KeyEvent.VK_TAB:
-            return 0xff09;
-        case KeyEvent.VK_ENTER:
-            return 0xff0d;
-        case KeyEvent.VK_ESCAPE:
-            return 0xff1b;
-        case KeyEvent.VK_INSERT:
-            return 0xff63;
-        case KeyEvent.VK_DELETE:
-            return 0xffff;
-        case KeyEvent.VK_HOME:
-            return 0xff50;
-        case KeyEvent.VK_END:
-            return 0xff57;
-        case KeyEvent.VK_PAGE_UP:
-            return 0xff55;
-        case KeyEvent.VK_PAGE_DOWN:
-            return 0xff56;
-        case KeyEvent.VK_LEFT:
-            return 0xff51;
-        case KeyEvent.VK_UP:
-            return 0xff52;
-        case KeyEvent.VK_RIGHT:
-            return 0xff53;
-        case KeyEvent.VK_DOWN:
-            return 0xff54;
-        case KeyEvent.VK_F1:
-            return 0xffbe;
-        case KeyEvent.VK_F2:
-            return 0xffbf;
-        case KeyEvent.VK_F3:
-            return 0xffc0;
-        case KeyEvent.VK_F4:
-            return 0xffc1;
-        case KeyEvent.VK_F5:
-            return 0xffc2;
-        case KeyEvent.VK_F6:
-            return 0xffc3;
-        case KeyEvent.VK_F7:
-            return 0xffc4;
-        case KeyEvent.VK_F8:
-            return 0xffc5;
-        case KeyEvent.VK_F9:
-            return 0xffc6;
-        case KeyEvent.VK_F10:
-            return 0xffc7;
-        case KeyEvent.VK_F11:
-            return 0xffc8;
-        case KeyEvent.VK_F12:
-            return 0xffc9;
-        case KeyEvent.VK_SHIFT:
-            return 0xffe1;
-        case KeyEvent.VK_CONTROL:
-            return 0xffe3;
-        case KeyEvent.VK_META:
-            return 0xffe7;
-        case KeyEvent.VK_ALT:
-            return 0xffe9;
-        case KeyEvent.VK_ALT_GRAPH:
-            return 0xffea;
-        case KeyEvent.VK_BACK_QUOTE:
-            return 0x0060;
-        }
-
-        return key;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/VncScreenDescription.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/VncScreenDescription.java b/console-proxy/src/com/cloud/consoleproxy/vnc/VncScreenDescription.java
deleted file mode 100644
index 44b2a34..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/VncScreenDescription.java
+++ /dev/null
@@ -1,89 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-/**
- * VncScreenDescription - contains information about remote VNC screen.
- */
-public class VncScreenDescription {
-
-    // Frame buffer size
-    private int framebufferWidth = -1;
-    private int framebufferHeight = -1;
-
-    // Desktop name
-    private String desktopName;
-
-    // Bytes per pixel
-    private int bytesPerPixel;
-
-    // Indicates that screen uses format which we want to use:
-    // RGB 24bit packed into 32bit little-endian int.
-    private boolean rgb888_32_le = false;
-
-    public VncScreenDescription() {
-    }
-
-    /**
-     * Store information about server pixel format.
-     */
-    public void setPixelFormat(int bitsPerPixel, int depth, int bigEndianFlag, int trueColorFlag, int redMax, int greenMax, int blueMax, int redShift, int greenShift, int blueShift) {
-
-        bytesPerPixel = (bitsPerPixel + 7) / 8;
-
-        rgb888_32_le = (depth == 24 && bitsPerPixel == 32 && redShift == 16 && greenShift == 8 && blueShift == 0 && redMax == 255 && greenMax == 255 && blueMax == 255
-                && bigEndianFlag == RfbConstants.LITTLE_ENDIAN && trueColorFlag == RfbConstants.TRUE_COLOR);
-    }
-
-    /**
-     * Store information about server screen size.
-     */
-    public void setFramebufferSize(int framebufferWidth, int framebufferHeight) {
-        this.framebufferWidth = framebufferWidth;
-        this.framebufferHeight = framebufferHeight;
-    }
-
-    /**
-     * Store server desktop name.
-     */
-    public void setDesktopName(String desktopName) {
-        this.desktopName = desktopName;
-    }
-
-    // Getters for variables, as usual
-
-    public String getDesktopName() {
-        return desktopName;
-    }
-
-    public int getBytesPerPixel() {
-        return bytesPerPixel;
-    }
-
-    public int getFramebufferHeight() {
-        return framebufferHeight;
-    }
-
-    public int getFramebufferWidth() {
-        return framebufferWidth;
-    }
-
-    public boolean isRGB888_32_LE() {
-        return rgb888_32_le;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/VncServerPacketReceiver.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/VncServerPacketReceiver.java b/console-proxy/src/com/cloud/consoleproxy/vnc/VncServerPacketReceiver.java
deleted file mode 100644
index 57c8ff8..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/VncServerPacketReceiver.java
+++ /dev/null
@@ -1,123 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc;
-
-import java.awt.Toolkit;
-import java.awt.datatransfer.StringSelection;
-import java.io.DataInputStream;
-import java.io.IOException;
-
-import com.cloud.consoleproxy.ConsoleProxyClientListener;
-import com.cloud.consoleproxy.util.Logger;
-import com.cloud.consoleproxy.vnc.packet.server.FramebufferUpdatePacket;
-import com.cloud.consoleproxy.vnc.packet.server.ServerCutText;
-
-public class VncServerPacketReceiver implements Runnable {
-    private static final Logger s_logger = Logger.getLogger(VncServerPacketReceiver.class);
-
-    private final VncScreenDescription screen;
-    private BufferedImageCanvas canvas;
-    private DataInputStream is;
-
-    private boolean connectionAlive = true;
-    private VncClient vncConnection;
-    private final FrameBufferUpdateListener fburListener;
-    private final ConsoleProxyClientListener clientListener;
-
-    public VncServerPacketReceiver(DataInputStream is, BufferedImageCanvas canvas, VncScreenDescription screen, VncClient vncConnection, FrameBufferUpdateListener fburListener,
-            ConsoleProxyClientListener clientListener) {
-        this.screen = screen;
-        this.canvas = canvas;
-        this.is = is;
-        this.vncConnection = vncConnection;
-        this.fburListener = fburListener;
-        this.clientListener = clientListener;
-    }
-
-    public BufferedImageCanvas getCanvas() {
-        return canvas;
-    }
-
-    @Override
-    public void run() {
-        try {
-            while (connectionAlive) {
-
-                // Read server message type
-                int messageType = is.readUnsignedByte();
-
-                // Invoke packet handler by packet type.
-                switch (messageType) {
-
-                case RfbConstants.SERVER_FRAMEBUFFER_UPDATE: {
-                    // Notify sender that frame buffer update is received,
-                    // so it can send another frame buffer update request
-                    fburListener.frameBufferPacketReceived();
-                    // Handle frame buffer update
-                    new FramebufferUpdatePacket(canvas, screen, is, clientListener);
-                    break;
-                }
-
-                case RfbConstants.SERVER_BELL: {
-                    serverBell();
-                    break;
-                }
-
-                case RfbConstants.SERVER_CUT_TEXT: {
-                    serverCutText(is);
-                    break;
-                }
-
-                default:
-                    throw new RuntimeException("Unknown server packet type: " + messageType + ".");
-                }
-            }
-        } catch (Throwable e) {
-            s_logger.error("Unexpected exception: ", e);
-            if (connectionAlive) {
-                closeConnection();
-                vncConnection.shutdown();
-            }
-        }
-    }
-
-    public void closeConnection() {
-        connectionAlive = false;
-    }
-
-    public boolean isConnectionAlive() {
-        return connectionAlive;
-    }
-
-    /**
-     * Handle server bell packet.
-     */
-    private void serverBell() {
-        Toolkit.getDefaultToolkit().beep();
-    }
-
-    /**
-     * Handle packet with server clip-board.
-     */
-    private void serverCutText(DataInputStream is) throws IOException {
-        ServerCutText clipboardContent = new ServerCutText(is);
-        StringSelection contents = new StringSelection(clipboardContent.getContent());
-        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(contents, null);
-
-        s_logger.info("Server clipboard buffer: " + clipboardContent.getContent());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/ClientPacket.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/ClientPacket.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/ClientPacket.java
deleted file mode 100644
index 873b8c0..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/ClientPacket.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.client;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-public interface ClientPacket {
-
-    void write(DataOutputStream os) throws IOException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/FramebufferUpdateRequestPacket.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/FramebufferUpdateRequestPacket.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/FramebufferUpdateRequestPacket.java
deleted file mode 100644
index d3a6e40..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/FramebufferUpdateRequestPacket.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.client;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import com.cloud.consoleproxy.vnc.RfbConstants;
-
-/**
- * FramebufferUpdateRequestPacket
- * 
- * @author Volodymyr M. Lisivka
- */
-public class FramebufferUpdateRequestPacket implements ClientPacket {
-
-    private final int incremental;
-    private final int x, y, width, height;
-
-    public FramebufferUpdateRequestPacket(int incremental, int x, int y, int width, int height) {
-        this.incremental = incremental;
-        this.x = x;
-        this.y = y;
-        this.width = width;
-        this.height = height;
-    }
-
-    @Override
-    public void write(DataOutputStream os) throws IOException {
-        os.writeByte(RfbConstants.CLIENT_FRAMEBUFFER_UPDATE_REQUEST);
-
-        os.writeByte(incremental);
-        os.writeShort(x);
-        os.writeShort(y);
-        os.writeShort(width);
-        os.writeShort(height);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/KeyboardEventPacket.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/KeyboardEventPacket.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/KeyboardEventPacket.java
deleted file mode 100644
index 8efbab1..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/KeyboardEventPacket.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.client;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import com.cloud.consoleproxy.vnc.RfbConstants;
-
-public class KeyboardEventPacket implements ClientPacket {
-
-    private final int downFlag, key;
-
-    public KeyboardEventPacket(int downFlag, int key) {
-        this.downFlag = downFlag;
-        this.key = key;
-    }
-
-    @Override
-    public void write(DataOutputStream os) throws IOException {
-        os.writeByte(RfbConstants.CLIENT_KEYBOARD_EVENT);
-
-        os.writeByte(downFlag);
-        os.writeShort(0); // padding
-        os.writeInt(key);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/MouseEventPacket.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/MouseEventPacket.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/MouseEventPacket.java
deleted file mode 100644
index b42191c..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/MouseEventPacket.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.client;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import com.cloud.consoleproxy.vnc.RfbConstants;
-
-public class MouseEventPacket implements ClientPacket {
-
-    private final int buttonMask, x, y;
-
-    public MouseEventPacket(int buttonMask, int x, int y) {
-        this.buttonMask = buttonMask;
-        this.x = x;
-        this.y = y;
-    }
-
-    @Override
-    public void write(DataOutputStream os) throws IOException {
-        os.writeByte(RfbConstants.CLIENT_POINTER_EVENT);
-
-        os.writeByte(buttonMask);
-        os.writeShort(x);
-        os.writeShort(y);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetEncodingsPacket.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetEncodingsPacket.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetEncodingsPacket.java
deleted file mode 100644
index 3d8cfcb..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetEncodingsPacket.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.client;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import com.cloud.consoleproxy.vnc.RfbConstants;
-
-public class SetEncodingsPacket implements ClientPacket {
-
-    private final int[] encodings;
-
-    public SetEncodingsPacket(int[] encodings) {
-        this.encodings = encodings;
-    }
-
-    @Override
-    public void write(DataOutputStream os) throws IOException {
-        os.writeByte(RfbConstants.CLIENT_SET_ENCODINGS);
-
-        os.writeByte(0);// padding
-
-        os.writeShort(encodings.length);
-
-        for (int i = 0; i < encodings.length; i++) {
-            os.writeInt(encodings[i]);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetPixelFormatPacket.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetPixelFormatPacket.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetPixelFormatPacket.java
deleted file mode 100644
index 7a25bfa..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/client/SetPixelFormatPacket.java
+++ /dev/null
@@ -1,75 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.client;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import com.cloud.consoleproxy.vnc.RfbConstants;
-import com.cloud.consoleproxy.vnc.VncScreenDescription;
-
-public class SetPixelFormatPacket implements ClientPacket {
-
-    private final int bitsPerPixel, depth, bigEndianFlag, trueColourFlag, redMax, greenMax, blueMax, redShift, greenShift, blueShift;
-
-    private final VncScreenDescription screen;
-
-    public SetPixelFormatPacket(VncScreenDescription screen, int bitsPerPixel, int depth, int bigEndianFlag, int trueColorFlag, int redMax, int greenMax, int blueMax, int redShift, int greenShift,
-            int blueShift) {
-        this.screen = screen;
-        this.bitsPerPixel = bitsPerPixel;
-        this.depth = depth;
-        this.bigEndianFlag = bigEndianFlag;
-        this.trueColourFlag = trueColorFlag;
-        this.redMax = redMax;
-        this.greenMax = greenMax;
-        this.blueMax = blueMax;
-        this.redShift = redShift;
-        this.greenShift = greenShift;
-        this.blueShift = blueShift;
-    }
-
-    @Override
-    public void write(DataOutputStream os) throws IOException {
-        os.writeByte(RfbConstants.CLIENT_SET_PIXEL_FORMAT);
-
-        // Padding
-        os.writeByte(0);
-        os.writeByte(0);
-        os.writeByte(0);
-
-        // Send pixel format
-        os.writeByte(bitsPerPixel);
-        os.writeByte(depth);
-        os.writeByte(bigEndianFlag);
-        os.writeByte(trueColourFlag);
-        os.writeShort(redMax);
-        os.writeShort(greenMax);
-        os.writeShort(blueMax);
-        os.writeByte(redShift);
-        os.writeByte(greenShift);
-        os.writeByte(blueShift);
-
-        // Padding
-        os.writeByte(0);
-        os.writeByte(0);
-        os.writeByte(0);
-
-        screen.setPixelFormat(bitsPerPixel, depth, bigEndianFlag, trueColourFlag, redMax, greenMax, blueMax, redShift, greenShift, blueShift);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/AbstractRect.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/AbstractRect.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/AbstractRect.java
deleted file mode 100644
index a380e9c..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/AbstractRect.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.server;
-
-public abstract class AbstractRect implements Rect {
-
-    protected final int x;
-    protected final int y;
-    protected final int width;
-    protected final int height;
-
-    public AbstractRect(int x, int y, int width, int height) {
-        this.x = x;
-        this.y = y;
-        this.width = width;
-        this.height = height;
-    }
-
-    @Override
-    public int getX() {
-        return x;
-    }
-
-    @Override
-    public int getY() {
-        return y;
-    }
-
-    @Override
-    public int getWidth() {
-        return width;
-    }
-
-    @Override
-    public int getHeight() {
-        return height;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/CopyRect.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/CopyRect.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/CopyRect.java
deleted file mode 100644
index caaecb5..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/CopyRect.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.server;
-
-import java.awt.Graphics2D;
-import java.awt.image.BufferedImage;
-import java.io.DataInputStream;
-import java.io.IOException;
-
-public class CopyRect extends AbstractRect {
-
-    private final int srcX, srcY;
-
-    public CopyRect(int x, int y, int width, int height, DataInputStream is) throws IOException {
-        super(x, y, width, height);
-
-        srcX = is.readUnsignedShort();
-        srcY = is.readUnsignedShort();
-    }
-
-    @Override
-    public void paint(BufferedImage image, Graphics2D graphics) {
-        graphics.copyArea(srcX, srcY, width, height, x - srcX, y - srcY);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2293caa3/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/FrameBufferSizeChangeRequest.java
----------------------------------------------------------------------
diff --git a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/FrameBufferSizeChangeRequest.java b/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/FrameBufferSizeChangeRequest.java
deleted file mode 100644
index 18f6987..0000000
--- a/console-proxy/src/com/cloud/consoleproxy/vnc/packet/server/FrameBufferSizeChangeRequest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// 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 com.cloud.consoleproxy.vnc.packet.server;
-
-import java.awt.Graphics2D;
-import java.awt.image.BufferedImage;
-
-import com.cloud.consoleproxy.vnc.BufferedImageCanvas;
-
-public class FrameBufferSizeChangeRequest extends AbstractRect {
-
-    private final BufferedImageCanvas canvas;
-
-    public FrameBufferSizeChangeRequest(BufferedImageCanvas canvas, int width, int height) {
-        super(0, 0, width, height);
-        this.canvas = canvas;
-        canvas.setCanvasSize(width, height);
-    }
-
-    @Override
-    public void paint(BufferedImage offlineImage, Graphics2D graphics) {
-        canvas.setCanvasSize(width, height);
-    }
-
-}