http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenEncoder.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenEncoder.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenEncoder.java index 3c31281..26dcb4b 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenEncoder.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/IScreenEncoder.java @@ -1,33 +1,33 @@ -/* - * 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.openmeetings.screenshare; - -import java.io.IOException; - -import org.red5.server.net.rtmp.event.VideoData; - -public interface IScreenEncoder { - void createUnalteredFrame() throws IOException; - - VideoData getUnalteredFrame(); - - VideoData encode(int[][] img) throws IOException; - - void reset(); -} +/* + * 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.openmeetings.screenshare; + +import java.io.IOException; + +import org.red5.server.net.rtmp.event.VideoData; + +public interface IScreenEncoder { + void createUnalteredFrame() throws IOException; + + VideoData getUnalteredFrame(); + + VideoData encode(int[][] img) throws IOException; + + void reset(); +}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPClientPublish.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPClientPublish.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPClientPublish.java index 598f9fd2..7e44ba3 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPClientPublish.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/RTMPClientPublish.java @@ -1,103 +1,103 @@ -/* - * 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.openmeetings.screenshare; - -import org.red5.client.net.rtmp.INetStreamEventHandler; -import org.red5.client.net.rtmp.RTMPClient; -import org.red5.server.api.service.IPendingServiceCall; -import org.red5.server.api.service.IPendingServiceCallback; -import org.red5.server.net.ICommand; -import org.red5.server.net.rtmp.Channel; -import org.red5.server.net.rtmp.RTMPConnection; -import org.red5.server.net.rtmp.event.Notify; -import org.red5.server.net.rtmp.message.Header; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, IScreenShare { - private static final Logger logger = LoggerFactory.getLogger(RTMPClientPublish.class); - private final CaptureScreen publishScreen; - private String id; - private Core core; - - public void setCore(Core core) { - this.core = core; - } - - RTMPClientPublish(Core core, String host, String app, String id) { - this.id = id; - this.core = core; - publishScreen = new CaptureScreen(core, this, host, app, 1935); - } - - public void connect() { - super.connect(publishScreen.getHost(), 1935, publishScreen.getApp(), this); - } - - @Override - public void handleException(Throwable throwable) { - logger.error("ERROR", throwable); - } - - @Override - public void connectionOpened(RTMPConnection conn) { - super.connectionOpened(conn); - createStream(this); - } - - @Override - public void connectionClosed(RTMPConnection conn) { - super.connectionClosed(conn); - connectionClosed(); - } - - private void connectionClosed() { - publishScreen.setStartPublish(false); - publishScreen.release(); - core.publishingStop(); - } - - @Override - protected void onCommand(RTMPConnection conn, Channel channel, Header source, ICommand command) { - super.onCommand(conn, channel, source, command); - } - - @Override - public void resultReceived(IPendingServiceCall call) { - String method = call == null ? null : call.getServiceMethodName(); - logger.trace("call ### get Method Name " + method); - if ("connect".equals(method)) { - //setConnectionAsSharingClient(); //FIXME - } else if ("createStream".equals(method)) { - if (call.getResult() != null) { - publishScreen.setStreamId((Integer)call.getResult()); - publish(publishScreen.getStreamId(), id, "live", this); - publishScreen.setStartPublish(true); - publishScreen.start(); - } else { - connectionClosed(); - } - } - } - - @Override - public void onStreamEvent(Notify notify) { - //no-op - } +/* + * 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.openmeetings.screenshare; + +import org.red5.client.net.rtmp.INetStreamEventHandler; +import org.red5.client.net.rtmp.RTMPClient; +import org.red5.server.api.service.IPendingServiceCall; +import org.red5.server.api.service.IPendingServiceCallback; +import org.red5.server.net.ICommand; +import org.red5.server.net.rtmp.Channel; +import org.red5.server.net.rtmp.RTMPConnection; +import org.red5.server.net.rtmp.event.Notify; +import org.red5.server.net.rtmp.message.Header; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, IScreenShare { + private static final Logger logger = LoggerFactory.getLogger(RTMPClientPublish.class); + private final CaptureScreen publishScreen; + private String id; + private Core core; + + public void setCore(Core core) { + this.core = core; + } + + RTMPClientPublish(Core core, String host, String app, String id) { + this.id = id; + this.core = core; + publishScreen = new CaptureScreen(core, this, host, app, 1935); + } + + public void connect() { + super.connect(publishScreen.getHost(), 1935, publishScreen.getApp(), this); + } + + @Override + public void handleException(Throwable throwable) { + logger.error("ERROR", throwable); + } + + @Override + public void connectionOpened(RTMPConnection conn) { + super.connectionOpened(conn); + createStream(this); + } + + @Override + public void connectionClosed(RTMPConnection conn) { + super.connectionClosed(conn); + connectionClosed(); + } + + private void connectionClosed() { + publishScreen.setStartPublish(false); + publishScreen.release(); + core.publishingStop(); + } + + @Override + protected void onCommand(RTMPConnection conn, Channel channel, Header source, ICommand command) { + super.onCommand(conn, channel, source, command); + } + + @Override + public void resultReceived(IPendingServiceCall call) { + String method = call == null ? null : call.getServiceMethodName(); + logger.trace("call ### get Method Name " + method); + if ("connect".equals(method)) { + //setConnectionAsSharingClient(); //FIXME + } else if ("createStream".equals(method)) { + if (call.getResult() != null) { + publishScreen.setStreamId((Integer)call.getResult()); + publish(publishScreen.getStreamId(), id, "live", this); + publishScreen.setStartPublish(true); + publishScreen.start(); + } else { + connectionClosed(); + } + } + } + + @Override + public void onStreamEvent(Notify notify) { + //no-op + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java index ad8b691..0b62a7e 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java @@ -1,202 +1,202 @@ -/* - * 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.openmeetings.screenshare; - -import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeX; -import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeY; -import static org.red5.io.IoConstants.FLAG_CODEC_SCREEN; -import static org.red5.io.IoConstants.FLAG_FRAMETYPE_INTERFRAME; -import static org.red5.io.IoConstants.FLAG_FRAMETYPE_KEYFRAME; - -import java.awt.Rectangle; -import java.awt.Robot; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.zip.Deflater; - -import org.apache.mina.core.buffer.IoBuffer; -import org.red5.server.net.rtmp.event.VideoData; - -public class ScreenV1Encoder extends BaseScreenEncoder { - private int[][] last = null; - private static int KEY_FRAME_INDEX = 25; - private static int DEFAULT_BLOCK_SIZE = 32; - private static int DEFAULT_SCREEN_WIDTH = 1920; - private static int DEFAULT_SCREEN_HEIGHT = 1080; - private int keyFrameIndex; - private int frameCount = 0; - private int blockSize; - private ByteArrayOutputStream ba = new ByteArrayOutputStream(50 + 3 * DEFAULT_SCREEN_WIDTH * DEFAULT_SCREEN_HEIGHT); - private byte[] areaBuf = null; - private Deflater d = new Deflater(Deflater.DEFAULT_COMPRESSION); - private byte[] zipBuf = null; - private VideoData unalteredFrame = null; - - public ScreenV1Encoder() { - this(KEY_FRAME_INDEX, DEFAULT_BLOCK_SIZE); - } - - public ScreenV1Encoder(int keyFrameIndex) { - this(keyFrameIndex, DEFAULT_BLOCK_SIZE); - } - - //will create square blocks - public ScreenV1Encoder(int keyFrameIndex, int blockSize) { - this.keyFrameIndex = keyFrameIndex; - if (blockSize < 16 || blockSize > 256 || blockSize % 16 != 0) { - throw new RuntimeException("Invalid block size passed: " + blockSize + " should be: 'from 16 to 256 in multiples of 16'"); - } - this.blockSize = blockSize; - - areaBuf = new byte[3 * blockSize * blockSize]; - zipBuf = new byte[3 * blockSize * blockSize]; - } - - private static VideoData getData(byte[] data) { - IoBuffer buf = IoBuffer.allocate(data.length); - buf.clear(); - buf.put(data); - buf.flip(); - return new VideoData(buf); - } - - @Override - public void createUnalteredFrame() throws IOException { - if (last == null) { - return; - } - if (unalteredFrame == null) { - ByteArrayOutputStream ba = new ByteArrayOutputStream(200); - - Rectangle _area = new Rectangle(resizeX, resizeY); - //header - ba.write(getTag(FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN)); - writeShort(ba, _area.width + ((blockSize / 16 - 1) << 12)); - writeShort(ba, _area.height + ((blockSize / 16 - 1) << 12)); - Rectangle area = getNextBlock(_area, null); - while (area.width > 0 && area.height > 0) { - writeShort(ba, 0); - area = getNextBlock(_area, area); - } - unalteredFrame = getData(ba.toByteArray()); - } - } - - @Override - public VideoData getUnalteredFrame() { - if (unalteredFrame != null && (frameCount % keyFrameIndex) != 0) { - frameCount++; - } - return unalteredFrame; - } - - @Override - public synchronized VideoData encode(int[][] img) throws IOException { - ba.reset(); - Rectangle imgArea = new Rectangle(img.length, img[0].length); - Rectangle area = getNextBlock(imgArea, null); - boolean isKeyFrame = (frameCount++ % keyFrameIndex) == 0 || last == null; - - //header - ba.write(getTag(isKeyFrame ? FLAG_FRAMETYPE_KEYFRAME : FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN)); - writeShort(ba, imgArea.width + ((blockSize / 16 - 1) << 12)); - writeShort(ba, imgArea.height + ((blockSize / 16 - 1) << 12)); - - while (area.width > 0 && area.height > 0) { - writeBytesIfChanged(ba, isKeyFrame, img, area); - area = getNextBlock(imgArea, area); - } - last = img; - return getData(ba.toByteArray()); - } - - @Override - public void reset() { - last = null; - unalteredFrame = null; - } - - private Rectangle getNextBlock(Rectangle img, Rectangle _prev) { - Rectangle prev; - if (_prev == null) { - prev = new Rectangle(0, Math.max(0, img.height - blockSize), blockSize, blockSize); - } else { - prev = new Rectangle(_prev); - if (prev.x + prev.width == img.getWidth()) { - if (prev.y == 0) return new Rectangle(); //the end of the image - //next row - prev.x = 0; //reset position - prev.width = blockSize; //reset width - prev.height = (prev.y > blockSize ? blockSize : prev.y); - prev.y -= prev.height; - } else { - prev.x += blockSize; - } - } - return img.intersection(prev); - } - - private void writeBytesIfChanged(ByteArrayOutputStream ba, boolean isKeyFrame, int[][] img, Rectangle area) throws IOException { - boolean changed = isKeyFrame; - int count = 0; - for (int y = area.y + area.height - 1; y >= area.y; --y) { - for (int x = area.x; x < area.x + area.width; ++x) { - int pixel = img[x][y]; - if (!changed && (last == null || pixel != last[x][y])) { - changed = true; - } - areaBuf[count++] = (byte)(pixel & 0xFF); // Blue component - areaBuf[count++] = (byte)((pixel >> 8) & 0xFF); // Green component - areaBuf[count++] = (byte)((pixel >> 16) & 0xFF); // Red component - } - } - if (changed) { - d.reset(); - d.setInput(areaBuf, 0, count); - d.finish(); - int written = d.deflate(zipBuf); - writeShort(ba, written); - ba.write(zipBuf, 0, written); - } else { - writeShort(ba, 0); - } - } - - public int getTag(final int frame, final int codec) { - return ((frame & 0x0F) << 4) + ((codec & 0x0F) << 0); - } - - private static void writeShort(OutputStream os, final int n) throws IOException { - os.write((n >> 8) & 0xFF); - os.write((n >> 0) & 0xFF); - } - - public static int[][] getImage(Rectangle screen, Robot robot) { - int[][] buffer = new int[resizeX][resizeY]; - BufferedImage image = resize(robot.createScreenCapture(screen), new Rectangle(resizeX, resizeY)); - for (int x = 0; x < image.getWidth(); ++x) { - for (int y = 0; y < image.getHeight(); ++y) { - buffer[x][y] = image.getRGB(x, y); - } - } - return buffer; - } -} +/* + * 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.openmeetings.screenshare; + +import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeX; +import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeY; +import static org.red5.io.IoConstants.FLAG_CODEC_SCREEN; +import static org.red5.io.IoConstants.FLAG_FRAMETYPE_INTERFRAME; +import static org.red5.io.IoConstants.FLAG_FRAMETYPE_KEYFRAME; + +import java.awt.Rectangle; +import java.awt.Robot; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.zip.Deflater; + +import org.apache.mina.core.buffer.IoBuffer; +import org.red5.server.net.rtmp.event.VideoData; + +public class ScreenV1Encoder extends BaseScreenEncoder { + private int[][] last = null; + private static int KEY_FRAME_INDEX = 25; + private static int DEFAULT_BLOCK_SIZE = 32; + private static int DEFAULT_SCREEN_WIDTH = 1920; + private static int DEFAULT_SCREEN_HEIGHT = 1080; + private int keyFrameIndex; + private int frameCount = 0; + private int blockSize; + private ByteArrayOutputStream ba = new ByteArrayOutputStream(50 + 3 * DEFAULT_SCREEN_WIDTH * DEFAULT_SCREEN_HEIGHT); + private byte[] areaBuf = null; + private Deflater d = new Deflater(Deflater.DEFAULT_COMPRESSION); + private byte[] zipBuf = null; + private VideoData unalteredFrame = null; + + public ScreenV1Encoder() { + this(KEY_FRAME_INDEX, DEFAULT_BLOCK_SIZE); + } + + public ScreenV1Encoder(int keyFrameIndex) { + this(keyFrameIndex, DEFAULT_BLOCK_SIZE); + } + + //will create square blocks + public ScreenV1Encoder(int keyFrameIndex, int blockSize) { + this.keyFrameIndex = keyFrameIndex; + if (blockSize < 16 || blockSize > 256 || blockSize % 16 != 0) { + throw new RuntimeException("Invalid block size passed: " + blockSize + " should be: 'from 16 to 256 in multiples of 16'"); + } + this.blockSize = blockSize; + + areaBuf = new byte[3 * blockSize * blockSize]; + zipBuf = new byte[3 * blockSize * blockSize]; + } + + private static VideoData getData(byte[] data) { + IoBuffer buf = IoBuffer.allocate(data.length); + buf.clear(); + buf.put(data); + buf.flip(); + return new VideoData(buf); + } + + @Override + public void createUnalteredFrame() throws IOException { + if (last == null) { + return; + } + if (unalteredFrame == null) { + ByteArrayOutputStream ba = new ByteArrayOutputStream(200); + + Rectangle _area = new Rectangle(resizeX, resizeY); + //header + ba.write(getTag(FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN)); + writeShort(ba, _area.width + ((blockSize / 16 - 1) << 12)); + writeShort(ba, _area.height + ((blockSize / 16 - 1) << 12)); + Rectangle area = getNextBlock(_area, null); + while (area.width > 0 && area.height > 0) { + writeShort(ba, 0); + area = getNextBlock(_area, area); + } + unalteredFrame = getData(ba.toByteArray()); + } + } + + @Override + public VideoData getUnalteredFrame() { + if (unalteredFrame != null && (frameCount % keyFrameIndex) != 0) { + frameCount++; + } + return unalteredFrame; + } + + @Override + public synchronized VideoData encode(int[][] img) throws IOException { + ba.reset(); + Rectangle imgArea = new Rectangle(img.length, img[0].length); + Rectangle area = getNextBlock(imgArea, null); + boolean isKeyFrame = (frameCount++ % keyFrameIndex) == 0 || last == null; + + //header + ba.write(getTag(isKeyFrame ? FLAG_FRAMETYPE_KEYFRAME : FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN)); + writeShort(ba, imgArea.width + ((blockSize / 16 - 1) << 12)); + writeShort(ba, imgArea.height + ((blockSize / 16 - 1) << 12)); + + while (area.width > 0 && area.height > 0) { + writeBytesIfChanged(ba, isKeyFrame, img, area); + area = getNextBlock(imgArea, area); + } + last = img; + return getData(ba.toByteArray()); + } + + @Override + public void reset() { + last = null; + unalteredFrame = null; + } + + private Rectangle getNextBlock(Rectangle img, Rectangle _prev) { + Rectangle prev; + if (_prev == null) { + prev = new Rectangle(0, Math.max(0, img.height - blockSize), blockSize, blockSize); + } else { + prev = new Rectangle(_prev); + if (prev.x + prev.width == img.getWidth()) { + if (prev.y == 0) return new Rectangle(); //the end of the image + //next row + prev.x = 0; //reset position + prev.width = blockSize; //reset width + prev.height = (prev.y > blockSize ? blockSize : prev.y); + prev.y -= prev.height; + } else { + prev.x += blockSize; + } + } + return img.intersection(prev); + } + + private void writeBytesIfChanged(ByteArrayOutputStream ba, boolean isKeyFrame, int[][] img, Rectangle area) throws IOException { + boolean changed = isKeyFrame; + int count = 0; + for (int y = area.y + area.height - 1; y >= area.y; --y) { + for (int x = area.x; x < area.x + area.width; ++x) { + int pixel = img[x][y]; + if (!changed && (last == null || pixel != last[x][y])) { + changed = true; + } + areaBuf[count++] = (byte)(pixel & 0xFF); // Blue component + areaBuf[count++] = (byte)((pixel >> 8) & 0xFF); // Green component + areaBuf[count++] = (byte)((pixel >> 16) & 0xFF); // Red component + } + } + if (changed) { + d.reset(); + d.setInput(areaBuf, 0, count); + d.finish(); + int written = d.deflate(zipBuf); + writeShort(ba, written); + ba.write(zipBuf, 0, written); + } else { + writeShort(ba, 0); + } + } + + public int getTag(final int frame, final int codec) { + return ((frame & 0x0F) << 4) + ((codec & 0x0F) << 0); + } + + private static void writeShort(OutputStream os, final int n) throws IOException { + os.write((n >> 8) & 0xFF); + os.write((n >> 0) & 0xFF); + } + + public static int[][] getImage(Rectangle screen, Robot robot) { + int[][] buffer = new int[resizeX][resizeY]; + BufferedImage image = resize(robot.createScreenCapture(screen), new Rectangle(resizeX, resizeY)); + for (int x = 0; x < image.getWidth(); ++x) { + for (int y = 0; y < image.getHeight(); ++y) { + buffer[x][y] = image.getRGB(x, y); + } + } + return buffer; + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/MouseListenerable.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/MouseListenerable.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/MouseListenerable.java index 1c442dd..33c8ae5 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/MouseListenerable.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/MouseListenerable.java @@ -1,32 +1,32 @@ -/* - * 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.openmeetings.screenshare.gui; - -import java.awt.event.MouseAdapter; - -import javax.swing.JLabel; - -public class MouseListenerable extends JLabel { - private static final long serialVersionUID = 1L; - - public void addListener(MouseAdapter listner) { - addMouseListener(listner); - addMouseMotionListener(listner); - } +/* + * 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.openmeetings.screenshare.gui; + +import java.awt.event.MouseAdapter; + +import javax.swing.JLabel; + +public class MouseListenerable extends JLabel { + private static final long serialVersionUID = 1L; + + public void addListener(MouseAdapter listner) { + addMouseListener(listner); + addMouseMotionListener(listner); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/NumberSpinner.java ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/NumberSpinner.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/NumberSpinner.java index 22e9edc..d349e16 100644 --- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/NumberSpinner.java +++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/NumberSpinner.java @@ -1,35 +1,35 @@ -/* - * 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.openmeetings.screenshare.gui; - -import javax.swing.JSpinner; -import javax.swing.SpinnerNumberModel; - -public class NumberSpinner extends JSpinner { - private static final long serialVersionUID = 1L; - - public NumberSpinner(int value, int min, int max, int step) { - super(new SpinnerNumberModel(value, min, max, step)); - } - - @Override - public Integer getValue() { - return (Integer)super.getValue(); - } -} +/* + * 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.openmeetings.screenshare.gui; + +import javax.swing.JSpinner; +import javax.swing.SpinnerNumberModel; + +public class NumberSpinner extends JSpinner { + private static final long serialVersionUID = 1L; + + public NumberSpinner(int value, int min, int max, int step) { + super(new SpinnerNumberModel(value, min, max, step)); + } + + @Override + public Integer getValue() { + return (Integer)super.getValue(); + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/main/resources/logback.xsd ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/main/resources/logback.xsd b/openmeetings-screenshare/src/main/resources/logback.xsd index 7e75655..cc5ad1c 100644 --- a/openmeetings-screenshare/src/main/resources/logback.xsd +++ b/openmeetings-screenshare/src/main/resources/logback.xsd @@ -1,109 +1,109 @@ -<?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. - ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> - <xs:element name="configuration"> - <xs:complexType> - <xs:sequence> - <xs:element ref="contextName"/> - <xs:element ref="jmxConfigurator"/> - <xs:element maxOccurs="unbounded" ref="appender"/> - <xs:element maxOccurs="unbounded" ref="logger"/> - <xs:element ref="root"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="contextName" type="xs:string"/> - <xs:element name="jmxConfigurator"> - <xs:complexType> - <xs:attribute name="contextName" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="appender"> - <xs:complexType> - <xs:sequence> - <xs:sequence minOccurs="0"> - <xs:element ref="File"/> - <xs:element ref="Append"/> - <xs:element ref="Encoding"/> - <xs:element ref="BufferedIO"/> - <xs:element ref="ImmediateFlush"/> - </xs:sequence> - <xs:element ref="layout"/> - </xs:sequence> - <xs:attribute name="class" use="required"/> - <xs:attribute name="name" use="required" type="xs:NCName"/> - </xs:complexType> - </xs:element> - <xs:element name="File" type="xs:string"/> - <xs:element name="Append" type="xs:boolean"/> - <xs:element name="Encoding" type="xs:NCName"/> - <xs:element name="BufferedIO" type="xs:boolean"/> - <xs:element name="ImmediateFlush" type="xs:boolean"/> - <xs:element name="layout"> - <xs:complexType> - <xs:choice> - <xs:element ref="Pattern"/> - <xs:element ref="pattern"/> - </xs:choice> - <xs:attribute name="class" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="Pattern" type="xs:string"/> - <xs:element name="pattern" type="xs:string"/> - <xs:element name="logger"> - <xs:complexType> - <xs:sequence> - <xs:element maxOccurs="unbounded" minOccurs="0" ref="appender-ref"/> - <xs:element maxOccurs="1" minOccurs="0" ref="level"/> - </xs:sequence> - <xs:attribute name="name" use="required" type="xs:NCName"/> - <xs:attribute name="level" type="LoggerLevels" use="optional"/> - </xs:complexType> - </xs:element> - <xs:element name="root"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="unbounded" ref="appender-ref"/> - </xs:sequence> - <xs:attribute name="level" type="LoggerLevels" use="optional"/> - </xs:complexType> - </xs:element> - <xs:element name="appender-ref"> - <xs:complexType> - <xs:attribute name="ref" use="required" type="xs:NCName"/> - </xs:complexType> - </xs:element> - <xs:complexType name="level"> - <xs:sequence> - <xs:element ref="level"/> - </xs:sequence> - </xs:complexType> - <xs:element name="level"> - <xs:complexType> - <xs:attribute name="value" use="required" type="xs:NCName"/> - </xs:complexType> - </xs:element> - <xs:simpleType name="LoggerLevels"> - <xs:restriction base="xs:string"> - <xs:pattern value="off|OFF|all|ALL|inherited|INHERITED|null|NULL|error|ERROR|warn|WARN|info|INFO|debug|DEBUG|trace|TRACE"/> - </xs:restriction> - </xs:simpleType> -</xs:schema> +<?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. + +--> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <xs:element name="configuration"> + <xs:complexType> + <xs:sequence> + <xs:element ref="contextName"/> + <xs:element ref="jmxConfigurator"/> + <xs:element maxOccurs="unbounded" ref="appender"/> + <xs:element maxOccurs="unbounded" ref="logger"/> + <xs:element ref="root"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="contextName" type="xs:string"/> + <xs:element name="jmxConfigurator"> + <xs:complexType> + <xs:attribute name="contextName" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="appender"> + <xs:complexType> + <xs:sequence> + <xs:sequence minOccurs="0"> + <xs:element ref="File"/> + <xs:element ref="Append"/> + <xs:element ref="Encoding"/> + <xs:element ref="BufferedIO"/> + <xs:element ref="ImmediateFlush"/> + </xs:sequence> + <xs:element ref="layout"/> + </xs:sequence> + <xs:attribute name="class" use="required"/> + <xs:attribute name="name" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="File" type="xs:string"/> + <xs:element name="Append" type="xs:boolean"/> + <xs:element name="Encoding" type="xs:NCName"/> + <xs:element name="BufferedIO" type="xs:boolean"/> + <xs:element name="ImmediateFlush" type="xs:boolean"/> + <xs:element name="layout"> + <xs:complexType> + <xs:choice> + <xs:element ref="Pattern"/> + <xs:element ref="pattern"/> + </xs:choice> + <xs:attribute name="class" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Pattern" type="xs:string"/> + <xs:element name="pattern" type="xs:string"/> + <xs:element name="logger"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" ref="appender-ref"/> + <xs:element maxOccurs="1" minOccurs="0" ref="level"/> + </xs:sequence> + <xs:attribute name="name" use="required" type="xs:NCName"/> + <xs:attribute name="level" type="LoggerLevels" use="optional"/> + </xs:complexType> + </xs:element> + <xs:element name="root"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="appender-ref"/> + </xs:sequence> + <xs:attribute name="level" type="LoggerLevels" use="optional"/> + </xs:complexType> + </xs:element> + <xs:element name="appender-ref"> + <xs:complexType> + <xs:attribute name="ref" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:complexType name="level"> + <xs:sequence> + <xs:element ref="level"/> + </xs:sequence> + </xs:complexType> + <xs:element name="level"> + <xs:complexType> + <xs:attribute name="value" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:simpleType name="LoggerLevels"> + <xs:restriction base="xs:string"> + <xs:pattern value="off|OFF|all|ALL|inherited|INHERITED|null|NULL|error|ERROR|warn|WARN|info|INFO|debug|DEBUG|trace|TRACE"/> + </xs:restriction> + </xs:simpleType> +</xs:schema> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-screenshare/src/site/site.xml ---------------------------------------------------------------------- diff --git a/openmeetings-screenshare/src/site/site.xml b/openmeetings-screenshare/src/site/site.xml index b7a0eae..dd3dc53 100644 --- a/openmeetings-screenshare/src/site/site.xml +++ b/openmeetings-screenshare/src/site/site.xml @@ -1,39 +1,39 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. - --> -<project xmlns="http://maven.apache.org/DECORATION/1.7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.7.0 http://maven.apache.org/xsd/decoration-1.7.0.xsd" - name="Apache OpenMeetings Project"> - - <body> - <menu ref="parent"/> - <menu name="Project"> - <item name="About" href="/index.html" /> - <item name="Info" href="/project-info.html" /> - <item name="Summary" href="/project-summary.html" /> - <item name="License" href="/license.html" /> - <item name="Dependencies" href="/dependencies.html" /> - <item name="Dependency Convergence" href="/dependency-convergence.html" /> - <item name="RAT Report" href="/rat-report.html" /> - </menu> - </body> - <custom> - <reflowSkin> - <bottomNav maxSpan="12"> - <column>Parent Project</column> - <column>Project</column> - </bottomNav> - </reflowSkin> - </custom> -</project> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. + --> +<project xmlns="http://maven.apache.org/DECORATION/1.7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.7.0 http://maven.apache.org/xsd/decoration-1.7.0.xsd" + name="Apache OpenMeetings Project"> + + <body> + <menu ref="parent"/> + <menu name="Project"> + <item name="About" href="/index.html" /> + <item name="Info" href="/project-info.html" /> + <item name="Summary" href="/project-summary.html" /> + <item name="License" href="/license.html" /> + <item name="Dependencies" href="/dependencies.html" /> + <item name="Dependency Convergence" href="/dependency-convergence.html" /> + <item name="RAT Report" href="/rat-report.html" /> + </menu> + </body> + <custom> + <reflowSkin> + <bottomNav maxSpan="12"> + <column>Parent Project</column> + <column>Project</column> + </bottomNav> + </reflowSkin> + </custom> +</project> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat b/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat index 9087e9e..59e8e89 100644 --- a/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat +++ b/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat @@ -1,19 +1,19 @@ -REM ############################################# -REM Licensed under the Apache License, Version 2.0 (the "License"); -REM you may not use this file except in compliance with the License. -REM You may obtain a copy of the License at -REM -REM http://www.apache.org/licenses/LICENSE-2.0 -REM -REM Unless required by applicable law or agreed to in writing, software -REM distributed under the License is distributed on an "AS IS" BASIS, -REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -REM See the License for the specific language governing permissions and -REM limitations under the License. -REM ############################################# -@echo off - -if NOT DEFINED RED5_HOME set RED5_HOME=%~dp0 - -set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -javaagent:@jrebel.home@\jrebel.jar -Drebel.remoting_plugin=true [email protected]@ -%RED5_HOME%\red5.bat +REM ############################################# +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM ############################################# +@echo off + +if NOT DEFINED RED5_HOME set RED5_HOME=%~dp0 + +set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -javaagent:@jrebel.home@\jrebel.jar -Drebel.remoting_plugin=true [email protected]@ +%RED5_HOME%\red5.bat http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/main/assembly/scripts/admin.bat ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/main/assembly/scripts/admin.bat b/openmeetings-server/src/main/assembly/scripts/admin.bat index 8ae8ec2..c5a47c2 100644 --- a/openmeetings-server/src/main/assembly/scripts/admin.bat +++ b/openmeetings-server/src/main/assembly/scripts/admin.bat @@ -1,21 +1,21 @@ -REM ############################################# -REM Licensed under the Apache License, Version 2.0 (the "License"); -REM you may not use this file except in compliance with the License. -REM You may obtain a copy of the License at -REM -REM http://www.apache.org/licenses/LICENSE-2.0 -REM -REM Unless required by applicable law or agreed to in writing, software -REM distributed under the License is distributed on an "AS IS" BASIS, -REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -REM See the License for the specific language governing permissions and -REM limitations under the License. -REM ############################################# -@echo off -set RED5_HOME=%~dp0 -set OM_CONTEXT=openmeetings - -set CLASSPATH=%RED5_HOME%\*;%RED5_HOME%\conf;%RED5_HOME%\plugins\*;%RED5_HOME%\lib\*;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF\lib\*;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF\classes - -java -cp "%CLASSPATH%" -Dcontext=%OM_CONTEXT% -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector org.apache.openmeetings.cli.Admin %* - +REM ############################################# +REM Licensed under the Apache License, Version 2.0 (the "License"); +REM you may not use this file except in compliance with the License. +REM You may obtain a copy of the License at +REM +REM http://www.apache.org/licenses/LICENSE-2.0 +REM +REM Unless required by applicable law or agreed to in writing, software +REM distributed under the License is distributed on an "AS IS" BASIS, +REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +REM See the License for the specific language governing permissions and +REM limitations under the License. +REM ############################################# +@echo off +set RED5_HOME=%~dp0 +set OM_CONTEXT=openmeetings + +set CLASSPATH=%RED5_HOME%\*;%RED5_HOME%\conf;%RED5_HOME%\plugins\*;%RED5_HOME%\lib\*;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF\lib\*;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF\classes + +java -cp "%CLASSPATH%" -Dcontext=%OM_CONTEXT% -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector org.apache.openmeetings.cli.Admin %* + http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/site/site.xml ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/site/site.xml b/openmeetings-server/src/site/site.xml index d36a3ab..89bd6f1 100644 --- a/openmeetings-server/src/site/site.xml +++ b/openmeetings-server/src/site/site.xml @@ -1,140 +1,140 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. - --> -<project xmlns="http://maven.apache.org/DECORATION/1.6.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.6.0 http://maven.apache.org/xsd/decoration-1.6.0.xsd" - name="Apache OpenMeetings Project"> - - <body> - <menu name="General"> - <item name="Home" href="/index.html"/> - <item name="License" href="/license.html"/> - <item name="ASF" href="http://www.apache.org/"/> - <item name="Call For Logo" href="/CallForLogo.html"/> - <item name="News archive" href="/NewsArchive.html"/> - <item name="Security" href="/security.html"/> - <item name="Commercial Support" href="/commercial-support.html"/> - </menu> - <menu name="Installation"> - <item name="Installation" href="/installation.html" /> - <item name="Upgrade" href="/Upgrade.html" /> - <item name="Tutorials" href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" /> - <item name="Command Line Admin" href="/CommandLineAdmin.html" /> - </menu> - <menu name="Community"> - <item name="Get Involved" href="/get-involved.html" /> - <item name="Committers" href="/team-list.html" /> - <item name="Our Users" href="/OurUsers.html" /> - <item name="Mailing Lists" href="/mail-lists.html" /> - <item name="Wiki" href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" /> - </menu> - <menu name="Development"> - <item name="Source Code" href="/source-repository.html" /> - <item name="Bugs / Issues" href="/issue-tracking.html" /> - <item name="Dependencies" href="/dependencies.html" /> - <item name="Continuous Integration" href="/integration.html" /> - <item name="Build Instructions 3.0.x" href="/BuildInstructions_3.0.x.html" /> - <item name="Build Instructions" href="/BuildInstructions.html" /> - <item name="JUnit Testing" href="/JUnitTesting.html" /> - <item name="Manual Testing" href="/ManualTesting.html" /> - <item name="Release Guide" href="/ReleaseGuide.html" /> - <item name="Website Guide" href="/WebsiteGuide.html" /> - </menu> - <menu name="Configuration"> - <item name="Integration" href="#integration"> - <item name="SOAP/REST API" href="/openmeetings-webservice/apidocs/index.html" target="_blank"/> - <item name="REST API Sample" href="/RestAPISample.html" /> - <item name="Ldap and ADS" href="/LdapAndADS.html" /> - <item name="OAuth2" href="/oauth2.html" /> - <item name="VoIP and SIP" href="/voip-sip-integration.html" /> - <item name="Errors table" href="/errorvalues.html" /> - </item> - <item name="Plugins" href="#plugins"> - <item name="Moodle Plugin" href="/MoodlePlugin.html" /> - <item name="Sakai Plugin" href="/SakaiPlugin.html" /> - <item name="Jira Plugin" href="/JiraPlugin.html" /> - <item name="Joomla Plugin" href="/JoomlaPlugin.html" /> - <item name="Drupal Plugin" href="/DrupalPlugin.html" /> - <item name="Bitrix Plugin" href="/BitrixPlugin.html" /> - <item name="Confluence Plugin" href="/ConfluencePlugin.html" /> - <item name="SugarCRM Plugin" href="/SugarCRMPlugin.html" /> - <item name="Redmine Plugin" href="/RedminePlugin.html" /> - </item> - <item name="DB Sample Configurations" href="#db"> - <item name="Apache Derby" href="/ApacheDerbyConfig.html" /> - <item name="IBM DB2" href="/IBMDB2Config.html" /> - <item name="Oracle" href="/OracleConfig.html" /> - <item name="MySQL" href="/MySQLConfig.html" /> - <item name="Postgres" href="/PostgresConfig.html" /> - <item name="MSSQL" href="/MSSQLConfig.html" /> - </item> - <item name="Localization and languages" href="#localization"> - <item name="Internationalisation" href="/Internationalisation.html" /> - <item name="LanguageEditor" href="/LanguageEditor.html" /> - <item name="TimeZoneHandling" href="/TimeZoneHandling.html" /> - <item name="EditTemplates" href="/EditTemplates.html" /> - </item> - <item name="NAT Port Settings" href="#port"> - <item name="Port settings" href="/PortSettings.html" /> - </item> - <item name="Performance" href="#performance"> - <item name="JVM performance tuning" href="/JVMPerformanceTuning.html" /> - <item name="Network bandwidth calculator" href="/NetworkCalculator.html" /> - </item> - <item name="User Interface" href="#interface"> - <item name="Themes" href="/themes-and-branding.html" /> - <item name="Dashboard" href="/Dashboard.html" /> - <item name="Webcam resolutions" href="/WebcamResolutions.html" /> - <item name="Room layout options" href="/ConferenceRoomLayoutOptions.html" /> - <item name="Hot Keys" href="/HotKeys.html" /> - </item> - <item name="Customization" href="#customize"> - <item name="Webapp name/path" href="/WebappNamePath.html" /> - <item name="Navigation" href="/Navigation.html" /> - <item name="Calendar and timezone" href="/CalendarAndTimezone.html" /> - <item name="Custom room type" href="/CustomRoomTypeHowTo.html" /> - <item name="Custom crypt mechanism" href="/CustomCryptMechanism.html" /> - <item name="General Configuration" href="/GeneralConfiguration.html" /> - </item> - <item name="Security" href="#security"> - <item name="Restricted Access" href="/RestrictedAccess.html" /> - <item name="RTMPS and HTTPS" href="/RTMPSAndHTTPS.html" /> - </item> - <item name="Converters" href="#convert"> - <item name="OpenOffice Converter" href="/OpenOfficeConverter.html" /> - </item> - <item name="Clustering" href="#cluster"> - <item name="Clustering" href="/Clustering.html" /> - </item> - <item name="Misc" href="#misc"> - <item name="Get version info" href="/GetVersionInfo.html" /> - </item> - </menu> - </body> - <custom> - <reflowSkin> - <pages> - <index> - <sections> - <carousel/> - </sections> - </index> - </pages> - <endContent> - <script type="text/javascript" src="$resourcePath/js/jquery-ui.min.js"></script> - <script type="text/javascript" src="$resourcePath/js/netcalc.js"></script> - </endContent> - </reflowSkin> - </custom> -</project> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. + --> +<project xmlns="http://maven.apache.org/DECORATION/1.6.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.6.0 http://maven.apache.org/xsd/decoration-1.6.0.xsd" + name="Apache OpenMeetings Project"> + + <body> + <menu name="General"> + <item name="Home" href="/index.html"/> + <item name="License" href="/license.html"/> + <item name="ASF" href="http://www.apache.org/"/> + <item name="Call For Logo" href="/CallForLogo.html"/> + <item name="News archive" href="/NewsArchive.html"/> + <item name="Security" href="/security.html"/> + <item name="Commercial Support" href="/commercial-support.html"/> + </menu> + <menu name="Installation"> + <item name="Installation" href="/installation.html" /> + <item name="Upgrade" href="/Upgrade.html" /> + <item name="Tutorials" href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" /> + <item name="Command Line Admin" href="/CommandLineAdmin.html" /> + </menu> + <menu name="Community"> + <item name="Get Involved" href="/get-involved.html" /> + <item name="Committers" href="/team-list.html" /> + <item name="Our Users" href="/OurUsers.html" /> + <item name="Mailing Lists" href="/mail-lists.html" /> + <item name="Wiki" href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" /> + </menu> + <menu name="Development"> + <item name="Source Code" href="/source-repository.html" /> + <item name="Bugs / Issues" href="/issue-tracking.html" /> + <item name="Dependencies" href="/dependencies.html" /> + <item name="Continuous Integration" href="/integration.html" /> + <item name="Build Instructions 3.0.x" href="/BuildInstructions_3.0.x.html" /> + <item name="Build Instructions" href="/BuildInstructions.html" /> + <item name="JUnit Testing" href="/JUnitTesting.html" /> + <item name="Manual Testing" href="/ManualTesting.html" /> + <item name="Release Guide" href="/ReleaseGuide.html" /> + <item name="Website Guide" href="/WebsiteGuide.html" /> + </menu> + <menu name="Configuration"> + <item name="Integration" href="#integration"> + <item name="SOAP/REST API" href="/openmeetings-webservice/apidocs/index.html" target="_blank"/> + <item name="REST API Sample" href="/RestAPISample.html" /> + <item name="Ldap and ADS" href="/LdapAndADS.html" /> + <item name="OAuth2" href="/oauth2.html" /> + <item name="VoIP and SIP" href="/voip-sip-integration.html" /> + <item name="Errors table" href="/errorvalues.html" /> + </item> + <item name="Plugins" href="#plugins"> + <item name="Moodle Plugin" href="/MoodlePlugin.html" /> + <item name="Sakai Plugin" href="/SakaiPlugin.html" /> + <item name="Jira Plugin" href="/JiraPlugin.html" /> + <item name="Joomla Plugin" href="/JoomlaPlugin.html" /> + <item name="Drupal Plugin" href="/DrupalPlugin.html" /> + <item name="Bitrix Plugin" href="/BitrixPlugin.html" /> + <item name="Confluence Plugin" href="/ConfluencePlugin.html" /> + <item name="SugarCRM Plugin" href="/SugarCRMPlugin.html" /> + <item name="Redmine Plugin" href="/RedminePlugin.html" /> + </item> + <item name="DB Sample Configurations" href="#db"> + <item name="Apache Derby" href="/ApacheDerbyConfig.html" /> + <item name="IBM DB2" href="/IBMDB2Config.html" /> + <item name="Oracle" href="/OracleConfig.html" /> + <item name="MySQL" href="/MySQLConfig.html" /> + <item name="Postgres" href="/PostgresConfig.html" /> + <item name="MSSQL" href="/MSSQLConfig.html" /> + </item> + <item name="Localization and languages" href="#localization"> + <item name="Internationalisation" href="/Internationalisation.html" /> + <item name="LanguageEditor" href="/LanguageEditor.html" /> + <item name="TimeZoneHandling" href="/TimeZoneHandling.html" /> + <item name="EditTemplates" href="/EditTemplates.html" /> + </item> + <item name="NAT Port Settings" href="#port"> + <item name="Port settings" href="/PortSettings.html" /> + </item> + <item name="Performance" href="#performance"> + <item name="JVM performance tuning" href="/JVMPerformanceTuning.html" /> + <item name="Network bandwidth calculator" href="/NetworkCalculator.html" /> + </item> + <item name="User Interface" href="#interface"> + <item name="Themes" href="/themes-and-branding.html" /> + <item name="Dashboard" href="/Dashboard.html" /> + <item name="Webcam resolutions" href="/WebcamResolutions.html" /> + <item name="Room layout options" href="/ConferenceRoomLayoutOptions.html" /> + <item name="Hot Keys" href="/HotKeys.html" /> + </item> + <item name="Customization" href="#customize"> + <item name="Webapp name/path" href="/WebappNamePath.html" /> + <item name="Navigation" href="/Navigation.html" /> + <item name="Calendar and timezone" href="/CalendarAndTimezone.html" /> + <item name="Custom room type" href="/CustomRoomTypeHowTo.html" /> + <item name="Custom crypt mechanism" href="/CustomCryptMechanism.html" /> + <item name="General Configuration" href="/GeneralConfiguration.html" /> + </item> + <item name="Security" href="#security"> + <item name="Restricted Access" href="/RestrictedAccess.html" /> + <item name="RTMPS and HTTPS" href="/RTMPSAndHTTPS.html" /> + </item> + <item name="Converters" href="#convert"> + <item name="OpenOffice Converter" href="/OpenOfficeConverter.html" /> + </item> + <item name="Clustering" href="#cluster"> + <item name="Clustering" href="/Clustering.html" /> + </item> + <item name="Misc" href="#misc"> + <item name="Get version info" href="/GetVersionInfo.html" /> + </item> + </menu> + </body> + <custom> + <reflowSkin> + <pages> + <index> + <sections> + <carousel/> + </sections> + </index> + </pages> + <endContent> + <script type="text/javascript" src="$resourcePath/js/jquery-ui.min.js"></script> + <script type="text/javascript" src="$resourcePath/js/netcalc.js"></script> + </endContent> + </reflowSkin> + </custom> +</project> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/site/stylesheets/errortable.xsl ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/site/stylesheets/errortable.xsl b/openmeetings-server/src/site/stylesheets/errortable.xsl index 5748361..dbf72de 100644 --- a/openmeetings-server/src/site/stylesheets/errortable.xsl +++ b/openmeetings-server/src/site/stylesheets/errortable.xsl @@ -1,67 +1,67 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. - --> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - <xsl:param name="languagesDir"/> - <xsl:output method="xml"/> - - <xsl:template match="ROOT"> -<document> -<xsl:comment> - Licensed 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. - </xsl:comment> - <properties> - <title>Openmeetings Errors table</title> - <author email="[email protected]">Apache OpenMeetings Documentation Robot</author> - </properties> - <body> - <section name="Openmeetings Errors table"> - <table> - <tr> - <th>Code</th> - <th>Type</th> - <th>Description</th> - </tr> - <xsl:apply-templates/> - </table> - </section> - </body> -</document> - </xsl:template> - - <xsl:template match="row"> - <xsl:variable name="englishPath"><xsl:value-of select="concat($languagesDir, '/Application.properties.xml')"/></xsl:variable> - <tr> - <td>-<xsl:value-of select="field[@name='errorvalues_id']"/></td> - <td> - <xsl:variable name="type" select="concat('error.type.', field[@name='type'])"/> - <xsl:value-of select="document($englishPath)/properties/entry[@key=$type]/text()" /> - </td> - <td> - <xsl:variable name="descId" select="field[@name='fieldvalues_id']"/> - <xsl:value-of select="document($englishPath)/properties/entry[@key=$descId]/text()" /> - </td> - </tr> - </xsl:template> -</xsl:stylesheet> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. + --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:param name="languagesDir"/> + <xsl:output method="xml"/> + + <xsl:template match="ROOT"> +<document> +<xsl:comment> + Licensed 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. + </xsl:comment> + <properties> + <title>Openmeetings Errors table</title> + <author email="[email protected]">Apache OpenMeetings Documentation Robot</author> + </properties> + <body> + <section name="Openmeetings Errors table"> + <table> + <tr> + <th>Code</th> + <th>Type</th> + <th>Description</th> + </tr> + <xsl:apply-templates/> + </table> + </section> + </body> +</document> + </xsl:template> + + <xsl:template match="row"> + <xsl:variable name="englishPath"><xsl:value-of select="concat($languagesDir, '/Application.properties.xml')"/></xsl:variable> + <tr> + <td>-<xsl:value-of select="field[@name='errorvalues_id']"/></td> + <td> + <xsl:variable name="type" select="concat('error.type.', field[@name='type'])"/> + <xsl:value-of select="document($englishPath)/properties/entry[@key=$type]/text()" /> + </td> + <td> + <xsl:variable name="descId" select="field[@name='fieldvalues_id']"/> + <xsl:value-of select="document($englishPath)/properties/entry[@key=$descId]/text()" /> + </td> + </tr> + </xsl:template> +</xsl:stylesheet> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml b/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml index d251f47..a3071ba 100644 --- a/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml +++ b/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml @@ -1,57 +1,57 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. - --> -<document xmlns="http://maven.apache.org/XDOC/2.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> - - <properties> - <title>Apache Derby Configuration</title> - <author email="[email protected]">Apache OpenMeetings Team</author> - </properties> - - <body> - <section name="Apache Derby Configuration"> - - <p> - OpenMeetings default configuration is to use Apache Derby. - </p> - - <p> - It is recommended for production environments and high - availibility to change to an usual relational database like MySQL, - Postgres or DB2. - </p> - <p> - For more information about Apache Derby see - <a href="http://db.apache.org/derby/">http://db.apache.org/derby/</a> - </p> - - <p> - There is a sample configuration for Apache Derby that ships with - every release in: - <br /> - /webapps/openmeetings/WEB-INF/classes/META-INF/derby_persistence.xml - </p> - - <p> - If you encounter issues, you can drop the db and then run the web - based installer again - </p> - - </section> - - </body> - -</document> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. + --> +<document xmlns="http://maven.apache.org/XDOC/2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + + <properties> + <title>Apache Derby Configuration</title> + <author email="[email protected]">Apache OpenMeetings Team</author> + </properties> + + <body> + <section name="Apache Derby Configuration"> + + <p> + OpenMeetings default configuration is to use Apache Derby. + </p> + + <p> + It is recommended for production environments and high + availibility to change to an usual relational database like MySQL, + Postgres or DB2. + </p> + <p> + For more information about Apache Derby see + <a href="http://db.apache.org/derby/">http://db.apache.org/derby/</a> + </p> + + <p> + There is a sample configuration for Apache Derby that ships with + every release in: + <br /> + /webapps/openmeetings/WEB-INF/classes/META-INF/derby_persistence.xml + </p> + + <p> + If you encounter issues, you can drop the db and then run the web + based installer again + </p> + + </section> + + </body> + +</document> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/site/xdoc/BitrixPlugin.xml ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/site/xdoc/BitrixPlugin.xml b/openmeetings-server/src/site/xdoc/BitrixPlugin.xml index 00e93b4..f7b7f90 100644 --- a/openmeetings-server/src/site/xdoc/BitrixPlugin.xml +++ b/openmeetings-server/src/site/xdoc/BitrixPlugin.xml @@ -1,48 +1,48 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. - --> -<document xmlns="http://maven.apache.org/XDOC/2.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> - <properties> - <title>Bitrix Plugin</title> - <author email="[email protected]">Apache OpenMeetings Team</author> - </properties> - <body> - <section name="OpenMeetings Plugin for Bitrix"> - <p> - Plugin for Bitrix currently is not open source. - Please contact <a href="commercial-support.html" target="_blank" rel="nofollow">Commercial Support</a> to get it. - </p> - </section> - <section name="Features"> - <p>The plugin contains the following features: </p> - <ul> - <li>Enter videoconference rooms from Bitrix (http://www.1c-bitrix.ru/): </li> - </ul> - </section> - <section name="Configuration"> - <div> - <b>OpenMeetings Bitrix Plugin Installation</b><br/> - <ol> - <li>Build plugin from sources</li> - <li>Unpack it into bitrix/modules</li> - <li>Install via Admin</li> - <li>Add OPenmeetings component to any page.</li> - </ol> - </div> - </section> - </body> - -</document> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. + --> +<document xmlns="http://maven.apache.org/XDOC/2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Bitrix Plugin</title> + <author email="[email protected]">Apache OpenMeetings Team</author> + </properties> + <body> + <section name="OpenMeetings Plugin for Bitrix"> + <p> + Plugin for Bitrix currently is not open source. + Please contact <a href="commercial-support.html" target="_blank" rel="nofollow">Commercial Support</a> to get it. + </p> + </section> + <section name="Features"> + <p>The plugin contains the following features: </p> + <ul> + <li>Enter videoconference rooms from Bitrix (http://www.1c-bitrix.ru/): </li> + </ul> + </section> + <section name="Configuration"> + <div> + <b>OpenMeetings Bitrix Plugin Installation</b><br/> + <ol> + <li>Build plugin from sources</li> + <li>Unpack it into bitrix/modules</li> + <li>Install via Admin</li> + <li>Add OPenmeetings component to any page.</li> + </ol> + </div> + </section> + </body> + +</document> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8e63647c/openmeetings-server/src/site/xdoc/BuildInstructions.xml ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/site/xdoc/BuildInstructions.xml b/openmeetings-server/src/site/xdoc/BuildInstructions.xml index c6af2af..7fbd84f 100644 --- a/openmeetings-server/src/site/xdoc/BuildInstructions.xml +++ b/openmeetings-server/src/site/xdoc/BuildInstructions.xml @@ -1,105 +1,105 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed 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. - --> -<document xmlns="http://maven.apache.org/XDOC/2.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> - - <properties> - <title>Build instructions</title> - <author email="[email protected]">Apache OpenMeetings Team</author> - </properties> - - <body> - <section name="Nightly Builds"> - <p> - You can find Nightly Builds of the software at: - <a href="https://builds.apache.org/view/M-R/view/OpenMeetings/" rel="nofollow" target="_blank"> - https://builds.apache.org/view/M-R/view/OpenMeetings/ - </a> - </p> - </section> - - <section name="How to Build a Distribution"> - <div> - <p>To build a binary release of OpenMeetings you need: </p> - <ul> - <li>Oracle JDK8</li> - <li>Apache Maven (minimum) 3.3.9</li> - <li>Git</li> - </ul> - </div> - - <p>Get the source: </p> - <source><![CDATA[git clone https://git-wip-us.apache.org/repos/asf/openmeetings.git]]></source> - <p>Run the command: </p> - <source><![CDATA[mvn clean install -P allModules]]></source> - </section> - - <section name="Run, Develop, Test"> - <p> - To develop Openmeetings you need to import maven project into Eclipse - <img src="images/eclipse-import-maven-project.png" alt="Import OM into Eclipse" width="526" height="394" /> - </p> - </section> - <section name="Check for updates"> - <source>mvn versions:display-dependency-updates</source> - <source>mvn versions:display-plugin-updates</source> - <source>mvn versions:display-property-updates</source> - </section> - <section name="Check dependencies"> - <source>mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.0:analyze-only</source> - </section> - <section name="Tips and Gotchas"> - <p>To compile only client you can run following command: </p> - <source> -<![CDATA[ -mvn install -P allModules -pl openmeetings-flash # compiles a complete package into the folder openmeetings-flash/target -]]> - </source> - <p>In case you would like to develop Openmeetings you need to run <i>"unpacked"</i> build: </p> - <source> -<![CDATA[ -mvn clean install -P allModules,unpacked,mysql,default-db-cred -DskipTests=true -Dwicket.mode=DEVELOPMENT -]]> - </source> - <p>After modifications are made you can run <i>"quick"</i> build: </p> - <source> -<![CDATA[ -mvn install -P allModules,quick,mysql,default-db-cred -pl openmeetings-web -pl openmeetings-server -Dwicket.mode=DEVELOPMENT -]]> - </source> - <p>Any number of projects can be specified during build: </p> - <source> -<![CDATA[ -mvn install -P allModules,quick,mysql,default-db-cred -pl openmeetings-util -pl openmeetings-db -pl openmeetings-core -pl openmeetings-install -pl openmeetings-service -pl openmeetings-web -pl openmeetings-server -pl openmeetings-webservice -Dwicket.mode=DEVELOPMENT -]]> - </source> - <div> - <b>Working behind a proxy:</b> - If you are sitting behind a proxy you should add some proxy settings before starting the build process. - <br /> - <source>git config --global http.proxy http://proxyuser:[email protected]:8080</source> - <ul> - <li>change <tt>proxyuser</tt> to your proxy user</li> - <li>change <tt>proxypwd</tt> to your proxy password</li> - <li>change <tt>proxy.server.com</tt> to the URL of your proxy server</li> - <li>change <tt>8080</tt> to the proxy port configured on your proxy server</li> - </ul> - </div> - </section> - - </body> - +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed 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. + --> +<document xmlns="http://maven.apache.org/XDOC/2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + + <properties> + <title>Build instructions</title> + <author email="[email protected]">Apache OpenMeetings Team</author> + </properties> + + <body> + <section name="Nightly Builds"> + <p> + You can find Nightly Builds of the software at: + <a href="https://builds.apache.org/view/M-R/view/OpenMeetings/" rel="nofollow" target="_blank"> + https://builds.apache.org/view/M-R/view/OpenMeetings/ + </a> + </p> + </section> + + <section name="How to Build a Distribution"> + <div> + <p>To build a binary release of OpenMeetings you need: </p> + <ul> + <li>Oracle JDK8</li> + <li>Apache Maven (minimum) 3.3.9</li> + <li>Git</li> + </ul> + </div> + + <p>Get the source: </p> + <source><![CDATA[git clone https://git-wip-us.apache.org/repos/asf/openmeetings.git]]></source> + <p>Run the command: </p> + <source><![CDATA[mvn clean install -P allModules]]></source> + </section> + + <section name="Run, Develop, Test"> + <p> + To develop Openmeetings you need to import maven project into Eclipse + <img src="images/eclipse-import-maven-project.png" alt="Import OM into Eclipse" width="526" height="394" /> + </p> + </section> + <section name="Check for updates"> + <source>mvn versions:display-dependency-updates</source> + <source>mvn versions:display-plugin-updates</source> + <source>mvn versions:display-property-updates</source> + </section> + <section name="Check dependencies"> + <source>mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.0:analyze-only</source> + </section> + <section name="Tips and Gotchas"> + <p>To compile only client you can run following command: </p> + <source> +<![CDATA[ +mvn install -P allModules -pl openmeetings-flash # compiles a complete package into the folder openmeetings-flash/target +]]> + </source> + <p>In case you would like to develop Openmeetings you need to run <i>"unpacked"</i> build: </p> + <source> +<![CDATA[ +mvn clean install -P allModules,unpacked,mysql,default-db-cred -DskipTests=true -Dwicket.mode=DEVELOPMENT +]]> + </source> + <p>After modifications are made you can run <i>"quick"</i> build: </p> + <source> +<![CDATA[ +mvn install -P allModules,quick,mysql,default-db-cred -pl openmeetings-web -pl openmeetings-server -Dwicket.mode=DEVELOPMENT +]]> + </source> + <p>Any number of projects can be specified during build: </p> + <source> +<![CDATA[ +mvn install -P allModules,quick,mysql,default-db-cred -pl openmeetings-util -pl openmeetings-db -pl openmeetings-core -pl openmeetings-install -pl openmeetings-service -pl openmeetings-web -pl openmeetings-server -pl openmeetings-webservice -Dwicket.mode=DEVELOPMENT +]]> + </source> + <div> + <b>Working behind a proxy:</b> + If you are sitting behind a proxy you should add some proxy settings before starting the build process. + <br /> + <source>git config --global http.proxy http://proxyuser:[email protected]:8080</source> + <ul> + <li>change <tt>proxyuser</tt> to your proxy user</li> + <li>change <tt>proxypwd</tt> to your proxy password</li> + <li>change <tt>proxy.server.com</tt> to the URL of your proxy server</li> + <li>change <tt>8080</tt> to the proxy port configured on your proxy server</li> + </ul> + </div> + </section> + + </body> + </document> \ No newline at end of file
