- upgrade bigbluebutton-web to grails 2.3.6

This commit is contained in:
Richard Alam 2014-02-25 15:46:06 +00:00
parent 944f7a15c4
commit 6cf30e9f07
210 changed files with 5548 additions and 14528 deletions

0
bigbluebutton-web/COPYING.LESSER Normal file → Executable file
View File

0
bigbluebutton-web/INSTALL Normal file → Executable file
View File

View File

@ -1,4 +0,0 @@
Testing:
How to run the presentation conversion unit tests.
grails test-app org.bigbluebutton.presentation.imp.*

View File

@ -1,76 +0,0 @@
println "meetme begin"
number = channel.getData("conf-getconfno", 10000, 10)
conf = db.firstRow("SELECT * FROM conference WHERE conference_number=$number")
if (conf) println "found one! " + conf.conference_name
if (conf) {
pin = channel.getData("conf-getpin", 10000)
println pin
println conf.pin
if (pin.toInteger() == conf.pin) {
channel.streamFile("conf-placeintoconf")
channel.exec("Meetme", "$number|dMq")
} else {
channel.streamFile("conf-invalidpin")
}
} else {
channel.streamFile("conf-invalid")
}
/*
//channel.streamFile("conf-adminmenu")
//channel.streamFile("conf-banned")
//channel.streamFile("conf-enteringno")
//channel.streamFile("conference-call")
//channel.streamFile("conference")
//channel.streamFile("conference-reservations")
//channel.streamFile("conf-errormenu")
channel.streamFile("conf-full")
//channel.streamFile("conf-getchannel")
channel.streamFile("conf-getpin")
//channel.streamFile("conf-hasentered")
//channel.streamFile("conf-hasjoin")
//channel.streamFile("conf-hasleft")
channel.streamFile("conf-invalid")
channel.streamFile("confirm-number-is")
//channel.streamFile("conf-kicked")
//channel.streamFile("conf-leaderhasleft")
//channel.streamFile("conf-locked")
//channel.streamFile("conf-lockednow")
//channel.streamFile("conf-muted")
//channel.streamFile("conf-noempty")
//channel.streamFile("conf-onlyone")
//channel.streamFile("conf-onlyperson")
//channel.streamFile("conf-onlypersonleft")
//channel.streamFile("conf-otherinparty")
//channel.streamFile("conf-peopleinconf")
//channel.streamFile("conf-recordings")
//channel.streamFile("conf-sysop")
//channel.streamFile("conf-sysopreqcancelled")
//channel.streamFile("conf-sysopreq")
channel.streamFile("conf-thereare")
//channel.streamFile("conf-unlockednow")
//channel.streamFile("conf-unmuted")
//channel.streamFile("conf-usermenu")
//channel.streamFile("conf-userswilljoin")
//channel.streamFile("conf-userwilljoin")
channel.streamFile("conf-waitforleader")
channel.streamFile("conf-youareinconfnum")
*/
println "meetme end"
def getDigits(int number) {
StringBuffer sb = new StringBuffer()
for (int t = 0; t < number; t++) {
sb.append(channel.waitForDigit(10000))
}
return sb.toString()
}

View File

@ -1,7 +1,6 @@
#Grails Metadata file #Grails Metadata file
#Thu Jun 06 12:32:30 PDT 2013 #Tue Feb 25 00:47:48 UTC 2014
app.grails.version=1.3.9 app.grails.version=2.3.6
app.name=bigbluebutton app.name=bigbluebutton
app.servlet.version=2.4 app.servlet.version=3.0
app.version=0.70dev app.version=0.1
plugins.tomcat=1.3.9

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/bigbluebutton"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;bigbluebutton&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GRAILS_HOME/dist/grails-bootstrap-1.1.1.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;GRAILS_HOME/lib/groovy-all-1.6.3.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="grails.util.GrailsMain"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="bigbluebutton"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dbase.dir=&quot;${project_loc:bigbluebutton}&quot; -Dserver.port=8080 -Dgrails.env=development"/>
</launchConfiguration>

View File

@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>documents</key>
<array>
<dict>
<key>filename</key>
<string>bigbluebutton.launch</string>
</dict>
<dict>
<key>filename</key>
<string>build.xml</string>
</dict>
<dict>
<key>name</key>
<string>grails-app</string>
<key>regexFolderFilter</key>
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
<key>sourceDirectory</key>
<string>grails-app</string>
</dict>
<dict>
<key>name</key>
<string>test</string>
<key>regexFolderFilter</key>
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
<key>sourceDirectory</key>
<string>test</string>
</dict>
<dict>
<key>name</key>
<string>lib</string>
<key>regexFolderFilter</key>
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
<key>sourceDirectory</key>
<string>lib</string>
</dict>
<dict>
<key>name</key>
<string>scripts</string>
<key>regexFolderFilter</key>
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
<key>sourceDirectory</key>
<string>scripts</string>
</dict>
<dict>
<key>name</key>
<string>src</string>
<key>regexFolderFilter</key>
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
<key>sourceDirectory</key>
<string>src</string>
</dict>
<dict>
<key>name</key>
<string>web-app</string>
<key>regexFolderFilter</key>
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
<key>sourceDirectory</key>
<string>web-app</string>
</dict>
</array>
<key>fileHierarchyDrawerWidth</key>
<integer>200</integer>
<key>metaData</key>
<dict/>
<key>showFileHierarchyDrawer</key>
<true/>
<key>windowFrame</key>
<string>{{237, 127}, {742, 553}}</string>
</dict>
</plist>

View File

@ -1,10 +1,10 @@
usePlugin 'java' apply plugin: 'java'
usePlugin 'eclipse' apply plugin: 'eclipse'
task resolveDeps(dependsOn: configurations.default.buildArtifacts, type: Copy) { task resolveDeps(type: Copy) {
into('lib') into('lib')
from configurations.default from configurations.default
from configurations.default.allArtifacts*.file from configurations.default.allArtifacts.file
} }
repositories { repositories {
@ -42,9 +42,15 @@ dependencies {
compile 'commons-pool:commons-pool:1.5.6' compile 'commons-pool:commons-pool:1.5.6'
compile 'commons-lang:commons-lang:2.5' compile 'commons-lang:commons-lang:2.5'
compile 'com.google.code.gson:gson:1.7.1' compile 'com.google.code.gson:gson:1.7.1'
compile 'org.springframework.amqp:spring-rabbit:1.2.0.RELEASE@jar'
// Logging
// compile 'ch.qos.logback:logback-core:1.0.9@jar'
// compile 'ch.qos.logback:logback-classic:1.0.9@jar'
// compile 'org.slf4j:log4j-over-slf4j:1.7.2@jar'
// compile 'org.slf4j:jcl-over-slf4j:1.7.2@jar'
// compile 'org.slf4j:jul-to-slf4j:1.7.2@jar'
// compile 'org.slf4j:slf4j-api:1.7.2@jar'
//junit //junit
compile 'junit:junit:4.8.2' compile 'junit:junit:4.8.2'
} }

View File

@ -1,62 +0,0 @@
<project name="bigbluebutton" default="run">
<condition property="grails" value="grails.bat">
<os family="windows"/>
</condition>
<property name="grails" value="grails" />
<!-- =================================
target: clean
================================= -->
<target name="clean" description="--> Cleans a Grails application">
<exec executable="${grails}" failonerror="true">
<arg value="clean"/>
</exec>
</target>
<!-- =================================
target: war
================================= -->
<target name="war" description="--> Creates a WAR of a Grails application">
<exec executable="${grails}" failonerror="true">
<arg value="war"/>
</exec>
</target>
<!-- =================================
target: test
================================= -->
<target name="test" description="--> Run a Grails applications unit tests">
<exec executable="${grails}" failonerror="true">
<arg value="test-app"/>
</exec>
</target>
<!-- =================================
target: run
================================= -->
<!-- Check whether Tomcat is running -->
<target name="check-port-8080" description="Check whether tomcat6 is running">
<echo message="Checking whether tomcat6 is running before doing 'grails run-app'"/>
<condition property="tomcat.running">
<socket server="127.0.0.1" port="8080"/>
</condition>
</target>
<target name="run" depends="check-port-8080" description="--> Run a Grails applications unit tests">
<fail message="Detected that tomcat6 is running on port 8080. Stop tomcat6 then try again." if="tomcat.running" />
<echo message="Running grails ..." />
<exec executable="${grails}" failonerror="true">
<arg value="run-app"/>
</exec>
</target>
<!-- =================================
target: deploy
================================= -->
<target name="deploy" depends="war" description="--> The deploy target (initially empty)">
<!-- TODO -->
</target>
</project>

View File

@ -0,0 +1,5 @@
modules = {
application {
resource url:'js/application.js'
}
}

View File

@ -1,30 +1,7 @@
/**
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
*
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3.0 of the License, or (at your option) any later
* version.
*
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
*
*/
class BootStrap { class BootStrap {
def jmsContainer
def init = { servletContext ->
def init = { servletContext -> }
log.debug "Bootstrapping bbb-web" def destroy = {
} }
}
def destroy = {
}
}

View File

@ -1,35 +1,72 @@
/** grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ grails.project.class.dir = "target/classes"
* grails.project.test.class.dir = "target/test-classes"
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). grails.project.test.reports.dir = "target/test-reports"
* grails.project.work.dir = "target/work"
* This program is free software; you can redistribute it and/or modify it under the grails.project.target.level = 1.6
* terms of the GNU Lesser General Public License as published by the Free Software grails.project.source.level = 1.6
* Foundation; either version 3.0 of the License, or (at your option) any later //grails.project.war.file = "target/${appName}-${appVersion}.war"
* version.
* grails.project.fork = [
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A // compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* // configure settings for the test-app JVM, uses the daemon by default
* You should have received a copy of the GNU Lesser General Public License along test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. // configure settings for the run-app JVM
* run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
*/ // configure settings for the run-war JVM
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
// configure settings for the Console UI JVM
// This closure is to enable logging in production. console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
// This closure is passed the location of the staging directory that ]
// is zipped up to make the WAR file, and the command line arguments.
// Here we copy over oug log4j.properties file while the web.xml is grails.project.dependency.resolver = "maven" // or ivy
// overridden from what's in src/templates/war/web.xml. grails.project.dependency.resolution = {
// (ralam, jan 7, 2010) // inherit Grails' default dependencies
grails.war.resources = {stagingDir, args -> inherits("global") {
//println '*** Copying our custom web.xml and log4j.properties as workaround for logging problem. ***' // specify dependency exclusions here; for example, uncomment this to disable ehcache:
//println '*** Copying our custom web.xml as workaround for logging problem. ***' // excludes 'ehcache'
//copy(file: "grails-app/conf/custom-web.xml", tofile: "${stagingDir}/WEB-INF/web.xml") }
println '*** Copying our custom log4j.properties as workaround for logging problem. ***' log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
copy(file: "grails-app/conf/log4j.properties", tofile: "${stagingDir}/WEB-INF/classes/log4j.properties") checksums true // Whether to verify checksums on resolve
} legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility
repositories {
inherits true // Whether to inherit repository definitions from plugins
grailsPlugins()
grailsHome()
mavenLocal()
grailsCentral()
mavenCentral()
// uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
//mavenRepo "http://repository.codehaus.org"
//mavenRepo "http://download.java.net/maven/2/"
//mavenRepo "http://repository.jboss.com/maven2/"
}
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
// runtime 'mysql:mysql-connector-java:5.1.24'
}
plugins {
// plugins for the build system only
build ":tomcat:7.0.42"
// plugins for the compile step
compile ":scaffolding:2.0.0"
compile ':cache:1.1.1'
// plugins needed at runtime but not for compilation
runtime ":hibernate:3.6.10.1" // or ":hibernate4:4.1.11.1"
runtime ":database-migration:1.3.5"
runtime ":jquery:1.10.2"
runtime ":resources:1.2"
// Uncomment these (or add new ones) to enable additional resources capabilities
//runtime ":zipped-resources:1.0.1"
//runtime ":cached-resources:1.1"
//runtime ":yui-minify-resources:0.1.5"
}
}

View File

@ -1,99 +1,117 @@
/** // locations to search for config files that get merged into the main config;
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ // config files can be ConfigSlurper scripts, Java properties files, or classes
* // in the classpath in ConfigSlurper format
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3.0 of the License, or (at your option) any later
* version.
*
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
*
*/
// locations to search for config files that get merged into the main config
// config files can either be Java properties files or ConfigSlurper scripts
// grails.config.locations = [ "classpath:${appName}-config.properties", // grails.config.locations = [ "classpath:${appName}-config.properties",
// "classpath:${appName}-config.groovy", // "classpath:${appName}-config.groovy",
// "file:${userHome}/.grails/${appName}-config.properties", // "file:${userHome}/.grails/${appName}-config.properties",
// "file:${userHome}/.grails/${appName}-config.groovy"] // "file:${userHome}/.grails/${appName}-config.groovy"]
grails.config.locations = [ "classpath:bigbluebutton.properties"] // if (System.properties["${appName}.config.location"]) {
// grails.config.locations = [ "classpath:bigbluebutton.properties"]
// if(System.properties["${appName}.config.location"]) {
// grails.config.locations << "file:" + System.properties["${appName}.config.location"] // grails.config.locations << "file:" + System.properties["${appName}.config.location"]
// } // }
grails.mime.file.extensions = true // enables the parsing of file extensions from URLs into the request format grails.config.locations = [ "classpath:bigbluebutton.properties"]
grails.mime.types = [ html: ['text/html','application/xhtml+xml'],
xml: ['text/xml', 'application/xml'],
text: 'text-plain',
js: 'text/javascript',
rss: 'application/rss+xml',
atom: 'application/atom+xml',
css: 'text/css',
csv: 'text/csv',
all: '*/*',
json: ['application/json','text/json'],
form: 'application/x-www-form-urlencoded',
multipartForm: 'multipart/form-data'
]
// The default codec used to encode data with ${}
grails.views.default.codec="none" // none, html, base64
grails.views.gsp.encoding="UTF-8"
grails.converters.encoding="UTF-8"
grails.project.groupId = appName // change this to alter the default package name and Maven publishing destination
// The ACCEPT header will not be used for content negotiation for user agents containing the following strings (defaults to the 4 major rendering engines)
grails.mime.disable.accept.header.userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident']
grails.mime.types = [
all: '*/*',
atom: 'application/atom+xml',
css: 'text/css',
csv: 'text/csv',
form: 'application/x-www-form-urlencoded',
html: ['text/html','application/xhtml+xml'],
js: 'text/javascript',
json: ['application/json', 'text/json'],
multipartForm: 'multipart/form-data',
rss: 'application/rss+xml',
text: 'text/plain',
hal: ['application/hal+json','application/hal+xml'],
xml: ['text/xml', 'application/xml']
]
// URL Mapping Cache Max Size, defaults to 5000
//grails.urlmapping.cache.maxsize = 1000
// What URL patterns should be processed by the resources plugin
grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*']
// Legacy setting for codec used to encode data with ${}
grails.views.default.codec = "html"
// The default scope for controllers. May be prototype, session or singleton.
// If unspecified, controllers are prototype scoped.
grails.controllers.defaultScope = 'singleton'
// GSP settings
grails {
views {
gsp {
encoding = 'UTF-8'
htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping
codecs {
expression = 'html' // escapes values inside ${}
scriptlet = 'html' // escapes output from scriptlets in GSPs
taglib = 'none' // escapes output from taglibs
staticparts = 'none' // escapes output from static template parts
}
}
// escapes all not-encoded output at final stage of outputting
filteringCodecForContentType {
//'text/html' = 'html'
}
}
}
grails.converters.encoding = "UTF-8"
// scaffolding templates configuration
grails.scaffolding.templates.domainSuffix = 'Instance'
// Set to false to use the new Grails 1.2 JSONBuilder in the render method
grails.json.legacy.builder = false
// enabled native2ascii conversion of i18n properties files // enabled native2ascii conversion of i18n properties files
grails.enable.native2ascii = true grails.enable.native2ascii = true
// packages to include in Spring bean scanning
grails.spring.bean.packages = []
// whether to disable processing of multi part requests
grails.web.disable.multipart=false
// request parameters to mask when logging exceptions
grails.exceptionresolver.params.exclude = ['password']
// configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true')
grails.hibernate.cache.queries = false
environments { environments {
development { development {
grails.serverURL = "http://localhost:8080" grails.logging.jul.usebridge = true
} }
production { production {
grails.serverURL = "http://localhost:8080" grails.logging.jul.usebridge = false
} // TODO: grails.serverURL = "http://www.changeme.com"
test { }
}
} }
// Use own log4j.properties for logging as it seems there is a // log4j configuration
// problem with logging on production using the DSL. This works
// ok when ran using "grails run-war"
// (ralam - jan 7, 2010)
//log4j configuration
log4j = { log4j = {
appenders { // Example of changing the log pattern for the default console appender:
rollingFile name:'logfileAppender', maxFileSize:500000, file:"/tmp/bbb-web.log" //
console name:'consoleAppender', layout:pattern(conversionPattern: '%d{[dd.MM.yy HH:mm:ss.SSS]} %-5p %c %x - %m%n') //appenders {
} // console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
//}
root { error 'org.codehaus.groovy.grails.web.servlet', // controllers
warn 'logfileAppender', 'consoleAppender' 'org.codehaus.groovy.grails.web.pages', // GSP
additivity = true 'org.codehaus.groovy.grails.web.sitemesh', // layouts
} 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
warn 'org.codehaus.groovy.grails.web.servlet', // controllers 'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.web.pages', // GSP 'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.web.sitemesh', // layouts 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping 'org.springframework',
'org.codehaus.groovy.grails.web.mapping', // URL mapping 'org.hibernate',
'org.codehaus.groovy.grails.commons', // core / classloading 'net.sf.ehcache.hibernate'
'org.codehaus.groovy.grails.plugins', // plugins debug 'org.bigbluebutton'
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'org.mortbay.log'
debug 'grails.app',
'org.bigbluebutton'
// additivity.StackTrace=false
} }

27
bigbluebutton-web/grails-app/conf/DataSource.groovy Normal file → Executable file
View File

@ -1,32 +1,45 @@
dataSource { dataSource {
pooled = true pooled = true
driverClassName = "org.hsqldb.jdbcDriver" driverClassName = "org.h2.Driver"
username = "sa" username = "sa"
password = "" password = ""
} }
hibernate { hibernate {
cache.use_second_level_cache = true cache.use_second_level_cache = true
cache.use_query_cache = true cache.use_query_cache = false
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
// cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
} }
// environment specific settings // environment specific settings
environments { environments {
development { development {
dataSource { dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update' dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:hsqldb:mem:devDB" url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
} }
} }
test { test {
dataSource { dataSource {
dbCreate = "update" dbCreate = "update"
url = "jdbc:hsqldb:mem:testDb" url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
} }
} }
production { production {
dataSource { dataSource {
dbCreate = "update" dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true" url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=false
validationQuery="SELECT 1"
jdbcInterceptors="ConnectionState"
}
} }
} }
} }

View File

