diff --git a/.classpath b/.classpath
index 606daf4..82dfd65 100644
--- a/.classpath
+++ b/.classpath
@@ -15,13 +15,12 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
diff --git a/build.xml b/build.xml
index 14a730b..b876446 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,6 @@
-
@@ -51,15 +50,19 @@
-
-
+
+
+
+
+
+
diff --git a/configuration.properties b/configuration.properties
new file mode 100644
index 0000000..dc25d9a
--- /dev/null
+++ b/configuration.properties
@@ -0,0 +1,2 @@
+#comma separated list of dml urls
+dml.path=/home/testEnv/fdb/fenix-webapp/target/dmls
diff --git a/src/fenixDomainBrowser/client/ClassSelected.java b/src/fenixDomainBrowser/client/ClassSelected.java
index 85572af..a5f0d03 100644
--- a/src/fenixDomainBrowser/client/ClassSelected.java
+++ b/src/fenixDomainBrowser/client/ClassSelected.java
@@ -8,7 +8,6 @@
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.History;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
diff --git a/src/fenixDomainBrowser/client/CustomButton.java b/src/fenixDomainBrowser/client/CustomButton.java
index c078483..dba7574 100644
--- a/src/fenixDomainBrowser/client/CustomButton.java
+++ b/src/fenixDomainBrowser/client/CustomButton.java
@@ -4,7 +4,6 @@
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Image;
diff --git a/src/fenixDomainBrowser/client/DashBoard.java b/src/fenixDomainBrowser/client/DashBoard.java
index 096b276..a8f57ce 100644
--- a/src/fenixDomainBrowser/client/DashBoard.java
+++ b/src/fenixDomainBrowser/client/DashBoard.java
@@ -1,14 +1,9 @@
package fenixDomainBrowser.client;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.uibinder.client.UiHandler;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.Widget;
public class DashBoard extends Composite {
diff --git a/src/fenixDomainBrowser/client/Interface.java b/src/fenixDomainBrowser/client/Interface.java
index 2be4239..73a999a 100644
--- a/src/fenixDomainBrowser/client/Interface.java
+++ b/src/fenixDomainBrowser/client/Interface.java
@@ -215,10 +215,10 @@ public void onClick(ClickEvent event) {
public void onClick(ClickEvent arg0) {
final PopupPanel popupPanel = new PopupPanel();
popupPanel.setWidth("500px");
- popupPanel.add(new Label("Loading DML from SVN ..."));
+ popupPanel.add(new Label("Loading DML from GitHub ..."));
popupPanel.center();
popupPanel.show();
- RELAY.freshDML(new LoadClassesCallback(popupPanel, "Loading DML from SVN ...", "Fenix Live",
+ RELAY.freshDML(new LoadClassesCallback(popupPanel, "Loading DML from GitHub ...", "Fenix Live",
"net.sourceforge.fenixedu.domain"));
}
});
diff --git a/src/fenixDomainBrowser/server/ConfigurationProperties.java b/src/fenixDomainBrowser/server/ConfigurationProperties.java
new file mode 100644
index 0000000..9e1df73
--- /dev/null
+++ b/src/fenixDomainBrowser/server/ConfigurationProperties.java
@@ -0,0 +1,51 @@
+package fenixDomainBrowser.server;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.commons.lang.StringUtils;
+
+public class ConfigurationProperties {
+ private static Properties props;
+
+ static {
+ props = new Properties();
+ try {
+ props.load(ConfigurationProperties.class.getResourceAsStream("/configuration.properties"));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static Map getDMLUrls() {
+ Map urls = new HashMap();
+ String dmlPath = (String) props.get("dml.path");
+
+ if (StringUtils.isEmpty(dmlPath)) {
+ dmlPath = "/tmp/dmls/";
+ }
+
+ File[] listFiles = new File(dmlPath).listFiles(new FilenameFilter() {
+
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".dml");
+ }
+ });
+
+ for (File file : listFiles) {
+ try {
+ urls.put(file.getName(), file.toURL());
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ }
+ return urls;
+ }
+}
diff --git a/src/fenixDomainBrowser/server/DomainModelProvider.java b/src/fenixDomainBrowser/server/DomainModelProvider.java
index ec64081..4b20ac4 100644
--- a/src/fenixDomainBrowser/server/DomainModelProvider.java
+++ b/src/fenixDomainBrowser/server/DomainModelProvider.java
@@ -1,9 +1,7 @@
package fenixDomainBrowser.server;
-import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -16,15 +14,13 @@
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
-import pt.ist.fenixframework.pstm.DML;
-import pt.ist.fenixframework.pstm.dml.FenixDomainModel;
-import pt.ist.fenixframework.pstm.dml.FenixDomainModelWithOCC;
+import pt.ist.fenixframework.DomainModelParser;
+import pt.ist.fenixframework.dml.DomainClass;
+import pt.ist.fenixframework.dml.DomainModel;
+import pt.ist.fenixframework.dml.Slot;
import sun.misc.BASE64Decoder;
-import dml.DomainClass;
-import dml.Slot;
import fenixDomainBrowser.client.NewFilesPopup.OpenFilesState;
import fenixDomainBrowser.server.graphvizAdapter.Dot;
import fenixDomainBrowser.shared.ClassBean;
@@ -71,9 +67,9 @@ public DomainModelDefinitions(List data) {
public class LoadedDomainModel {
- private FenixDomainModel domainModel;
+ private DomainModel domainModel;
private DomainModelDefinitions domainModelDefinitions;
- private HashMap> subclasses = new HashMap>();
+ private final HashMap> subclasses = new HashMap>();
public LoadedDomainModel(DomainModelDefinitions dmd) {
List domainModelURLs = new ArrayList();
@@ -81,7 +77,8 @@ public LoadedDomainModel(DomainModelDefinitions dmd) {
for (String string : dmd.fileNames) {
domainModelURLs.add(new File(string).toURL());
}
- domainModel = DML.getDomainModelForURLs(FenixDomainModelWithOCC.class, domainModelURLs, true);
+// domainModel = DML.getDomainModelForURLs(DomainModelWithOCC.class, domainModelURLs, true);
+ domainModel = DomainModelParser.getDomainModel(domainModelURLs);
} catch (Exception e) {
throw new RuntimeException("error loading DML",e);
}
@@ -110,7 +107,7 @@ public DomainModelDefinitions getDomainModelDefinitions() {
}
}
- private HashMap domainModels = new HashMap();
+ private final HashMap domainModels = new HashMap();
public DomainModelProvider() {
}
@@ -134,11 +131,11 @@ public LoadedDomainModel getLoadedDomainModel(FDBState state) {
return domainModels.get(state.getSignature());
}
- public FenixDomainModel getDomainModel(DomainModelSignatures signature) {
+ public DomainModel getDomainModel(DomainModelSignatures signature) {
return getLoadedDomainModel(signature).domainModel;
}
- public FenixDomainModel getDomainModel(FDBState signature) {
+ public DomainModel getDomainModel(FDBState signature) {
return getDomainModel(signature.getSignature());
}
@@ -193,7 +190,7 @@ public void loadFromDomainModelDomainModelDefinitions(DomainModelDefinitions dmd
fos.close();
ZipFile zipFile = new ZipFile(tempZipFile);
- ZipEntry entry = (ZipEntry) zipFile.entries().nextElement();
+ ZipEntry entry = zipFile.entries().nextElement();
InputStream eis = zipFile.getInputStream(entry);
byte[] buffer = new byte[1024];
diff --git a/src/fenixDomainBrowser/server/FenixDomainBrowserRelayImpl.java b/src/fenixDomainBrowser/server/FenixDomainBrowserRelayImpl.java
index bef9055..74336dd 100644
--- a/src/fenixDomainBrowser/server/FenixDomainBrowserRelayImpl.java
+++ b/src/fenixDomainBrowser/server/FenixDomainBrowserRelayImpl.java
@@ -5,22 +5,25 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
import java.util.Enumeration;
import java.util.List;
+import java.util.Map;
+import java.util.TreeSet;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.io.FileUtils;
-import pt.ist.fenixframework.pstm.dml.FenixDomainModel;
+import pt.ist.fenixframework.dml.DomainClass;
+import pt.ist.fenixframework.dml.DomainModel;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
-import dml.DomainClass;
import fenixDomainBrowser.client.FenixDomainBrowserRelay;
import fenixDomainBrowser.client.NewFilesPopup.OpenFilesState;
import fenixDomainBrowser.server.DomainModelProvider.DomainModelDefinitions;
@@ -33,175 +36,200 @@
@SuppressWarnings("serial")
public class FenixDomainBrowserRelayImpl extends RemoteServiceServlet implements FenixDomainBrowserRelay {
public static final DomainModelProvider DOMAIN_PROVIDER = new DomainModelProvider();
+ public static final String DML_PATH = "/tmp/dmls/";
+ public static final String DML_STATUS_FILE = DML_PATH + "/" + "fdb.status";
public FenixDomainBrowserRelayImpl() {
}
@Override
public ClassBean[] getDomainClasses(FDBState bean) {
- FenixDomainModel fdm = DOMAIN_PROVIDER.getDomainModel(bean.getSignature());
- ClassBean[] cb = new ClassBean[fdm.getDomainClasses().size()];
- int i = 0;
- for (DomainClass domainClass : fdm.getDomainClasses()) {
- cb[i++] = ReflexFactory.fromClass(domainClass, bean);
- }
- Arrays.sort(cb);
- return cb;
+ DomainModel fdm = DOMAIN_PROVIDER.getDomainModel(bean.getSignature());
+ ClassBean[] cb = new ClassBean[fdm.getDomainClasses().size()];
+ int i = 0;
+ for (DomainClass domainClass : fdm.getDomainClasses()) {
+ cb[i++] = ReflexFactory.fromClass(domainClass, bean);
+ }
+ Arrays.sort(cb);
+ return cb;
}
@Override
public FDBState generateGraph(FDBState bean) {
- UMLGraph g = new UMLGraph(bean);
- FDBState result = g.generate();
- return result;
+ UMLGraph g = new UMLGraph(bean);
+ FDBState result = g.generate();
+ return result;
}
@Override
public ClassBean findClass(String name, FDBState bean) {
- return ReflexFactory.fromClass(DOMAIN_PROVIDER.getDomainModel(bean.getSignature()).findClass(name), bean);
+ return ReflexFactory.fromClass(DOMAIN_PROVIDER.getDomainModel(bean.getSignature()).findClass(name), bean);
}
private void dumpFiles(OpenFilesState files) {
- try {
- List result = new ArrayList();
- for (String s : files.files) {
- ZipFile zipFile = new ZipFile(s);
- for (Enumeration list = zipFile.entries(); list.hasMoreElements();) {
- ZipEntry entry = (ZipEntry) list.nextElement();
- InputStream eis = zipFile.getInputStream(entry);
- byte[] buffer = new byte[1024];
- int bytesRead = 0;
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- while ((bytesRead = eis.read(buffer)) != -1) {
- baos.write(buffer, 0, bytesRead);
- }
- File f = File.createTempFile("dmlFromZip", ".dml");
- FileOutputStream fos = new FileOutputStream(f.getAbsoluteFile());
- fos.write(baos.toByteArray());
- fos.close();
- result.add(f.getAbsoluteFile().getAbsolutePath());
- }
- }
- files.files = result;
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ try {
+ List result = new ArrayList();
+ for (String s : files.files) {
+ ZipFile zipFile = new ZipFile(s);
+ for (Enumeration list = zipFile.entries(); list.hasMoreElements();) {
+ ZipEntry entry = (ZipEntry) list.nextElement();
+ InputStream eis = zipFile.getInputStream(entry);
+ byte[] buffer = new byte[1024];
+ int bytesRead = 0;
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ while ((bytesRead = eis.read(buffer)) != -1) {
+ baos.write(buffer, 0, bytesRead);
+ }
+ File f = File.createTempFile("dmlFromZip", ".dml");
+ FileOutputStream fos = new FileOutputStream(f.getAbsoluteFile());
+ fos.write(baos.toByteArray());
+ fos.close();
+ result.add(f.getAbsoluteFile().getAbsolutePath());
+ }
+ }
+ files.files = result;
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
@Override
public FDBState loadFiles(OpenFilesState files) {
- if (files.zip) {
-
- dumpFiles(files);
- }
-
- DomainModelSignatures dms = DOMAIN_PROVIDER.loadFiles(files);
- FDBState state = new FDBState(dms);
- FenixDomainModel domainModel = DOMAIN_PROVIDER.getDomainModel(dms);
- state.setClasses(domainModel.getDomainClasses().size());
- state.setRelations(domainModel.getDomainRelations().size());
- state.setValueTypes(domainModel.getAllValueTypes().size());
- return state;
+ if (files.zip) {
+
+ dumpFiles(files);
+ }
+
+ DomainModelSignatures dms = DOMAIN_PROVIDER.loadFiles(files);
+ FDBState state = new FDBState(dms);
+ DomainModel domainModel = DOMAIN_PROVIDER.getDomainModel(dms);
+ state.setClasses(domainModel.getDomainClasses().size());
+ state.setRelations(domainModel.getDomainRelations().size());
+ state.setValueTypes(domainModel.getAllValueTypes().size());
+ return state;
}
@Override
public String generateSaveFile(FDBState state) {
- DomainModelDefinitions dmd = DOMAIN_PROVIDER.getLoadedDomainModel(state).getDomainModelDefinitions();
- File tempFile;
- try {
- tempFile = File.createTempFile("save", ".fdb3");
-
- JSONSerializer serializerState = new JSONSerializer().include("classesToSee", "classesInGraph", "hideSlots",
- "hideClasses", "exclusiveSelection");
- String serialState = serializerState.serialize(state);
-
- JSONSerializer serializerDomainModel = new JSONSerializer().include("fileNames", "contents", "signatures",
- "signatures.signatures");
- String serialDomainModel = serializerDomainModel.serialize(dmd);
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- baos.write((serialState.length() + "\n").getBytes());
- baos.write(serialState.getBytes());
- baos.write(serialDomainModel.getBytes());
- baos.close();
-
- FileOutputStream fos = new FileOutputStream(tempFile.getAbsoluteFile());
- fos.write(DomainModelProvider.zipBytes("save.fdb3", baos.toByteArray()));
-
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return new sun.misc.BASE64Encoder().encode(tempFile.getAbsolutePath().getBytes());
+ DomainModelDefinitions dmd = DOMAIN_PROVIDER.getLoadedDomainModel(state).getDomainModelDefinitions();
+ File tempFile;
+ try {
+ tempFile = File.createTempFile("save", ".fdb3");
+
+ JSONSerializer serializerState =
+ new JSONSerializer().include("classesToSee", "classesInGraph", "hideSlots", "hideClasses",
+ "exclusiveSelection");
+ String serialState = serializerState.serialize(state);
+
+ JSONSerializer serializerDomainModel =
+ new JSONSerializer().include("fileNames", "contents", "signatures", "signatures.signatures");
+ String serialDomainModel = serializerDomainModel.serialize(dmd);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ baos.write((serialState.length() + "\n").getBytes());
+ baos.write(serialState.getBytes());
+ baos.write(serialDomainModel.getBytes());
+ baos.close();
+
+ FileOutputStream fos = new FileOutputStream(tempFile.getAbsoluteFile());
+ fos.write(DomainModelProvider.zipBytes("save.fdb3", baos.toByteArray()));
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return new sun.misc.BASE64Encoder().encode(tempFile.getAbsolutePath().getBytes());
}
@Override
public FDBState loadFile(String file) {
- try {
- ZipFile zipFile = new ZipFile(file);
- ZipEntry entry = (ZipEntry) zipFile.entries().nextElement();
-
- InputStream eis = zipFile.getInputStream(entry);
- byte[] buffer = new byte[1024];
- int bytesRead = 0;
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- while ((bytesRead = eis.read(buffer)) != -1) {
- baos.write(buffer, 0, bytesRead);
- }
- String result = new String(baos.toByteArray());
- int split = result.indexOf('\n');
- int size = Integer.valueOf(result.substring(0, split));
-
- String state = result.substring(split + 1, split + 1 + size);
- String dmd = result.substring(split + 1 + size);
- FDBState fdbState = new JSONDeserializer().deserialize(state);
- DomainModelDefinitions domainModelDefinitions = new JSONDeserializer().deserialize(dmd);
-
- DOMAIN_PROVIDER.loadFromDomainModelDomainModelDefinitions(domainModelDefinitions);
- fdbState.setSignature(domainModelDefinitions.signatures);
- return fdbState;
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ try {
+ ZipFile zipFile = new ZipFile(file);
+ ZipEntry entry = zipFile.entries().nextElement();
+
+ InputStream eis = zipFile.getInputStream(entry);
+ byte[] buffer = new byte[1024];
+ int bytesRead = 0;
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ while ((bytesRead = eis.read(buffer)) != -1) {
+ baos.write(buffer, 0, bytesRead);
+ }
+ String result = new String(baos.toByteArray());
+ int split = result.indexOf('\n');
+ int size = Integer.valueOf(result.substring(0, split));
+
+ String state = result.substring(split + 1, split + 1 + size);
+ String dmd = result.substring(split + 1 + size);
+ FDBState fdbState = new JSONDeserializer().deserialize(state);
+ DomainModelDefinitions domainModelDefinitions = new JSONDeserializer().deserialize(dmd);
+
+ DOMAIN_PROVIDER.loadFromDomainModelDomainModelDefinitions(domainModelDefinitions);
+ fdbState.setSignature(domainModelDefinitions.signatures);
+ return fdbState;
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
@Override
public String saveStateForOtherOps(FDBState state) {
- JSONSerializer serializerState = new JSONSerializer().include("classesToSee", "classesInGraph", "hideSlots",
- "hideClasses", "exclusiveSelection", "signature", "signature.signatures");
- try {
- String serialState = serializerState.serialize(state);
- File tempFile = File.createTempFile("otherOps", ".state");
- FileOutputStream fos = new FileOutputStream(tempFile);
- fos.write(serialState.getBytes());
- return new sun.misc.BASE64Encoder().encode(tempFile.getAbsolutePath().getBytes());
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ JSONSerializer serializerState =
+ new JSONSerializer().include("classesToSee", "classesInGraph", "hideSlots", "hideClasses", "exclusiveSelection",
+ "signature", "signature.signatures");
+ try {
+ String serialState = serializerState.serialize(state);
+ File tempFile = File.createTempFile("otherOps", ".state");
+ FileOutputStream fos = new FileOutputStream(tempFile);
+ fos.write(serialState.getBytes());
+ return new sun.misc.BASE64Encoder().encode(tempFile.getAbsolutePath().getBytes());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private void writeDMLStatusFile() {
+ try {
+ File file = new File(DML_STATUS_FILE);
+ FileUtils.writeStringToFile(file, new Date().toString());
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ private boolean mustUpdateDML() {
+ File file = new File(DML_STATUS_FILE);
+ if (!file.exists()) {
+ return true;
+ }
+ return (Calendar.getInstance().getTimeInMillis() - file.lastModified()) > 3 * 60 * 60 * 1000;
}
@Override
public FDBState freshDML() {
- final String FENIX_DML_URL = "https://fenix-ashes.ist.utl.pt/open/trunk/fenix/config/domain_model.dml";
- final String SCHEDULER_PLUGIN_URL = "https://fenix-ashes.ist.utl.pt/open/trunk/infrastructure/scheduler-plugin/src/main/dml/scheduler-plugin.dml";
-
- try {
- FileUtils.copyURLToFile(new URL(FENIX_DML_URL), new File("/tmp/fenix.dml"));
- FileUtils.copyURLToFile(new URL(SCHEDULER_PLUGIN_URL), new File("/tmp/scheduler.dml"));
- OpenFilesState files = new OpenFilesState();
- files.files.add("/tmp/scheduler.dml");
- files.files.add("/tmp/fenix.dml");
- return loadFiles(files);
-
- } catch (MalformedURLException e) {
- throw new RuntimeException(e);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
-
+ boolean mustUpdateDML = mustUpdateDML();
+ OpenFilesState files = new OpenFilesState();
+ Map dmlUrls = ConfigurationProperties.getDMLUrls();
+ for (String dmlFile : new TreeSet(dmlUrls.keySet())) {
+ try {
+ String filename = DML_PATH + "/" + dmlFile + ".dml";
+ System.out.println(filename);
+ if (mustUpdateDML) {
+ System.out.println("update:" + filename);
+ FileUtils.copyURLToFile(dmlUrls.get(dmlFile), new File(filename));
+ }
+ files.files.add(filename);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (mustUpdateDML) {
+ writeDMLStatusFile();
+ }
+ return loadFiles(files);
}
}
diff --git a/src/fenixDomainBrowser/server/PrintServlet.java b/src/fenixDomainBrowser/server/PrintServlet.java
index b5f9eeb..138a4b5 100644
--- a/src/fenixDomainBrowser/server/PrintServlet.java
+++ b/src/fenixDomainBrowser/server/PrintServlet.java
@@ -8,7 +8,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import dml.DomainClass;
+import pt.ist.fenixframework.dml.DomainClass;
import fenixDomainBrowser.server.graphvizAdapter.Dot;
import fenixDomainBrowser.shared.ClassBean;
import fenixDomainBrowser.shared.FDBState;
diff --git a/src/fenixDomainBrowser/server/ReflexFactory.java b/src/fenixDomainBrowser/server/ReflexFactory.java
index 8fe1b41..1472164 100644
--- a/src/fenixDomainBrowser/server/ReflexFactory.java
+++ b/src/fenixDomainBrowser/server/ReflexFactory.java
@@ -1,8 +1,8 @@
package fenixDomainBrowser.server;
-import dml.DomainClass;
-import dml.DomainEntity;
-import dml.Slot;
+import pt.ist.fenixframework.dml.DomainClass;
+import pt.ist.fenixframework.dml.DomainEntity;
+import pt.ist.fenixframework.dml.Slot;
import fenixDomainBrowser.shared.ClassBean;
import fenixDomainBrowser.shared.FDBState;
import fenixDomainBrowser.shared.SlotBean;
diff --git a/src/fenixDomainBrowser/server/UMLGraph.java b/src/fenixDomainBrowser/server/UMLGraph.java
index 921b0ea..b4d95ec 100644
--- a/src/fenixDomainBrowser/server/UMLGraph.java
+++ b/src/fenixDomainBrowser/server/UMLGraph.java
@@ -2,14 +2,12 @@
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
-import pt.ist.fenixframework.pstm.dml.FenixDomainModel;
-
-import dml.DomainClass;
-import dml.DomainRelation;
-import dml.Role;
+import pt.ist.fenixframework.dml.DomainClass;
+import pt.ist.fenixframework.dml.DomainModel;
+import pt.ist.fenixframework.dml.DomainRelation;
+import pt.ist.fenixframework.dml.Role;
import fenixDomainBrowser.server.graphvizAdapter.ClassNode;
import fenixDomainBrowser.server.graphvizAdapter.Dot;
import fenixDomainBrowser.server.graphvizAdapter.Graph;
@@ -103,7 +101,7 @@ public byte[] generateImage() {
private void addAllClasssesAndRelations(ClassBean classBean) {
boolean isExclusive = bean.getExclusiveSelection().contains(classBean);
- FenixDomainModel domainModel = FenixDomainBrowserRelayImpl.DOMAIN_PROVIDER.getDomainModel(bean);
+ DomainModel domainModel = FenixDomainBrowserRelayImpl.DOMAIN_PROVIDER.getDomainModel(bean);
DomainClass domainClass = domainModel.findClass(classBean.getId());
if (!bean.getHideClasses().contains(classBean)) {
usedClasses.add(classBean);
diff --git a/src/fenixDomainBrowser/server/graphvizAdapter/RelationEdge.java b/src/fenixDomainBrowser/server/graphvizAdapter/RelationEdge.java
index f8dd241..59fcc2d 100644
--- a/src/fenixDomainBrowser/server/graphvizAdapter/RelationEdge.java
+++ b/src/fenixDomainBrowser/server/graphvizAdapter/RelationEdge.java
@@ -1,7 +1,7 @@
package fenixDomainBrowser.server.graphvizAdapter;
-import dml.DomainRelation;
-import dml.Role;
+import pt.ist.fenixframework.dml.DomainRelation;
+import pt.ist.fenixframework.dml.Role;
public class RelationEdge extends Edge {
private final DomainRelation relation;
diff --git a/war/WEB-INF/lib/antlr-2.7.7.jar b/war/WEB-INF/lib/antlr-2.7.7.jar
new file mode 100644
index 0000000..5e5f14b
Binary files /dev/null and b/war/WEB-INF/lib/antlr-2.7.7.jar differ
diff --git a/war/WEB-INF/lib/commons-lang-2.6.jar b/war/WEB-INF/lib/commons-lang-2.6.jar
new file mode 100644
index 0000000..98467d3
Binary files /dev/null and b/war/WEB-INF/lib/commons-lang-2.6.jar differ
diff --git a/war/WEB-INF/lib/dml-1.1.3.jar b/war/WEB-INF/lib/dml-1.1.3.jar
deleted file mode 100644
index bddf770..0000000
Binary files a/war/WEB-INF/lib/dml-1.1.3.jar and /dev/null differ
diff --git a/war/WEB-INF/lib/dml-fenix-1.1.3.jar b/war/WEB-INF/lib/dml-fenix-1.1.3.jar
deleted file mode 100644
index 85d2d29..0000000
Binary files a/war/WEB-INF/lib/dml-fenix-1.1.3.jar and /dev/null differ
diff --git a/war/WEB-INF/lib/fenix-framework-core-1.1.3.jar b/war/WEB-INF/lib/fenix-framework-core-1.1.3.jar
deleted file mode 100644
index 9d73ff5..0000000
Binary files a/war/WEB-INF/lib/fenix-framework-core-1.1.3.jar and /dev/null differ
diff --git a/war/WEB-INF/lib/fenix-framework-core-dml-2.4.0.jar b/war/WEB-INF/lib/fenix-framework-core-dml-2.4.0.jar
new file mode 100644
index 0000000..8803146
Binary files /dev/null and b/war/WEB-INF/lib/fenix-framework-core-dml-2.4.0.jar differ
diff --git a/war/WEB-INF/lib/joda-time-1.6.2.jar b/war/WEB-INF/lib/joda-time-1.6.2.jar
new file mode 100644
index 0000000..9b045c3
Binary files /dev/null and b/war/WEB-INF/lib/joda-time-1.6.2.jar differ
diff --git a/war/WEB-INF/lib/slf4j-api-1.7.2.jar b/war/WEB-INF/lib/slf4j-api-1.7.2.jar
new file mode 100644
index 0000000..1a88708
Binary files /dev/null and b/war/WEB-INF/lib/slf4j-api-1.7.2.jar differ