started filling in conferencing resources and some of the init/shutdown/
install/uninstall operations for Conferencing
This commit is contained in:
parent
6c5e8b9f86
commit
145509a886
|
@ -318,6 +318,10 @@
|
|||
<copy todir="workingarea/conferencing-module">
|
||||
<fileset dir="src/conferencing-module" includes="**/*.properties"/>
|
||||
</copy>
|
||||
<mkdir dir="workingarea/conferencing-module/resources"/>
|
||||
<copy todir="workingarea/conferencing-module/resources">
|
||||
<fileset dir="resources/conferencing-module" includes="**/*"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
|
@ -328,7 +332,7 @@
|
|||
<jar destfile="jars/venice-conferencing.jar" basedir="workingarea/conferencing-module">
|
||||
<manifest>
|
||||
<attribute name="X-Dynamo-Module-Class" value="com.silverwrist.venice.conf.module.ModuleMain"/>
|
||||
<!-- <attribute name="X-Dynamo-Resource-Prefix" value="/resources"/> -->
|
||||
<attribute name="X-Dynamo-Resource-Prefix" value="/resources"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
|
33
resources/conferencing-module/scripts/conferences.js
Normal file
33
resources/conferencing-module/scripts/conferences.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
// The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
// (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.mozilla.org/MPL/>.
|
||||
//
|
||||
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
// WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
// language governing rights and limitations under the License.
|
||||
//
|
||||
// The Original Code is the Venice Web Communities System.
|
||||
//
|
||||
// The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
// for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
// Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
//
|
||||
// Contributor(s):
|
||||
|
||||
importPackage(java.lang);
|
||||
importClass(Packages.com.silverwrist.dynamo.Namespaces);
|
||||
importPackage(Packages.com.silverwrist.dynamo.iface);
|
||||
importPackage(Packages.com.silverwrist.dynamo.util);
|
||||
importClass(Packages.com.silverwrist.venice.VeniceNamespaces);
|
||||
importPackage(Packages.com.silverwrist.venice.content);
|
||||
importPackage(Packages.com.silverwrist.venice.iface);
|
||||
|
||||
req = bsf.lookupBean("request"); // get request
|
||||
rhelp = bsf.lookupBean("request_help"); // get request helper
|
||||
user = vlib.getUser(req); // get user
|
||||
comm = vlib.getCommunity(req); // get community
|
||||
|
||||
// Create the view.
|
||||
rc = new VelocityView("Conference List: " + comm.name,"conf/conferences.vm");
|
||||
rc.setParameter("community",comm);
|
||||
dynamo.scriptOutput(rc);
|
27
resources/conferencing-module/velocity/conferences.vm
Normal file
27
resources/conferencing-module/velocity/conferences.vm
Normal file
|
@ -0,0 +1,27 @@
|
|||
#*
|
||||
The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
(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.mozilla.org/MPL/>.
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
language governing rights and limitations under the License.
|
||||
|
||||
The Original Code is the Venice Web Communities System.
|
||||
|
||||
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
*#
|
||||
#*
|
||||
Parameters:
|
||||
community = The community we're getting the conferences of.
|
||||
*#
|
||||
#header2( "Conference List:" $community.Name )
|
||||
## TEMPORARY
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
||||
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
|
@ -23,6 +23,7 @@ import com.silverwrist.dynamo.except.*;
|
|||
import com.silverwrist.dynamo.iface.*;
|
||||
import com.silverwrist.dynamo.util.*;
|
||||
import com.silverwrist.venice.community.CommunityServiceInstall;
|
||||
import com.silverwrist.venice.util.*;
|
||||
import com.silverwrist.venice.conf.ConfNamespaces;
|
||||
import com.silverwrist.venice.conf.iface.UseCount;
|
||||
|
||||
|
@ -39,6 +40,7 @@ public class ModuleMain implements ModuleFunctions, UseCount
|
|||
|
||||
private static final QualifiedNameKey NAME =
|
||||
new QualifiedNameKey(ConfNamespaces.CONFERENCING_NAMESPACE,"Venice.conferencing");
|
||||
private static final String RESOURCES = "com.silverwrist.venice.conf.module.ModuleMessages";
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
|
@ -48,6 +50,8 @@ public class ModuleMain implements ModuleFunctions, UseCount
|
|||
private int m_usecount = 0;
|
||||
private ModuleSite m_site = null;
|
||||
private Controller m_controller = null;
|
||||
private ComponentShutdown m_res1;
|
||||
private ComponentShutdown m_res2;
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
|
@ -71,7 +75,7 @@ public class ModuleMain implements ModuleFunctions, UseCount
|
|||
|
||||
public String getDescription()
|
||||
{
|
||||
ResourceBundle b = ResourceBundle.getBundle("com.silverwrist.venice.conf.module.ModuleMessages");
|
||||
ResourceBundle b = ResourceBundle.getBundle(RESOURCES);
|
||||
return b.getString("description");
|
||||
|
||||
} // end getDescription
|
||||
|
@ -80,10 +84,28 @@ public class ModuleMain implements ModuleFunctions, UseCount
|
|||
{
|
||||
m_site = site;
|
||||
|
||||
try
|
||||
{ // Mount the resource provider into the resource tree.
|
||||
ResourceProvider module_res = site.getResourceProvider();
|
||||
ResourceProviderManager resmgr = (ResourceProviderManager)(services.queryService(ResourceProviderManager.class));
|
||||
m_res1 = resmgr.mountResourceProvider("/scripts/conf",new PrefixResourceProvider(module_res,"/scripts"));
|
||||
m_res2 = resmgr.mountResourceProvider("/velocity/conf",new PrefixResourceProvider(module_res,"/velocity"));
|
||||
|
||||
} // end try
|
||||
catch (ConfigException e)
|
||||
{ // translate the ConfigException into a ModuleException
|
||||
throw new ModuleException(e);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end initialize
|
||||
|
||||
public void shutdown()
|
||||
{
|
||||
m_res1.shutdown();
|
||||
m_res1 = null;
|
||||
m_res2.shutdown();
|
||||
m_res2 = null;
|
||||
m_site = null;
|
||||
m_controller = null;
|
||||
m_usecount = 0;
|
||||
|
@ -111,6 +133,33 @@ public class ModuleMain implements ModuleFunctions, UseCount
|
|||
|
||||
} // end synchronized block
|
||||
|
||||
ResourceBundle bun = ResourceBundle.getBundle(RESOURCES);
|
||||
|
||||
try
|
||||
{ // Install our community menu options.
|
||||
CommunityMenuInstaller comm_menu = new CommunityMenuInstaller(services);
|
||||
comm_menu.installCommunityServiceEntry((DynamoUser)installer,bun.getString("comm.menu.prompt"),"SERVLET",
|
||||
"conf/conferences.js.vs?cc=${cid}",SHORTVAR);
|
||||
log.info("Installed conferencing option to community left menu");
|
||||
|
||||
} // end try
|
||||
catch (DatabaseException de)
|
||||
{ // database error
|
||||
log.error("Caught database error while installing menus",de);
|
||||
ModuleException me = new ModuleException(ModuleMain.class,"ModuleMessages","install.cmenu.fail",de);
|
||||
me.setParameter(0,de.getMessage());
|
||||
throw me;
|
||||
|
||||
} // end catch
|
||||
catch (DynamoSecurityException dse)
|
||||
{ // security error
|
||||
log.error("Caught security error while installing menus",dse);
|
||||
ModuleException me = new ModuleException(ModuleMain.class,"ModuleMessages","install.cmenu.fail",dse);
|
||||
me.setParameter(0,dse.getMessage());
|
||||
throw me;
|
||||
|
||||
} // end catch
|
||||
|
||||
try
|
||||
{ // Install our community service.
|
||||
CommunityServiceInstall csi = (CommunityServiceInstall)(services.queryService(CommunityServiceInstall.class));
|
||||
|
@ -149,6 +198,30 @@ public class ModuleMain implements ModuleFunctions, UseCount
|
|||
|
||||
} // end catch
|
||||
|
||||
try
|
||||
{ // uninstall the community menus
|
||||
CommunityMenuInstaller comm_menu = new CommunityMenuInstaller(services);
|
||||
comm_menu.removeCommunityServiceEntry((DynamoUser)uninstaller,"conf/conferences.js.vs",SHORTVAR);
|
||||
log.info("Removed conferencing option from community left menu");
|
||||
|
||||
} // end try
|
||||
catch (DatabaseException de)
|
||||
{ // database error
|
||||
log.error("Caught database error while uninstalling menus",de);
|
||||
ModuleException me = new ModuleException(ModuleMain.class,"ModuleMessages","uninstall.cmenu.fail",de);
|
||||
me.setParameter(0,de.getMessage());
|
||||
throw me;
|
||||
|
||||
} // end catch
|
||||
catch (DynamoSecurityException dse)
|
||||
{ // security error
|
||||
log.error("Caught security error while uninstalling menus",dse);
|
||||
ModuleException me = new ModuleException(ModuleMain.class,"ModuleMessages","uninstall.cmenu.fail",dse);
|
||||
me.setParameter(0,dse.getMessage());
|
||||
throw me;
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end uninstall
|
||||
|
||||
public DynamicObject getProvidedObject(String namespace, String name) throws ModuleException
|
||||
|
|
|
@ -16,5 +16,8 @@
|
|||
# ---------------------------------------------------------------------------------
|
||||
# This file has been localized for the en_US locale
|
||||
description=Venice Conferencing System
|
||||
comm.menu.prompt=Conferences
|
||||
install.service.fail=Failed to install community service object: {0}
|
||||
uninstall.service.fail=Failed to uninstall community service object: {0}
|
||||
install.cmenu.fail=Failed to install community menu items: {0}
|
||||
uninstall.cmenu.fail=Failed to uninstall community menu items: {0}
|
||||
|
|
|
@ -55,4 +55,10 @@ public class ModuleException extends ExternalException
|
|||
|
||||
} // end constructor
|
||||
|
||||
public ModuleException(ConfigException e)
|
||||
{
|
||||
super(e);
|
||||
|
||||
} // end constructor
|
||||
|
||||
} // end class ModuleException
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
* (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.mozilla.org/MPL/>.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Venice Web Communities System.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
* Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.dynamo.util;
|
||||
|
||||
import java.io.*;
|
||||
import com.silverwrist.dynamo.iface.*;
|
||||
|
||||
public class PrefixResourceProvider implements ResourceProvider
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private ResourceProvider m_inner;
|
||||
private String m_prefix;
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public PrefixResourceProvider(ResourceProvider inner, String prefix)
|
||||
{
|
||||
m_inner = inner;
|
||||
m_prefix = prefix;
|
||||
while ((m_prefix.length()>0) && m_prefix.endsWith("/"))
|
||||
m_prefix = m_prefix.substring(0,m_prefix.length()-1);
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface ResourceProvider
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public InputStream getResource(String resource_path) throws IOException
|
||||
{
|
||||
return m_inner.getResource(m_prefix + resource_path);
|
||||
|
||||
} // end getResource
|
||||
|
||||
public long getResourceModTime(String resource_path)
|
||||
{
|
||||
return m_inner.getResourceModTime(m_prefix + resource_path);
|
||||
|
||||
} // end getResourceModTime
|
||||
|
||||
} // end class PrefixResourceProvider
|
|
@ -43,7 +43,7 @@ public class CommunityMenuInstaller
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
CommunityMenuInstaller(ServiceProvider services)
|
||||
public CommunityMenuInstaller(ServiceProvider services)
|
||||
{
|
||||
m_provider = (MenuProvider)(services.queryService(MenuProvider.class));
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ public class SystemAdminMenuInstaller
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
SystemAdminMenuInstaller(ServiceProvider services)
|
||||
public SystemAdminMenuInstaller(ServiceProvider services)
|
||||
{
|
||||
m_provider = (MenuProvider)(services.queryService(MenuProvider.class));
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user