@ -1,73 +1,53 @@
/** class UrlMappings {
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
* static mappings = {
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). "/presentation/upload"(controller:"presentation") {
* action = [GET:'show', POST:'upload', DELETE:'delete']
* This program is free software; you can redistribute it and/or modify it under the }
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3.0 of the License, or (at your option) any later "/presentation/test-convert"(controller:"presentation") {
* version. action = [GET:'testConversion']
* }
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A "/presentation/$conference/$room/$presentation_name/slides"(controller:"presentation") {
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. action = [GET:'numberOfSlides']
* }
* You should have received a copy of the GNU Lesser General Public License along
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. "/presentation/$conference/$room/$presentation_name/slide/$id"(controller:"presentation") {
* action = [GET:'showSlide']
*/ }
class UrlMappings { "/presentation/$conference/$room/$presentation_name/thumbnails"(controller:"presentation") {
static mappings = { action = [GET:'numberOfThumbnails']
}
"/presentation/upload"(controller:"presentation") {
action = [GET:'show', POST:'upload', DELETE:'delete'] "/presentation/$conference/$room/$presentation_name/thumbnail/$id"(controller:"presentation") {
} action = [GET:'showThumbnail']
}
"/presentation/test-convert"(controller:"presentation") {
action = [GET:'testConversion'] "/presentation/$conference/$room/$presentation_name/textfiles"(controller:"presentation") {
} action = [GET:'numberOfTextfiles']
}
"/presentation/$conference/$room/$presentation_name/slides"(controller:"presentation") {
action = [GET:'numberOfSlides'] "/presentation/$conference/$room/$presentation_name/textfile/$id"(controller:"presentation") {
} action = [GET:'showTextfile']
}
"/presentation/$conference/$room/$presentation_name/slide/$id"(controller:"presentation") {
action = [GET:'showSlide'] "/api/setConfigXML"(controller:"api") {
} action = [POST:'setConfigXML']
}
"/presentation/$conference/$room/$presentation_name/thumbnails"(controller:"presentation") {
action = [GET:'numberOfThumbnails'] "/api/setPollXML"(controller:"api") {
} action = [POST:'setPollXML']
}
"/presentation/$conference/$room/$presentation_name/thumbnail/$id"(controller:"presentation") {
action = [GET:'showThumbnail'] "/$controller/$action?/$id?(.${format})?"{
} constraints {
// apply constraints here
"/presentation/$conference/$room/$presentation_name/textfiles"(controller:"presentation") { }
action = [GET:'numberOfTextfiles'] }
}
"/"(view:"/index")
"/presentation/$conference/$room/$presentation_name/textfile/$id"(controller:"presentation") { "500"(view:'/error')
action = [GET:'showTextfile'] }
} }
"/api/setConfigXML"(controller:"api") {
action = [POST:'setConfigXML']
}
"/api/setPollXML"(controller:"api") {
action = [POST:'setPollXML']
}
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"500"(view:'/error')
"/" (controller: 'conference', action: 'list')
}
}

View File

@ -1,180 +1,180 @@
# #
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ # BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
# #
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). # Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
# #
# This program is free software; you can redistribute it and/or modify it under the # This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software # terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later # Foundation; either version 3.0 of the License, or (at your option) any later
# version. # version.
# #
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY # BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. # PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License along # You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. # with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
# #
# #
# These are the default properites for BigBlueButton Web application # These are the default properites for BigBlueButton Web application
#---------------------------------------------------- #----------------------------------------------------
# Directory where BigBlueButton stores uploaded slides # Directory where BigBlueButton stores uploaded slides
presentationDir=/var/bigbluebutton presentationDir=/var/bigbluebutton
#---------------------------------------------------- #----------------------------------------------------
# Directory where SWFTOOLS (pdf2swf, jpeg2swf, png2swf) are located # Directory where SWFTOOLS (pdf2swf, jpeg2swf, png2swf) are located
swfToolsDir=/bin swfToolsDir=/bin
#---------------------------------------------------- #----------------------------------------------------
# Directory where ImageMagick's convert executable is located # Directory where ImageMagick's convert executable is located
imageMagickDir=/usr/bin imageMagickDir=/usr/bin
#---------------------------------------------------- #----------------------------------------------------
# Use fullpath to ghostscript executable since the exec names are different # Use fullpath to ghostscript executable since the exec names are different
# for each platform. # for each platform.
ghostScriptExec=/usr/bin/gs ghostScriptExec=/usr/bin/gs
#---------------------------------------------------- #----------------------------------------------------
# Fonts directory passed into PDF2SWF to support highlighting of texts # Fonts directory passed into PDF2SWF to support highlighting of texts
# in the SWF slides. # in the SWF slides.
fontsDir=/usr/share/fonts fontsDir=/usr/share/fonts
#---------------------------------------------------- #----------------------------------------------------
# This is a workaround for a problem converting PDF files, referenced at # This is a workaround for a problem converting PDF files, referenced at
# http://groups.google.com/group/comp.lang.postscript/browse_thread/thread/c2e264ca76534ce0?pli=1 # http://groups.google.com/group/comp.lang.postscript/browse_thread/thread/c2e264ca76534ce0?pli=1
noPdfMarkWorkaround=/etc/bigbluebutton/nopdfmark.ps noPdfMarkWorkaround=/etc/bigbluebutton/nopdfmark.ps
#---------------------------------------------------- #----------------------------------------------------
# These will be copied in cases where the conversion process # These will be copied in cases where the conversion process
# fails to generate a slide from the uploaded presentation # fails to generate a slide from the uploaded presentation
BLANK_SLIDE=/var/bigbluebutton/blank/blank-slide.swf BLANK_SLIDE=/var/bigbluebutton/blank/blank-slide.swf
BLANK_THUMBNAIL=/var/bigbluebutton/blank/blank-thumb.png BLANK_THUMBNAIL=/var/bigbluebutton/blank/blank-thumb.png
#---------------------------------------------------- #----------------------------------------------------
# Number of minutes the conversion should take. If it takes # Number of minutes the conversion should take. If it takes
# more than this time, cancel the conversion process. # more than this time, cancel the conversion process.
maxConversionTime=5 maxConversionTime=5
#---------------------------------------------------- #----------------------------------------------------
# Maximum number of pages allowed for an uploaded presentation (default 100). # Maximum number of pages allowed for an uploaded presentation (default 100).
maxNumPages=200 maxNumPages=200
#---------------------------------------------------- #----------------------------------------------------
# Maximum swf file size for load to the client (default 500000). # Maximum swf file size for load to the client (default 500000).
MAX_SWF_FILE_SIZE=500000 MAX_SWF_FILE_SIZE=500000
# Default number of digits for voice conference users joining through the PSTN. # Default number of digits for voice conference users joining through the PSTN.
defaultNumDigitsForTelVoice=5 defaultNumDigitsForTelVoice=5
#---------------------------------------------------- #----------------------------------------------------
# Default dial access number # Default dial access number
defaultDialAccessNumber=613-555-1234 defaultDialAccessNumber=613-555-1234
#---------------------------------------------------- #----------------------------------------------------
# Default welcome message to display when the participant joins the web # Default welcome message to display when the participant joins the web
# conference. This is only used for the old scheduling which will be # conference. This is only used for the old scheduling which will be
# removed in the future. Use the API to create a conference. # removed in the future. Use the API to create a conference.
defaultWelcomeMessage=<br>Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="event:http://www.bigbluebutton.org/content/videos"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br> defaultWelcomeMessage=<br>Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="event:http://www.bigbluebutton.org/content/videos"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br>
defaultWelcomeMessageFooter=This server is running <a href="https://code.google.com/p/bigbluebutton/wiki/081Overview" target="_blank"><u>BigBlueButton 0.81</u></a>. defaultWelcomeMessageFooter=This server is running a <a href="https://code.google.com/p/bigbluebutton/wiki/081Overview" target="_blank"><u>BigBlueButton 0.81-RC</u></a>.
# Default maximum number of users a meeting can have. # Default maximum number of users a meeting can have.
# Doesn't get enforced yet but is the default value when the create # Doesn't get enforced yet but is the default value when the create
# API doesn't pass a value. # API doesn't pass a value.
defaultMaxUsers=20 defaultMaxUsers=20
# Default duration of the meeting in minutes. # Default duration of the meeting in minutes.
# Current default is 0 (meeting doesn't end). # Current default is 0 (meeting doesn't end).
defaultMeetingDuration=0 defaultMeetingDuration=0
# Remove the meeting from memory when the end API is called. # Remove the meeting from memory when the end API is called.
# This allows 3rd-party apps to recycle the meeting right-away # This allows 3rd-party apps to recycle the meeting right-away
# instead of waiting for the meeting to expire (see below). # instead of waiting for the meeting to expire (see below).
removeMeetingWhenEnded=true removeMeetingWhenEnded=true
# The number of minutes before the system removes the meeting from memory. # The number of minutes before the system removes the meeting from memory.
defaultMeetingExpireDuration=1 defaultMeetingExpireDuration=1
# The number of minutes the system waits when a meeting is created and when # The number of minutes the system waits when a meeting is created and when
# a user joins. If after this period, a user hasn't joined, the meeting is # a user joins. If after this period, a user hasn't joined, the meeting is
# removed from memory. # removed from memory.
defaultMeetingCreateJoinDuration=5 defaultMeetingCreateJoinDuration=5
# Disable recording by default. # Disable recording by default.
# true - don't record even if record param in the api call is set to record # true - don't record even if record param in the api call is set to record
# false - when record param is passed from api, override this default # false - when record param is passed from api, override this default
disableRecordingDefault=false disableRecordingDefault=false
#---------------------------------------------------- #----------------------------------------------------
# This URL is where the BBB client is accessible. When a user sucessfully # This URL is where the BBB client is accessible. When a user sucessfully
# enters a name and password, she is redirected here to load the client. # enters a name and password, she is redirected here to load the client.
bigbluebutton.web.serverURL=http://192.168.153.139 bigbluebutton.web.serverURL=http://192.168.0.150
#---------------------------------------------------- #----------------------------------------------------
# Assign URL where the logged-out participant will be redirected after sign-out. # Assign URL where the logged-out participant will be redirected after sign-out.
# If "default", it returns to bigbluebutton.web.serverURL # If "default", it returns to bigbluebutton.web.serverURL
bigbluebutton.web.logoutURL=default bigbluebutton.web.logoutURL=default
# The url of the BigBlueButton client. User's will be redirected here when # The url of the BigBlueButton client. User's will be redirected here when
# successfully joining the meeting. # successfully joining the meeting.
defaultClientUrl=${bigbluebutton.web.serverURL}/client/BigBlueButton.html defaultClientUrl=${bigbluebutton.web.serverURL}/client/BigBlueButton.html
#defaultClientUrl=http://192.168.0.235/3rd-party.html #defaultClientUrl=http://192.168.0.235/3rd-party.html
# The default avatar image to display if nothing is passed on the JOIN API (avatarURL) # The default avatar image to display if nothing is passed on the JOIN API (avatarURL)
# call. This avatar is displayed if the user isn't sharing the webcam and # call. This avatar is displayed if the user isn't sharing the webcam and
# the option (displayAvatar) is enabled in config.xml # the option (displayAvatar) is enabled in config.xml
defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png
# The URL of the default configuration # The URL of the default configuration
defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
apiVersion=0.81 apiVersion=0.81
# Salt which is used by 3rd-party apps to authenticate api calls # Salt which is used by 3rd-party apps to authenticate api calls
securitySalt=873b4c35e992f3e54c374412082934b6 securitySalt=0c3eaac5b455b4353ec826fce1657ad8
# Directory where we drop the <meeting-id-recorded>.done file # Directory where we drop the <meeting-id-recorded>.done file
recordStatusDir=/var/bigbluebutton/recording/status/recorded recordStatusDir=/var/bigbluebutton/recording/status/recorded
redisHost=127.0.0.1 redisHost=127.0.0.1
redisPort=6379 redisPort=6379
# The directory where the published/unpublised recordings are located. This is for # The directory where the published/unpublised recordings are located. This is for
# the get recording* api calls # the get recording* api calls
publishedDir=/var/bigbluebutton/published publishedDir=/var/bigbluebutton/published
unpublishedDir=/var/bigbluebutton/unpublished unpublishedDir=/var/bigbluebutton/unpublished
# If the API is enabled. # If the API is enabled.
serviceEnabled = true serviceEnabled = true
# Test voiceBridge number # Test voiceBridge number
testVoiceBridge=99999 testVoiceBridge=99999
testConferenceMock=conference-mock-default testConferenceMock=conference-mock-default
#------------------------------------------------------ #------------------------------------------------------
# These properties are used to test the conversion process. # These properties are used to test the conversion process.
# Conference name folder in ${presentationDir} (see above) # Conference name folder in ${presentationDir} (see above)
beans.presentationService.testConferenceMock=${testConferenceMock} beans.presentationService.testConferenceMock=${testConferenceMock}
# Conference room folder in ${presentationDir}/${testConferenceMock} # Conference room folder in ${presentationDir}/${testConferenceMock}
beans.presentationService.testRoomMock=conference-mock-default beans.presentationService.testRoomMock=conference-mock-default
# Uploaded presentation name # Uploaded presentation name
beans.presentationService.testPresentationName=appkonference beans.presentationService.testPresentationName=appkonference
# Uploaded presentation file # Uploaded presentation file
beans.presentationService.testUploadedPresentation=appkonference.txt beans.presentationService.testUploadedPresentation=appkonference.txt
# Default Uploaded presentation file # Default Uploaded presentation file
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf
#---------------------------------------------------- #----------------------------------------------------
# Inject values into grails service beans # Inject values into grails service beans
beans.presentationService.presentationDir=${presentationDir} beans.presentationService.presentationDir=${presentationDir}
#---------------------------------------------------- #----------------------------------------------------
# Specify which IPs can do cross domain requests # Specify which IPs can do cross domain requests
accessControlAllowOrigin=${bigbluebutton.web.serverURL} accessControlAllowOrigin=${bigbluebutton.web.serverURL}
#---------------------------------------------------- #----------------------------------------------------
# The lapsus of seconds for polling the BBB Server in order to check if it's down. # The lapsus of seconds for polling the BBB Server in order to check if it's down.
# After 5 tries if there isn't response, it will be declared down # After 5 tries if there isn't response, it will be declared down
checkBBBServerEvery=10 checkBBBServerEvery=10

View File

@ -1,69 +0,0 @@
#
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
#
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
#
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
#
# This custom log4j.properties file is a workaround for problem with logging when
# deployed to Tomcat. This goes hand-in-hand with src/templates/war/web.xml
# Taken from /home/firstuser/dev/tools/grails-1.1.1/src/war/WEB-INF/log4j.properties (ralam - jan 6, 2010)
log4j.rootLogger=DEBUG, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
# Keep 20 days of logs
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.Append=true
log4j.appender.logfile.File=/var/log/bigbluebutton/bbb-web.log
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.MaxBackupIndex=20
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.org.codehaus.groovy.grails.web.servlet=WARN
log4j.logger.org.codehaus.groovy.grails.web.pages=WARN
log4j.logger.org.codehaus.groovy.grails.web.sitemesh=WARN
log4j.logger.org.codehaus.groovy.grails.web.mapping.filter=WARN
log4j.logger.org.codehaus.groovy.grails.web.mapping=WARN
log4j.logger.org.codehaus.groovy.grails.web.binding=WARN
log4j.logger.org.codehaus.groovy.grails.commons=WARN
log4j.logger.org.codehaus.groovy.grails.plugins=WARN
log4j.logger.org.codehaus.groovy.grails.orm.hibernate=WARN
log4j.logger.org.codehaus.groovy.grails.context.support=WARN
# Spring
log4j.logger.org.springframework=WARN
# Hibernate
log4j.logger.org.hibernate=WARN
# Mortbay
log4j.logger.org.mortbay.log=WARN
# ActiveMQ
log4j.logger.org.apache.activemq=WARN
# JSecurity
log4j.logger.org.jsecurity=WARN
# BigBlueButton
log4j.logger.org.bigbluebutton=DEBUG
log4j.logger.grails.app.controller=DEBUG
log4j.logger.grails.app.service=DEBUG

View File

@ -1,110 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
This program is free software; you can redistribute it and/or modify it under the This program is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free Software terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 3.0 of the License, or (at your option) any later Foundation; either version 3.0 of the License, or (at your option) any later
version. version.
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along You should have received a copy of the GNU Lesser General Public License along
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
--> -->
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
"> ">
<bean id="documentConversionService" class="org.bigbluebutton.presentation.DocumentConversionServiceImp"> <bean id="documentConversionService" class="org.bigbluebutton.presentation.DocumentConversionServiceImp">
<property name="messagingService" ref="messagingService"/> <property name="messagingService" ref="messagingService"/>
<property name="officeToPdfConversionService" ref="officeToPdfConversionService"/> <property name="officeToPdfConversionService" ref="officeToPdfConversionService"/>
<property name="pdfToSwfSlidesGenerationService" ref="pdfToSwfSlidesGenerationService"/> <property name="pdfToSwfSlidesGenerationService" ref="pdfToSwfSlidesGenerationService"/>
<property name="imageToSwfSlidesGenerationService" ref="imageToSwfSlidesGenerationService"/> <property name="imageToSwfSlidesGenerationService" ref="imageToSwfSlidesGenerationService"/>
</bean> </bean>
<bean id="officeToPdfConversionService" class="org.bigbluebutton.presentation.imp.OfficeToPdfConversionService"/> <bean id="officeToPdfConversionService" class="org.bigbluebutton.presentation.imp.OfficeToPdfConversionService"/>
<bean id="pageExtractor" class="org.bigbluebutton.presentation.imp.GhostscriptPageExtractor"> <bean id="pageExtractor" class="org.bigbluebutton.presentation.imp.GhostscriptPageExtractor">
<property name="ghostscriptExec" value="${ghostScriptExec}"/> <property name="ghostscriptExec" value="${ghostScriptExec}"/>
<property name="noPdfMarkWorkaround" value="${noPdfMarkWorkaround}"/> <property name="noPdfMarkWorkaround" value="${noPdfMarkWorkaround}"/>
</bean> </bean>
<bean id="imageMagickPageConverter" class="org.bigbluebutton.presentation.imp.ImageMagickPageConverter"> <bean id="imageMagickPageConverter" class="org.bigbluebutton.presentation.imp.ImageMagickPageConverter">
<property name="imageMagickDir" value="${imageMagickDir}"/> <property name="imageMagickDir" value="${imageMagickDir}"/>
</bean> </bean>
<bean id="png2SwfConverter" class="org.bigbluebutton.presentation.imp.Png2SwfPageConverter"> <bean id="png2SwfConverter" class="org.bigbluebutton.presentation.imp.Png2SwfPageConverter">
<property name="swfToolsDir" value="${swfToolsDir}"/> <property name="swfToolsDir" value="${swfToolsDir}"/>
</bean> </bean>
<bean id="jpg2SwfConverter" class="org.bigbluebutton.presentation.imp.Jpeg2SwfPageConverter"> <bean id="jpg2SwfConverter" class="org.bigbluebutton.presentation.imp.Jpeg2SwfPageConverter">
<property name="swfToolsDir" value="${swfToolsDir}"/> <property name="swfToolsDir" value="${swfToolsDir}"/>
</bean> </bean>
<bean id="pageCounter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageCounter"> <bean id="pageCounter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageCounter">
<property name="swfToolsDir" value="${swfToolsDir}"/> <property name="swfToolsDir" value="${swfToolsDir}"/>
</bean> </bean>
<bean id="pageCounterService" class="org.bigbluebutton.presentation.imp.PageCounterService"> <bean id="pageCounterService" class="org.bigbluebutton.presentation.imp.PageCounterService">
<property name="pageCounter" ref="pageCounter"/> <property name="pageCounter" ref="pageCounter"/>
<property name="maxNumPages" value="${maxNumPages}"/> <property name="maxNumPages" value="${maxNumPages}"/>
</bean> </bean>
<bean id="pdf2SwfPageConverter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageConverter"> <bean id="pdf2SwfPageConverter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageConverter">
<property name="swfToolsDir" value="${swfToolsDir}"/> <property name="swfToolsDir" value="${swfToolsDir}"/>
<property name="fontsDir" value="${fontsDir}"/> <property name="fontsDir" value="${fontsDir}"/>
</bean> </bean>
<bean id="imageConvSvc" class="org.bigbluebutton.presentation.imp.PdfPageToImageConversionService"> <bean id="imageConvSvc" class="org.bigbluebutton.presentation.imp.PdfPageToImageConversionService">
<property name="pageExtractor" ref="pageExtractor"/> <property name="pageExtractor" ref="pageExtractor"/>
<property name="pdfToImageConverter" ref="imageMagickPageConverter"/> <property name="pdfToImageConverter" ref="imageMagickPageConverter"/>
<property name="imageToSwfConverter" ref="png2SwfConverter"/> <property name="imageToSwfConverter" ref="png2SwfConverter"/>
</bean> </bean>
<bean id="thumbCreator" class="org.bigbluebutton.presentation.imp.ThumbnailCreatorImp"> <bean id="thumbCreator" class="org.bigbluebutton.presentation.imp.ThumbnailCreatorImp">
<property name="imageMagickDir" value="${imageMagickDir}"/> <property name="imageMagickDir" value="${imageMagickDir}"/>
<property name="blankThumbnail" value="${BLANK_THUMBNAIL}"/> <property name="blankThumbnail" value="${BLANK_THUMBNAIL}"/>
</bean> </bean>
<bean id="textFileCreator" class="org.bigbluebutton.presentation.imp.TextFileCreatorImp"> <bean id="textFileCreator" class="org.bigbluebutton.presentation.imp.TextFileCreatorImp">
<property name="imageMagickDir" value="${imageMagickDir}"/> <property name="imageMagickDir" value="${imageMagickDir}"/>
</bean> </bean>
<bean id="generatedSlidesInfoHelper" class="org.bigbluebutton.presentation.GeneratedSlidesInfoHelperImp"/> <bean id="generatedSlidesInfoHelper" class="org.bigbluebutton.presentation.GeneratedSlidesInfoHelperImp"/>
<bean id="pdfToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.PdfToSwfSlidesGenerationService"> <bean id="pdfToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.PdfToSwfSlidesGenerationService">
<property name="counterService" ref="pageCounterService"/> <property name="counterService" ref="pageCounterService"/>
<property name="pageConverter" ref="pdf2SwfPageConverter"/> <property name="pageConverter" ref="pdf2SwfPageConverter"/>
<property name="pdfPageToImageConversionService" ref="imageConvSvc"/> <property name="pdfPageToImageConversionService" ref="imageConvSvc"/>
<property name="thumbnailCreator" ref="thumbCreator"/> <property name="thumbnailCreator" ref="thumbCreator"/>
<property name="textFileCreator" ref="textFileCreator"/> <property name="textFileCreator" ref="textFileCreator"/>
<property name="blankSlide" value="${BLANK_SLIDE}"/> <property name="blankSlide" value="${BLANK_SLIDE}"/>
<property name="maxSwfFileSize" value="${MAX_SWF_FILE_SIZE}"/> <property name="maxSwfFileSize" value="${MAX_SWF_FILE_SIZE}"/>
<property name="maxConversionTime" value="${maxConversionTime}"/> <property name="maxConversionTime" value="${maxConversionTime}"/>
<property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/> <property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/>
</bean> </bean>
<bean id="imageToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.ImageToSwfSlidesGenerationService"> <bean id="imageToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.ImageToSwfSlidesGenerationService">
<property name="pngPageConverter" ref="png2SwfConverter"/> <property name="pngPageConverter" ref="png2SwfConverter"/>
<property name="jpgPageConverter" ref="jpg2SwfConverter"/> <property name="jpgPageConverter" ref="jpg2SwfConverter"/>
<property name="thumbnailCreator" ref="thumbCreator"/> <property name="thumbnailCreator" ref="thumbCreator"/>
<property name="textFileCreator" ref="textFileCreator"/> <property name="textFileCreator" ref="textFileCreator"/>
<property name="blankSlide" value="${BLANK_SLIDE}"/> <property name="blankSlide" value="${BLANK_SLIDE}"/>
<property name="maxConversionTime" value="${maxConversionTime}"/> <property name="maxConversionTime" value="${maxConversionTime}"/>
<property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/> <property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/>
</bean> </bean>
<bean id="swfSlidesGenerationProgressNotifier" class="org.bigbluebutton.presentation.imp.SwfSlidesGenerationProgressNotifier"> <bean id="swfSlidesGenerationProgressNotifier" class="org.bigbluebutton.presentation.imp.SwfSlidesGenerationProgressNotifier">
<property name="messagingService" ref="messagingService"/> <property name="messagingService" ref="messagingService"/>
<property name="generatedSlidesInfoHelper" ref="generatedSlidesInfoHelper"/> <property name="generatedSlidesInfoHelper" ref="generatedSlidesInfoHelper"/>
</bean> </bean>
</beans> </beans>

