├── .gitignore ├── README.textile └── project ├── build.properties ├── build └── Project.scala └── plugins ├── Plugins.scala └── project └── build.properties /.gitignore: -------------------------------------------------------------------------------- 1 | # SBT 2 | target 3 | lib_managed 4 | src_managed 5 | boot 6 | 7 | # Maven 8 | target 9 | 10 | # Mac 11 | .DS_Store 12 | 13 | # Eclipse 14 | .classpath 15 | .launch 16 | .metadata 17 | .project 18 | .scala_dependencies 19 | .settings 20 | 21 | # IntelliJ 22 | .idea 23 | *.iml 24 | *.ipr 25 | *.iws 26 | 27 | # Pax Runner 28 | runner 29 | -------------------------------------------------------------------------------- /README.textile: -------------------------------------------------------------------------------- 1 | scala-lang-osgi offers "OSGi":http://www.osgi.org bundles for "Scala":http://www.scala-lang.org/. Currently _scala-library_ and _scala-compiler_ are available as OSGi bundles, but _scala-swing_ and _scala-dbc_ will follow if needed. Just let us know! 2 | 3 | scala-lang-osgi is open source software licensed under the "SCALA LICENSE":http://www.scala-lang.org/node/146. 4 | 5 | h2. Getting scala-lang-osgi 6 | 7 | The binaries are made available in the "Scala-Tools.org Maven repository":http://scala-tools.org/repo-releases/com/weiglewilczek/scala-lang-osgi/. 8 | 9 | h3. For SBT 10 | 11 |
val scalaLibraryOSGi = "com.weiglewilczek.scala-lang-osgi" % "scala-library" % "2.9.1"
12 | val scalaCompilerOSGi = "com.weiglewilczek.scala-lang-osgi" % "scala-compiler" % "2.9.1"
13 | 
14 | 15 | h3. For Maven 16 | 17 |

18 |   com.weiglewilczek.scala-lang-osgi
19 |   scala-library
20 |   2.9.1
21 | 
22 | -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | #Project properties 2 | #Mon Mar 28 08:32:24 CEST 2011 3 | project.organization=com.weiglewilczek.scala-lang-osgi 4 | project.name=scala-lang-osgi-parent 5 | sbt.version=0.7.7 6 | project.version=2.9.1 7 | build.scala.versions=2.9.1 8 | project.initialize=false 9 | -------------------------------------------------------------------------------- /project/build/Project.scala: -------------------------------------------------------------------------------- 1 | import com.weiglewilczek.bnd4sbt._ 2 | import sbt._ 3 | 4 | /** scala-lang-osgi parent project */ 5 | class ScalaLangOsgiParentProject(info: ProjectInfo) extends ParentProject(info) { 6 | 7 | // Subprojects 8 | lazy val scalaLibraryProject = project("scala-library", "scala-library", new ScalaLibraryProject(_)) 9 | lazy val scalaCompilerProject = project("scala-compiler", "scala-compiler", new ScalaCompilerProject(_)) 10 | 11 | // Publishing 12 | override def managedStyle = ManagedStyle.Maven 13 | override def deliverAction = super.deliverAction dependsOn(publishLocal) // Fix for issue 99! 14 | Credentials(Path.userHome / ".ivy2" / ".credentials", log) 15 | lazy val publishTo = "Scala Tools Nexus" at "http://nexus.scala-tools.org/content/repositories/releases/" 16 | // lazy val publishTo = Resolver.file("Local Test Repository", Path fileProperty "java.io.tmpdir" asFile) 17 | 18 | /** scala-library subproject */ 19 | class ScalaLibraryProject(info: ProjectInfo) extends ScalaLangOsgiBaseProject(info) { 20 | override lazy val bndExportPackage = 21 | "scala.*;version=%s".format(projectVersion.value) :: 22 | Nil 23 | override lazy val bndImportPackage = 24 | "sun.*;resolution:=optional" :: 25 | "*" :: 26 | Nil 27 | override lazy val bndDynamicImportPackage = 28 | "*" :: 29 | Nil 30 | override lazy val bndNoUses = true 31 | override lazy val bndClasspath = Path fromFile buildScalaInstance.libraryJar 32 | override lazy val bndOutput = super.bndOutput // Make it visible for ScalaCompilerProject! 33 | } 34 | 35 | /** scala-compiler subproject */ 36 | class ScalaCompilerProject(info: ProjectInfo) extends ScalaLangOsgiBaseProject(info) { 37 | override lazy val bndExportPackage = 38 | "scala.tools.nsc.*;version=%s".format(projectVersion.value) :: 39 | Nil 40 | override lazy val bndImportPackage = 41 | "sun.*;resolution:=optional" :: 42 | "jline.*;resolution:=optional" :: 43 | "org.apache.tools.ant.*;resolution:=optional" :: 44 | "*" :: 45 | Nil 46 | override lazy val bndDynamicImportPackage = 47 | "*" :: 48 | Nil 49 | override lazy val bndRequireBundle = 50 | "%s;bundle-version=%s".format(scalaLibraryProject.bndBundleSymbolicName, projectVersion.value) :: 51 | Nil 52 | override lazy val bndClasspath = (Path fromFile buildScalaInstance.compilerJar) +++ scalaLibraryProject.bndOutput 53 | } 54 | } 55 | 56 | /** Base subproject with common settings for scala-lang-osgi. */ 57 | abstract class ScalaLangOsgiBaseProject(info: ProjectInfo) extends DefaultProject(info) with BNDPlugin { 58 | 59 | override lazy val moduleID = normalizedName // We don't need the crossScalaVersionString! 60 | override def managedStyle = ManagedStyle.Maven 61 | 62 | override lazy val bndBundleSymbolicName = normalizedName 63 | override lazy val bndBundleName = "OSGi-fied %s" format bndBundleSymbolicName 64 | override lazy val bndExecutionEnvironment = Set(ExecutionEnvironment.Java5, ExecutionEnvironment.Java6) 65 | override lazy val bndBundleVendor = Some("Weigle Wilczek GmbH") 66 | override lazy val bndBundleLicense = Some("SCALA LICENSE (http://www.scala-lang.org/node/146)") 67 | override lazy val bndVersionPolicy = Some("[$(@),$(@)]") 68 | } 69 | -------------------------------------------------------------------------------- /project/plugins/Plugins.scala: -------------------------------------------------------------------------------- 1 | import sbt._ 2 | 3 | class Plugins(info: ProjectInfo) extends PluginDefinition(info) { 4 | 5 | // Dependencies 6 | lazy val bnd4sbt = "com.weiglewilczek.bnd4sbt" % "bnd4sbt" % "1.0.2" 7 | } 8 | -------------------------------------------------------------------------------- /project/plugins/project/build.properties: -------------------------------------------------------------------------------- 1 | #Project properties 2 | #Fri May 13 10:35:33 CEST 2011 3 | plugin.uptodate=true 4 | --------------------------------------------------------------------------------