public code v1

This commit is contained in:
2026-05-22 11:14:29 +02:00
parent 427197ec5a
commit b8141736eb
28859 changed files with 575079 additions and 0 deletions
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1 @@
/bin/
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>afryca.ase.engine.Jython</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
line.separator=\n
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
@@ -0,0 +1,18 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: afryca.ase.engine.Jython;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: %Bundle-Vendor
Require-Bundle: Jython,
afryca.ase,
javax.inject,
org.eclipse.core.runtime,
org.eclipse.e4.core.di,
org.eclipse.e4.core.contexts,
org.eclipse.e4.core.services,
org.eclipse.e4.ui.model.workbench
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Service-Component: OSGI-INF/jython_engine_provider_context_function.xml
Automatic-Module-Name: afryca.ase.engine.Jython
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="IJythonEngineProvider context function">
<implementation class="afryca.ase.engine.Jython.provider.internal.JythonEngineProviderContextFunction"/>
<property
name="service.context.key"
type="String"
value="afryca.ase.engine.Jython.provider.IJythonEngineProvider"/>
<service>
<provide
interface="org.eclipse.e4.core.contexts.IContextFunction"/>
</service>
</scr:component>
@@ -0,0 +1,3 @@
#Properties file for afryca.ase.engine.Jython
Bundle-Name = ASE Jython Engine
Bundle-Vendor = Sinbad\u00B2
@@ -0,0 +1,3 @@
#Archivo de propieades pra afryca.ase.engine.Jython
Bundle-Name = Entorno Jython para ASE
Bundle-Vendor = Sinbad\u00B2
@@ -0,0 +1,7 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
OSGI-INF/,\
fragment.e4xmi,\
plugin.xml
source.. = src/
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="ASCII"?>
<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmi:id="_MIIUQOMyEeas8JGgyYauhQ">
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_SD4hAOMyEeas8JGgyYauhQ" featurename="addons" parentElementId="afryca.rcp.application" positionInList="">
<elements xsi:type="application:Addon" xmi:id="_T12N4OMyEeas8JGgyYauhQ" elementId="afryca.ase.engine.jython.addon.JythonEngineAddon" contributionURI="bundleclass://afryca.ase.engine.Jython/afryca.ase.engine.Jython.addon.JythonEngineAddon"/>
</fragments>
</fragment:ModelFragments>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<extension
id="afryca.ase.engine.Jython.fragment"
point="org.eclipse.e4.workbench.model">
<fragment
uri="fragment.e4xmi">
</fragment>
</extension>
</plugin>
@@ -0,0 +1,60 @@
package afryca.ase.engine.Jython;
import javax.script.ScriptException;
import org.python.jsr223.PyScriptEngine;
import afryca.ase.engine.IEngine;
/**
* Jython engine for ASE
*
* @author Sinbad²
* @version 3.0
*/
public class Jython implements IEngine {
public static final String ID = "Jython"; //$NON-NLS-1$
private PyScriptEngine engine;
private String name;
private Jython() {
super();
name = ID;
engine = null;
}
/**
* Build Jython engine
*
* @param engine
* jython engine
*/
public Jython(PyScriptEngine engine) {
this();
assert engine != null;
this.engine = engine;
}
@Override
public String getName() {
return name;
}
@Override
public Object getEngine() {
return engine;
}
@Override
public Object eval(String script) throws ScriptException {
return engine.eval(script);
}
@Override
public void end() {
engine = null;
}
}
@@ -0,0 +1,52 @@
package afryca.ase.engine.Jython.addon;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import afryca.ase.engine.IEngine;
import afryca.ase.engine.Jython.provider.IJythonEngineProvider;
import afryca.ase.service.IASEService;
/**
* Jython engine add-on
*
* @author Sinbad²
* @version 3.0
*/
public class JythonEngineAddon {
@Inject
private IASEService aseService;
@Inject
private IJythonEngineProvider jythonEngineProvider;
@PostConstruct
private void addEngine() {
addEngineJob(IJythonEngineProvider.JYTHON);
}
private void addEngineJob(String scriptName) {
Job job = new Job(scriptName) {
@Override
protected IStatus run(IProgressMonitor monitor) {
IEngine engine = getEngine();
if (engine != null) {
aseService.addEngine(engine);
return Status.OK_STATUS;
}
return Status.CANCEL_STATUS;
}
};
job.schedule();
}
private IEngine getEngine() {
return jythonEngineProvider.getEngine();
}
}
@@ -0,0 +1,21 @@
package afryca.ase.engine.Jython.provider;
import afryca.ase.engine.IEngine;
/**
* Jython engine provider interface
*
* @author Sinbad²
* @version 3.0
*/
public interface IJythonEngineProvider {
public static final String JYTHON = "Jython"; //$NON-NLS-1$
/**
* Return Jython engine instance
*
* @return Jython engine instance
*/
IEngine getEngine();
}
@@ -0,0 +1,118 @@
package afryca.ase.engine.Jython.provider.internal;
import java.io.IOException;
import java.net.URL;
import java.util.Properties;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.script.ScriptEngine;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
import org.python.jsr223.PyScriptEngine;
import org.python.jsr223.PyScriptEngineFactory;
import org.python.util.PythonInterpreter;
import afryca.ase.engine.IEngine;
import afryca.ase.engine.Jython.Jython;
import afryca.ase.engine.Jython.provider.IJythonEngineProvider;
/**
* Jython engine default provider
*
* @author Sinbad²
* @version 3.0
*/
public class JythonEngineDefaultProvider implements IJythonEngineProvider {
private static final String PYTHON_HOME = "python.home"; //$NON-NLS-1$
@Inject
private IEclipseContext context;
private IEclipseContext topContext;
private Jython engine;
private Job job;
@PostConstruct
private void initialize() {
getTopContext();
createEngineJob(JYTHON);
}
private void getTopContext() {
IEclipseContext parent = context;
do {
topContext = parent;
parent = topContext.getParent();
} while (parent != null);
}
@Override
public IEngine getEngine() {
try {
job.join();
} catch (InterruptedException e) {
// Nothing to do
}
return (afryca.ase.engine.IEngine) topContext.get(JYTHON);
}
private void createEngineJob(String scriptName) {
job = new Job(scriptName) {
@Override
protected IStatus run(IProgressMonitor monitor) {
createEngine();
return (topContext.get(scriptName) != null)
? Status.OK_STATUS
: Status.CANCEL_STATUS;
}
};
job.schedule();
}
private void createEngine() {
ScriptEngine scriptEngine = null;
String home = getPythonHome();
if (home != null) {
Properties postProperties = new Properties();
postProperties.put(PYTHON_HOME, home);
PythonInterpreter.initialize(System.getProperties(), postProperties, null);
PyScriptEngineFactory factory = new PyScriptEngineFactory();
try {
scriptEngine = factory.getScriptEngine();
} catch(Exception e) {
//Nothing to do
}
}
topContext.set(JYTHON, (scriptEngine != null)
? new Jython((PyScriptEngine) scriptEngine)
: null);
}
private static String getPythonHome() {
try {
Bundle bundle = FrameworkUtil.getBundle(PythonInterpreter.class);
URL url = FileLocator.find(bundle, new Path("."), null); //$NON-NLS-1$
return FileLocator.toFileURL(url).getFile();
} catch (IOException ioException) {
return null;
}
}
public void end() {
if (engine != null) {
engine.end();
}
}
}
@@ -0,0 +1,27 @@
package afryca.ase.engine.Jython.provider.internal;
import org.eclipse.e4.core.contexts.ContextFunction;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.model.application.MApplication;
import afryca.ase.engine.Jython.provider.IJythonEngineProvider;
/**
* Jython engine provider context function
*
* @author Sinbad²
* @version 3.0
*/
public class JythonEngineProviderContextFunction extends ContextFunction {
@Override
public Object compute(IEclipseContext context, String contextKey) {
IJythonEngineProvider jythonEngineProvider = ContextInjectionFactory.make(JythonEngineDefaultProvider.class,
context);
MApplication application = context.get(MApplication.class);
IEclipseContext applicationContext = application.getContext();
applicationContext.set(IJythonEngineProvider.class, jythonEngineProvider);
return jythonEngineProvider;
}
}
@@ -0,0 +1,14 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: afryca.ase.engine.Jython;singleton:=true
Bundle-Version: 1.0.0.202101221157
Bundle-Vendor: %Bundle-Vendor
Require-Bundle: Jython,afryca.ase,javax.inject,org.eclipse.core.runtime,
org.eclipse.e4.core.di,org.eclipse.e4.core.contexts,org.eclipse.e4.core
.services,org.eclipse.e4.ui.model.workbench
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Service-Component: OSGI-INF/jython_engine_provider_context_function.xml
Automatic-Module-Name: afryca.ase.engine.Jython
@@ -0,0 +1,4 @@
#Fri Jan 22 13:00:09 CET 2021
artifact.main=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.ase.engine.Jython\\target\\afryca.ase.engine.Jython-1.0.0-SNAPSHOT.jar
artifact.attached.p2artifacts=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.ase.engine.Jython\\target\\p2artifacts.xml
artifact.attached.p2metadata=C\:\\Users\\\u00C1lvaro\\Workspaces\\afryca_2020\\afryca\\plugins\\afryca.ase.engine.Jython\\target\\p2content.xml
@@ -0,0 +1,3 @@
artifactId=afryca.ase.engine.Jython
groupId=afryca.group
version=1.0.0-SNAPSHOT
@@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<?artifactRepository version='1.1.0'?>
<artifacts size='1'>
<artifact classifier='osgi.bundle' id='afryca.ase.engine.Jython' version='1.0.0.202101221157'>
<properties size='5'>
<property name='artifact.size' value='11486'/>
<property name='download.size' value='11486'/>
<property name='maven-groupId' value='afryca.group'/>
<property name='maven-artifactId' value='afryca.ase.engine.Jython'/>
<property name='maven-version' value='1.0.0-SNAPSHOT'/>
</properties>
</artifact>
</artifacts>
@@ -0,0 +1,55 @@
<?xml version='1.0' encoding='UTF-8'?>
<units size='1'>
<unit id='afryca.ase.engine.Jython' version='1.0.0.202101221157' generation='2'>
<update id='afryca.ase.engine.Jython' range='[0.0.0,1.0.0.202101221157)' severity='0'/>
<properties size='9'>
<property name='es.Bundle-Name' value='Entorno Jython para ASE'/>
<property name='es.Bundle-Vendor' value='Sinbad²'/>
<property name='df_LT.Bundle-Name' value='ASE Jython Engine'/>
<property name='df_LT.Bundle-Vendor' value='Sinbad²'/>
<property name='org.eclipse.equinox.p2.name' value='%Bundle-Name'/>
<property name='org.eclipse.equinox.p2.provider' value='%Bundle-Vendor'/>
<property name='maven-groupId' value='afryca.group'/>
<property name='maven-artifactId' value='afryca.ase.engine.Jython'/>
<property name='maven-version' value='1.0.0-SNAPSHOT'/>
</properties>
<provides size='6'>
<provided namespace='org.eclipse.equinox.p2.iu' name='afryca.ase.engine.Jython' version='1.0.0.202101221157'/>
<provided namespace='osgi.bundle' name='afryca.ase.engine.Jython' version='1.0.0.202101221157'/>
<provided namespace='osgi.identity' name='afryca.ase.engine.Jython' version='1.0.0.202101221157'>
<properties size='1'>
<property name='type' value='osgi.bundle'/>
</properties>
</provided>
<provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
<provided namespace='org.eclipse.equinox.p2.localization' name='es' version='1.0.0'/>
<provided namespace='org.eclipse.equinox.p2.localization' name='df_LT' version='1.0.0'/>
</provides>
<requires size='9'>
<required namespace='osgi.bundle' name='Jython' range='0.0.0'/>
<required namespace='osgi.bundle' name='afryca.ase' range='0.0.0'/>
<required namespace='osgi.bundle' name='javax.inject' range='0.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='0.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.e4.core.di' range='0.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.e4.core.contexts' range='0.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.e4.core.services' range='0.0.0'/>
<required namespace='osgi.bundle' name='org.eclipse.e4.ui.model.workbench' range='0.0.0'/>
<requiredProperties namespace='osgi.ee' match='(&amp;(osgi.ee=JavaSE)(version=1.8))'>
<description>
afryca.ase.engine.Jython
</description>
</requiredProperties>
</requires>
<artifacts size='1'>
<artifact classifier='osgi.bundle' id='afryca.ase.engine.Jython' version='1.0.0.202101221157'/>
</artifacts>
<touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
<touchpointData size='1'>
<instructions size='1'>
<instruction key='manifest'>
Bundle-SymbolicName: afryca.ase.engine.Jython;singleton:=true&#xA;Bundle-Version: 1.0.0.202101221157&#xA;
</instruction>
</instructions>
</touchpointData>
</unit>
</units>