View File

@ -1,23 +1,3 @@
/**
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
*
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3.0 of the License, or (at your option) any later
* version.
*
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
*
*/
// Place your Spring DSL code here // Place your Spring DSL code here
beans = { beans = {
}
}

View File

@ -1,117 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
This program is free software; you can redistribute it and/or modify it under the This program is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free Software terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 3.0 of the License, or (at your option) any later Foundation; either version 3.0 of the License, or (at your option) any later
version. version.
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along You should have received a copy of the GNU Lesser General Public License along
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
--> -->
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd http://www.springframework.org/schema/util/spring-util-2.0.xsd
"> ">
<bean id="config" class="org.bigbluebutton.api.messaging.GenericObjectPoolConfigWrapper"> <bean id="config" class="org.bigbluebutton.api.messaging.GenericObjectPoolConfigWrapper">
<!-- Action to take when trying to acquire a connection and all connections are taken --> <!-- Action to take when trying to acquire a connection and all connections are taken -->
<property name="whenExhaustedAction"> <property name="whenExhaustedAction">
<!-- Fail-fast behaviour, we don't like to keep the kids waiting --> <!-- Fail-fast behaviour, we don't like to keep the kids waiting -->
<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_FAIL" /> <util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_FAIL" />
<!-- Default behaviour, block the caller until a resource becomes available --> <!-- Default behaviour, block the caller until a resource becomes available -->
<!--<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK" />--> <!--<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK" />-->
</property> </property>
<!-- Maximum active connections to Redis instance --> <!-- Maximum active connections to Redis instance -->
<property name="maxActive" value="12" /> <property name="maxActive" value="12" />
<!-- Number of connections to Redis that just sit there and do nothing --> <!-- Number of connections to Redis that just sit there and do nothing -->
<property name="maxIdle" value="6" /> <property name="maxIdle" value="6" />
<!-- Minimum number of idle connections to Redis - these can be seen as always open and ready to serve --> <!-- Minimum number of idle connections to Redis - these can be seen as always open and ready to serve -->
<property name="minIdle" value="1" /> <property name="minIdle" value="1" />
<!-- Tests whether connection is dead when connection retrieval method is called --> <!-- Tests whether connection is dead when connection retrieval method is called -->
<property name="testOnBorrow" value="true" /> <property name="testOnBorrow" value="true" />
<!-- Tests whether connection is dead when returning a connection to the pool --> <!-- Tests whether connection is dead when returning a connection to the pool -->
<property name="testOnReturn" value="true" /> <property name="testOnReturn" value="true" />
<!-- Tests whether connections are dead during idle periods --> <!-- Tests whether connections are dead during idle periods -->
<property name="testWhileIdle" value="true" /> <property name="testWhileIdle" value="true" />
<!-- Maximum number of connections to test in each idle check --> <!-- Maximum number of connections to test in each idle check -->
<property name="numTestsPerEvictionRun" value="12" /> <property name="numTestsPerEvictionRun" value="12" />
<!-- Idle connection checking period --> <!-- Idle connection checking period -->
<property name="timeBetweenEvictionRunsMillis" value="60000" /> <property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- Maximum time, in milliseconds, to wait for a resource when exausted action is set to WHEN_EXAUSTED_BLOCK --> <!-- Maximum time, in milliseconds, to wait for a resource when exausted action is set to WHEN_EXAUSTED_BLOCK -->
<property name="maxWait" value="5000" /> <property name="maxWait" value="5000" />
</bean> </bean>
<bean id="messagingService" class="org.bigbluebutton.api.messaging.RedisMessagingService"> <bean id="messagingService" class="org.bigbluebutton.api.messaging.RedisMessagingService">
<property name="redisPool" ref="redisPool"/> <property name="redisPool" ref="redisPool"/>
</bean> </bean>
<bean id="redisPool" class="redis.clients.jedis.JedisPool"> <bean id="redisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0"> <constructor-arg index="0">
<bean factory-bean="config" factory-method="getConfig" /> <bean factory-bean="config" factory-method="getConfig" />
</constructor-arg> </constructor-arg>
<constructor-arg index="1" value="${redisHost}"/> <constructor-arg index="1" value="${redisHost}"/>
<constructor-arg index="2" value="${redisPort}"/> <constructor-arg index="2" value="${redisPort}"/>
</bean> </bean>
<bean id="expiredMeetingCleanupTimerTask" class="org.bigbluebutton.web.services.ExpiredMeetingCleanupTimerTask"/> <bean id="expiredMeetingCleanupTimerTask" class="org.bigbluebutton.web.services.ExpiredMeetingCleanupTimerTask"/>
<bean id="keepAliveService" class="org.bigbluebutton.web.services.KeepAliveService" init-method="start"> <bean id="keepAliveService" class="org.bigbluebutton.web.services.KeepAliveService" init-method="start">
<property name="runEvery" value="${checkBBBServerEvery}"/> <property name="runEvery" value="${checkBBBServerEvery}"/>
<property name="messagingService" ref="messagingService" /> <property name="messagingService" ref="messagingService" />
</bean> </bean>
<bean id="meetingService" class="org.bigbluebutton.api.MeetingService"> <bean id="meetingService" class="org.bigbluebutton.api.MeetingService">
<property name="defaultMeetingExpireDuration" value="${defaultMeetingExpireDuration}"/> <property name="defaultMeetingExpireDuration" value="${defaultMeetingExpireDuration}"/>
<property name="defaultMeetingCreateJoinDuration" value="${defaultMeetingCreateJoinDuration}"/> <property name="defaultMeetingCreateJoinDuration" value="${defaultMeetingCreateJoinDuration}"/>
<property name="removeMeetingWhenEnded" value="${removeMeetingWhenEnded}"/> <property name="removeMeetingWhenEnded" value="${removeMeetingWhenEnded}"/>
<property name="expiredMeetingCleanupTimerTask" ref="expiredMeetingCleanupTimerTask"/> <property name="expiredMeetingCleanupTimerTask" ref="expiredMeetingCleanupTimerTask"/>
<property name="keepAliveService" ref="keepAliveService"/> <property name="keepAliveService" ref="keepAliveService"/>
<property name="messagingService" ref="messagingService"/> <property name="messagingService" ref="messagingService"/>
<property name="recordingService" ref="recordingService"/> <property name="recordingService" ref="recordingService"/>
</bean> </bean>
<bean id="recordingServiceHelper" class="org.bigbluebutton.api.RecordingServiceHelperImp"/> <bean id="recordingServiceHelper" class="org.bigbluebutton.api.RecordingServiceHelperImp"/>
<bean id="recordingService" class="org.bigbluebutton.api.RecordingService" > <bean id="recordingService" class="org.bigbluebutton.api.RecordingService" >
<property name="recordingStatusDir" value="${recordStatusDir}"/> <property name="recordingStatusDir" value="${recordStatusDir}"/>
<property name="publishedDir" value="${publishedDir}"/> <property name="publishedDir" value="${publishedDir}"/>
<property name="unpublishedDir" value="${unpublishedDir}"/> <property name="unpublishedDir" value="${unpublishedDir}"/>
<property name="recordingServiceHelper" ref="recordingServiceHelper"/> <property name="recordingServiceHelper" ref="recordingServiceHelper"/>
</bean> </bean>
<bean id="paramsProcessorUtil" class="org.bigbluebutton.api.ParamsProcessorUtil"> <bean id="paramsProcessorUtil" class="org.bigbluebutton.api.ParamsProcessorUtil">
<property name="apiVersion" value="${apiVersion}"/> <property name="apiVersion" value="${apiVersion}"/>
<property name="serviceEnabled" value="${serviceEnabled}"/> <property name="serviceEnabled" value="${serviceEnabled}"/>
<property name="securitySalt" value="${securitySalt}"/> <property name="securitySalt" value="${securitySalt}"/>
<property name="defaultMaxUsers" value="${defaultMaxUsers}"/> <property name="defaultMaxUsers" value="${defaultMaxUsers}"/>
<property name="defaultWelcomeMessage" value="${defaultWelcomeMessage}"/> <property name="defaultWelcomeMessage" value="${defaultWelcomeMessage}"/>
<property name="defaultWelcomeMessageFooter" value="${defaultWelcomeMessageFooter}"/> <property name="defaultWelcomeMessageFooter" value="${defaultWelcomeMessageFooter}"/>
<property name="defaultDialAccessNumber" value="${defaultDialAccessNumber}"/> <property name="defaultDialAccessNumber" value="${defaultDialAccessNumber}"/>
<property name="testVoiceBridge" value="${testVoiceBridge}"/> <property name="testVoiceBridge" value="${testVoiceBridge}"/>
<property name="testConferenceMock" value="${testConferenceMock}"/> <property name="testConferenceMock" value="${testConferenceMock}"/>
<property name="defaultLogoutUrl" value="${bigbluebutton.web.logoutURL}"/> <property name="defaultLogoutUrl" value="${bigbluebutton.web.logoutURL}"/>
<property name="defaultServerUrl" value="${bigbluebutton.web.serverURL}"/> <property name="defaultServerUrl" value="${bigbluebutton.web.serverURL}"/>
<property name="defaultNumDigitsForTelVoice" value="${defaultNumDigitsForTelVoice}"/> <property name="defaultNumDigitsForTelVoice" value="${defaultNumDigitsForTelVoice}"/>
<property name="defaultClientUrl" value="${defaultClientUrl}"/> <property name="defaultClientUrl" value="${defaultClientUrl}"/>
<property name="defaultMeetingDuration" value="${defaultMeetingDuration}"/> <property name="defaultMeetingDuration" value="${defaultMeetingDuration}"/>
<property name="disableRecordingDefault" value="${disableRecordingDefault}"/> <property name="disableRecordingDefault" value="${disableRecordingDefault}"/>
<property name="defaultAvatarURL" value="${defaultAvatarURL}"/> <property name="defaultAvatarURL" value="${defaultAvatarURL}"/>
<property name="defaultConfigURL" value="${defaultConfigURL}"/> <property name="defaultConfigURL" value="${defaultConfigURL}"/>
</bean> </bean>
<import resource="doc-conversion.xml" /> <import resource="doc-conversion.xml" />
</beans> </beans>

View File

@ -1 +0,0 @@
login.failed = Invalid username and/or password

28
bigbluebutton-web/grails-app/i18n/messages.properties Normal file → Executable file
View File

@ -17,6 +17,31 @@ default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must b
default.paginate.prev=Previous default.paginate.prev=Previous
default.paginate.next=Next default.paginate.next=Next
default.boolean.true=True
default.boolean.false=False
default.date.format=yyyy-MM-dd HH:mm:ss z
default.number.format=0
default.created.message={0} {1} created
default.updated.message={0} {1} updated
default.deleted.message={0} {1} deleted
default.not.deleted.message={0} {1} could not be deleted
default.not.found.message={0} not found with id {1}
default.optimistic.locking.failure=Another user has updated this {0} while you were editing
default.home.label=Home
default.list.label={0} List
default.add.label=Add {0}
default.new.label=New {0}
default.create.label=Create {0}
default.show.label=Show {0}
default.edit.label=Edit {0}
default.button.create.label=Create
default.button.edit.label=Edit
default.button.update.label=Update
default.button.delete.label=Delete
default.button.delete.confirm.message=Are you sure?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Property {0} must be a valid URL typeMismatch.java.net.URL=Property {0} must be a valid URL
@ -28,6 +53,3 @@ typeMismatch.java.lang.Long=Property {0} must be a valid number
typeMismatch.java.lang.Short=Property {0} must be a valid number typeMismatch.java.lang.Short=Property {0} must be a valid number
typeMismatch.java.math.BigDecimal=Property {0} must be a valid number typeMismatch.java.math.BigDecimal=Property {0} must be a valid number
typeMismatch.java.math.BigInteger=Property {0} must be a valid number typeMismatch.java.math.BigInteger=Property {0} must be a valid number
conference.name.blank=Please enter a name for this conference
conference.name.max.exceeded=Please enter a valid name no more than {3} characters

View File

@ -0,0 +1,55 @@
default.doesnt.match.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neodpovídá požadovanému vzoru [{3}]
default.invalid.url.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní URL
default.invalid.creditCard.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní číslo kreditní karty
default.invalid.email.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní emailová adresa
default.invalid.range.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
default.invalid.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
default.invalid.max.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální povolenou hodnotu [{3}]
default.invalid.min.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální povolená hodnota [{3}]
default.invalid.max.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální velikost [{3}]
default.invalid.min.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální velikost [{3}]
default.invalid.validator.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neprošla validací
default.not.inlist.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není obsažena v seznamu [{3}]
default.blank.message=Položka [{0}] třídy [{1}] nemůže být prázdná
default.not.equal.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] nemůže být stejná jako [{3}]
default.null.message=Položka [{0}] třídy [{1}] nemůže být prázdná
default.not.unique.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] musí být unikátní
default.paginate.prev=Předcházející
default.paginate.next=Následující
default.boolean.true=Pravda
default.boolean.false=Nepravda
default.date.format=dd. MM. yyyy HH:mm:ss z
default.number.format=0
default.created.message={0} {1} vytvořeno
default.updated.message={0} {1} aktualizováno
default.deleted.message={0} {1} smazáno
default.not.deleted.message={0} {1} nelze smazat
default.not.found.message={0} nenalezen s id {1}
default.optimistic.locking.failure=Jiný uživatel aktualizoval záznam {0}, právě když byl vámi editován
default.home.label=Domů
default.list.label={0} Seznam
default.add.label=Přidat {0}
default.new.label=Nový {0}
default.create.label=Vytvořit {0}
default.show.label=Ukázat {0}
default.edit.label=Editovat {0}
default.button.create.label=Vytvoř
default.button.edit.label=Edituj
default.button.update.label=Aktualizuj
default.button.delete.label=Smaž
default.button.delete.confirm.message=Jste si jistý?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Položka {0} musí být validní URL
typeMismatch.java.net.URI=Položka {0} musí být validní URI
typeMismatch.java.util.Date=Položka {0} musí být validní datum
typeMismatch.java.lang.Double=Položka {0} musí být validní desetinné číslo
typeMismatch.java.lang.Integer=Položka {0} musí být validní číslo
typeMismatch.java.lang.Long=Položka {0} musí být validní číslo
typeMismatch.java.lang.Short=Položka {0} musí být validní číslo
typeMismatch.java.math.BigDecimal=Položka {0} musí být validní číslo
typeMismatch.java.math.BigInteger=Položka {0} musí být validní číslo

View File

