From 11eecf272945cbbc730bb6fbffb06d03d3c278e3 Mon Sep 17 00:00:00 2001 From: pixtaded Date: Sat, 17 Feb 2024 00:21:16 +0300 Subject: [PATCH] Initial commit --- .gitignore | 1 + build.gradle | 46 ++ gradle.properties | 1 + gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 234 +++++++++ gradlew.bat | 89 ++++ microemulator-2.0.4/CREDITS | 21 + microemulator-2.0.4/README | 93 ++++ microemulator-2.0.4/TODO | 67 +++ microemulator-2.0.4/apps/microemu-demo.jad | 10 + microemulator-2.0.4/extr/META-INF/MANIFEST.MF | 14 + .../org.microemu/microemu-cldc/pom.properties | 5 + .../maven/org.microemu/microemu-cldc/pom.xml | 82 ++++ .../microemu-javase-swing/pom.properties | 5 + .../microemu-javase-swing/pom.xml | 44 ++ .../microemu-javase/pom.properties | 5 + .../org.microemu/microemu-javase/pom.xml | 51 ++ .../org.microemu/microemu-midp/pom.properties | 5 + .../maven/org.microemu/microemu-midp/pom.xml | 89 ++++ .../extr/META-INF/microemulator-build.version | 6 + .../extr/org/microemu/device/default/123.png | Bin 0 -> 187 bytes .../org/microemu/device/default/abc_lower.png | Bin 0 -> 183 bytes .../org/microemu/device/default/abc_upper.png | Bin 0 -> 180 bytes .../org/microemu/device/default/device.xml | 450 ++++++++++++++++++ .../microemu/device/default/down-pressed.png | Bin 0 -> 180 bytes .../extr/org/microemu/device/default/down.png | Bin 0 -> 185 bytes .../org/microemu/device/default/normal.png | Bin 0 -> 18467 bytes .../extr/org/microemu/device/default/over.png | Bin 0 -> 13079 bytes .../org/microemu/device/default/pressed.png | Bin 0 -> 14223 bytes .../microemu/device/default/up-pressed.png | Bin 0 -> 178 bytes .../extr/org/microemu/device/default/up.png | Bin 0 -> 179 bytes .../org/microemu/device/resizable/device.xml | 325 +++++++++++++ .../org/microemu/device/resizable/normal.png | Bin 0 -> 976 bytes .../extr/org/microemu/icon.png | Bin 0 -> 980 bytes .../microemu-jsr-82.apache.license-2.0.txt | 202 ++++++++ microemulator-2.0.4/microemu-demo.html | 13 + settings.gradle | 1 + src/main/java/Hello.java | 14 + src/main/resources/icon.png | Bin 0 -> 597 bytes 39 files changed, 1878 insertions(+) create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 microemulator-2.0.4/CREDITS create mode 100644 microemulator-2.0.4/README create mode 100644 microemulator-2.0.4/TODO create mode 100644 microemulator-2.0.4/apps/microemu-demo.jad create mode 100644 microemulator-2.0.4/extr/META-INF/MANIFEST.MF create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.properties create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.xml create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.properties create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.xml create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.properties create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.xml create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.properties create mode 100644 microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.xml create mode 100644 microemulator-2.0.4/extr/META-INF/microemulator-build.version create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/123.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/abc_lower.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/abc_upper.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/device.xml create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/down-pressed.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/down.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/normal.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/over.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/pressed.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/up-pressed.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/default/up.png create mode 100644 microemulator-2.0.4/extr/org/microemu/device/resizable/device.xml create mode 100644 microemulator-2.0.4/extr/org/microemu/device/resizable/normal.png create mode 100644 microemulator-2.0.4/extr/org/microemu/icon.png create mode 100644 microemulator-2.0.4/lib/microemu-jsr-82.apache.license-2.0.txt create mode 100644 microemulator-2.0.4/microemu-demo.html create mode 100644 settings.gradle create mode 100644 src/main/java/Hello.java create mode 100644 src/main/resources/icon.png diff --git a/.gitignore b/.gitignore index 6c02962..9bc97b7 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ gradle-app.setting hs_err_pid* replay_pid* +.idea \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..3141f0e --- /dev/null +++ b/build.gradle @@ -0,0 +1,46 @@ +plugins { + id 'java' +} + +group 'net.example' +version '1.0-SNAPSHOT' + + +repositories { + mavenCentral() +} + +dependencies { + implementation files('microemulator-2.0.4/microemulator.jar') +} + +jar { + manifest { + attributes( + 'MIDlet-Vendor': 'pixtaded', + 'MIDlet-Version': '1.0', + 'MicroEdition-Configuration': 'CLDC 1.0', + 'MIDlet-Name': 'Hello', + 'MIDlet-Description': 'Test MIDlet', + 'MicroEdition-Profile': 'MicroEdition-Profile', + 'MIDlet-1': 'Hello,/icon.png,Hello' + ) + } +} + +task runEmulator(dependsOn:jar) { + doLast { + javaexec { + main = "-jar" + args = [ + "./microemulator-2.0.4/microemulator.jar", + jar.getArchiveFile().get().asFile.getAbsolutePath() + ] + } + } +} + +java { + sourceCompatibility = "1.2" + targetCompatibility = "1.1" +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..bcf511c --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +javaPath = C:/Program Files/Java/jdk1.8.0_271/bin/ \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..41dfb87 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..1b6c787 --- /dev/null +++ b/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# https://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. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +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 + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +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. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/microemulator-2.0.4/CREDITS b/microemulator-2.0.4/CREDITS new file mode 100644 index 0000000..eba9c11 --- /dev/null +++ b/microemulator-2.0.4/CREDITS @@ -0,0 +1,21 @@ +Bartek Teodorczyk +3G Lab http://www.3glab.com +Julian L. Hunter +Markus Heberling +daniel(at)angrymachine.com.ar +Andres Navarro +Erik Eriksson +John Blackmon +Vlad Skarzhevskyy http://pyx4me.com/ +Travis Berthelot + +Base64Coder +Copyright 2003: Christian d'Heureuse, Inventec Informatik AG, Switzerland. + +Parts of the project has been developed while paid by Opera Software. +Info: www.opera.com. To apply for a job: www.opera.com/jobs + +Matthew Palmer MicroEmulator Logo Designer + +Cellphone illustration is created base on art work of David Luscombe + http://www.istockphoto.com/fontmonster/ diff --git a/microemulator-2.0.4/README b/microemulator-2.0.4/README new file mode 100644 index 0000000..014f5a0 --- /dev/null +++ b/microemulator-2.0.4/README @@ -0,0 +1,93 @@ +MicroEmulator + +J2ME Device Emulator is pure Java implementation of J2ME in J2SE. +It allows demonstrate MIDlet (MIDP/CLDC) based applications as a +standalone Java application or as web browser applet. + +Context: + 1. Running application + 2. Applet config + 3. Building MicroEmulator from sources + +Requirements: + - J2SE 1.4+ + +There are two methods of running apps in emulator: + +1. As an application: +a) java org.microemu.app.Main (MIDlet application main class) +or, java org.microemu.app.Main (MIDlet jad file) + + - microemulator.jar must be in CLASSPATH + +b) java -jar microemulator.jar (MIDlet application main class) +or, java -jar microemulator.jar (MIDlet jad file) + + - (MIDlet application main class) parameter is optional, if used MIDlet + application jar file must be in CLASSPATH, + - (MIDlet jad file) must have .jad extension, + - for Nokia UI support include nokiaui.jar to the CLASSPATH, + - for Siemens API support include siemensapi.jar to the CLASSPATH. + + +2. In applet: + +Preparing applet version of MIDlet should be done by selecting Save for Web menu item from File menu +in standalone MicroEmulator application. During that process additional MIDlet bytecode modification +is performed in order to satisfy some compatibility issues running Java ME code inside Java SE. + +Produced html code: + + + + + - for Nokia UI support include nokiaui.jar to the archive attribute, + - for Siemens API support include siemensapi.jar to the archive attribute. + +There is additional parameter in applet definition tag if you want start applet +with another device than default: + + eg. minimum phone included in distribution has + org/microemu/device/minimum/device.xml + +and remember to include new device jar into applet archive tag + eg. minimum phone included in distribution has + minimum.jar + +Example for SimpleDemo MIDlet, Nokia UI support and Minimum device: + + + + + +Example for SimpleDemo MIDlet and Minimum device with Mouse and color: + + + + + +Example for SimpleDemo MIDlet and Large Skin: + + + + + + +3. Building MicroEmulator from sources + + We are using maven2 to build project + + To build project you need this environment variables: + JAVA_HOME, SWT_HOME (to build swt module) and WTK_HOME to compile and test MIDlets + + To create Eclipse projects run: + mvn eclipse:clean eclipse:eclipse -DdownloadSources=true + + To run build without tests: + mvn -Dmaven.test.skip=true + + diff --git a/microemulator-2.0.4/TODO b/microemulator-2.0.4/TODO new file mode 100644 index 0000000..24ab59d --- /dev/null +++ b/microemulator-2.0.4/TODO @@ -0,0 +1,67 @@ +* Errors that are produced by user action should result in message dialog! + (Main/Swt/WebStart) + +* Open URL dialog should have Editable DropDown instead of Input box. + There should be the list of recently opened URLS this list should + be stored in config.xml + +* Need SWT, Swing done - In File dialog we need to have recently opened files. Add the list to config.xml + +* Midlet display window should have the ability to have magnified version. + +* persistent RecordStore for applet using cookies (some code already exist written by Roar Lauritzsen) + +* extended web site with overview, api docs, faq section, instalation instructions, etc. + (app requires Java 2, applet can be run in JVM 1.1) + +* Prepare WebStart environment to be part of standard distribution not just our demo. + +* Untrusted webstart + +* decide what to do with JSObject. create stub class or use USER_LIBRARY in .classpath ro eclipse. + +* JUnit / HeadlessEmulator + +* rebuild InputMethod to extend functionality: + - switching between modes (numeric, password, URL, etc.) + - solve problem with VK_BACKSPACE key on emulator device + +* ConnectionFramework + - udp + - file in memory + +* (?) applet loader - during loading applet code progress bar should be visible + +* Replace all System.err.println with proper log infrastructure + +* Create eclipseme.core.model.impl for Microemulator as described + http://eclipseme.org/docs/developer/extending.html + Contribute this to eclipseme + +* UEI + +-- Maybe TODO -- just ideas + +* Need to add credits tag to device.xml + + + David Luscombe + http://www.davidluscombe.com/ + < -- image size of the display and to cover all the display --> + davidLogo.png + + +* Need to have another image and special button on skin + when pressed the image is show in display, may show designer credits. + + + + 159 + 432 + 54 + 31 + + showCreditsImage + + + diff --git a/microemulator-2.0.4/apps/microemu-demo.jad b/microemulator-2.0.4/apps/microemu-demo.jad new file mode 100644 index 0000000..8ff07d3 --- /dev/null +++ b/microemulator-2.0.4/apps/microemu-demo.jad @@ -0,0 +1,10 @@ +MIDlet-Jar-URL: microemu-demo.jar +MIDlet-Jar-Size: 33610 +MIDlet-Name: microemu-demo +MIDlet-Vendor: MicroEmulator Team +MIDlet-Version: 2.0.4 +Created-By: Bartek Teodorczyk +MIDlet-Icon: /me2-icon.png +MicroEdition-Configuration: CLDC-1.1 +MicroEdition-Profile: MIDP-2.0 +MIDlet-1: SimpleDemo, /me2-icon.png, org.microemu.midp.examples.simpledemo.SimpleDemoMIDlet diff --git a/microemulator-2.0.4/extr/META-INF/MANIFEST.MF b/microemulator-2.0.4/extr/META-INF/MANIFEST.MF new file mode 100644 index 0000000..059c213 --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Archiver-Version: Plexus Archiver +Created-By: 14.2-b01 (Sun Microsystems Inc.) +License: GNU Library or Lesser General Public License (LGPL) +Description: MicroEmulator, Java 2 Micro Edition (J2ME) CLDC/MIDP Emul + ator +Main-Class: org.microemu.app.Main +Implementation-URL: http://www.microemu.org/ +Implementation-Version: 2.0.4 +Implementation-Build: 2.0.4.62 +SVN-Revision: ${scm.revision} +Built-By: microemu-build +Build-Date: 2010-01-14 11:01:27 + diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.properties b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.properties new file mode 100644 index 0000000..c2f1cb6 --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Jan 14 11:00:13 EST 2010 +version=2.0.4 +groupId=org.microemu +artifactId=microemu-cldc diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.xml b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.xml new file mode 100644 index 0000000..32556ee --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-cldc/pom.xml @@ -0,0 +1,82 @@ + + + + 4.0.0 + + + org.microemu + microemu + 2.0.4 + ../pom.xml + + + microemu-cldc + microemu-cldc + + cldc interfaces + + + + + junit + junit + test + true + + + + net.sf.jour + jour-instrument + test + true + + + + + + + + com.pyx4me + proguard-maven-plugin + ${pyx4meVersion} + + + package + proguard + + + + ${basedir}/proguard.conf + true + 4applet + + ${javaRunTimeJar} + + + + + + net.sf.jour + jour-maven-plugin + ${jourVersion} + + + + signatureVerify + + + false + protected + ${basedir}/src/test/resources/cldcapi_10_11-javax.microedition.io-signature.xml + + + + + + + + + \ No newline at end of file diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.properties b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.properties new file mode 100644 index 0000000..0ffa7dd --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Jan 14 11:00:51 EST 2010 +version=2.0.4 +groupId=org.microemu +artifactId=microemu-javase-swing diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.xml b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.xml new file mode 100644 index 0000000..6ff44af --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase-swing/pom.xml @@ -0,0 +1,44 @@ + + + + 4.0.0 + + + org.microemu + microemu + 2.0.4 + ../pom.xml + + + microemu-javase-swing + microemu-javase-swing + + javase-swing + + + + org.microemu + microemu-javase + ${project.version} + + + + + org.microemu + microemu-injected + ${project.version} + inject + true + + + + sun + applet-jsobject + true + + + + \ No newline at end of file diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.properties b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.properties new file mode 100644 index 0000000..30a4d2e --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Jan 14 11:00:47 EST 2010 +version=2.0.4 +groupId=org.microemu +artifactId=microemu-javase diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.xml b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.xml new file mode 100644 index 0000000..8af495f --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-javase/pom.xml @@ -0,0 +1,51 @@ + + + + 4.0.0 + + + org.microemu + microemu + 2.0.4 + ../pom.xml + + + microemu-javase + microemu-javase + + javase + + + + org.microemu + microemu-midp + ${project.version} + + + + + + + asm + asm + + + + junit + junit + test + + + + + \ No newline at end of file diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.properties b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.properties new file mode 100644 index 0000000..4c02f28 --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Jan 14 11:00:22 EST 2010 +version=2.0.4 +groupId=org.microemu +artifactId=microemu-midp diff --git a/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.xml b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.xml new file mode 100644 index 0000000..68bffc5 --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/maven/org.microemu/microemu-midp/pom.xml @@ -0,0 +1,89 @@ + + + + 4.0.0 + + + org.microemu + microemu + 2.0.4 + ../pom.xml + + + microemu-midp + microemu-midp + + midp + + + + + org.microemu + microemu-cldc + ${project.version} + + + + junit + junit + test + + + + net.sf.jour + jour-instrument + test + true + + + + + + + + com.pyx4me + proguard-maven-plugin + ${pyx4meVersion} + + + package + proguard + + + + ${basedir}/proguard.conf + true + 4applet + + ${javaRunTimeJar} + + + + + + + + + + \ No newline at end of file diff --git a/microemulator-2.0.4/extr/META-INF/microemulator-build.version b/microemulator-2.0.4/extr/META-INF/microemulator-build.version new file mode 100644 index 0000000..53b8568 --- /dev/null +++ b/microemulator-2.0.4/extr/META-INF/microemulator-build.version @@ -0,0 +1,6 @@ +#$Id: build.version 2285 2010-01-14 15:59:48Z microemu-build@pyx4j.com $ +# When you increment a build.version in this file You need to set build.buildNum=0 +# This way the first build will start from 01 +#Thu Jan 14 10:59:48 EST 2010 +build.version=2.0.4 +build.buildNum=62 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/123.png b/microemulator-2.0.4/extr/org/microemu/device/default/123.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c86398dffd87a5ad5dedf075922ee77ef0fc6d GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CO!3-q1b7I7R6id3JuOkD)`V;1?T`z%r$r9Iy zlHmNblJdl&R0hYC{G?O`&)mfH)S%SFl*+=BsWw1GYymzYu0Z<#|Nl#G&c6#}F_i@Q z1^;Jwy4}DF$kX+7aSW-rm6VW@kdl&;z>v&laF#=uDR70%3Zo7QmuZa47|$d&%wSTI cU}WN9;9_JjU96jT45*R8)78&qol`;+09xHMnE(I) literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/abc_lower.png b/microemulator-2.0.4/extr/org/microemu/device/default/abc_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9a2adbf70b1067ee94b7cc1a0aaf77ca71f437 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^d_c_3!3-q%XZC0VDVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X*aCb)T!Hle|NocXoPQU{Vk!yp z3;xgWbi08Ukf-VC;uunKD=C46kQJ^LUPgg&ebxsLQ010U|i2wiq literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/abc_upper.png b/microemulator-2.0.4/extr/org/microemu/device/default/abc_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..31e7c2e1378be8cd28926367eb248183bdc2925d GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^d_c_3!3-q%XZC0VDVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X*aCb)T!Hle|NocXoPQU{Vk!yp z3;xgWbi08Ukf-M9;uunKD=8r*A%P`Hfl=w8jGIN{snnJtMG+s{T{>b%6@(NHFmUTI Vm}NBnod?vx;OXk;vd$@?2>?$1Gok + + + + + + + + + + + true + 65536 + 256 + 000000 + ffffff + + 26 + 44 + 176 + 220 + + + 0 + 22 + 176 + 176 + + + + 78 + 206 + 12 + 12 + + + + + + + 88 + 206 + 12 + 12 + + + + + + + + 4 + 4 + 14 + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + + + 16 + 282 + 60 + 35 + + + 1 + 203 + 69 + 16 + + + BACK + EXIT + CANCEL + STOP + + + + 154 + 282 + 60 + 35 + + + 106 + 203 + 69 + 16 + + + OK + SCREEN + ITEM + HELP + + + + + + + + + + + + + + + + + + + + diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/down-pressed.png b/microemulator-2.0.4/extr/org/microemu/device/default/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2ba7dbdf656efa6a99337b39aaa947b2c08073cd GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OSkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$(3-AeX{r~?zkQsXDavhLjED7=p zW^j0RBMrz=_jGX#skoJt;K0~Z&~Pr%A#HJy#DtqGWY|*7wAvYG_MU2FYG7by5c|Sl U%h|A_5U7R0)78&qol`;+01SjRZ2$lO literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/down.png b/microemulator-2.0.4/extr/org/microemu/device/default/down.png new file mode 100644 index 0000000000000000000000000000000000000000..e652ab4f92b92a085e98e614f491a4af9f499a94 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OSkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$(3-AeX{r~?zkQsXDavhLjED7=p zW^j0RBMr#W@pN$vskoJt;K0~Z!0_mRtE7O98ygQ_myH(tk%W{3rxFuVQVtw!WNKhw ZX5jk4Aj>RQz5%F@!PC{xWt~$(69C|VHM9T# literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/normal.png b/microemulator-2.0.4/extr/org/microemu/device/default/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..e34649088e0c02b35c02ee24cf08fd9781bedb97 GIT binary patch literal 18467 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 literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/pressed.png b/microemulator-2.0.4/extr/org/microemu/device/default/pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc152e073aabd95006d251d473bec261f059dfa GIT binary patch literal 14223 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 S*}s2WZ)7ADLDk~l0{<7?yyX7? literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/default/up-pressed.png b/microemulator-2.0.4/extr/org/microemu/device/default/up-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..af88fd24759f2b709114c11a3903b161a7555179 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OSkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$(3-AeX{r~?zkQsXDavhLjED7=p zW^j0RBMrz=^>lFzskl{gd?PP|0mlJ@KmRYUS*f+B^4Vd*O>Juwvro)B!ezj~cZI<= TTlMujpaup{S3j3^P6C#5QQ<|d}62BjvZR2H60wE-$(3-AeX{r~?zkQsXDavhLjED7=p zW^j0RBMrz=^K@|xskoJtaDbtw$HJl~p{4aOhx!Ez4H0FrqX}%vG7GF&6b>-32QbLy ToICyysDr`N)z4*}Q$iB}wN5l? literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/extr/org/microemu/device/resizable/device.xml b/microemulator-2.0.4/extr/org/microemu/device/resizable/device.xml new file mode 100644 index 0000000..31dd2f7 --- /dev/null +++ b/microemulator-2.0.4/extr/org/microemu/device/resizable/device.xml @@ -0,0 +1,325 @@ + + + + + + true + 65536 + 256 + 000000 + ffffff + + 0 + 0 + 176 + 220 + + + 0 + 22 + 176 + 176 + + + + 78 + 206 + 12 + 12 + + + + + + + 88 + 206 + 12 + 12 + + + + + + + 4 + 4 + 14 + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + + + 1 + 203 + 69 + 16 + + + BACK + EXIT + CANCEL + STOP + + + + 106 + 203 + 69 + 16 + + + OK + SCREEN + ITEM + HELP + + + + + + + + + + + + + + + + + + + + diff --git a/microemulator-2.0.4/extr/org/microemu/device/resizable/normal.png b/microemulator-2.0.4/extr/org/microemu/device/resizable/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..93bec8396d5452ee826149c2d6dbda355d3e2e2d GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^8-Vx@2Q!d-9)H`Hfq`jpfKQ0)?c2A{pTF49(3+8v zlbM-w{rZiK8@I1tzjfil<%<@rShQ&QlPAyq|NnpG%IymmuAe`D?fm)c*RS8Ze*ON9 z8}|<$JXBxba^}pLBS%gjI&|pBkyA&Hp8oy&_vg=_j~+d`e*OBHGiS!cM4OtLsH&=J zYisN2>1ka0`MS8cn3xzVDJg}A zhtHTXy}iBN&d%1%%uGi|M@&piKtMoPSXf3zMomo(=ob|gWov8eu&}U{lw=DF^Qfq( z(9lo=0|QP@PJMm-b?erJgoLoMu_-Dl78Deem6cUgR1_B%=j7z1rKQHk#zsU$xVSiH zW@ZWq@HaO%cXoDmb#=A1wKg;~)YQ~eRFr3BWhEvidV71fw6wUnxoK!)f9RaI3!K0b>UEnK{K@qz^l=FguuckbM2 z)22?8#b(8yLRoWRV#sD_Uu_bJ>5x3N%HdY92^{b z_UzuVV>=HIkD;MqdV2biBS-e_+qZl7?rqz)&6+jS%ggh?fde~s>?kQIe*F0Hl`B`y zoH@OB@7@(FmcM`h{@%TNmoHyFeE4umO3H%=4_>``b?)4`lP6DlczFE!_3Oop7gw)c zxp3jasZ*y`uU`G*$B%2*u5H@1>CKxrw{G2HVPX0B@#BLB_n$p`CM_);7#Qf`;hvkD z%gD%>kdTm(k#YC#-6v0;eERh1>({S;{`?6F3W|@9|M%}73k&nNZ{HXh85$bu)znn; z@^W=_v}I(Zv$8U$O`DpOl<4H-Xytk8FfgVWlf2zs7&=&GJ%Aj}0*}aI1_o{+5N5n| zx9$&6kiEpy*OmPm8xxnDYVBA2ZHzS-=FF2 zv*hBox3~ZB;lug!=jG+)`z2*+L?za*U%z0%0!~K8{RKtw@$nZfT=?!(ML?%%)v=IXWl{Cpo? z{(^#nHEtd^SFOG@d(MUp8-#>}g_)Vd_yv}lTg{$5CmKcE4e**)9O(9{KLLx_w9-Tjb{)7n=5)u+jP0jZ2-ya$pW@%~ZV`_Tf zz=4O49_>s{Jyzd%W96zHNhuE=JUD&&Oi)m;gM)*Dfg(&1l9E1t`m}iRR`2_>HGz1KjXT|FPR7l=_ls+5(AE;?hKlr_Tqgrwmg?zmYyS5e{(krAQt9KL zub;%{+WWr}X7@q$A@3zk>!ZbcVdIvprc6i;s!y;aITvipa-WQJ%M% zRgP0%7&N&?uVg+VzlGCw;ch9XtIxZu;vPBvwo9@%ZHPT-TJlb6esDxd`;Wu}3psszGk%b)%CJJPS+T6_Kc-!GfCU%XPM zRT%MUF_1NB!n}eBzXOlTz3ln=V^ve*S7Xhx0$urp``7EHY~Hi*dZyuH|Npn{ho?{b pm%jV!t$i++r`@euY|q5Q@TSP-k^1XmZeT)U@O1TaS?83{1OQHs0IC20 literal 0 HcmV?d00001 diff --git a/microemulator-2.0.4/lib/microemu-jsr-82.apache.license-2.0.txt b/microemulator-2.0.4/lib/microemu-jsr-82.apache.license-2.0.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/microemulator-2.0.4/lib/microemu-jsr-82.apache.license-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/microemulator-2.0.4/microemu-demo.html b/microemulator-2.0.4/microemu-demo.html new file mode 100644 index 0000000..931f6f4 --- /dev/null +++ b/microemulator-2.0.4/microemu-demo.html @@ -0,0 +1,13 @@ + + + + MicroEmulator + + + + + + + diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..b70513b --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'j2me-hello-gradle' \ No newline at end of file diff --git a/src/main/java/Hello.java b/src/main/java/Hello.java new file mode 100644 index 0000000..cd785be --- /dev/null +++ b/src/main/java/Hello.java @@ -0,0 +1,14 @@ +import javax.microedition.midlet.MIDlet; +import javax.microedition.lcdui.TextBox; +import javax.microedition.lcdui.Display; + +public class Hello extends MIDlet { + public Hello() { + Display display = Display.getDisplay(this); + TextBox hello = new TextBox("Hello!", "Hello World!", 256, 0); + display.setCurrent(hello); + } + public void startApp() {} + public void destroyApp(boolean unconditional) {} + public void pauseApp() {} +} \ No newline at end of file diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1405a4bb7e7eb719234a3537e41765c36f20fc4 GIT binary patch literal 597 zcmV-b0;>IqP)EX>4Tx04R}tkv&MmKpe$iQ>7v;4i*t{$WWc^Qa^C4RVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRrd-(Wz7v)*r=l&caHE%J%Clbe*VcNtS#50?= z!FiuJ%u2FKd`>)J(glehxvsSMjdRgufoF!zOnRO;Oe_|=Sm|O`GBx5U;)ts0lrLmk zta9GstW|2PeNXR-^Y&AJOTXAz?I(dR~x|WC+YQ$ z7C8b2wt(g#z$?M&FbJ25*7>wN`KKeVjf38R{x^0~{Oz z<3-9|_jq?-cW?imY4`U75%Y59)&myI00009a7bBm001r{001r{0eGc9b^rhX2XskI zMF-~$77aH5@5oob0000PbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbN zKS@MER4C75{Qv(y11W%sfkZ&D21Z6kJlp|s5<$R7uVBRt4P2oI)$srSe>{2^84)f= j@dGYBC~5|OS|SJlVD1$iBXffr00000NkvXXu0mjf<`nJn literal 0 HcmV?d00001