Skip to content

Commit

Permalink
- Update SBT for new project layout
Browse files Browse the repository at this point in the history
- Using SBT 0.75.RC0 now
- Add SBT launcher with liftsh wrapper for convenience
  • Loading branch information
indrajitr committed Feb 5, 2011
1 parent d32a017 commit dee4250
Show file tree
Hide file tree
Showing 7 changed files with 194 additions and 0 deletions.
56 changes: 56 additions & 0 deletions .gitignore
@@ -0,0 +1,56 @@
# use glob syntax.
syntax: glob
*.ser
*.class
*~
*.bak
*.off
*.old
.DS_Store

# logs
derby.log

# eclipse conf file
.settings
.classpath
.project
.manager
.externalToolBuilders

# ensime/emacs conf files
.ensime
.scala_dependencies

# building
target
null
tmp*
dist
test-output

# sbt
target
lib_managed
src_managed
project/boot
project/plugins/project

# other scm
.svn
.CVS
.hg*

# switch to regexp syntax.
# syntax: regexp
# ^\.pc/

# IntelliJ
*.iml
*.ipr
*.iws
.idea

# Pax Runner (for easy OSGi launching)
runner

11 changes: 11 additions & 0 deletions liftsh
@@ -0,0 +1,11 @@
#!/bin/sh

# Load custom liftsh config
if test -f ~/.liftsh.config; then
. ~/.liftsh.config
fi

# Default option if nothing is specified
DEFAULT_OPTS="-Dfile.encoding=UTF-8 -Xss8M -Xmx1G -noverify -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512M -Dfile.encoding=utf8 -Dsbt.intransitive=true"

exec java ${LIFTSH_OPTS:-${DEFAULT_OPTS}} -jar `dirname $0`/project/sbt-launch-0.7.5.RC0.jar "$@"
9 changes: 9 additions & 0 deletions liftsh.cmd
@@ -0,0 +1,9 @@
@echo off

set DEFAULT_OPTS="-Dfile.encoding=UTF-8 -Xss8M -Xmx1G -noverify -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M -Dfile.encoding=utf8 -Dsbt.intransitive=true"

if "%LIFTSH_OPTS%"=="" (
set LIFTSH_OPTS=DEFAULT_OPTS
)

java "%LIFTSH_OPTS%" -jar "%~dp0\project\sbt-launch-0.7.5.RC0.jar" %*
7 changes: 7 additions & 0 deletions project/build.properties
@@ -0,0 +1,7 @@
#Project properties
project.organization=net.liftweb
project.name=lift-modules
sbt.version=0.7.5.RC0
project.version=2.3-SNAPSHOT
build.scala.versions=2.8.1 2.8.0
project.initialize=false
102 changes: 102 additions & 0 deletions project/build/LiftModulesProject.scala
@@ -0,0 +1,102 @@
/*
* Copyright 2010-2011 WorldWide Conferencing, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import net.liftweb.sbt._
import sbt._


class LiftModulesProject(info: ProjectInfo) extends ParentProject(info) with LiftParentProject {

// TODO: consider cross-lift build, for now set it to current project version
val liftVersion = version.toString

object LiftDependencies {
// Lift dependencies
lazy val lift_common = "net.liftweb" %% "lift-common" % liftVersion
lazy val lift_actor = "net.liftweb" %% "lift-actor" % liftVersion
lazy val lift_json = "net.liftweb" %% "lift-jason" % liftVersion
lazy val lift_util = "net.liftweb" %% "lift-util" % liftVersion
lazy val lift_webkit = "net.liftweb" %% "lift-webkit" % liftVersion
lazy val lift_db = "net.liftweb" %% "lift-db" % liftVersion
lazy val lift_mapper = "net.liftweb" %% "lift-mapper" % liftVersion
}

import CompileScope._
import ProvidedScope._
import LiftDependencies._


// Modules projects
// ----------------
lazy val amqp = modulesProject("amqp", lift_actor, amqp_client)()
lazy val facebook = modulesProject("facebook", lift_webkit)()
lazy val imaging = modulesProject("imaging", lift_util, sanselan)()
lazy val jta = modulesProject("jta", lift_util, scalajpa, persistence_api, transaction_api,
atomikos_api, atomikos_jta, atomikos_txn, atomikos_util, hibernate_em)()
lazy val machine = modulesProject("machine", lift_mapper)()
lazy val oauth = modulesProject("oauth", lift_webkit)()
lazy val oauth_mapper = modulesProject("oauth-mapper", lift_mapper)(oauth)
lazy val openid = modulesProject("openid", lift_mapper, openid4java_consumer)()
// lazy val osgi
lazy val paypal = modulesProject("paypal", lift_webkit, commons_httpclient)()
lazy val scalate = modulesProject("scalate", lift_webkit, scalate_core, servlet_api)()
lazy val textile = modulesProject("textile", lift_util)()
lazy val widgets = modulesProject("widgets", lift_webkit, logback, log4j)()
lazy val xmpp = modulesProject("xmpp", lift_actor, smackx)()


// Modules apidocs
// ---------------
lazy val modules_doc = project(".", "lift-modules-doc", new DefaultProject(_) with LiftDefaultDocProject)


private def modulesProject(path: String, libs: ModuleID*)(deps: Project*) =
project(path, "lift-" + path, new ModulesProject(_, libs: _*), deps: _*)


// Default base
// ------------
class ModulesProject(info: ProjectInfo, libs: ModuleID*) extends DefaultProject(info) with LiftDefaultProject {

override def libraryDependencies = super.libraryDependencies ++ libs

// TODO: Remove these and resort to LiftDefaultProject settings
override def compileOptions = Seq("-Xwarninit", "-encoding", "utf8").map(CompileOption)

// System property hack for derby.log, webapptests
override def testAction =
super.testAction dependsOn
task {
System.setProperty("derby.stream.error.file", (outputPath / "derby.log").absString)
System.setProperty("net.liftweb.webapptest.src.test.webapp", (testSourcePath / "webapp").absString)
None
}

// FIXME: breaks with SBT
override def testOptions =
ExcludeTests(
// Core tests
"net.liftweb.util.ActorPingUnit" :: "net.liftweb.util.ActorPingSpec" ::
// Web tests
"net.liftweb.webapptest.OneShot" :: "net.liftweb.webapptest.ToHeadUsages" :: "net.liftweb.http.SnippetSpec" ::
// Persistence tests
"net.liftweb.mapper.MapperSpecs" :: "net.liftweb.squerylrecord.SquerylRecordSpecs" ::
// LDAP
"net.liftweb.ldap.LdapSpecs" :: Nil) ::
super.testOptions.toList
}

}
9 changes: 9 additions & 0 deletions project/plugins/Plugins.scala
@@ -0,0 +1,9 @@
import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {

// Add ScalaToolsSnapshots
lazy val snapshots = ScalaToolsSnapshots

// Add plugin
lazy val a = "net.liftweb" % "lift-sbt" % "2.3-SNAPSHOT"
}
Binary file added project/sbt-launch-0.7.5.RC0.jar
Binary file not shown.

0 comments on commit dee4250

Please sign in to comment.