@ -0,0 +1,56 @@
default.doesnt.match.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overholder ikke mønsteret [{3}]
default.invalid.url.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er ikke en gyldig URL
default.invalid.creditCard.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er ikke et gyldigt kreditkortnummer
default.invalid.email.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er ikke en gyldig e-mail adresse
default.invalid.range.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] ligger ikke inden for intervallet fra [{3}] til [{4}]
default.invalid.size.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] ligger ikke inden for størrelsen fra [{3}] til [{4}]
default.invalid.max.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overstiger den maksimale værdi [{3}]
default.invalid.min.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er under den minimale værdi [{3}]
default.invalid.max.size.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overstiger den maksimale størrelse på [{3}]
default.invalid.min.size.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er under den minimale størrelse på [{3}]
default.invalid.validator.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overholder ikke den brugerdefinerede validering
default.not.inlist.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] findes ikke i listen [{3}]
default.blank.message=Feltet [{0}] i klassen [{1}] kan ikke være tom
default.not.equal.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] må ikke være [{3}]
default.null.message=Feltet [{0}] i klassen [{1}] kan ikke være null
default.not.unique.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] skal være unik
default.paginate.prev=Forrige
default.paginate.next=Næste
default.boolean.true=Sand
default.boolean.false=Falsk
default.date.format=yyyy-MM-dd HH:mm:ss z
default.number.format=0
default.created.message={0} {1} oprettet
default.updated.message={0} {1} opdateret
default.deleted.message={0} {1} slettet
default.not.deleted.message={0} {1} kunne ikke slettes
default.not.found.message={0} med id {1} er ikke fundet
default.optimistic.locking.failure=En anden bruger har opdateret denne {0} imens du har lavet rettelser
default.home.label=Hjem
default.list.label={0} Liste
default.add.label=Tilføj {0}
default.new.label=Ny {0}
default.create.label=Opret {0}
default.show.label=Vis {0}
default.edit.label=Ret {0}
default.button.create.label=Opret
default.button.edit.label=Ret
default.button.update.label=Opdater
default.button.delete.label=Slet
default.button.delete.confirm.message=Er du sikker?
# Databindingsfejl. Brug "typeMismatch.$className.$propertyName for at passe til en given klasse (f.eks typeMismatch.Book.author)
typeMismatch.java.net.URL=Feltet {0} skal være en valid URL
typeMismatch.java.net.URI=Feltet {0} skal være en valid URI
typeMismatch.java.util.Date=Feltet {0} skal være en valid Dato
typeMismatch.java.lang.Double=Feltet {0} skal være et valid tal
typeMismatch.java.lang.Integer=Feltet {0} skal være et valid tal
typeMismatch.java.lang.Long=Feltet {0} skal være et valid tal
typeMismatch.java.lang.Short=Feltet {0} skal være et valid tal
typeMismatch.java.math.BigDecimal=Feltet {0} skal være et valid tal
typeMismatch.java.math.BigInteger=Feltet {0} skal være et valid tal

View File

@ -1,30 +1,55 @@
default.doesnt.match.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] entspricht nicht dem vorgegebenen Muster [{3}] default.doesnt.match.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] entspricht nicht dem vorgegebenen Muster [{3}]
default.invalid.url.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige URL default.invalid.url.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige URL
default.invalid.creditCard.message=Das Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige Kreditkartennummer default.invalid.creditCard.message=Das Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige Kreditkartennummer
default.invalid.email.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige E-Mail Adresse default.invalid.email.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige E-Mail Adresse
default.invalid.range.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}] default.invalid.range.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
default.invalid.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}] default.invalid.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
default.invalid.max.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist größer als der Höchstwert von [{3}] default.invalid.max.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist größer als der Höchstwert von [{3}]
default.invalid.min.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist kleiner als der Mindestwert von [{3}] default.invalid.min.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist kleiner als der Mindestwert von [{3}]
default.invalid.max.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] übersteigt den Höchstwert von [{3}] default.invalid.max.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] übersteigt den Höchstwert von [{3}]
default.invalid.min.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] unterschreitet den Mindestwert von [{3}] default.invalid.min.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] unterschreitet den Mindestwert von [{3}]
default.invalid.validator.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist ungültig default.invalid.validator.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist ungültig
default.not.inlist.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht in der Liste [{3}] enthalten. default.not.inlist.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht in der Liste [{3}] enthalten.
default.blank.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht leer sein default.blank.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht leer sein
default.not.equal.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nicht gleich [{3}] sein default.not.equal.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nicht gleich [{3}] sein
default.null.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein default.null.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein
default.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nur einmal vorkommen default.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nur einmal vorkommen
default.paginate.prev=Vorherige default.paginate.prev=Vorherige
default.paginate.next=Nächste default.paginate.next=Nächste
default.boolean.true=Wahr
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) default.boolean.false=Falsch
typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein default.date.format=dd.MM.yyyy HH:mm:ss z
typeMismatch.java.net.URI=Die Eigenschaft {0} muss eine gültige URI sein default.number.format=0
typeMismatch.java.util.Date=Die Eigenschaft {0} muss ein gültiges Datum sein
typeMismatch.java.lang.Double=Die Eigenschaft {0} muss eine gültige Zahl sein default.created.message={0} {1} wurde angelegt
typeMismatch.java.lang.Integer=Die Eigenschaft {0} muss eine gültige Zahl sein default.updated.message={0} {1} wurde geändert
typeMismatch.java.lang.Long=Die Eigenschaft {0} muss eine gültige Zahl sein default.deleted.message={0} {1} wurde gelöscht
typeMismatch.java.lang.Short=Die Eigenschaft {0} muss eine gültige Zahl sein default.not.deleted.message={0} {1} konnte nicht gelöscht werden
typeMismatch.java.math.BigDecimal=Die Eigenschaft {0} muss eine gültige Zahl sein default.not.found.message={0} mit der id {1} wurde nicht gefunden
typeMismatch.java.math.BigInteger=Die Eigenschaft {0} muss eine gültige Zahl sein default.optimistic.locking.failure=Ein anderer Benutzer hat das {0} Object geändert während Sie es bearbeitet haben
default.home.label=Home
default.list.label={0} Liste
default.add.label={0} hinzufügen
default.new.label={0} anlegen
default.create.label={0} anlegen
default.show.label={0} anzeigen
default.edit.label={0} bearbeiten
default.button.create.label=Anlegen
default.button.edit.label=Bearbeiten
default.button.update.label=Aktualisieren
default.button.delete.label=Löschen
default.button.delete.confirm.message=Sind Sie sicher?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein
typeMismatch.java.net.URI=Die Eigenschaft {0} muss eine gültige URI sein
typeMismatch.java.util.Date=Die Eigenschaft {0} muss ein gültiges Datum sein
typeMismatch.java.lang.Double=Die Eigenschaft {0} muss eine gültige Zahl sein
typeMismatch.java.lang.Integer=Die Eigenschaft {0} muss eine gültige Zahl sein
typeMismatch.java.lang.Long=Die Eigenschaft {0} muss eine gültige Zahl sein
typeMismatch.java.lang.Short=Die Eigenschaft {0} muss eine gültige Zahl sein
typeMismatch.java.math.BigDecimal=Die Eigenschaft {0} muss eine gültige Zahl sein
typeMismatch.java.math.BigInteger=Die Eigenschaft {0} muss eine gültige Zahl sein

View File

@ -17,6 +17,31 @@ default.not.unique.message=La propiedad [{0}] de la clase [{1}] con valor [{2}]
default.paginate.prev=Anterior default.paginate.prev=Anterior
default.paginate.next=Siguiente default.paginate.next=Siguiente
default.boolean.true=Verdadero
default.boolean.false=Falso
default.date.format=yyyy-MM-dd HH:mm:ss z
default.number.format=0
default.created.message={0} {1} creado
default.updated.message={0} {1} actualizado
default.deleted.message={0} {1} eliminado
default.not.deleted.message={0} {1} no puede eliminarse
default.not.found.message=No se encuentra {0} con id {1}
default.optimistic.locking.failure=Mientras usted editaba, otro usuario ha actualizado su {0}
default.home.label=Principal
default.list.label={0} Lista
default.add.label=Agregar {0}
default.new.label=Nuevo {0}
default.create.label=Crear {0}
default.show.label=Mostrar {0}
default.edit.label=Editar {0}
default.button.create.label=Crear
default.button.edit.label=Editar
default.button.update.label=Actualizar
default.button.delete.label=Eliminar
default.button.delete.confirm.message=¿Está usted seguro?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) # Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=La propiedad {0} debe ser una URL válida typeMismatch.java.net.URL=La propiedad {0} debe ser una URL válida

View File

@ -1,19 +1,19 @@
default.doesnt.match.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne correspond pas au pattern [{3}] default.doesnt.match.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne correspond pas au pattern [{3}]
default.invalid.url.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une URL valide default.invalid.url.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une URL valide
default.invalid.creditCard.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas un numéro de carte de crédit valide default.invalid.creditCard.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas un numéro de carte de crédit valide
default.invalid.email.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une adresse e-mail valide default.invalid.email.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une adresse e-mail valide
default.invalid.range.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}] default.invalid.range.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
default.invalid.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}] default.invalid.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
default.invalid.max.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}] default.invalid.max.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
default.invalid.min.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}] default.invalid.min.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
default.invalid.max.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}] default.invalid.max.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
default.invalid.min.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}] default.invalid.min.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
default.invalid.validator.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas valide default.invalid.validator.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas valide
default.not.inlist.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne fait pas partie de la liste [{3}] default.not.inlist.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne fait pas partie de la liste [{3}]
default.blank.message=La propriété [{0}] de la classe [{1}] ne peut pas être vide default.blank.message=La propriété [{0}] de la classe [{1}] ne peut pas être vide
default.not.equal.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne peut pas être égale à [{3}] default.not.equal.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne peut pas être égale à [{3}]
default.null.message=La propriété [{0}] de la classe [{1}] ne peut pas être nulle default.null.message=La propriété [{0}] de la classe [{1}] ne peut pas être nulle
default.not.unique.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] doit être unique default.not.unique.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] doit être unique
default.paginate.prev=Précédent default.paginate.prev=Précédent
default.paginate.next=Suivant default.paginate.next=Suivant

View File

@ -1,19 +1,55 @@
default.doesnt.match.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non corrisponde al pattern [{3}] default.doesnt.match.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non corrisponde al pattern [{3}]
default.invalid.url.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un URL valido default.invalid.url.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un URL valido
default.invalid.creditCard.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un numero di carta di credito valido default.invalid.creditCard.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un numero di carta di credito valido
default.invalid.email.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un indirizzo email valido default.invalid.email.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un indirizzo email valido
default.invalid.range.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo valido da [{3}] a [{4}] default.invalid.range.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo valido da [{3}] a [{4}]
default.invalid.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo di dimensioni valide da [{3}] a [{4}] default.invalid.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo di dimensioni valide da [{3}] a [{4}]
default.invalid.max.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}] default.invalid.max.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
default.invalid.min.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}] default.invalid.min.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
default.invalid.max.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}] default.invalid.max.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
default.invalid.min.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}] default.invalid.min.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
default.invalid.validator.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è valida default.invalid.validator.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è valida
default.not.inlist.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è contenuta nella lista [{3}] default.not.inlist.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è contenuta nella lista [{3}]
default.blank.message=La proprietà [{0}] della classe [{1}] non può essere vuota default.blank.message=La proprietà [{0}] della classe [{1}] non può essere vuota
default.not.equal.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non può essere uguale a [{3}] default.not.equal.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non può essere uguale a [{3}]
default.null.message=La proprietà [{0}] della classe [{1}] non può essere null default.null.message=La proprietà [{0}] della classe [{1}] non può essere null
default.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2}] deve essere unica default.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2}] deve essere unica
default.paginate.prev=Precedente default.paginate.prev=Precedente
default.paginate.next=Successivo default.paginate.next=Successivo
default.boolean.true=Vero
default.boolean.false=Falso
default.date.format=dd/MM/yyyy HH:mm:ss z
default.number.format=0
default.created.message={0} {1} creato
default.updated.message={0} {1} aggiornato
default.deleted.message={0} {1} eliminato
default.not.deleted.message={0} {1} non può essere eliminato
default.not.found.message={0} non trovato con id {1}
default.optimistic.locking.failure=Un altro utente ha aggiornato questo {0} mentre si era in modifica
default.home.label=Home
default.list.label={0} Elenco
default.add.label=Aggiungi {0}
default.new.label=Nuovo {0}
default.create.label=Crea {0}
default.show.label=Mostra {0}
default.edit.label=Modifica {0}
default.button.create.label=Crea
default.button.edit.label=Modifica
default.button.update.label=Aggiorna
default.button.delete.label=Elimina
default.button.delete.confirm.message=Si è sicuri?
# Data binding errors. Usa "typeMismatch.$className.$propertyName per la personalizzazione (es typeMismatch.Book.author)
typeMismatch.java.net.URL=La proprietà {0} deve essere un URL valido
typeMismatch.java.net.URI=La proprietà {0} deve essere un URI valido
typeMismatch.java.util.Date=La proprietà {0} deve essere una data valida
typeMismatch.java.lang.Double=La proprietà {0} deve essere un numero valido
typeMismatch.java.lang.Integer=La proprietà {0} deve essere un numero valido
typeMismatch.java.lang.Long=La proprietà {0} deve essere un numero valido
typeMismatch.java.lang.Short=La proprietà {0} deve essere un numero valido
typeMismatch.java.math.BigDecimal=La proprietà {0} deve essere un numero valido
typeMismatch.java.math.BigInteger=La proprietà {0} deve essere un numero valido

View File

@ -1,19 +1,55 @@
default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。 default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、URLではありません。 default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なURLではありません。
default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、正当なクレジットカード番号ではありません。 default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なクレジットカード番号ではありません。
default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、メールアドレスではありません。 default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なメールアドレスではありません。
default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。 default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
default.invalid.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]以内を指定してください。 default.invalid.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]以内を指定してください。
default.invalid.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。 default.invalid.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。 default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
default.invalid.max.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。 default.invalid.max.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
default.invalid.min.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。 default.invalid.min.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。 default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。
default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。 default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。
default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。 default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。
default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]と同等ではありません。 default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]と同等ではありません。
default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。 default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。
default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。 default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。
default.paginate.prev=戻る default.paginate.prev=戻る
default.paginate.next=次へ default.paginate.next=次へ
default.boolean.true=はい
default.boolean.false=いいえ
default.date.format=yyyy/MM/dd HH:mm:ss z
default.number.format=0
default.created.message={0}(id:{1})を作成しました。
default.updated.message={0}(id:{1})を更新しました。
default.deleted.message={0}(id:{1})を削除しました。
default.not.deleted.message={0}(id:{1})は削除できませんでした。
default.not.found.message={0}(id:{1})は見つかりませんでした。
default.optimistic.locking.failure=この{0}は編集中に他のユーザによって先に更新されています。
default.home.label=ホーム
default.list.label={0}リスト
default.add.label={0}を追加
default.new.label={0}を新規作成
default.create.label={0}を作成
default.show.label={0}詳細
default.edit.label={0}を編集
default.button.create.label=作成
default.button.edit.label=編集
default.button.update.label=更新
default.button.delete.label=削除
default.button.delete.confirm.message=本当に削除してよろしいですか?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL={0}は有効なURLでなければなりません。
typeMismatch.java.net.URI={0}は有効なURIでなければなりません。
typeMismatch.java.util.Date={0}は有効な日付でなければなりません。
typeMismatch.java.lang.Double={0}は有効な数値でなければなりません。
typeMismatch.java.lang.Integer={0}は有効な数値でなければなりません。
typeMismatch.java.lang.Long={0}は有効な数値でなければなりません。
typeMismatch.java.lang.Short={0}は有効な数値でなければなりません。
typeMismatch.java.math.BigDecimal={0}は有効な数値でなければなりません。
typeMismatch.java.math.BigInteger={0}は有効な数値でなければなりません。

View File

@ -0,0 +1,56 @@
default.doesnt.match.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overholder ikke mønsteret [{3}]
default.invalid.url.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke en gyldig URL
default.invalid.creditCard.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke et gyldig kredittkortnummer
default.invalid.email.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke en gyldig epostadresse
default.invalid.range.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke innenfor intervallet [{3}] til [{4}]
default.invalid.size.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke innenfor intervallet [{3}] til [{4}]
default.invalid.max.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overstiger maksimumsverdien på [{3}]
default.invalid.min.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er under minimumsverdien på [{3}]
default.invalid.max.size.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overstiger maksimumslengden på [{3}]
default.invalid.min.size.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er kortere enn minimumslengden på [{3}]
default.invalid.validator.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overholder ikke den brukerdefinerte valideringen
default.not.inlist.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] finnes ikke i listen [{3}]
default.blank.message=Feltet [{0}] i klassen [{1}] kan ikke være tom
default.not.equal.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] kan ikke være [{3}]
default.null.message=Feltet [{0}] i klassen [{1}] kan ikke være null
default.not.unique.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] må være unik
default.paginate.prev=Forrige
default.paginate.next=Neste
default.boolean.true=Ja
default.boolean.false=Nei
default.date.format=dd.MM.yyyy HH:mm:ss z
default.number.format=0
default.created.message={0} {1} opprettet
default.updated.message={0} {1} oppdatert
default.deleted.message={0} {1} slettet
default.not.deleted.message={0} {1} kunne ikke slettes
default.not.found.message={0} med id {1} ble ikke funnet
default.optimistic.locking.failure=En annen bruker har oppdatert denne {0} mens du redigerte
default.home.label=Hjem
default.list.label={0}liste
default.add.label=Legg til {0}
default.new.label=Ny {0}
default.create.label=Opprett {0}
default.show.label=Vis {0}
default.edit.label=Endre {0}
default.button.create.label=Opprett
default.button.edit.label=Endre
default.button.update.label=Oppdater
default.button.delete.label=Slett
default.button.delete.confirm.message=Er du sikker?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Feltet {0} må være en gyldig URL
typeMismatch.java.net.URI=Feltet {0} må være en gyldig URI
typeMismatch.java.util.Date=Feltet {0} må være en gyldig dato
typeMismatch.java.lang.Double=Feltet {0} må være et gyldig tall
typeMismatch.java.lang.Integer=Feltet {0} må være et gyldig heltall
typeMismatch.java.lang.Long=Feltet {0} må være et gyldig heltall
typeMismatch.java.lang.Short=Feltet {0} må være et gyldig heltall
typeMismatch.java.math.BigDecimal=Feltet {0} må være et gyldig tall
typeMismatch.java.math.BigInteger=Feltet {0} må være et gyldig heltall

View File

@ -1,30 +1,55 @@
default.doesnt.match.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet overeen met het vereiste patroon [{3}] default.doesnt.match.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet overeen met het vereiste patroon [{3}]
default.invalid.url.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldige URL default.invalid.url.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldige URL
default.invalid.creditCard.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldig credit card nummer default.invalid.creditCard.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldig credit card nummer
default.invalid.email.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldig e-mailadres default.invalid.email.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldig e-mailadres
default.invalid.range.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] valt niet in de geldige waardenreeks van [{3}] tot [{4}] default.invalid.range.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] valt niet in de geldige waardenreeks van [{3}] tot [{4}]
default.invalid.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] valt niet in de geldige grootte van [{3}] tot [{4}] default.invalid.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] valt niet in de geldige grootte van [{3}] tot [{4}]
default.invalid.max.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumwaarde [{3}] default.invalid.max.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumwaarde [{3}]
default.invalid.min.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan de minimumwaarde [{3}] default.invalid.min.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan de minimumwaarde [{3}]
default.invalid.max.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumgrootte van [{3}] default.invalid.max.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumgrootte van [{3}]
default.invalid.min.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan mainimumgrootte van [{3}] default.invalid.min.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan minimumgrootte van [{3}]
default.invalid.validator.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is niet geldig default.invalid.validator.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is niet geldig
default.not.inlist.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet voor in de lijst [{3}] default.not.inlist.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet voor in de lijst [{3}]
default.blank.message=Attribuut [{0}] van entiteit [{1}] mag niet leeg zijn default.blank.message=Attribuut [{0}] van entiteit [{1}] mag niet leeg zijn
default.not.equal.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] mag niet gelijk zijn aan [{3}] default.not.equal.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] mag niet gelijk zijn aan [{3}]
default.null.message=Attribuut [{0}] van entiteit [{1}] mag niet leeg zijn default.null.message=Attribuut [{0}] van entiteit [{1}] mag niet leeg zijn
default.not.unique.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] moet uniek zijn default.not.unique.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] moet uniek zijn
default.paginate.prev=Vorige default.paginate.prev=Vorige
default.paginate.next=Volgende default.paginate.next=Volgende
default.boolean.true=Ja
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) default.boolean.false=Nee
typeMismatch.java.net.URL=Attribuut {0} is geen geldige URL default.date.format=dd-MM-yyyy HH:mm:ss z
typeMismatch.java.net.URI=Attribuut {0} is geen geldige URI default.number.format=0
typeMismatch.java.util.Date=Attribuut {0} is geen geldige datum
typeMismatch.java.lang.Double=Attribuut {0} is geen geldig nummer default.created.message={0} {1} ingevoerd
typeMismatch.java.lang.Integer=Attribuut {0} is geen geldig nummer default.updated.message={0} {1} gewijzigd
typeMismatch.java.lang.Long=Attribuut {0} is geen geldig nummer default.deleted.message={0} {1} verwijderd
typeMismatch.java.lang.Short=Attribuut {0} is geen geldig nummer default.not.deleted.message={0} {1} kon niet worden verwijderd
typeMismatch.java.math.BigDecimal=Attribuut {0} is geen geldig nummer default.not.found.message={0} met id {1} kon niet worden gevonden
typeMismatch.java.math.BigInteger=Attribuut {0} is geen geldig nummer default.optimistic.locking.failure=Een andere gebruiker heeft deze {0} al gewijzigd
default.home.label=Home
default.list.label={0} Overzicht
default.add.label=Toevoegen {0}
default.new.label=Invoeren {0}
default.create.label=Invoeren {0}
default.show.label=Details {0}
default.edit.label=Wijzigen {0}
default.button.create.label=Invoeren
default.button.edit.label=Wijzigen
default.button.update.label=Opslaan
default.button.delete.label=Verwijderen
default.button.delete.confirm.message=Weet je het zeker?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Attribuut {0} is geen geldige URL
typeMismatch.java.net.URI=Attribuut {0} is geen geldige URI
typeMismatch.java.util.Date=Attribuut {0} is geen geldige datum
typeMismatch.java.lang.Double=Attribuut {0} is geen geldig nummer
typeMismatch.java.lang.Integer=Attribuut {0} is geen geldig nummer
typeMismatch.java.lang.Long=Attribuut {0} is geen geldig nummer
typeMismatch.java.lang.Short=Attribuut {0} is geen geldig nummer
typeMismatch.java.math.BigDecimal=Attribuut {0} is geen geldig nummer
typeMismatch.java.math.BigInteger=Attribuut {0} is geen geldig nummer

