|
From: <tre...@us...> - 2007-10-04 06:30:42
|
Revision: 475
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=475&view=rev
Author: trevorolio
Date: 2007-10-03 23:30:45 -0700 (Wed, 03 Oct 2007)
Log Message:
-----------
Though there's no UI to set them, body rendering now respects body configuration for morphs.
Modified Paths:
--------------
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/migrate/AccountsForTesting.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountPersistTasks.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountRecord.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/BodyPersistTasks.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/Sim.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java
maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml
maven/trunk/ogoglio-server/src/main/resources/siteTemplates/account.html
maven/trunk/ogoglio-server/src/main/resources/siteTemplates/body.html
maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java
maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java
maven/trunk/ogoglio-server/src/test/resources/bootstrap.properties
maven/trunk/ogoglio-server/src/test/resources/test-config.properties
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/migrate/AccountsForTesting.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/migrate/AccountsForTesting.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/migrate/AccountsForTesting.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -23,7 +23,7 @@
public boolean populate(SessionFactory sessionFactory, int from, int to) throws PersistException {
if ((from != 0) || (to != 1)) {
- Log.error("Migration called in the wrong place! Expected 0->1 but was:" + from + "->" + to + "!");
+ Log.error("Migration called in the wrong place! Expected 0->1 but was:" + from + " -> " + to + "!");
Log.error("Migration called in the wrong place! Check the ordering of migration array!");
return false;
}
@@ -40,8 +40,11 @@
String users = zap.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "allBootstrapUsers");
String pws = zap.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "allBootstrapUsersPW");
String cookies = zap.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "allBootstrapUsersCookies");
+
+ String bodyDisplayNames = zap.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "bodyDataDisplayNames");
+ String bodyFileNames = zap.getKeyFromSet(PropStorage.BOOTSTRAP_PROPS, "bodyDataFileNames");
- if ((uriString == null) || (users == null) || (pws == null) || cookies == null) {
+ if ((uriString == null) || (users == null) || (pws == null) || cookies == null || bodyDisplayNames == null || bodyFileNames == null) {
Log.error("Badly formed test input for migration (AccountsForTesting)");
return false;
}
@@ -49,12 +52,16 @@
String[] userList = users.split(Pattern.quote(","));
String[] pwList = pws.split(Pattern.quote(","));
String[] cookiesList = cookies.split(Pattern.quote(","));
- if (userList.length != pwList.length || userList.length != cookiesList.length) {
- Log.error("Whoa! Settings.xml gave us a bootstrap user, pw or cookie list of different lengths!");
+ String[] bodyDisplayNameArray = bodyDisplayNames.split(Pattern.quote(","));
+ String[] bodyFileNameArray = bodyFileNames.split(Pattern.quote(","));
+ if (userList.length != pwList.length || userList.length != cookiesList.length || bodyDisplayNameArray.length < 1 || bodyDisplayNameArray.length != bodyFileNameArray.length) {
+ Log.error("Whoa! Settings.xml gave us a bootstrap user, pw, body, or cookie list of different lengths!");
return false;
}
URI uri = new URI(uriString);
+ ServiceInitializationPersistTasks.initializeBodyDataRecords(sessionFactory, bodyDisplayNameArray, bodyFileNameArray);
+
for (int i = 0; i < userList.length; ++i) {
ServiceInitializationPersistTasks.initializeBootstrapAccount(sessionFactory, uri.getHost(), userList[i], pwList[i], cookiesList[i]);
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountPersistTasks.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountPersistTasks.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountPersistTasks.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -138,7 +138,15 @@
Log.error("Whoa! Bad email value!" + email);
}
- record = new AccountRecord(username, accountlevel, email);
+ Query bodyDataQuery = hibernateSession.getNamedQuery(BodyPersistTasks.BODY_DATA);
+ BodyDataRecord[] bodyDataRecords = (BodyDataRecord[])bodyDataQuery.list().toArray(new BodyDataRecord[0]);
+ if(bodyDataRecords.length == 0){
+ throw new IllegalStateException("No body data records!");
+ }
+ BodyConfigurationRecord bodyConfRecord = new BodyConfigurationRecord(username, "Body", bodyDataRecords[0].getBodyDataID());
+ hibernateSession.save(bodyConfRecord);
+
+ record = new AccountRecord(username, accountlevel, email, bodyConfRecord.getBodyConfigurationID());
hibernateSession.save(record);
return record;
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountRecord.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountRecord.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/AccountRecord.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -43,10 +43,12 @@
private long frozenUntil = AccountDocument.NO_TIME_VALUE;
+ private long defaultBodyConfigurationID = -1;
+
public AccountRecord() {
}
- public AccountRecord(String username, String accountlevel, String email) {
+ public AccountRecord(String username, String accountlevel, String email, long defaultBodyConfigurationID) {
this.username = cleanUsername(username);
if (this.username == null) {
throw new IllegalArgumentException("Bad username (only letters and numbers): " + username);
@@ -61,6 +63,8 @@
throw new IllegalArgumentException("Bad email: " + email);
}
+ this.defaultBodyConfigurationID = defaultBodyConfigurationID;
+
this.creationDate = System.currentTimeMillis();
}
@@ -155,6 +159,14 @@
public String getAccountlevel() {
return accountlevel;
}
+
+ public void setDefaultBodyConfigurationID(long defaultBodyConfigurationID){
+ this.defaultBodyConfigurationID = defaultBodyConfigurationID;
+ }
+
+ public long getDefaultBodyConfigurationID(){
+ return defaultBodyConfigurationID;
+ }
public void setAccountlevel(String level) {
if (verifyAccountLevel(level) == null) {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/BodyPersistTasks.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/BodyPersistTasks.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/BodyPersistTasks.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -8,8 +8,12 @@
import com.ogoglio.appdev.persist.HibernateTask;
import com.ogoglio.appdev.persist.PersistException;
+import com.ogoglio.site.AuthServlet;
+import com.ogoglio.util.WebConstants;
+import com.ogoglio.xml.AccountDocument;
import com.ogoglio.xml.BodyConfigurationDocument;
import com.ogoglio.xml.BodySettingDocument;
+import com.ogoglio.xml.server.DocumentFactory;
public class BodyPersistTasks {
@@ -21,7 +25,7 @@
public static final String BODY_CONFIGURATION_BY_USERNAME_AND_BODY_DATA_ID = "com.ogoglio.persist.bodyConfigurationByUsernameAndBodyDataID";
- public static final String BODY_CONFIGURATION_BY_USERNAME = "com.ogoglio.persist.bodyConfigurationByUsername";
+ public static final String BODY_CONFIGURATIONS_BY_USERNAME = "com.ogoglio.persist.bodyConfigurationsByUsername";
public static final String BODY_CONFIGURATION_BY_ID = "com.ogoglio.persist.bodyConfigurationByID";
@@ -80,7 +84,7 @@
public static BodyConfigurationRecord[] findBodyConfigurationsByUsername(final String username, SessionFactory sessionFactory) throws PersistException {
HibernateTask task = new HibernateTask() {
public Object run(Session session) throws PersistException {
- Query query = session.getNamedQuery(BODY_CONFIGURATION_BY_USERNAME);
+ Query query = session.getNamedQuery(BODY_CONFIGURATIONS_BY_USERNAME);
query.setString("username", username);
return query.list().toArray(new BodyConfigurationRecord[0]);
}
@@ -178,6 +182,39 @@
return (BodyDataRecord[]) task.execute();
}
+ public static BodyConfigurationDocument getDefaultBodyConfigurationDocument(final String username, SessionFactory sessionFactory) throws PersistException {
+ HibernateTask task = new HibernateTask() {
+ public Object run(Session session) throws PersistException {
+ if(username.startsWith(WebConstants.GUEST_COOKIE_PREFIX)){ //fake up a configuration for our guests
+ Query bodyDataQuery = session.getNamedQuery(BODY_DATA);
+ BodyDataRecord[] bodyDataRecs = (BodyDataRecord[])bodyDataQuery.list().toArray(new BodyDataRecord[0]);
+ BodyConfigurationDocument doc = new BodyConfigurationDocument(0, username, "Guest Body", bodyDataRecs[0].getBodyDataID());
+ return doc;
+ }
+
+ Query accountQuery = session.getNamedQuery(AccountPersistTasks.ACCOUNT_BY_USERNAME);
+ accountQuery.setString("username", username);
+ AccountRecord accountRecord = (AccountRecord)accountQuery.uniqueResult();
+ if(accountRecord == null){
+ throw new PersistException("Queried for the body config of an unknown account");
+ }
+
+ Query bodyConfigQuery = session.getNamedQuery(BODY_CONFIGURATION_BY_ID);
+ bodyConfigQuery.setLong("bodyConfigurationID", accountRecord.getDefaultBodyConfigurationID());
+ BodyConfigurationRecord rec = (BodyConfigurationRecord)bodyConfigQuery.uniqueResult();
+
+ Query bodySettingQuery = session.getNamedQuery(BODY_SETTINGS_BY_CONFIGURATION_ID);
+ bodySettingQuery.setLong("bodyConfigurationID", rec.getBodyConfigurationID());
+ BodySettingRecord[] settingRecords = (BodySettingRecord[])bodySettingQuery.list().toArray(new BodySettingRecord[0]);
+
+ return DocumentFactory.documentFromRecord(rec, settingRecords);
+ }
+ };
+ task.setSessionFactory(sessionFactory);
+ return (BodyConfigurationDocument) task.execute();
+
+ }
+
public static BodyConfigurationDocument updateBodyConfiguration(final BodyConfigurationDocument proposedDoc, SessionFactory sessionFactory) throws PersistException {
HibernateTask task = new HibernateTask() {
public Object run(Session session) throws PersistException {
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/ServiceInitializationPersistTasks.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -41,4 +41,13 @@
public static void initializeServiceState(SessionFactory sessionFactory) throws PersistException, IOException{
ServiceStateTasks.getOrCreateServiceState(sessionFactory);
}
+
+ public static void initializeBodyDataRecords(SessionFactory sessionFactory, String[] bodyDisplayNameArray, String[] bodyFileNameArray) throws PersistException {
+ if(bodyDisplayNameArray.length != bodyFileNameArray.length){
+ throw new IllegalArgumentException("The body file name array doesn't match the display name array");
+ }
+ for (int i = 0; i < bodyFileNameArray.length; i++) {
+ BodyPersistTasks.findOrCreateBodyDataRecord(bodyDisplayNameArray[i], bodyFileNameArray[i], sessionFactory);
+ }
+ }
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/Sim.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/Sim.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/Sim.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -26,6 +26,7 @@
import com.ogoglio.appdev.persist.PersistException;
import com.ogoglio.media.MediaService;
import com.ogoglio.message.PayloadFactory;
+import com.ogoglio.persist.BodyPersistTasks;
import com.ogoglio.persist.SimRecord;
import com.ogoglio.persist.SpacePersistTasks;
import com.ogoglio.persist.SpaceRecord;
@@ -35,6 +36,7 @@
import com.ogoglio.util.Log;
import com.ogoglio.util.StreamUtils;
import com.ogoglio.util.TwoWayMap;
+import com.ogoglio.xml.BodyConfigurationDocument;
import com.ogoglio.xml.SpaceDocument;
import com.ogoglio.xml.SpaceEvent;
import com.ogoglio.xml.TemplateDocument;
@@ -81,8 +83,8 @@
snapshotTimer.schedule(new SnapshotTask(), 300000, SNAPSHOT_FREQUENCY);
snapshotTimer.schedule(new ReaperTask(), 30000, VACANCY_TIME_TILL_SHUTDOWN);
-
- spaceSimulatorListener=new SpaceSimulatorListener();
+
+ spaceSimulatorListener = new SpaceSimulatorListener();
}
private class ReaperTask extends TimerTask {
@@ -162,6 +164,14 @@
}
}
+ public BodyConfigurationDocument getDefaultBodyConfigurationDocument(String username) {
+ try {
+ return BodyPersistTasks.getDefaultBodyConfigurationDocument(username, sessionFactory);
+ } catch (PersistException e) {
+ throw new IllegalStateException("Could not load a body configuration for " + username + ": " + e);
+ }
+ }
+
public void requestSave(SpaceSimulator simulator) {
try {
if (!simulator.getDeleted()) {
@@ -272,7 +282,7 @@
simulator = new SpaceSimulator(spaceDoc, spaceSimulatorListener);
spaceSimulators.put(new Long(record.getSpaceID()), simulator);
simulator.startSim();
- Log.info("Starting space sim " + record.getSpaceID() + ": " + record.getDisplayName() + "( on sim "+ record.getSimID()+")");
+ Log.info("Starting space sim " + record.getSpaceID() + ": " + record.getDisplayName() + "( on sim " + record.getSimID() + ")");
return simulator;
}
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/SpaceSimulator.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -28,6 +28,7 @@
import javax.vecmath.Vector3d;
import com.ogoglio.client.UserInputListener;
+import com.ogoglio.client.model.BodyConfiguration;
import com.ogoglio.client.model.BodyDataProvider;
import com.ogoglio.client.model.Door;
import com.ogoglio.client.model.Page;
@@ -45,6 +46,7 @@
import com.ogoglio.util.Log;
import com.ogoglio.util.BlockingQueue.QueueClosedException;
import com.ogoglio.viewer.j3d.J3DRenderer;
+import com.ogoglio.xml.BodyConfigurationDocument;
import com.ogoglio.xml.DoorDocument;
import com.ogoglio.xml.PageDocument;
import com.ogoglio.xml.SettingDocument;
@@ -129,6 +131,8 @@
public void generatedSpaceEventForUser(String username, SpaceEvent event, SpaceSimulator spaceSimulator);
public TemplateDocument getTemplateDocument(long templateID);
+
+ public BodyConfigurationDocument getDefaultBodyConfigurationDocument(String username);
public String getTemplateScript(long templateID);
@@ -792,12 +796,14 @@
count = new Integer(1);
Transform3D position = new Transform3D();
position.setTranslation(new Vector3d(0, 0, 0));
- User user = new User(space, username, position);
+ BodyConfigurationDocument bodyConfigDoc = listener.getDefaultBodyConfigurationDocument(username);
+ User user = new User(space, username, position, new BodyConfiguration(bodyConfigDoc));
space.addUser(user);
SpaceEvent spaceEvent = new SpaceEvent(SpaceEvent.ADD_USER_EVENT);
spaceEvent.setProperty(SpaceEvent.USERNAME, username);
spaceEvent.setPointAndOrientationData(user.getPosition());
+ spaceEvent.setBodyConfigurationDocument(bodyConfigDoc);
handleSpaceEvent(spaceEvent);
} else {
count = new Integer(count.intValue() + 1);
@@ -972,8 +978,16 @@
}
}
+ private class SimBodyConfiguration extends BodyConfiguration {
+
+ public SimBodyConfiguration() {
+ super(1, "Sim Body", 1);
+ }
+
+ }
+
private class InSimBodyDataProvider implements BodyDataProvider {
- public ZipInputStream getBodyData(String bodyName) {
+ public ZipInputStream getBodyData(long bodyDataID) {
return new ZipInputStream(getClass().getClassLoader().getResourceAsStream("ogoglio-body-sim.jar"));
}
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/site/AccountServlet.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -208,7 +208,7 @@
return;
}
long bodyConfigID = Long.parseLong(pathElements[pathElements.length - 1]);
-
+
BodyConfigurationRecord record = BodyPersistTasks.findBodyConfigurationByID(bodyConfigID, getSessionFactory());
if (record == null || !username.equals(record.getOwnerUsername())) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
@@ -217,7 +217,7 @@
BodyConfigurationDocument proposedDoc = new BodyConfigurationDocument(parseXML(request.getInputStream()));
BodyConfigurationDocument bodyConfigDoc = BodyPersistTasks.updateBodyConfiguration(proposedDoc, getSessionFactory());
- if(bodyConfigDoc == null){
+ if (bodyConfigDoc == null) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
@@ -225,9 +225,31 @@
}
}
+ private class DefaultBodyResource extends AuthenticatedSiteResource {
+ public DefaultBodyResource() {
+ super("default", true, getSessionFactory());
+ }
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements, AccountRecord authedAccount) throws PersistException, IOException {
+ String username = pathElements[pathElements.length - 3];
+ if (!requestOkForBody(request, username, authedAccount)) {
+ response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+ return;
+ }
+ BodyConfigurationRecord record = BodyPersistTasks.findBodyConfigurationByID(authedAccount.getDefaultBodyConfigurationID(), getSessionFactory());
+ if(record == null){
+ throw new IllegalStateException("Account has a bogus body configuration record.. " + authedAccount.getDefaultBodyConfigurationID());
+ }
+
+ BodySettingRecord[] settingRecords = BodyPersistTasks.findBodySettingsByConfigurationID(record.getBodyConfigurationID(), getSessionFactory());
+ sendStringResponse(DocumentFactory.documentFromRecord(record, settingRecords).toString(), "text/xml", response);
+ }
+ }
+
private class BodiesResource extends AuthenticatedSiteResource {
public BodiesResource() {
super("body", false, getSessionFactory());
+ addSubResource(new DefaultBodyResource());
addSubResource(new BodyResource());
}
@@ -242,7 +264,6 @@
for (int i = 0; i < configRecs.length; i++) {
list.addChild(DocumentFactory.documentFromRecord(configRecs[i], BodyPersistTasks.findBodySettingsByConfigurationID(configRecs[i].getBodyConfigurationID(), getSessionFactory())).toElement());
}
- System.out.println("Sending " + list.toString());
sendStringResponse(list.toString(), "text/xml", response);
}
Modified: maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml 2007-10-04 06:30:45 UTC (rev 475)
@@ -90,6 +90,7 @@
<property name="creationDate" update="false" />
<property name="cookie" />
<property name="frozenUntil" />
+ <property name="defaultBodyConfigurationID" />
</class>
<class name="com.ogoglio.persist.TemplateRecord"
@@ -159,7 +160,7 @@
</class>
<query name="com.ogoglio.persist.bodyData">
- <![CDATA[ from com.ogoglio.persist.BodyDataRecord ]]>
+ <![CDATA[ from com.ogoglio.persist.BodyDataRecord order by bodyDataID asc ]]>
</query>
<query name="com.ogoglio.persist.bodyDataByID">
<![CDATA[ from com.ogoglio.persist.BodyDataRecord as record where record.bodyDataID = :bodyDataID ]]>
@@ -170,7 +171,7 @@
<query name="com.ogoglio.persist.bodyConfigurationByUsernameAndBodyDataID">
<![CDATA[ from com.ogoglio.persist.BodyConfigurationRecord as record where record.ownerUsername = :username and record.bodyDataID = :bodyDataID ]]>
</query>
- <query name="com.ogoglio.persist.bodyConfigurationByUsername">
+ <query name="com.ogoglio.persist.bodyConfigurationsByUsername">
<![CDATA[ from com.ogoglio.persist.BodyConfigurationRecord as record where record.ownerUsername = :username ]]>
</query>
<query name="com.ogoglio.persist.bodyConfigurationByID">
Modified: maven/trunk/ogoglio-server/src/main/resources/siteTemplates/account.html
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/siteTemplates/account.html 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/resources/siteTemplates/account.html 2007-10-04 06:30:45 UTC (rev 475)
@@ -52,7 +52,6 @@
var spaceMembershipTable = null;
var profileTable = null;
var profileGoButton = null;
-var bodyLink = null;
function handleAuth(){
if(requestedUsername == null){
@@ -135,7 +134,6 @@
titleUserElement.innerHTML = "User: " + accountXML.getAttribute("username");
//titleAccountElement.innerHTML = "Account Type: " + accountXML.getAttribute("accountlevel");
- bodyLink.innerHTML = "<a href='body.html?bodyID=" + accountXML.getAttribute('defaultbodyid') + "'>Edit your body »</a>"
setProfileFromAccountXML();
}
@@ -203,7 +201,6 @@
spaceMembershipTable = document.getElementById("spaceMembershipTable");
profileGoButton = document.getElementById("profileGoButton");
profileTable = document.getElementById("profileTable");
- bodyLink = document.getElementById("bodyLink");
addAuthListeners(handleAuth, handleAuth);
}
@@ -248,7 +245,7 @@
<form onsubmit="createNewSpace('New Space'); return false;"><input type="submit" value="create a new space"/></form>
</div>
- <p class="navLink" id="bodyLink"></p>
+ <p class="navLink" id="bodyLink"><a href='body.html'>Edit your body »</a></p>
<p class="navLink" id="inventoryLink"></p>
</div><!-- end content -->
Modified: maven/trunk/ogoglio-server/src/main/resources/siteTemplates/body.html
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/siteTemplates/body.html 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/main/resources/siteTemplates/body.html 2007-10-04 06:30:45 UTC (rev 475)
@@ -30,7 +30,6 @@
</style>
<script type="text/javascript">
-var bodyID = locationParameters['bodyID'];
var loginCookie = getLoginCookie();
var titleElement = null;
@@ -46,26 +45,10 @@
return;
}
- if(bodyID == null){
- mainElement.innerHTML = "<h2>Error: somehow you arrived here without the parameters.</h2> (dang)";
- return;
- }
-
if(authedUsername == null){
mainElement.innerHTML = "<h2>Please log in.</h2>";
return;
}
-
- requestBodyDocument(authedUsername, bodyID, handleBody);
-}
-
-function handleBody(xml){
- if(xml == null) {
- mainElement.innerHTML = "Couldn't read body information.";
- return;
- }
- bodyXML = xml;
- titleElement.innerHTML = escapeHTML(bodyXML.getAttribute("displayname"));
writeApplet();
}
@@ -114,7 +97,7 @@
</div> <!-- end header menu -->
<div id="main">
- <h2 id="title">Loading...</h2>
+ <h2 id="title">Body Editor:</h2>
<div id="appletDiv"> </div>
</div> <!-- end main -->
Modified: maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java
===================================================================
--- maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/test/java/com/ogoglio/persist/test/PersistTest.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -16,13 +16,9 @@
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
import com.ogoglio.appdev.migrate.MigrationSupport;
import com.ogoglio.appdev.migrate.test.DBZapTest;
-import com.ogoglio.appdev.persist.HibernateTask;
import com.ogoglio.appdev.persist.PersistException;
import com.ogoglio.media.MediaService;
import com.ogoglio.migrate.OgoglioServerMigration;
@@ -42,6 +38,7 @@
import com.ogoglio.persist.TemplateRecord;
import com.ogoglio.util.Log;
import com.ogoglio.util.PropStorage;
+import com.ogoglio.xml.BodyConfigurationDocument;
public class PersistTest extends DBZapTest {
@@ -100,6 +97,9 @@
public void testRecords() {
try {
+ BodyDataRecord bodyDataRec = BodyPersistTasks.findOrCreateBodyDataRecord("Mike", "ogoglio-body-mike.jar", sessionFactory);
+ assertNotNull(bodyDataRec);
+
String ONE_TWO = "1234";
AccountRecord accRec1 = AccountPersistTasks.findAccountByUsername(username1, sessionFactory);
if (accRec1 == null) {
@@ -130,11 +130,14 @@
assertEquals("ogoglio-body-moon.jar", bodyDataRecord.getFileName());
bodyDataRecord = BodyPersistTasks.findBodyDataRecord("ogoglio-body-moon.jar", sessionFactory);
assertNotNull(bodyDataRecord);
+ assertTrue(bodyDataRecord.getBodyDataID() >= 0);
assertEquals("Moon Body", bodyDataRecord.getDisplayName());
assertEquals("ogoglio-body-moon.jar", bodyDataRecord.getFileName());
BodyConfigurationRecord configurationRecord = BodyPersistTasks.createBodyConfiguration(username1, "Brand New Test Body", bodyDataRecord.getBodyDataID(), sessionFactory);
assertNotNull(configurationRecord);
+ configurationRecord = BodyPersistTasks.findBodyConfigurationByID(configurationRecord.getBodyConfigurationID(), sessionFactory);
+ assertNotNull(configurationRecord);
assertEquals(bodyDataRecord.getBodyDataID(), configurationRecord.getBodyDataID());
BodySettingRecord settingRecord = BodyPersistTasks.createOrUpdateBodySetting(configurationRecord.getBodyDataID(), "height", 0.5f, sessionFactory);
Modified: maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java
===================================================================
--- maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java 2007-10-04 06:30:45 UTC (rev 475)
@@ -10,6 +10,7 @@
import com.ogoglio.sim.SpaceSimulator;
import com.ogoglio.util.UIConstants;
+import com.ogoglio.xml.BodyConfigurationDocument;
import com.ogoglio.xml.SpaceDocument;
import com.ogoglio.xml.SpaceEvent;
import com.ogoglio.xml.TemplateDocument;
@@ -126,6 +127,10 @@
public void generatedSpaceEventForUser(String username, SpaceEvent event, SpaceSimulator spaceSimulator) {
}
+ public BodyConfigurationDocument getDefaultBodyConfigurationDocument(String username) {
+ return new BodyConfigurationDocument(1, username, "Script Test Body", 1);
+ }
+
}
}
Modified: maven/trunk/ogoglio-server/src/test/resources/bootstrap.properties
===================================================================
--- maven/trunk/ogoglio-server/src/test/resources/bootstrap.properties 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/test/resources/bootstrap.properties 2007-10-04 06:30:45 UTC (rev 475)
@@ -4,3 +4,5 @@
bootstrapUser=${ogoglio.bootstrapUser}
bootstrapUserPW=${ogoglio.bootstrapUserPW}
allBootstrapUsersCookies=${ogoglio.allBootstrapUsersCookies}
+bodyDataDisplayNames=${ogoglio.bodyDataDisplayNames}
+bodyDataFileNames=${ogoglio.bodyDataFileNames}
Modified: maven/trunk/ogoglio-server/src/test/resources/test-config.properties
===================================================================
--- maven/trunk/ogoglio-server/src/test/resources/test-config.properties 2007-10-04 06:30:38 UTC (rev 474)
+++ maven/trunk/ogoglio-server/src/test/resources/test-config.properties 2007-10-04 06:30:45 UTC (rev 475)
@@ -22,6 +22,8 @@
ogoglio.allBootstrapUsersPW=${ogoglio.allBootstrapUsersPW}
ogoglio.bootstrapUser=${ogoglio.bootstrapUser}
ogoglio.bootstrapUserPW=${ogoglio.bootstrapUserPW}
+ogoglio.bodyDataDisplayNames=${ogoglio.bodyDataDisplayNames}
+ogoglio.bodyDataFileNames=${ogoglio.bodyDataFileNames}
#can destroy the db?
ogoglio.okToZapDB=${ogoglio.okToZapDB}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|