View File

@ -0,0 +1,59 @@
#
# Translated by Matthias Hryniszak - padcom@gmail.com
#
default.doesnt.match.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie pasuje do wymaganego wzorca [{3}]
default.invalid.url.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] jest niepoprawnym adresem URL
default.invalid.creditCard.message=Właściwość [{0}] klasy [{1}] with value [{2}] nie jest poprawnym numerem karty kredytowej
default.invalid.email.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie jest poprawnym adresem e-mail
default.invalid.range.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie zawiera się zakładanym zakresie od [{3}] do [{4}]
default.invalid.size.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie zawiera się w zakładanym zakresie rozmiarów od [{3}] do [{4}]
default.invalid.max.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] przekracza maksymalną wartość [{3}]
default.invalid.min.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] jest mniejsza niż minimalna wartość [{3}]
default.invalid.max.size.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] przekracza maksymalny rozmiar [{3}]
default.invalid.min.size.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] jest mniejsza niż minimalny rozmiar [{3}]
default.invalid.validator.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie spełnia założonych niestandardowych warunków
default.not.inlist.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie zawiera się w liście [{3}]
default.blank.message=Właściwość [{0}] klasy [{1}] nie może być pusta
default.not.equal.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie może równać się [{3}]
default.null.message=Właściwość [{0}] klasy [{1}] nie może być null
default.not.unique.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] musi być unikalna
default.paginate.prev=Poprzedni
default.paginate.next=Następny
default.boolean.true=Prawda
default.boolean.false=Fałsz
default.date.format=yyyy-MM-dd HH:mm:ss z
default.number.format=0
default.created.message=Utworzono {0} {1}
default.updated.message=Zaktualizowano {0} {1}
default.deleted.message=Usunięto {0} {1}
default.not.deleted.message={0} {1} nie mógł zostać usunięty
default.not.found.message=Nie znaleziono {0} o id {1}
default.optimistic.locking.failure=Inny użytkownik zaktualizował ten obiekt {0} w trakcie twoich zmian
default.home.label=Strona domowa
default.list.label=Lista {0}
default.add.label=Dodaj {0}
default.new.label=Utwórz {0}
default.create.label=Utwórz {0}
default.show.label=Pokaż {0}
default.edit.label=Edytuj {0}
default.button.create.label=Utwórz
default.button.edit.label=Edytuj
default.button.update.label=Zaktualizuj
default.button.delete.label=Usuń
default.button.delete.confirm.message=Czy jesteś pewien?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Właściwość {0} musi być poprawnym adresem URL
typeMismatch.java.net.URI=Właściwość {0} musi być poprawnym adresem URI
typeMismatch.java.util.Date=Właściwość {0} musi być poprawną datą
typeMismatch.java.lang.Double=Właściwość {0} musi być poprawnyą liczbą
typeMismatch.java.lang.Integer=Właściwość {0} musi być poprawnyą liczbą
typeMismatch.java.lang.Long=Właściwość {0} musi być poprawnyą liczbą
typeMismatch.java.lang.Short=Właściwość {0} musi być poprawnyą liczbą
typeMismatch.java.math.BigDecimal=Właściwość {0} musi być poprawnyą liczbą
typeMismatch.java.math.BigInteger=Właściwość {0} musi być poprawnyą liczbą

View File

@ -0,0 +1,59 @@
#
# Translated by Lucas Teixeira - lucastex@gmail.com
#
default.doesnt.match.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atende ao padrão definido [{3}]
default.invalid.url.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é uma URL válida
default.invalid.creditCard.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um número válido de cartão de crédito
default.invalid.email.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um endereço de email válido.
default.invalid.range.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está entre a faixa de valores válida de [{3}] até [{4}]
default.invalid.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está na faixa de tamanho válida de [{3}] até [{4}]
default.invalid.max.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapass o valor máximo [{3}]
default.invalid.min.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o valor mínimo [{3}]
default.invalid.max.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o tamanho máximo de [{3}]
default.invalid.min.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o tamanho mínimo de [{3}]
default.invalid.validator.message=O campo [{0}] da classe [{1}] com o valor [{2}] não passou na validação
default.not.inlist.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um valor dentre os permitidos na lista [{3}]
default.blank.message=O campo [{0}] da classe [{1}] não pode ficar em branco
default.not.equal.message=O campo [{0}] da classe [{1}] com o valor [{2}] não pode ser igual a [{3}]
default.null.message=O campo [{0}] da classe [{1}] não pode ser vazia
default.not.unique.message=O campo [{0}] da classe [{1}] com o valor [{2}] deve ser único
default.paginate.prev=Anterior
default.paginate.next=Próximo
default.boolean.true=Sim
default.boolean.false=Não
default.date.format=dd/MM/yyyy HH:mm:ss z
default.number.format=0
default.created.message={0} {1} criado
default.updated.message={0} {1} atualizado
default.deleted.message={0} {1} removido
default.not.deleted.message={0} {1} não pode ser removido
default.not.found.message={0} não foi encontrado com id {1}
default.optimistic.locking.failure=Outro usuário atualizou este [{0}] enquanto você tentou salvá-lo
default.home.label=Principal
default.list.label={0} Listagem
default.add.label=Adicionar {0}
default.new.label=Novo {0}
default.create.label=Criar {0}
default.show.label=Ver {0}
default.edit.label=Editar {0}
default.button.create.label=Criar
default.button.edit.label=Editar
default.button.update.label=Alterar
default.button.delete.label=Remover
default.button.delete.confirm.message=Tem certeza?
# Mensagens de erro em atribuição de valores. Use "typeMismatch.$className.$propertyName" para customizar (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=O campo {0} deve ser uma URL válida.
typeMismatch.java.net.URI=O campo {0} deve ser uma URI válida.
typeMismatch.java.util.Date=O campo {0} deve ser uma data válida
typeMismatch.java.lang.Double=O campo {0} deve ser um número válido.
typeMismatch.java.lang.Integer=O campo {0} deve ser um número válido.
typeMismatch.java.lang.Long=O campo {0} deve ser um número válido.
typeMismatch.java.lang.Short=O campo {0} deve ser um número válido.
typeMismatch.java.math.BigDecimal=O campo {0} deve ser um número válido.
typeMismatch.java.math.BigInteger=O campo {0} deve ser um número válido.

View File

@ -0,0 +1,34 @@
#
# translation by miguel.ping@gmail.com, based on pt_BR translation by Lucas Teixeira - lucastex@gmail.com
#
default.doesnt.match.message=O campo [{0}] da classe [{1}] com o valor [{2}] não corresponde ao padrão definido [{3}]
default.invalid.url.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um URL válido
default.invalid.creditCard.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um número válido de cartão de crédito
default.invalid.email.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um endereço de email válido.
default.invalid.range.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está dentro dos limites de valores válidos de [{3}] a [{4}]
default.invalid.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] está fora dos limites de tamanho válido de [{3}] a [{4}]
default.invalid.max.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o valor máximo [{3}]
default.invalid.min.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o valor mínimo [{3}]
default.invalid.max.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o tamanho máximo de [{3}]
default.invalid.min.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o tamanho mínimo de [{3}]
default.invalid.validator.message=O campo [{0}] da classe [{1}] com o valor [{2}] não passou na validação
default.not.inlist.message=O campo [{0}] da classe [{1}] com o valor [{2}] não se encontra nos valores permitidos da lista [{3}]
default.blank.message=O campo [{0}] da classe [{1}] não pode ser vazio
default.not.equal.message=O campo [{0}] da classe [{1}] com o valor [{2}] não pode ser igual a [{3}]
default.null.message=O campo [{0}] da classe [{1}] não pode ser vazio
default.not.unique.message=O campo [{0}] da classe [{1}] com o valor [{2}] deve ser único
default.paginate.prev=Anterior
default.paginate.next=Próximo
# Mensagens de erro em atribuição de valores. Use "typeMismatch.$className.$propertyName" para personalizar(eg typeMismatch.Book.author)
typeMismatch.java.net.URL=O campo {0} deve ser um URL válido.
typeMismatch.java.net.URI=O campo {0} deve ser um URI válido.
typeMismatch.java.util.Date=O campo {0} deve ser uma data válida
typeMismatch.java.lang.Double=O campo {0} deve ser um número válido.
typeMismatch.java.lang.Integer=O campo {0} deve ser um número válido.
typeMismatch.java.lang.Long=O campo {0} deve ser um número valido.
typeMismatch.java.lang.Short=O campo {0} deve ser um número válido.
typeMismatch.java.math.BigDecimal=O campo {0} deve ser um número válido.
typeMismatch.java.math.BigInteger=O campo {0} deve ser um número válido.

View File

@ -1,31 +1,31 @@
default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}] default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}]
default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом
default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты
default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом
default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}] default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}]
default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}] default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}]
default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}] default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}]
default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}] default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}]
default.invalid.max.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) больше чем максимально допустимый размер [{3}] default.invalid.max.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) больше чем максимально допустимый размер [{3}]
default.invalid.min.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) меньше чем минимально допустимый размер [{3}] default.invalid.min.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) меньше чем минимально допустимый размер [{3}]
default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо
default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}] default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}]
default.blank.message=Поле [{0}] класса [{1}] не может быть пустым default.blank.message=Поле [{0}] класса [{1}] не может быть пустым
default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}] default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}]
default.null.message=Поле [{0}] класса [{1}] не может иметь значение null default.null.message=Поле [{0}] класса [{1}] не может иметь значение null
default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным
default.paginate.prev=Предыдушая страница default.paginate.prev=Предыдушая страница
default.paginate.next=Следующая страница default.paginate.next=Следующая страница
# Ошибки при присвоении данных. Для точной настройки для полей классов используйте # Ошибки при присвоении данных. Для точной настройки для полей классов используйте
# формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author) # формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author)
typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL
typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI
typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой
typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом
typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом
typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом
typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом
typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом
typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом

View File

@ -0,0 +1,55 @@
default.doesnt.match.message=Attributet [{0}] för klassen [{1}] med värde [{2}] matchar inte mot uttrycket [{3}]
default.invalid.url.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte en giltig URL
default.invalid.creditCard.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte ett giltigt kreditkortsnummer
default.invalid.email.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte en giltig e-postadress
default.invalid.range.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte inom intervallet [{3}] till [{4}]
default.invalid.size.message=Attributet [{0}] för klassen [{1}] med värde [{2}] har en storlek som inte är inom [{3}] till [{4}]
default.invalid.max.message=Attributet [{0}] för klassen [{1}] med värde [{2}] överskrider maxvärdet [{3}]
default.invalid.min.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är mindre än minimivärdet [{3}]
default.invalid.max.size.message=Attributet [{0}] för klassen [{1}] med värde [{2}] överskrider maxstorleken [{3}]
default.invalid.min.size.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är mindre än minimistorleken [{3}]
default.invalid.validator.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte giltigt enligt anpassad regel
default.not.inlist.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte giltigt, måste vara ett av [{3}]
default.blank.message=Attributet [{0}] för klassen [{1}] får inte vara tomt
default.not.equal.message=Attributet [{0}] för klassen [{1}] med värde [{2}] får inte vara lika med [{3}]
default.null.message=Attributet [{0}] för klassen [{1}] får inte vara tomt
default.not.unique.message=Attributet [{0}] för klassen [{1}] med värde [{2}] måste vara unikt
default.paginate.prev=Föregående
default.paginate.next=Nästa
default.boolean.true=Sant
default.boolean.false=Falskt
default.date.format=yyyy-MM-dd HH:mm:ss z
default.number.format=0
default.created.message={0} {1} skapades
default.updated.message={0} {1} uppdaterades
default.deleted.message={0} {1} borttagen
default.not.deleted.message={0} {1} kunde inte tas bort
default.not.found.message={0} med id {1} kunde inte hittas
default.optimistic.locking.failure=En annan användare har uppdaterat det här {0} objektet medan du redigerade det
default.home.label=Hem
default.list.label= {0} - Lista
default.add.label=Lägg till {0}
default.new.label=Skapa {0}
default.create.label=Skapa {0}
default.show.label=Visa {0}
default.edit.label=Ändra {0}
default.button.create.label=Skapa
default.button.edit.label=Ändra
default.button.update.label=Uppdatera
default.button.delete.label=Ta bort
default.button.delete.confirm.message=Är du säker?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Värdet för {0} måste vara en giltig URL
typeMismatch.java.net.URI=Värdet för {0} måste vara en giltig URI
typeMismatch.java.util.Date=Värdet {0} måste vara ett giltigt datum
typeMismatch.java.lang.Double=Värdet {0} måste vara ett giltigt nummer
typeMismatch.java.lang.Integer=Värdet {0} måste vara ett giltigt heltal
typeMismatch.java.lang.Long=Värdet {0} måste vara ett giltigt heltal
typeMismatch.java.lang.Short=Värdet {0} måste vara ett giltigt heltal
typeMismatch.java.math.BigDecimal=Värdet {0} måste vara ett giltigt nummer
typeMismatch.java.math.BigInteger=Värdet {0} måste vara ett giltigt heltal

View File

@ -1,30 +1,55 @@
default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}] default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}]
default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL
default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต
default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์ default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์
default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}] default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
default.invalid.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีขนาดที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}] default.invalid.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีขนาดที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
default.invalid.max.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าเกิดกว่าค่ามากสุด [{3}] default.invalid.max.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าเกิดกว่าค่ามากสุด [{3}]
default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}] default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}]
default.invalid.max.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดเกินกว่าขนาดมากสุดของ [{3}] default.invalid.max.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดเกินกว่าขนาดมากสุดของ [{3}]
default.invalid.min.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดต่ำกว่าขนาดต่ำสุดของ [{3}] default.invalid.min.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดต่ำกว่าขนาดต่ำสุดของ [{3}]
default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น
default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}] default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}]
default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้ default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้
default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้ default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้
default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้ default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้
default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique) default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique)
default.paginate.prev=ก่อนหน้า default.paginate.prev=ก่อนหน้า
default.paginate.next=ถัดไป default.paginate.next=ถัดไป
default.boolean.true=จริง
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author) default.boolean.false=เท็จ
typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง default.date.format=dd-MM-yyyy HH:mm:ss z
typeMismatch.java.net.URI=คุณสมบัติ '{0}' จะต้องเป็นค่า URI ที่ถูกต้อง default.number.format=0
typeMismatch.java.util.Date=คุณสมบัติ '{0}' จะต้องมีค่าเป็นวันที่
typeMismatch.java.lang.Double=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Double default.created.message=สร้าง {0} {1} เรียบร้อยแล้ว
typeMismatch.java.lang.Integer=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Integer default.updated.message=ปรับปรุง {0} {1} เรียบร้อยแล้ว
typeMismatch.java.lang.Long=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Long default.deleted.message=ลบ {0} {1} เรียบร้อยแล้ว
typeMismatch.java.lang.Short=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Short default.not.deleted.message=ไม่สามารถลบ {0} {1}
typeMismatch.java.math.BigDecimal=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigDecimal default.not.found.message=ไม่พบ {0} ด้วย id {1} นี้
typeMismatch.java.math.BigInteger=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigInteger default.optimistic.locking.failure=มีผู้ใช้ท่านอื่นปรับปรุง {0} ขณะที่คุณกำลังแก้ไขข้อมูลอยู่
default.home.label=หน้าแรก
default.list.label=รายการ {0}
default.add.label=เพิ่ม {0}
default.new.label=สร้าง {0} ใหม่
default.create.label=สร้าง {0}
default.show.label=แสดง {0}
default.edit.label=แก้ไข {0}
default.button.create.label=สร้าง
default.button.edit.label=แก้ไข
default.button.update.label=ปรับปรุง
default.button.delete.label=ลบ
default.button.delete.confirm.message=คุณแน่ใจหรือไม่ ?
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง
typeMismatch.java.net.URI=คุณสมบัติ '{0}' จะต้องเป็นค่า URI ที่ถูกต้อง
typeMismatch.java.util.Date=คุณสมบัติ '{0}' จะต้องมีค่าเป็นวันที่
typeMismatch.java.lang.Double=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Double
typeMismatch.java.lang.Integer=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Integer
typeMismatch.java.lang.Long=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Long
typeMismatch.java.lang.Short=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Short
typeMismatch.java.math.BigDecimal=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigDecimal
typeMismatch.java.math.BigInteger=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigInteger

View File

@ -1,18 +1,18 @@
default.blank.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3A\u7A7A default.blank.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3A\u7A7A
default.doesnt.match.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E\u5B9A\u4E49\u7684\u6A21\u5F0F [{3}]\u4E0D\u5339\u914D default.doesnt.match.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E\u5B9A\u4E49\u7684\u6A21\u5F0F [{3}]\u4E0D\u5339\u914D
default.invalid.creditCard.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4FE1\u7528\u5361\u53F7 default.invalid.creditCard.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4FE1\u7528\u5361\u53F7
default.invalid.email.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740 default.invalid.email.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740
default.invalid.max.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927 default.invalid.max.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
default.invalid.max.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927 default.invalid.max.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
default.invalid.min.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F default.invalid.min.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
default.invalid.min.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F default.invalid.min.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
default.invalid.range.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] ) default.invalid.range.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
default.invalid.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] ) default.invalid.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
default.invalid.url.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684URL default.invalid.url.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684URL
default.invalid.validator.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u672A\u80FD\u901A\u8FC7\u81EA\u5B9A\u4E49\u7684\u9A8C\u8BC1 default.invalid.validator.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u672A\u80FD\u901A\u8FC7\u81EA\u5B9A\u4E49\u7684\u9A8C\u8BC1
default.not.equal.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E[{3}]\u4E0D\u76F8\u7B49 default.not.equal.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E[{3}]\u4E0D\u76F8\u7B49
default.not.inlist.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5217\u8868\u7684\u53D6\u503C\u8303\u56F4\u5185 default.not.inlist.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5217\u8868\u7684\u53D6\u503C\u8303\u56F4\u5185
default.not.unique.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u5FC5\u987B\u662F\u552F\u4E00\u7684 default.not.unique.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u5FC5\u987B\u662F\u552F\u4E00\u7684
default.null.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3Anull default.null.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3Anull
default.paginate.next=\u4E0B\u9875 default.paginate.next=\u4E0B\u9875
default.paginate.prev=\u4E0A\u9875 default.paginate.prev=\u4E0A\u9875

View File

@ -1,11 +0,0 @@
<jsec:isLoggedIn>
<jsec:hasRole name="Administrator">
<div align="right">
<g:link controller="user" action="list">Manage Users</g:link> |
Logged in as: <jsec:principal/> (<g:link controller="auth" action="signOut">sign out</g:link>)
</div>
</jsec:hasRole>
<jsec:lacksRole name="Administrator">
<div align="right">Logged in as: <jsec:principal/> (<g:link controller="auth" action="signOut">sign out</g:link>)</div>
</jsec:lacksRole>
</jsec:isLoggedIn>

62
bigbluebutton-web/grails-app/views/error.gsp Normal file → Executable file
View File

@ -1,46 +1,18 @@
<!DOCTYPE html>
<html> <html>
<head> <head>
<title>Grails Runtime Exception</title> <title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title>
<style type="text/css"> <meta name="layout" content="main">
.message { <g:if env="development"><link rel="stylesheet" href="${resource(dir: 'css', file: 'errors.css')}" type="text/css"></g:if>
border: 1px solid black; </head>
padding: 5px; <body>
background-color:#E9E9E9; <g:if env="development">
} <g:renderException exception="${exception}" />
.stack { </g:if>
border: 1px solid black; <g:else>
padding: 5px; <ul class="errors">
overflow:auto; <li>An error has occurred</li>
height: 300px; </ul>
} </g:else>
.snippet { </body>
padding: 5px; </html>
background-color:white;
border:1px solid black;
margin:3px;
font-family:courier;
}
</style>
</head>
<body>
<h1>Grails Runtime Exception</h1>
<h2>Error Details</h2>
<div class="message">
<strong>Message:</strong> ${exception.message?.encodeAsHTML()} <br />
<strong>Caused by:</strong> ${exception.cause?.message?.encodeAsHTML()} <br />
<strong>Class:</strong> ${exception.className} <br />
<strong>At Line:</strong> [${exception.lineNumber}] <br />
<strong>Code Snippet:</strong><br />
<div class="snippet">
<g:each var="cs" in="${exception.codeSnippet}">
${cs?.encodeAsHTML()}<br />
</g:each>
</div>
</div>
<h2>Stack Trace</h2>
<div class="stack">
<pre><g:each in="${exception.stackTraceLines}">${it.encodeAsHTML()}<br/></g:each></pre>
</div>
</body>
</html>

View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main"/>
<title>Welcome to Grails</title>
<style type="text/css" media="screen">
#status {
background-color: #eee;
border: .2em solid #fff;
margin: 2em 2em 1em;
padding: 1em;
width: 12em;
float: left;
-moz-box-shadow: 0px 0px 1.25em #ccc;
-webkit-box-shadow: 0px 0px 1.25em #ccc;
box-shadow: 0px 0px 1.25em #ccc;
-moz-border-radius: 0.6em;
-webkit-border-radius: 0.6em;
border-radius: 0.6em;
}
.ie6 #status {
display: inline; /* float double margin fix http://www.positioniseverything.net/explorer/doubled-margin.html */
}
#status ul {
font-size: 0.9em;
list-style-type: none;
margin-bottom: 0.6em;
padding: 0;
}
#status li {
line-height: 1.3;
}
#status h1 {
text-transform: uppercase;
font-size: 1.1em;
margin: 0 0 0.3em;
}
#page-body {
margin: 2em 1em 1.25em 18em;
}
h2 {
margin-top: 1em;
margin-bottom: 0.3em;
font-size: 1em;
}
p {
line-height: 1.5;
margin: 0.25em 0;
}
#controller-list ul {
list-style-position: inside;
}
#controller-list li {
line-height: 1.3;
list-style-position: inside;
margin: 0.25em 0;
}
@media screen and (max-width: 480px) {
#status {
display: none;
}
#page-body {
margin: 0 1em 1em;
}
#page-body h1 {
margin-top: 0;
}
}
</style>
</head>
<body>
<a href="#page-body" class="skip"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a>
<div id="status" role="complementary">
<h1>Application Status</h1>
<ul>
<li>App version: <g:meta name="app.version"/></li>
<li>Grails version: <g:meta name="app.grails.version"/></li>
<li>Groovy version: ${GroovySystem.getVersion()}</li>
<li>JVM version: ${System.getProperty('java.version')}</li>
<li>Reloading active: ${grails.util.Environment.reloadingAgentEnabled}</li>
<li>Controllers: ${grailsApplication.controllerClasses.size()}</li>
<li>Domains: ${grailsApplication.domainClasses.size()}</li>
<li>Services: ${grailsApplication.serviceClasses.size()}</li>
<li>Tag Libraries: ${grailsApplication.tagLibClasses.size()}</li>
</ul>
<h1>Installed Plugins</h1>
<ul>
<g:each var="plugin" in="${applicationContext.getBean('pluginManager').allPlugins}">
<li>${plugin.name} - ${plugin.version}</li>
</g:each>
</ul>
</div>
<div id="page-body" role="main">
<h1>Welcome to Grails</h1>
<p>Congratulations, you have successfully started your first Grails application! At the moment
this is the default page, feel free to modify it to either redirect to a controller or display whatever
content you may choose. Below is a list of controllers that are currently deployed in this application,
click on each to execute its default action:</p>
<div id="controller-list" role="navigation">
<h2>Available Controllers:</h2>
<ul>
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
</g:each>
</ul>
</div>
</div>
</body>
</html>

48
bigbluebutton-web/grails-app/views/layouts/main.gsp Normal file → Executable file
View File

@ -1,22 +1,28 @@
<html> <!DOCTYPE html>
<head> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<title><g:layoutTitle default="Grails" /></title> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<link rel="stylesheet" href="${createLinkTo(dir:'css',file:'main.css')}" /> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'favicon.ico')}" type="image/x-icon" /> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<g:layoutHead /> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
<g:javascript library="application" /> <head>
</head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<div id="spinner" class="spinner" style="display:none;"> <title><g:layoutTitle default="Grails"/></title>
<img src="${createLinkTo(dir:'images',file:'spinner.gif')}" alt="Spinner" /> <meta name="viewport" content="width=device-width, initial-scale=1.0">
</div> <link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon">
<div class="logo"><img src="${createLinkTo(dir:'images',file:'bbb_banner.jpg')}" alt="BigBlueButton" /></div> <link rel="apple-touch-icon" href="${resource(dir: 'images', file: 'apple-touch-icon.png')}">
<div class="nav"> <link rel="apple-touch-icon" sizes="114x114" href="${resource(dir: 'images', file: 'apple-touch-icon-retina.png')}">
<div class="nav"> <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css">
<g:render template="/adminmenubar" /> <link rel="stylesheet" href="${resource(dir: 'css', file: 'mobile.css')}" type="text/css">
</div> <g:layoutHead/>
<h1>NOTE: We are deprecating this web interface in favor of the API. This will be removed in the next release.</h1> <r:layoutResources />
<g:layoutBody /> </head>
bbb-web v. <g:meta name="app.version"/> <body>
</body> <div id="grailsLogo" role="banner"><a href="http://grails.org"><img src="${resource(dir: 'images', file: 'grails_logo.png')}" alt="Grails"/></a></div>
<g:layoutBody/>
<div class="footer" role="contentinfo"></div>
<div id="spinner" class="spinner" style="display:none;"><g:message code="spinner.alt" default="Loading&hellip;"/></div>
<g:javascript library="application"/>
<r:layoutResources />
</body>
</html> </html>

View File

@ -1,71 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>FileResource List</title>
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="/">Home</a></span>
</div>
<div class="body">
<h1>File Upload:</h1><br>
<g:form method="post" enctype="multipart/form-data">
<div class="dialog">
<table>
<tbody>
<tr class="prop">
<td valign="top" class="name">
<label for="presentationName">Presentation Name:</label>
</td>
<td valign="top" class="name">
<input type="text" name="presentationName" value="${presentationName}" />
</td>
</tr>
<tr class="prop">
<td valign="top" class="name">
<label for="fileUpload">Upload:</label>
</td>
<td valign="top" class="value ${hasErrors(presentations,field:'upload','errors')}">
<input type="file" id="fileUpload" name="fileUpload" />
</td>
</tr>
</tbody>
</table>
</div>
<div class="buttons">
<span class="button"><g:actionSubmit class="upload" value="Upload" action="upload" /></span>
</div>
</g:form>
<h1>Presentations</h1>
<g:if test="${flash.message}">
<div class="message">${flash.message}</div>
</g:if>
<div id="success"></div>
<div class="list">
<table>
<thead>
<tr>
<g:sortableColumn property="files" title="file"/>
<g:sortableColumn property="path" title="path" colspan="3"/>
</tr>
</thead>
<tbody>
<g:each in="${presentations}" status="i" var="presentation">
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
<td>${presentation.decodeURL()}</td>
<td><g:link action="thumbnails" id="${presentation.replace('.','###')}"> thumbnails </g:link></td>
<td><g:link action="show" id="${presentation.replace('.','###')}"> show </g:link></td>
<td><g:link action="delete" id="${presentation.replace('.','###')}" onclick="return confirm('Are you sure?');"> delete </g:link></td>
</tr>
</g:each>
</tbody>
</table>
</div>
</div>
</body>
</html>

View File

@ -1,24 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>FileResource List</title>
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="/">Home</a></span>
</div>
<div class="body">
<h1>${numThumbs} </h1><br>re ${presSlides}
<g:each var="x" in="${ (0..<numThumbs) }">
<li><g:createLink action="show" params="[foo: 'bar', boo: 'far']"/>
<img src="${createLink(action:'thumbnail', params:[id:presSlides, thumb:x])}" alt="BigBlueButton" />
<g:link action="thumbnail" id="${presSlides}" params="[thumb:x]">t</g:link>
</li>
</g:each>
</div>
</body>
</html>

View File

@ -1,40 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="layout" content="main" />
<title>Upload Presentation</title>
</head>
<body>
<g:if test="${flash.message}">
<div class="message">${flash.message}</div>
</g:if>
<g:form controller="presentation" method="post" action="upload" enctype="multipart/form-data">
<div class="dialog">
<table>
<tbody>
<tr class="prop">
<td valign="top" class="name">
<label for="presentationName">Presentation Name:</label>
</td>
<td valign="top" class="name">
<input type="text" name="presentation_name" value="${presentation_name}" />
</td>
</tr>
<tr class="prop">
<td valign="top" class="name">
<label for="fileUpload">Upload:</label>
</td>
<td valign="top" class="name">
<input type="file" id="fileUpload" name="fileUpload" />
</td>
</tr>
</tbody>
</table>
</div>
<div class="buttons">
<!--span class="button"><g:actionSubmit class="upload" value="Upload" action="upload" /></span-->
<input type="submit" value="Upload"/>
</div>
</g:form>
</body>
</html>

338
bigbluebutton-web/grailsw Executable file
View File

@ -0,0 +1,338 @@
##############################################################################
## ##
## Grails JVM Bootstrap for UN*X ##
## ##
##############################################################################
PROGNAME=`basename "$0"`
DIRNAME=`dirname "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that
MAX_FD="maximum"
warn() {
echo "${PROGNAME}: $*"
}
die() {
warn "$*"
exit 1
}
earlyInit() {
return
}
lateInit() {
return
}
GROOVY_STARTUP=~/.groovy/startup
if [ -r "$GROOVY_STARTUP" ]; then
. "$GROOVY_STARTUP"
fi
earlyInit
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
case "`uname`" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
esac
# Attempt to set JAVA_HOME if it's not already set
if [ -z "$JAVA_HOME" ]; then
# Set JAVA_HOME for Darwin
if $darwin; then
[ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] &&
export JAVA_HOME="/Library/Java/Home"
[ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] &&
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
fi
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$GRAILS_HOME" ] &&
GRAILS_HOME=`cygpath --unix "$GRAILS_HOME"`
[ -n "$JAVACMD" ] &&
JAVACMD=`cygpath --unix "$JAVACMD"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CP" ] &&
CP=`cygpath --path --unix "$CP"`
fi
# Remove possible trailing slash (after possible cygwin correction)
GRAILS_HOME=`echo $GRAILS_HOME | sed -e 's|/$||g'`
# Locate GRAILS_HOME if not it is not set
if [ -z "$GRAILS_HOME" -o ! -d "$GRAILS_HOME" ] ; then
# resolve links - $0 may be a link to groovy's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/.."
GRAILS_HOME="`pwd -P`"
cd "$SAVED"
fi
# Warn the user if JAVA_HOME and/or GRAILS_HOME are not set.
if [ -z "$JAVA_HOME" ] ; then
die "JAVA_HOME environment variable is not set"
elif [ ! -d "$JAVA_HOME" ] ; then
die "JAVA_HOME is not a directory: $JAVA_HOME"
fi
if [ -z "$GRAILS_HOME" ] ; then
warn "GRAILS_HOME environment variable is not set"
fi
if [ ! -d "$GRAILS_HOME" ] ; then
die "GRAILS_HOME is not a directory: $GRAILS_HOME"
fi
# Use default groovy-conf config
if [ -z "$STARTER_CONF" ]; then
STARTER_CONF="$GRAILS_HOME/conf/groovy-starter.conf"
fi
STARTER_CLASSPATH="wrapper/grails-wrapper-runtime-2.3.0.jar:wrapper:."
# Allow access to Cocoa classes on OS X
if $darwin; then
STARTER_CLASSPATH="$STARTER_CLASSPATH:/System/Library/Java/Support"
fi
# Create the final classpath
# Setting a classpath using the -cp or -classpath option means not to use
# the global classpath. Groovy behaves then the same as the java
# interpreter
if [ -n "$CP" ] ; then
CP="$CP"
elif [ -n "$CLASSPATH" ] ; then
CP="$CLASSPATH"
fi
# Determine the Java command to use to start the JVM
if [ -z "$JAVACMD" ]; then
if [ -n "$JAVA_HOME" ]; then
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="java"
fi
fi
if [ ! -x "$JAVACMD" ]; then
die "JAVA_HOME is not defined correctly; can not execute: $JAVACMD"
fi
# Increase the maximum file descriptors if we can
if [ "$cygwin" = "false" ]; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ "$MAX_FD_LIMIT" != "unlimited" ]; then
if [ $? -eq 0 ]; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
# use the businessSystem max
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ]; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
fi
# Fix the cygwin agent issue
AGENT_GRAILS_HOME=$GRAILS_HOME
if $cygwin ; then
[ -n "$GRAILS_HOME" ] &&
AGENT_GRAILS_HOME=`cygpath --windows "$GRAILS_HOME"`
fi
if [ -z "$GRAILS_AGENT_CACHE_DIR" ]; then
GRAILS_AGENT_CACHE_DIR=~/.grails/2.3.0/
fi
SPRINGLOADED_PARAMS=profile=grails\;cacheDir=$GRAILS_AGENT_CACHE_DIR
if [ ! -d "$GRAILS_AGENT_CACHE_DIR" ]; then
mkdir -p "$GRAILS_AGENT_CACHE_DIR"
fi
# Process JVM args
AGENT_STRING="-javaagent:wrapper/springloaded-core-1.1.3.jar -noverify -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=$SPRINGLOADED_PARAMS"
CMD_LINE_ARGS=""
DISABLE_RELOADING=true
while true; do
if [ "$1" = "-cp" ] || [ "$1" = "-classpath" ]; then
CP=$2
shift 2
break
fi
if [ "$1" = "-reloading" ]; then
AGENT=$AGENT_STRING
DISABLE_RELOADING=false
shift
break
fi
if [ "$1" = "-noreloading" ]; then
DISABLE_RELOADING=true
shift
break
fi
if [ "$1" = "-debug" ]; then
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Dgrails.full.stacktrace=true -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
shift
break
fi
if [ "$1" != -* ]; then
break
fi
CMD_LINE_ARGS="$CMD_LINE_ARGS $1"
shift
done
# Enable agent-based reloading for the 'run-app' command.
if ! $DISABLE_RELOADING; then
for a in "$@"; do
if [ "$a" = "run-app" ]; then
AGENT=$AGENT_STRING
fi
done
if [ $# = 0 ]; then
AGENT=$AGENT_STRING
fi
fi
ARGUMENTS="$CMD_LINE_ARGS $@"
# Setup Profiler
useprofiler=false
if [ "x$PROFILER" != "x" ]; then
if [ -r "$PROFILER" ]; then
. $PROFILER
useprofiler=true
else
die "Profiler file not found: $PROFILER"
fi
fi
# For Darwin, use classes.jar for TOOLS_JAR
TOOLS_JAR="$JAVA_HOME/lib/tools.jar"
if $darwin; then
JAVA_OPTS="-Xdock:name=Grails -Xdock:icon=$GRAILS_HOME/media/icons/grails.icns $JAVA_OPTS"
# TOOLS_JAR="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar"
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
GRAILS_HOME=`cygpath --path --mixed "$GRAILS_HOME"`
JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"`
STARTER_CONF=`cygpath --path --mixed "$STARTER_CONF"`
CP=`cygpath --path --mixed "$CP"`
TOOLS_JAR=`cygpath --path --mixed "$TOOLS_JAR"`
STARTER_CLASSPATH=`cygpath --path --mixed "$STARTER_CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GROOVY_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GROOVY_CYGPATTERN)"
fi
# Now convert the arguments
ARGUMENTS=""
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
if [ $CHECK -ne 0 ] ; then
convArg=`cygpath --path --ignore --mixed "$arg"`
else
convArg=$arg
fi
ARGUMENTS="$ARGUMENTS $convArg"
done
fi
STARTER_MAIN_CLASS=org.grails.wrapper.GrailsWrapper
lateInit
startGrails() {
CLASS=$1
shift
if [ -n "$GRAILS_OPTS" ]
then
GRAILS_OPTS="$GRAILS_OPTS"
else
GRAILS_OPTS="-server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8"
fi
JAVA_OPTS="$GRAILS_OPTS $JAVA_OPTS $AGENT"
# Start the Profiler or the JVM
if $useprofiler; then
runProfiler
else
if [ $# -eq 0 ] ; then # no argument given
exec "$JAVACMD" $JAVA_OPTS \
-classpath "$STARTER_CLASSPATH" \
-Dgrails.home="$GRAILS_HOME" \
-Dtools.jar="$TOOLS_JAR" \
-Djava.net.preferIPv4Stack=true \
$STARTER_MAIN_CLASS \
--main $CLASS \
--conf "$STARTER_CONF" \
--classpath "$CP"
else
exec "$JAVACMD" $JAVA_OPTS \
-classpath "$STARTER_CLASSPATH" \
-Dgrails.home="$GRAILS_HOME" \
-Dtools.jar="$TOOLS_JAR" \
-Djava.net.preferIPv4Stack=true \
$STARTER_MAIN_CLASS \
--main $CLASS \
--conf "$STARTER_CONF" \
--classpath "$CP" \
"${ARGUMENTS}"
fi
fi
}
startGrails $STARTER_MAIN_CLASS "$@"

176
bigbluebutton-web/grailsw.bat Executable file
View File

@ -0,0 +1,176 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem ##
@rem Grails JVM Bootstrap for Windows ##
@rem ##
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set CLASS=org.grails.wrapper.GrailsWrapper
if exist "%USERPROFILE%/.groovy/preinit.bat" call "%USERPROFILE%/.groovy/preinit.bat"
@rem Determine the command interpreter to execute the "CD" later
set COMMAND_COM="cmd.exe"
if exist "%SystemRoot%\system32\cmd.exe" set COMMAND_COM="%SystemRoot%\system32\cmd.exe"
if exist "%SystemRoot%\command.com" set COMMAND_COM="%SystemRoot%\command.com"
@rem Use explicit find.exe to prevent cygwin and others find.exe from being used
set FIND_EXE="find.exe"
if exist "%SystemRoot%\system32\find.exe" set FIND_EXE="%SystemRoot%\system32\find.exe"
if exist "%SystemRoot%\command\find.exe" set FIND_EXE="%SystemRoot%\command\find.exe"
:check_JAVA_HOME
@rem Make sure we have a valid JAVA_HOME
if not "%JAVA_HOME%" == "" goto have_JAVA_HOME
echo.
echo ERROR: Environment variable JAVA_HOME has not been set.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo.
goto end
:have_JAVA_HOME
@rem Remove trailing slash from JAVA_HOME if found
if "%JAVA_HOME:~-1%"=="\" SET JAVA_HOME=%JAVA_HOME:~0,-1%
@rem Validate JAVA_HOME
%COMMAND_COM% /C DIR "%JAVA_HOME%" 2>&1 | %FIND_EXE% /I /C "%JAVA_HOME%" >nul
if not errorlevel 1 goto check_GRAILS_HOME
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo.
goto end
:check_GRAILS_HOME
@rem Define GRAILS_HOME if not set
if "%GRAILS_HOME%" == "" set GRAILS_HOME=%DIRNAME%..
@rem Remove trailing slash from GRAILS_HOME if found
if "%GRAILS_HOME:~-1%"=="\" SET GRAILS_HOME=%GRAILS_HOME:~0,-1%
:init
for %%x in ("%HOMEPATH%") do set SHORTHOME=%%~fsx
if "x%GRAILS_AGENT_CACHE_DIR%" == "x" set GRAILS_AGENT_CACHE_DIR=%SHORTHOME%/.grails/2.3.0/
set SPRINGLOADED_PARAMS="profile=grails;cacheDir=%GRAILS_AGENT_CACHE_DIR%"
if not exist "%GRAILS_AGENT_CACHE_DIR%" mkdir "%GRAILS_AGENT_CACHE_DIR%"
set AGENT_STRING=-javaagent:wrapper/springloaded-core-1.1.3.jar -noverify -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=\"%SPRINGLOADED_PARAMS%\"
set DISABLE_RELOADING=
if "%GRAILS_OPTS%" == "" set GRAILS_OPTS=-server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8
@rem Get command-line arguments, handling Windows variants
if "%@eval[2+2]" == "4" goto 4NT_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set CP=
set INTERACTIVE=true
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CURR_ARG=%~1
if "%CURR_ARG:~0,2%" == "-D" (
set GRAILS_OPTS=%GRAILS_OPTS% %~1=%~2
shift
shift
goto win9xME_args_slurp
)
if "x%~1" == "x-cp" (
set CP=%~2
shift
shift
goto win9xME_args_slurp
)
if "x%~1" == "x-debug" (
set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Dgrails.full.stacktrace=true -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
shift
goto win9xME_args_slurp
)
if "x%~1" == "x-classpath" (
set CP=%~2
shift
shift
goto win9xME_args_slurp
)
if "x%~1" == "x-reloading" (
set AGENT=%AGENT_STRING%
shift
goto win9xME_args_slurp
)
if "x%~1" == "xrun-app" (
set AGENT=%AGENT_STRING%
set INTERACTIVE=
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto win9xME_args_slurp
)
if "x%~1" == "x-noreloading" (
set DISABLE_RELOADING=true
shift
goto win9xME_args_slurp
)
set INTERACTIVE=
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto win9xME_args_slurp
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set STARTER_CLASSPATH=wrapper/grails-wrapper-runtime-2.3.0.jar;wrapper;.
if exist "%USERPROFILE%/.groovy/init.bat" call "%USERPROFILE%/.groovy/init.bat"
@rem Setting a classpath using the -cp or -classpath option means not to use
@rem the global classpath. Groovy behaves then the same as the java interpreter
if "x" == "x%CLASSPATH%" goto after_classpath
set CP=%CP%;%CLASSPATH%
:after_classpath
if "x%DISABLE_RELOADING%" == "xtrue" (
set AGENT=
) else (
if "x%INTERACTIVE%" == "xtrue" (
set AGENT=%AGENT_STRING%
)
)
set STARTER_MAIN_CLASS=org.grails.wrapper.GrailsWrapper
set STARTER_CONF=%GRAILS_HOME%\conf\groovy-starter.conf
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
set TOOLS_JAR=%JAVA_HOME%\lib\tools.jar
set JAVA_OPTS=%GRAILS_OPTS% %JAVA_OPTS% %AGENT%
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name="%PROGNAME%"
set JAVA_OPTS=%JAVA_OPTS% -Dgrails.home="%GRAILS_HOME%"
set JAVA_OPTS=%JAVA_OPTS% -Dgrails.version=2.3.0
set JAVA_OPTS=%JAVA_OPTS% -Dbase.dir=.
set JAVA_OPTS=%JAVA_OPTS% -Dtools.jar="%TOOLS_JAR%"
set JAVA_OPTS=%JAVA_OPTS% -Dgroovy.starter.conf="%STARTER_CONF%"
if exist "%USERPROFILE%/.groovy/postinit.bat" call "%USERPROFILE%/.groovy/postinit.bat"
@rem Execute Grails
CALL "%JAVA_EXE%" %JAVA_OPTS% -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" "%CMD_LINE_ARGS%"
:end
@rem End local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" endlocal
@rem Optional pause the batch file
if "%GROOVY_BATCH_PAUSE%" == "on" pause

View File

@ -1,28 +0,0 @@
<ivy-module version="2.0">
<info organisation="org.example" module="bigbluebutton"/>
<configurations defaultconfmapping="build->default;compile->compile(*),master(*);test,runtime->runtime(*),master(*)">
<conf name="build"/>
<conf name="compile"/>
<conf name="test" extends="compile"/>
<conf name="runtime" extends="compile"/>
</configurations>
<dependencies>
<dependency org="org.grails" name="grails-bootstrap" rev="1.3.9" conf="build"/>
<dependency org="org.grails" name="grails-scripts" rev="1.3.9" conf="build"/>
<dependency org="org.grails" name="grails-gorm" rev="1.3.9" conf="compile"/>
<dependency org="org.grails" name="grails-web" rev="1.3.9" conf="compile"/>
<dependency org="org.grails" name="grails-test" rev="1.3.9" conf="test"/>
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.5.5" conf="runtime"/>
<dependency org="opensymphony" name="oscache" rev="2.4" conf="runtime">
<exclude org="javax.jms" module="jms" name="*" type="*" ext="*" conf="" matcher="exact"/>
<exclude org="commons-logging" module="commons-logging" name="*" type="*" ext="*" conf="" matcher="exact"/>
<exclude org="javax.servlet" module="servlet-api" name="*" type="*" ext="*" conf="" matcher="exact"/>
</dependency>
<dependency org="hsqldb" name="hsqldb" rev="1.8.0.5" conf="runtime"/>
<dependency org="net.sf.ehcache" name="ehcache" rev="1.5.0" conf="runtime"/>
<!--
<dependency org="mysql" name="mysql-connector-java" rev="5.1.6" conf="runtime"/>
<dependency org="postgresql" name="postgresql" rev="8.3-603.jdbc3" conf="runtime"/>
-->
</dependencies>
</ivy-module>

View File

@ -1,15 +0,0 @@
<ivysettings>
<settings defaultResolver="codehaus-plus"/>
<include url="${ivy.default.settings.dir}/ivysettings-public.xml" />
<include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-local.xml" />
<include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
<resolvers>
<chain name="codehaus-plus" dual="true">
<ibiblio name="codehaus-snapshots" root="http://snapshots.repository.codehaus.org" m2compatible="true" changingPattern=".*SNAPSHOT"/>
<ibiblio name="codehaus" root="http://repository.codehaus.org" m2compatible="true"/>
<ibiblio name="javanet" root="http://download.java.net/maven/2/" m2compatible="true"/>
<resolver ref="public"/>
</chain>
</resolvers>
</ivysettings>

0
bigbluebutton-web/lib/commons-codec-1.3.jar Normal file → Executable file
View File

0
bigbluebutton-web/lib/commons-httpclient.jar Normal file → Executable file
View File

View File

View File

@ -1,316 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.bigbluebutton</groupId>
<artifactId>bigbluebutton</artifactId>
<packaging>war</packaging>
<version>0.70dev</version>
<name>A custom grails project</name>
<description>A custom grails project</description>
<url>http://www.myorganization.org</url>
<properties>
<grails.version>1.3.7</grails.version>
</properties>
<dependencies>
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-bootstrap</artifactId>
<version>${grails.version}</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.gpars</groupId>
<artifactId>gpars</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.gant</groupId>
<artifactId>gant_groovy1.7</artifactId>
</exclusion>
<exclusion>
<groupId>org.gparallelizer</groupId>
<artifactId>GParallelizer</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.gant</groupId>
<artifactId>gant_groovy1.6</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ivy</groupId>
<artifactId>ivy</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-crud</artifactId>
<version>${grails.version}</version>
<exclusions>
<exclusion>
<groupId>org.grails</groupId>
<artifactId>grails-docs</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</exclusion>
<exclusion>
<groupId>radeox</groupId>
<artifactId>radeox</artifactId>
</exclusion>
<exclusion>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
</exclusion>
<exclusion>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-gorm</artifactId>
<version>${grails.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
<exclusion>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.grails</groupId>
<artifactId>grails-test</artifactId>
<version>${grails.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- Grails defaults to Ehache for the second-level Hibernate cache. -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>3.3.1.GA</version>
<exclusions>
<!-- See http://www.slf4j.org/faq.html#IllegalAccessError -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<!-- We are pulling in ehcache-core below -->
<exclusion>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>1.7.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- For ease of development and testing, we include the HSQLDB database. -->
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<!-- Use Log4J for logging. This artifact also pulls in the Log4J JAR. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.8</version>
<scope>runtime</scope>
</dependency>
<!-- Needed in the case of AOP usage -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.8</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<!-- Required to get hold of javassist:javassist -->
<repository>
<id>jboss.org</id>
<name>jboss.org</name>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
<build>
<pluginManagement />
<plugins>
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>${grails.version}</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>init</goal>
<goal>maven-clean</goal>
<goal>validate</goal>
<goal>config-directories</goal>
<goal>maven-compile</goal>
<goal>maven-test</goal>
<goal>maven-war</goal>
<goal>maven-functional-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>tools</id>
<activation>
<property>
<name>java.vendor</name>
<value>Sun Microsystems Inc.</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>${java.version}</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</profile>
</profiles>
</project>

View File

@ -1,40 +0,0 @@
#!/bin/sh
# openoffice.org headless server script
#
# chkconfig: 2345 80 30
# description: headless openoffice server script
# processname: openoffice
#
# Author: Vic Vijayakumar
# Modified by Federico Ch. Tomasczik
#
OOo_HOME=/usr/bin
SOFFICE_PATH=$OOo_HOME/soffice
PIDFILE=/var/run/openoffice-server.pid
set -e
case "$1" in
start)
if [ -f $PIDFILE ]; then
echo "OpenOffice headless server has already started."
sleep 5
exit
fi
echo "Starting OpenOffice headless server"
$SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
touch $PIDFILE
;;
stop)
if [ -f $PIDFILE ]; then
echo "Stopping OpenOffice headless server."
killall -9 soffice && killall -9 soffice.bin
rm -f $PIDFILE
exit
fi
echo "Openoffice headless server is not running."
exit
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0

View File

@ -31,8 +31,6 @@ import org.bigbluebutton.presentation.UploadedPresentation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.mysql.jdbc.log.LogUtils;
public class ThumbnailCreatorImp implements ThumbnailCreator { public class ThumbnailCreatorImp implements ThumbnailCreator {
private static Logger log = LoggerFactory.getLogger(ThumbnailCreatorImp.class); private static Logger log = LoggerFactory.getLogger(ThumbnailCreatorImp.class);

View File

@ -1,4 +0,0 @@
@artifact.package@class @artifact.name@ {
def index = { }
}

View File

@ -1,5 +0,0 @@
@artifact.package@class @artifact.name@ {
static constraints = {
}
}

View File

@ -1,17 +0,0 @@
@artifact.package@class @artifact.name@ {
def filters = {
all(controller:'*', action:'*') {
before = {
}
after = {
}
afterView = {
}
}
}
}

View File

@ -1,7 +0,0 @@
includeTargets << grailsScript("Init")
target(main: "The description of the script goes here!") {
// TODO: Implement script here
}
setDefaultTarget(main)

View File

@ -1,8 +0,0 @@
@artifact.package@class @artifact.name@ {
boolean transactional = true
def serviceMethod() {
}
}

View File

@ -1,3 +0,0 @@
@artifact.package@class @artifact.name@ {
}

View File

@ -1,15 +0,0 @@
@artifact.package@import grails.test.*
class @artifact.name@ extends @artifact.superclass@ {
protected void setUp() {
super.setUp()
}
protected void tearDown() {
super.tearDown()
}
void testSomething() {
}
}

View File

@ -1,54 +0,0 @@
class @webtest.name.caps@Test extends grails.util.WebTest {
// Unlike unit tests, functional tests are often sequence dependent.
// Specify that sequence here.
void suite() {
test@webtest.name.caps@ListNewDelete()
// add tests for more operations here
}
def test@webtest.name.caps@ListNewDelete() {
webtest('@webtest.name.caps@ basic operations: view list, create new entry, view, edit, delete, view') {
invoke(url:'@webtest.name.lower@')
verifyText(text:'Home')
verifyListPage(0)
clickLink(label:'New @webtest.name.caps@')
verifyText(text:'Create @webtest.name.caps@')
clickButton(label:'Create')
verifyText(text:'Show @webtest.name.caps@', description:'Detail page')
clickLink(label:'List', description:'Back to list view')
verifyListPage(1)
group(description:'edit the one element') {
clickLink(label:'Show', description:'go to detail view')
clickButton(label:'Edit')
verifyText(text:'Edit @webtest.name.caps@')
clickButton(label:'Update')
verifyText(text:'Show @webtest.name.caps@')
clickLink(label:'List', description:'Back to list view')
}
verifyListPage(1)
group(description:'delete the only element') {
clickLink(label:'Show', description:'go to detail view')
clickButton(label:'Delete')
verifyXPath(xpath:"//div[@class='message']", text:/@webtest.name.caps@.*deleted./, regex:true)
}
verifyListPage(0)
}
}
String ROW_COUNT_XPATH = "count(//td[@class='actionButtons']/..)"
def verifyListPage(int count) {
ant.group(description:"verify @webtest.name.caps@ list view with $count row(s)") {
verifyText(text:'@webtest.name.caps@ List')
verifyXPath(xpath:ROW_COUNT_XPATH, text:count, description:"$count row(s) of data expected")
}
}
}

View File

@ -1,99 +0,0 @@
<%=packageName ? "package ${packageName}\n\n" : ''%>class ${className}Controller {
def index = { redirect(action:list,params:params) }
// the delete, save and update actions only accept POST requests
static allowedMethods = [delete:'POST', save:'POST', update:'POST']
def list = {
params.max = Math.min( params.max ? params.max.toInteger() : 10, 100)
[ ${propertyName}List: ${className}.list( params ), ${propertyName}Total: ${className}.count() ]
}
def show = {
def ${propertyName} = ${className}.get( params.id )
if(!${propertyName}) {
flash.message = "${className} not found with id \${params.id}"
redirect(action:list)
}
else { return [ ${propertyName} : ${propertyName} ] }
}
def delete = {
def ${propertyName} = ${className}.get( params.id )
if(${propertyName}) {
try {
${propertyName}.delete(flush:true)
flash.message = "${className} \${params.id} deleted"
redirect(action:list)
}
catch(org.springframework.dao.DataIntegrityViolationException e) {
flash.message = "${className} \${params.id} could not be deleted"
redirect(action:show,id:params.id)
}
}
else {
flash.message = "${className} not found with id \${params.id}"
redirect(action:list)
}
}
def edit = {
def ${propertyName} = ${className}.get( params.id )
if(!${propertyName}) {
flash.message = "${className} not found with id \${params.id}"
redirect(action:list)
}
else {
return [ ${propertyName} : ${propertyName} ]
}
}
def update = {
def ${propertyName} = ${className}.get( params.id )
if(${propertyName}) {
if(params.version) {
def version = params.version.toLong()
if(${propertyName}.version > version) {
<%def lowerCaseName = grails.util.GrailsNameUtils.getPropertyName(className)%>
${propertyName}.errors.rejectValue("version", "${lowerCaseName}.optimistic.locking.failure", "Another user has updated this ${className} while you were editing.")
render(view:'edit',model:[${propertyName}:${propertyName}])
return
}
}
${propertyName}.properties = params
if(!${propertyName}.hasErrors() && ${propertyName}.save()) {
flash.message = "${className} \${params.id} updated"
redirect(action:show,id:${propertyName}.id)
}
else {
render(view:'edit',model:[${propertyName}:${propertyName}])
}
}
else {
flash.message = "${className} not found with id \${params.id}"
redirect(action:list)
}
}
def create = {
def ${propertyName} = new ${className}()
${propertyName}.properties = params
return ['${propertyName}':${propertyName}]
}
def save = {
def ${propertyName} = new ${className}(params)
if(!${propertyName}.hasErrors() && ${propertyName}.save()) {
flash.message = "${className} \${${propertyName}.id} created"
redirect(action:show,id:${propertyName}.id)
}
else {
render(view:'create',model:[${propertyName}:${propertyName}])
}
}
}

View File

@ -1,62 +0,0 @@
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
<%=packageName%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>Create ${className}</title>
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
<span class="menuButton"><g:link class="list" action="list">${className} List</g:link></span>
</div>
<div class="body">
<h1>Create ${className}</h1>
<g:if test="\${flash.message}">
<div class="message">\${flash.message}</div>
</g:if>
<g:hasErrors bean="\${${propertyName}}">
<div class="errors">
<g:renderErrors bean="\${${propertyName}}" as="list" />
</div>
</g:hasErrors>
<g:form action="save" method="post" <%= multiPart ? ' enctype="multipart/form-data"' : '' %>>
<div class="dialog">
<table>
<tbody>
<%
excludedProps = ['version',
'id',
Events.ONLOAD_EVENT,
Events.BEFORE_DELETE_EVENT,
Events.BEFORE_INSERT_EVENT,
Events.BEFORE_UPDATE_EVENT]
props = domainClass.properties.findAll { !excludedProps.contains(it.name) }
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
props.each { p ->
if(!Collection.class.isAssignableFrom(p.type)) {
cp = domainClass.constrainedProperties[p.name]
display = (cp ? cp.display : true)
if(display) { %>
<tr class="prop">
<td valign="top" class="name">
<label for="${p.name}">${p.naturalName}:</label>
</td>
<td valign="top" class="value \${hasErrors(bean:${propertyName},field:'${p.name}','errors')}">
${renderEditor(p)}
</td>
</tr>
<% } } } %>
</tbody>
</table>
</div>
<div class="buttons">
<span class="button"><input class="save" type="submit" value="Create" /></span>
</div>
</g:form>
</div>
</body>
</html>

View File

@ -1,64 +0,0 @@
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
<%=packageName%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>Edit ${className}</title>
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
<span class="menuButton"><g:link class="list" action="list">${className} List</g:link></span>
<span class="menuButton"><g:link class="create" action="create">New ${className}</g:link></span>
</div>
<div class="body">
<h1>Edit ${className}</h1>
<g:if test="\${flash.message}">
<div class="message">\${flash.message}</div>
</g:if>
<g:hasErrors bean="\${${propertyName}}">
<div class="errors">
<g:renderErrors bean="\${${propertyName}}" as="list" />
</div>
</g:hasErrors>
<g:form method="post" <%= multiPart ? ' enctype="multipart/form-data"' : '' %>>
<input type="hidden" name="id" value="\${${propertyName}?.id}" />
<input type="hidden" name="version" value="\${${propertyName}?.version}" />
<div class="dialog">
<table>
<tbody>
<%
excludedProps = ['version',
'id',
Events.ONLOAD_EVENT,
Events.BEFORE_DELETE_EVENT,
Events.BEFORE_INSERT_EVENT,
Events.BEFORE_UPDATE_EVENT]
props = domainClass.properties.findAll { !excludedProps.contains(it.name) }
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
props.each { p ->
cp = domainClass.constrainedProperties[p.name]
display = (cp ? cp.display : true)
if(display) { %>
<tr class="prop">
<td valign="top" class="name">
<label for="${p.name}">${p.naturalName}:</label>
</td>
<td valign="top" class="value \${hasErrors(bean:${propertyName},field:'${p.name}','errors')}">
${renderEditor(p)}
</td>
</tr>
<% } } %>
</tbody>
</table>
</div>
<div class="buttons">
<span class="button"><g:actionSubmit class="save" value="Update" /></span>
<span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
</div>
</g:form>
</div>
</body>
</html>

View File

@ -1,60 +0,0 @@
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
<%=packageName%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>${className} List</title>
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
<span class="menuButton"><g:link class="create" action="create">New ${className}</g:link></span>
</div>
<div class="body">
<h1>${className} List</h1>
<g:if test="\${flash.message}">
<div class="message">\${flash.message}</div>
</g:if>
<div class="list">
<table>
<thead>
<tr>
<%
excludedProps = ['version',
Events.ONLOAD_EVENT,
Events.BEFORE_DELETE_EVENT,
Events.BEFORE_INSERT_EVENT,
Events.BEFORE_UPDATE_EVENT]
props = domainClass.properties.findAll { !excludedProps.contains(it.name) && it.type != Set.class }
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
props.eachWithIndex { p,i ->
if(i < 6) {
if(p.isAssociation()) { %>
<th>${p.naturalName}</th>
<% } else { %>
<g:sortableColumn property="${p.name}" title="${p.naturalName}" />
<% } } } %>
</tr>
</thead>
<tbody>
<g:each in="\${${propertyName}List}" status="i" var="${propertyName}">
<tr class="\${(i % 2) == 0 ? 'odd' : 'even'}">
<% props.eachWithIndex { p,i ->
if(i == 0) { %>
<td><g:link action="show" id="\${${propertyName}.id}">\${fieldValue(bean:${propertyName}, field:'${p.name}')}</g:link></td>
<% } else if(i < 6) { %>
<td>\${fieldValue(bean:${propertyName}, field:'${p.name}')}</td>
<% } } %>
</tr>
</g:each>
</tbody>
</table>
</div>
<div class="paginateButtons">
<g:paginate total="\${${propertyName}Total}" />
</div>
</div>
</body>
</html>

View File

@ -1,190 +0,0 @@
<% if(property.type == Boolean.class || property.type == boolean.class)
out << renderBooleanEditor(domainClass,property)
else if(Number.class.isAssignableFrom(property.type) || (property.type.isPrimitive() && property.type != boolean.class))
out << renderNumberEditor(domainClass,property)
else if(property.type == String.class)
out << renderStringEditor(domainClass,property)
else if(property.type == Date.class || property.type == java.sql.Date.class || property.type == java.sql.Time.class)
out << renderDateEditor(domainClass,property)
else if(property.type == Calendar.class)
out << renderDateEditor(domainClass,property)
else if(property.type == URL.class)
out << renderStringEditor(domainClass,property)
else if(property.isEnum())
out << renderEnumEditor(domainClass,property)
else if(property.type == TimeZone.class)
out << renderSelectTypeEditor("timeZone",domainClass,property)
else if(property.type == Locale.class)
out << renderSelectTypeEditor("locale",domainClass,property)
else if(property.type == Currency.class)
out << renderSelectTypeEditor("currency",domainClass,property)
else if(property.type==([] as Byte[]).class) //TODO: Bug in groovy means i have to do this :(
out << renderByteArrayEditor(domainClass,property)
else if(property.type==([] as byte[]).class) //TODO: Bug in groovy means i have to do this :(
out << renderByteArrayEditor(domainClass,property)
else if(property.manyToOne || property.oneToOne)
out << renderManyToOne(domainClass,property)
else if((property.oneToMany && !property.bidirectional) || (property.manyToMany && property.isOwningSide()))
out << renderManyToMany(domainClass, property)
else if(property.oneToMany)
out << renderOneToMany(domainClass,property)
private renderEnumEditor(domainClass,property) {
if(property.isEnum()) {
return "<g:select from=\"\${${property.type.name}?.values()}\" value=\"\${${domainInstance}?.${property.name}}\" name=\"${property.name}\" ${renderNoSelection(property)}></g:select>"
}
}
private renderStringEditor(domainClass, property) {
if(!cp) {
return "<input type=\"text\" name=\"${property.name}\" id=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\" />"
}
else {
if("textarea" == cp.widget || (cp.maxSize > 250 && !cp.password && !cp.inList)) {
return "<textarea rows=\"5\" cols=\"40\" name=\"${property.name}\">\${fieldValue(bean:${domainInstance}, field:'${property.name}')}</textarea>"
}
else {
if(cp.inList) {
def sb = new StringBuffer('<g:select ')
sb << "id=\"${property.name}\" name=\"${property.name}\" from=\"\${${domainInstance}.constraints.${property.name}.inList}\" value=\"\${${domainInstance}.${property?.name}}\" ${renderNoSelection(property)}>"
sb << '</g:select>'
return sb.toString()
}
else {
def sb = new StringBuffer('<input ')
cp.password ? sb << 'type="password" ' : sb << 'type="text" '
if(!cp.editable) sb << 'readonly="readonly" '
if(cp.maxSize) sb << "maxlength=\"${cp.maxSize}\" "
sb << "id=\"${property.name}\" name=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\"/>"
return sb.toString()
}
}
}
}
private renderByteArrayEditor(domainClass,property) {
return "<input type=\"file\" id=\"${property.name}\" name=\"${property.name}\" />"
}
private renderManyToOne(domainClass,property) {
if(property.association) {
return "<g:select optionKey=\"id\" from=\"\${${property.type.name}.list()}\" name=\"${property.name}.id\" value=\"\${${domainInstance}?.${property.name}?.id}\" ${renderNoSelection(property)}></g:select>"
}
}
private renderManyToMany(domainClass,property) {
def sw = new StringWriter()
def pw = new PrintWriter(sw)
pw.println "<g:select name=\"${property.name}\""
pw.println "from=\"\${${property.referencedDomainClass.fullName}.list()}\""
pw.println "size=\"5\" multiple=\"yes\" optionKey=\"id\""
pw.println "value=\"\${${domainInstance}?.${property.name}}\" />"
return sw.toString()
}
private renderOneToMany(domainClass,property) {
def sw = new StringWriter()
def pw = new PrintWriter(sw)
pw.println()
pw.println "<ul>"
pw.println "<g:each var=\"${property.name[0]}\" in=\"\${${domainInstance}?.${property.name}?}\">"
pw.println " <li><g:link controller=\"${property.referencedDomainClass.propertyName}\" action=\"show\" id=\"\${${property.name[0]}.id}\">\${${property.name[0]}?.encodeAsHTML()}</g:link></li>"
pw.println "</g:each>"
pw.println "</ul>"
pw.println "<g:link controller=\"${property.referencedDomainClass.propertyName}\" params=\"['${domainClass.propertyName}.id':${domainInstance}?.id]\" action=\"create\">Add ${property.referencedDomainClass.shortName}</g:link>"
return sw.toString()
}
private renderNumberEditor(domainClass,property) {
if(!cp) {
if(property.type == Byte.class) {
return "<g:select from=\"\${-128..127}\" name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\"></g:select>"
}
else {
return "<input type=\"text\" id=\"${property.name}\" name=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\" />"
}
}
else {
if(cp.range) {
return "<g:select from=\"\${${cp.range.from}..${cp.range.to}}\" id=\"${property.name}\" name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" ${renderNoSelection(property)}></g:select>"
}
else if(cp.inList) {
def sb = new StringBuffer('<g:select ')
sb << "id=\"${property.name}\" name=\"${property.name}\" from=\"\${${domainClass.propertyName}.constraints.${property.name}.inList}\" value=\"\${${domainClass.propertyName}.${property?.name}}\" ${renderNoSelection(property)}>"
sb << '</g:select>'
return sb.toString()
}
else {
return "<input type=\"text\" id=\"${property.name}\" name=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\" />"
}
}
}
private renderBooleanEditor(domainClass,property) {
if(!cp) {
return "<g:checkBox name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\"></g:checkBox>"
}
else {
def buf = new StringBuffer('<g:checkBox ')
if(cp.widget) buf << "widget=\"${cp.widget}\"";
buf << "name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" "
cp.attributes.each { k,v ->
buf << "${k}=\"${v}\" "
}
buf << '></g:checkBox>'
return buf.toString()
}
}
private renderDateEditor(domainClass,property) {
def precision = property.type == java.sql.Date ? 'day' : 'minute';
if(!cp) {
return "<g:datePicker name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" precision=\"${precision}\"></g:datePicker>"
}
else {
if(!cp.editable) {
return "\${${domainInstance}?.${property.name}?.toString()}"
}
else {
def buf = new StringBuffer('<g:datePicker ')
if(cp.widget) buf << "widget=\"${cp.widget}\" "
if(cp.format) buf << "format=\"${cp.format}\" "
cp.attributes.each { k,v ->
buf << "${k}=\"${v}\" "
}
buf << "name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" precision=\"${precision}\" ${renderNoSelection(property)}></g:datePicker>"
return buf.toString()
}
}
}
private renderSelectTypeEditor(type,domainClass,property) {
if(!cp) {
return "<g:${type}Select name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\"></g:${type}Select>"
}
else {
def buf = new StringBuffer("<g:${type}Select ")
if(cp.widget) buf << "widget=\"${cp.widget}\" ";
cp.attributes.each { k,v ->
buf << "${k}=\"${v}\" "
}
buf << "name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" ${renderNoSelection(property)}></g:${type}Select>"
return buf.toString()
}
}
private renderNoSelection(property) {
if(property.optional) {
if(property.manyToOne || property.oneToOne) {
return "noSelection=\"['null':'']\""
}
else {
return "noSelection=\"['':'']\""
}
}
return ""
}
%>

View File

@ -1,64 +0,0 @@
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
<%=packageName%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>Show ${className}</title>
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
<span class="menuButton"><g:link class="list" action="list">${className} List</g:link></span>
<span class="menuButton"><g:link class="create" action="create">New ${className}</g:link></span>
</div>
<div class="body">
<h1>Show ${className}</h1>
<g:if test="\${flash.message}">
<div class="message">\${flash.message}</div>
</g:if>
<div class="dialog">
<table>
<tbody>
<%
excludedProps = ['version',
Events.ONLOAD_EVENT,
Events.BEFORE_DELETE_EVENT,
Events.BEFORE_INSERT_EVENT,
Events.BEFORE_UPDATE_EVENT]
props = domainClass.properties.findAll { !excludedProps.contains(it.name) }
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
props.each { p -> %>
<tr class="prop">
<td valign="top" class="name">${p.naturalName}:</td>
<% if(p.isEnum()) { %>
<td valign="top" class="value">\${${propertyName}?.${p.name}?.encodeAsHTML()}</td>
<% } else if(p.oneToMany || p.manyToMany) { %>
<td valign="top" style="text-align:left;" class="value">
<ul>
<g:each var="${p.name[0]}" in="\${${propertyName}.${p.name}}">
<li><g:link controller="${p.referencedDomainClass?.propertyName}" action="show" id="\${${p.name[0]}.id}">\${${p.name[0]}?.encodeAsHTML()}</g:link></li>
</g:each>
</ul>
</td>
<% } else if(p.manyToOne || p.oneToOne) { %>
<td valign="top" class="value"><g:link controller="${p.referencedDomainClass?.propertyName}" action="show" id="\${${propertyName}?.${p.name}?.id}">\${${propertyName}?.${p.name}?.encodeAsHTML()}</g:link></td>
<% } else { %>
<td valign="top" class="value">\${fieldValue(bean:${propertyName}, field:'${p.name}')}</td>
<% } %>
</tr>
<% } %>
</tbody>
</table>
</div>
<div class="buttons">
<g:form>
<input type="hidden" name="id" value="\${${propertyName}?.id}" />
<span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
<span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
</g:form>
</div>
</div>
</body>
</html>

View File

@ -1,107 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>/@grails.project.key@</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>@grails.project.key@</param-value>
</context-param>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter</filter-class>
</filter>
<filter>
<filter-name>charEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>characterEncodingFilter</param-value>
</init-param>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<!-- There is a problem with logging in production for Grails 1.1.1. We cannot get it to work
when deployed to Tomcat. To get logging working is to create this customer web.xml changing
the Log4jConfigListener to Spring and providing our own log4j.properties. When upgrading
Grails, we need to revisit this problem. (ralam, jan 6, 2010) -->
<!--listener-class>org.codehaus.groovy.grails.web.util.Log4jConfigListener</listener-class-->
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener</listener-class>
</listener>
<!-- Grails dispatcher servlet -->
<servlet>
<servlet-name>grails</servlet-name>
<servlet-class>org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- The Groovy Server Pages servlet -->
<servlet>
<servlet-name>gsp</servlet-name>
<servlet-class>org.codehaus.groovy.grails.web.pages.GroovyPagesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>gsp</servlet-name>
<url-pattern>*.gsp</url-pattern>
</servlet-mapping>
<welcome-file-list>
<!--
The order of the welcome pages is important. JBoss deployment will
break if index.gsp is first in the list.
-->
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.gsp</welcome-file>
</welcome-file-list>
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://www.springframework.org/tags</taglib-uri>
<taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://grails.codehaus.org/tags</taglib-uri>
<taglib-location>/WEB-INF/tld/grails.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>

View File

View File

View File

0
bigbluebutton-web/test/resources/GoodPresentation.pdf Normal file → Executable file
View File

View File

0
bigbluebutton-web/test/resources/OnePage.pdf Normal file → Executable file
View File

0
bigbluebutton-web/test/resources/PresentationsTips.pdf Normal file → Executable file
View File

View File

View File

0
bigbluebutton-web/test/resources/big.pdf Normal file → Executable file
View File

0
bigbluebutton-web/test/resources/blankpresentation.pdf Normal file → Executable file
View File

0
bigbluebutton-web/test/resources/folb_apha.ppt Normal file → Executable file
View File

View File

0
bigbluebutton-web/test/resources/sampleslide.jpeg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

0
bigbluebutton-web/test/resources/secure-slides.pdf Normal file → Executable file
View File

View File

@ -1,19 +0,0 @@
package org.bigbluebutton.api;
class UtilTest extends GroovyTestCase {
void testPresentationFilename() {
String filename = Util.cleanPresentationFilename("mypresentation%#@foo.txt");
assertTrue(filename.equals("mypresentation---foo.txt"))
}
void testPresentationFilenameThatBeginsWithDot() {
String filename = Util.cleanPresentationFilename(".mypresentation%#@foo.txt");
assertTrue(filename.equals("mypresentation---foo.txt"))
}
void testPresentationFilenameWithMultipleDot() {
String filename = Util.cleanPresentationFilename(".mypresentation%#@foo.txt.png");
assertTrue(filename.equals("mypresentation---foo.txt.png"))
}
}

View File

@ -1,14 +0,0 @@
pushd .
# stop
sudo /etc/init.d/tomcat6 stop
# build
cd ~/dev/source/bigbluebutton/bigbluebutton-web
gradle resolveDeps
# run
ant
# return to working dir
popd

View File

@ -1 +0,0 @@
gradle resolveDeps && ant

View File

@ -1,42 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean"> <bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
<description>Grails application factory bean</description> <description>Grails application factory bean</description>
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" /> <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
<property name="grailsResourceLoader" ref="grailsResourceLoader" /> <property name="grailsResourceLoader" ref="grailsResourceLoader" />
</bean> </bean>
<bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean"> <bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean">
<description>A bean that manages Grails plugins</description> <description>A bean that manages Grails plugins</description>
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" /> <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
<property name="application" ref="grailsApplication" /> <property name="application" ref="grailsApplication" />
</bean> </bean>
<bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator"> <bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
<constructor-arg> <constructor-arg>
<ref bean="grailsApplication" /> <ref bean="grailsApplication" />
</constructor-arg> </constructor-arg>
<property name="pluginManager" ref="pluginManager" /> <property name="pluginManager" ref="pluginManager" />
</bean> </bean>
<bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean"> <bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean" />
<property name="grailsResourceHolder" ref="grailsResourceHolder" />
</bean>
<bean id="grailsResourceHolder" scope="prototype" class="org.codehaus.groovy.grails.commons.spring.GrailsResourceHolder"> <bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter">
<property name="resources"> <property name="encoding">
<value>classpath*:**/grails-app/**/*.groovy</value> <value>utf-8</value>
</property> </property>
</bean> </bean>
<bean id="characterEncodingFilter" <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" />
class="org.springframework.web.filter.CharacterEncodingFilter">
<property name="encoding">
<value>utf-8</value>
</property>
</bean>
</beans> </beans>

2
bigbluebutton-web/web-app/WEB-INF/sitemesh.xml Normal file → Executable file
View File

@ -5,7 +5,7 @@
<parser content-type="text/html;charset=ISO-8859-1" <parser content-type="text/html;charset=ISO-8859-1"
class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" /> class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" />
<parser content-type="text/html;charset=UTF-8" <parser content-type="text/html;charset=UTF-8"
class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" /> class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" />
</page-parsers> </page-parsers>
<decorator-mappers> <decorator-mappers>

25
bigbluebutton-web/web-app/WEB-INF/tld/c.tld Normal file → Executable file
View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" <taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.0"> version="2.1">
<description>JSTL 1.1 core library</description> <description>JSTL 1.2 core library</description>
<display-name>JSTL core</display-name> <display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version> <tlib-version>1.2</tlib-version>
<short-name>c</short-name> <short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri> <uri>http://java.sun.com/jsp/jstl/core</uri>
@ -74,7 +74,7 @@ not the body content should be processed.
<description> <description>
Name of the exported scoped variable for the Name of the exported scoped variable for the
resulting value of the test condition. The type resulting value of the test condition. The type
of the scoped variable is Boolean. of the scoped variable is Boolean.
</description> </description>
<name>var</name> <name>var</name>
<required>false</required> <required>false</required>
@ -174,6 +174,9 @@ Collection of items to iterate over.
<required>false</required> <required>false</required>
<rtexprvalue>true</rtexprvalue> <rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type> <type>java.lang.Object</type>
<deferred-value>
<type>java.lang.Object</type>
</deferred-value>
</attribute> </attribute>
<attribute> <attribute>
<description> <description>
@ -253,6 +256,9 @@ String of tokens to iterate over.
<required>true</required> <required>true</required>
<rtexprvalue>true</rtexprvalue> <rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type> <type>java.lang.String</type>
<deferred-value>
<type>java.lang.String</type>
</deferred-value>
</attribute> </attribute>
<attribute> <attribute>
<description> <description>
@ -322,7 +328,7 @@ visibility.
<tag> <tag>
<description> <description>
Like &lt;%= ... &gt;, but for expressions. Like &lt;%= ... &gt;, but for expressions.
</description> </description>
<name>out</name> <name>out</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class> <tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class>
<body-content>JSP</body-content> <body-content>JSP</body-content>
@ -467,6 +473,9 @@ Expression to be evaluated.
<name>value</name> <name>value</name>
<required>false</required> <required>false</required>
<rtexprvalue>true</rtexprvalue> <rtexprvalue>true</rtexprvalue>
<deferred-value>
<type>java.lang.Object</type>
</deferred-value>
</attribute> </attribute>
<attribute> <attribute>
<description> <description>

Some files were not shown because too many files have changed in this diff Show More